Živě
o počítačích
a Internetu

Aktualizace:
28. 10. 1998 14:45

Přijďte si pro levný AutoCAD
Přijďte si pro levný AutoCAD

Hledání na Živě
Kategorie
Ekonomika
Grafika
Hardware
Internet
Jedno PC povídalo
Rozhovory
Servis
Sítě a komunikace
Software
Tipy a triky
Události
Veletrh
Windows 98
Windows NT

INECnet... pevné linky 28,8 a 33,6 kbit/s výhodně

Živě
Články za týden
Vyhledávání
Rozšířené hledání
Nejčtenější články
Soubory
Testy poskytovatelů
Ankety
Autoři
Reklama na Živě
Kontakt na redakci
Hledáme autory!
Statistika přístupů

Přidat aktivní kanál
Přidat zprávy na aktivní plochu

Computer Press
Vltava - prodej knih
Ucho - prodej CD
Travel Press
Titulní strana
Computer
Computer Design
Connect!
GEOinfo

26. 10. 1998 9:14 - Software
tisk článku
pošli článek e-mailem
Víte, co je SQL? Ne? Nevadí - dnes začínáme!

Aktuální články
Marek Kocan: 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.

 
Předplaťte si Computer ještě dnes!

 

Živě si právě čte 143 lidí


Optimalizováno pro Microsoft Internet Explorer 4.0

Copyright Computer Press, 1998 
Technické řešení copyright Altair, 1998