SQL
SQL (vyslovováno anglicky es-kjů-el [ɛs kjuː ɛɫ]IPA) je zkratka (anglicky Structured Query Language) pro standardizovaný strukturovaný dotazovací jazyk, který je používán pro práci s daty v relačních databázích. SQL je nástupcem jazyka SEQUEL (anglicky Structured English Query Language).
Historie SQL
editovatV 70. letech 20. století probíhal ve firmě IBM výzkum relačních databází. Bylo nutné vytvořit sadu příkazů pro ovládání těchto databází. Vznikl tak jazyk SEQUEL (Structured English Query Language). Cílem bylo vytvořit jazyk, ve kterém by se příkazy tvořily syntakticky co nejblíže přirozenému jazyku (angličtině).
K vývoji jazyka se přidaly další firmy. V r. 1979 uvedla na trh firma Relational Software, Inc. (dnešní Oracle Corporation) svoji relační databázovou platformu Oracle Database. IBM uvedla v roce 1981 nový systém SQL/DS a v roce 1983 systém DB2. Dalšími systémy byly např. Progress, Informix[1] a SyBase. Ve všech těchto systémech se používala varianta jazyka SEQUEL, který byl přejmenován na SQL.
Relační databáze byly stále významnější, a bylo nutné jejich jazyk standardizovat. Americký institut ANSI původně chtěl vydat jako standard zcela nový jazyk RDL. SQL se však prosadil jako de facto standard a ANSI založil nový standard na tomto jazyku. Tento standard bývá označován jako SQL-86 podle roku, kdy byl přijat.
V dalších letech se ukázalo, že SQL-86 obsahuje některé nedostatky a naopak v něm nejsou obsaženy některé důležité prvky týkající se hlavně integrity databáze. V roce 1992 byl proto přijat nový standard SQL-92 (někdy se uvádí jen SQL2). Zatím nejnovějším standardem je SQL3 (SQL-99), který reaguje na potřeby nejmodernějších databází s objektovými prvky.
Standardy podporuje prakticky každá relační databáze, ale obvykle nejsou implementovány vždy všechny požadavky normy. A naopak, každá z nich obsahuje prvky a konstrukce, které nejsou ve standardech obsaženy. Přenositelnost SQL dotazů mezi jednotlivými databázemi je proto omezená.
Popis jazyka
editovatSQL příkazy se dělí na čtyři základní skupiny:
- data definition language (DDL), příkazy pro definici dat (CREATE, ALTER, DROP, …),
- data manipulation language (DML), příkazy pro manipulaci s daty (SELECT, INSERT, UPDATE, DELETE, …),
- data control language (DCL),
- transaction control commands (TCC), příkazy pro řízení transakcí (START TRANSACTION, COMMIT, ROLLBACK),
- příkazy pro řízení přístupových práv (GRANT, REVOKE),
- ostatní nebo speciální příkazy (číslovače, schémata, ...)
Distribuované zpracování SQL
editovatArchitektura distribuovaných relačních databází (DRDA) byla navržena pracovní skupinou v rámci IBM v letech 1988 až 1994. DRDA umožňuje síťově připojeným relačním databázím spolupracovat při plnění požadavků SQL.[2][3]
Interaktivní uživatel nebo program může zadávat příkazy SQL do místního RDB a přijímat tabulky dat a stavových indikátorů jako odpověď ze vzdálených RDB. Příkazy SQL lze také zkompilovat a uložit ve vzdálených RDB jako balíčky a poté je vyvolat podle názvu balíčku. To je důležité pro efektivní provoz aplikačních programů, které zadávají složité, vysokofrekvenční dotazy. Je to zvláště důležité, když se tabulky, ke kterým se má přistupovat, nacházejí ve vzdálených systémech.
Zprávy, protokoly a strukturální komponenty DRDA jsou definovány architekturou správy distribuovaných dat. Distribuované zpracování SQL ala DRDA se odlišuje od současných distribuovaných databází SQL.
Reference
editovat- ↑ Informix. www.intax.cz [online]. [cit. 2009-01-16]. Dostupné v archivu pořízeném dne 2007-05-01.
- ↑ REINSCH, R. Distributed database for SAA. IBM Systems Journal. 1988, roč. 27, čís. 3, s. 362–369. Dostupné online [cit. 2022-04-04]. ISSN 0018-8670. DOI 10.1147/sj.273.0362.
- ↑ HIRAO, T. Extension of the relational database semantic processing model. IBM Systems Journal. 1990, roč. 29, čís. 4, s. 539–550. Dostupné online [cit. 2022-04-04]. ISSN 0018-8670. DOI 10.1147/sj.294.0539.
Související články
editovatExterní odkazy
editovat- Obrázky, zvuky či videa k tématu SQL na Wikimedia Commons
- SQL v České terminologické databázi knihovnictví a informační vědy (TDKIV)
- Tutoriál SQL
- Tutoriál PostgreSQL, MySQL, SQLite a Oracle