Víte, co je SQL? Ne? Nevadí - dnes začínáme!

Tento seriál, který dnes začíná stručným poohlédnutím do historie,by vám měl poskytnout základní představu o tomto neprocedurálním jazyku, co vše umí a co vše je možno pomocí něj dokázat.
SQL? Víme všichni, co se za těmito třemi písmenky skrývá? Proč tvoří (dle jednoho z našich databázových guruů Jaroslava Pokorného) jakési pojítko napříč celou databázovou technologií? Že se využívá i v systémech, kde jej na první pohled nevidíme? Tento seriál, který dnes začíná stručným poohlédnutím do historie,by vám měl poskytnout základní představu o tomto neprocedurálním jazyku, co vše umí a co vše je možno pomocí něj dokázat.

Za zkratkou SQL je schován název Structured Query Language a jedná se o neprocedurální jazyk. (Pomocí procedurálního jazyka říkáme, jak chceme konkrétní věc provést, pomocí neprocedurálního jazyka naopak říkáme, co chceme provést.) První prototypová implementace tohoto jazyka, který se až do konce 70. let nazýval Sequel, vznikla roku 1974 v laboratořích společnosti IBM a byla použita ve firemním systému s názvem R. Cílem bylo (a stále je) poskytnout vývojářům standardní metodu přístupu k datům uloženým v databázovém systému, která by byla nezávislá na dalších použitých vývojových nástrojích. Na jednu stranu se jedná o jazyk poměrně mocný a současně jednoduchý (stačí si do angličtiny přeložit, co vlastně chceme, a samotný příkaz bude vypadat velmi podobně), současně však samostatně nedostačující k tvorbě kvalitní aplikace (nejsou zde například implementovány příkazy pro uživatelský vstup a výstup). Jazyk SQL také není možné chápat striktně jako dotazovací - samotný SQL se skládá minimálně ze dvou částí. První je označována jako DDL (Data Definition Language), druhá pak jako DML (Data Manipulation Language). Pomocí příkazů DDL je možné nadefinovat vlastní databázové struktury (ať již odpovídající fyzickému uložení dat, jako jsou tabulky či indexy, či abstraktní, logické - například pohledy). Naproti tomu pomocí příkazů DML s daty opravdu "manipulujeme", tedy vkládáme je, provádíme nad nimi dotazy či je upravujeme. Stranou v mnoha systémech nezůstávají ani prostředky pro řízení transakčního zpracování.

Přestože asi většina z nás má pojem SQL spojen s některým relačním SŘBD (systém řízení báze dat), není nikde stanoveno, že by nebyl použitelný v systémech založených na jiném modelu nebo že všechny relační databáze (sice pojmy databáze, databázový systém a SŘBD není možné zaměňovat, ale pro tentokrát se tím nedopustíme velké chyby) musí SQL podporovat. Nikde také není řečeno, že se musí jednat o jazyk interpretační či vyžadující kompilaci. Možné jsou všechny tři (ano tři) varianty - čistá interpretace, překlad do pre-kódu i překlad do samostatně spustitelného kódu. Přitom, jak už to tak bývá, každá varianta má své výhody a nevýhody. Například, pokud se jedná o program zkompilovaný do samostatně spustitelného kódu, je nutno zajistit jeho rekompilaci, pokud dojde k nějaké změně v použitých databázových strukturách.

Stejně jako v případě celé řady dalších programovacích jazyků se i SQL může pochlubit poměrně živelným vývojem. Na trhu se v první polovině 80. let objevily asi čtyři desítky komerčních SQL systémů. Situace začala být poměrně vážná, a tak se přikročilo k prvnímu normalizačnímu kroku. Organizace ANSI přijala roku 1986 jako standard variantu společnosti IBM a ve svém důsledku se jednalo o jakýsi průnik existujícími implementacemi. Tento standard bývá označován jako ANSI SQL či jako SQL86. O rok později byl přijat také v ISO. Roku 1989 pak následoval další standard, který umožnil definovat integritní omezení. Vývoj šel nezadržitelně kupředu a roku 1992 dochází k přijetí standardu SQL92, o kterém se již v době vzniku vědělo, že se nejedná o konečnou podobu standardu SQL. Proto nabízí dvě úrovně pro překlenutí určitého období. Jedná se o tzv. vstupní úroveň (Entry SQL) a tzv. prostřední úroveň (Intermediate SQL). Zatímco v případě prvně jmenované se jedná jen o drobné kosmetické úpravy oproti předchozím standardům, Intermediate SQL již obsahuje celou řadu nových prvků. Ty se objevují již několik let v mnoha SŘBD, bohužel však často s mírně odlišnou syntaxí (a vzhledem k někdy nejasné implementaci i sémantikou). Další nevýhodou (z tehdejšího i dnešního pohledu) byla nepřítomnost triggerů, přestože se v mnoha systémech objevují od roku 1989. Již několik let se pracuje na další podobě standardu (označovaném dosud jako SQL3), který by měl nabídnout například možnost psát uložené procedury (již dnes jsou běžně používány, ostatně stejně jako celá další řada nenormalizovaných konstruktů). Přijetí návrhu o více než tisící stranách se ale nepředpokládá dříve než příští rok. Proces standardizace je sice prospěšný, nese však s sebou i jednu hlavní nevýhodu - zpětnou kompatibilitu (obdobně jako v případě mikroprocesorů či operačních systémů pro osobní počítače). Pozor také na tvrzení dodavatelů databázových systémů o tom, jakou verzi SQL podporují. Nebojte se zjistit si co nejpřesnější informace, zejména pokud se jedná o prvky obsažené v poslední platné normě. Můžete tak předejít některým pozdějším nemilým překvapením.

Co bude příště? Řekneme si, kde je v současnosti jazyk SQL používán a začneme se seznamovat s "příkazem příkazů". Určitě víte, se kterým. Máte pravdu, opravdu půjde o příkaz SELECT.

Diskuze (1) Další článek: Oprava pro kuriózní chybu v Internet Exploreru je na světě

Témata článku: Software, Programování, První pohled, Možná varianta, Trigger, První případ, Uložená data, Celý rok, Předchozí standard, SQL


Určitě si přečtěte

Cableporn: Podívejte se na úžasná díla umělců z podnikových serveroven

Cableporn: Podívejte se na úžasná díla umělců z podnikových serveroven

** Uspořádání kabelů můžete vnímat i jako podivný druh umění ** To nejkrásnější se skrývá v datacentrech a serverovnách ** Podívejte se na skutečné „cableporn“ z optiky i kroucené dvojlinky

Vojtěch Malý | 52

Vojtěch Malý
DatacentraServery
Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

Archivovat data do cloudu, na HDD, SSD, DVD, nebo Blu-ray? Co je nejvýhodnější?

** Kam doma natrvalo uložit data? Vyplatí se ještě optická média? ** Jaké kapacity disků a médií má smysl koupit? ** Cenovou výhodnost si ukážeme na příkladech s 2TB úložištěm

Lukáš Václavík | 118

Lukáš Václavík
ZálohováníÚložištěPevné disky
AMD uvádí grafické karty Radeon RX 6800, 6800 XT a 6900 XT. Útočí přímo na modely od Nvidie

AMD uvádí grafické karty Radeon RX 6800, 6800 XT a 6900 XT. Útočí přímo na modely od Nvidie

** AMD představilo tři nové grafické karty ** Všechny s architekturou RDNA2, kterou používají i PS5 a Xbox Series ** Karty útočí přímo na GeForce RTX 3000

Karel Javůrek | 78

Karel Javůrek
Radeon RX 6000Grafické kartyAMD
Vodafonu se zhroutila kabelovka. Síť bývalého UPC má výpadky
Lukáš Václavík
VodafoneUPC
Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

Dostali jste nový počítač? Tohle s ním udělejte, než ho začnete používat

** Každý nový počítač si zaslouží počáteční péči ** Odinstalujte bloatware a nezapomeňte na vhodné nastavení ** Poradíme, jak se o počítač s Windows 10 postarat

David Polesný, Stanislav Janů | 71

David PolesnýStanislav Janů
PočítačeNotebooky
Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

** Chcete se teď hned naučit programovat čipy? ** Nechcete nic instalovat a číst zdlouhavé manuály? ** Naprogramujeme si Micro:bit, který zahraje Tichou noc

Jakub Čížek | 33

Jakub Čížek
Pojďme programovat elektronikuProgramování pro děti
Elon Musk podpořil Signal jako náhradu WhatsAppu. Aplikaci okamžitě zavalili uživatelé
Markéta Mikešová
WhatsAppElon MuskFacebook

Aktuální číslo časopisu Computer

Jak prodloužit výdrž notebooku

Velké testy: gamepady a inkoustové tiskárny

Důkladný test Sony Playstation 5