SQL

SQL (vyslovováno anglicky es-kjů-el ) je zkratka () 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 ().

Historie SQL 
V 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 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 

SQL 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 
Architektura 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.

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

Související články 
 Databáze
 Primární klíč
 Cizí klíč
 Tabulka
 Databázová transakce

Externí odkazy 
 
 
 Tutoriál SQL
 Tutoriál PostgreSQL, MySQL, SQLite a Oracle

 
Standardy ISO/IEC podle jména
Deklarativní programovací jazyky