Historie SQL

1. 4. 2008

Sdílet

Relační databáze je vlastně databázový systém, který je založen na relačním modelu dat a relační algebře. ...


Relační databáze je vlastně databázový systém, který je založen na relačním modelu dat a relační algebře. Data jsou uspořádána do tabulek (relací), nad nimiž definujeme přípustné operace. Nejčastěji používaným jazykem v oblasti webové tvorby pro účely ovládání databáze je v současné době právě strukturovaný dotazovací jazyk SQL nad relačním databázovým serverem MySQL.



Již v 70. letech 20. století probíhal ve firmě IBM výzkum relačních databází. V rámci tohoto výzkumu bylo nutné vytvořit sadu příkazů pro ovládání databází, a tak vzniknul jazyk SEQUEL (Structured English Query Language). Slovo „English“ bylo významově velmi svázáno, neboť hlavním cílem bylo vytvořit dotazovací jazyk co nejbližší přirozenému jazyku, za nějž autoři pochopitelně považovali angličtinu. Postupem času vznikaly různé databázové platformy, od Oracle Database firmy Relational Software přes SQL/DS a BD2 firmy IBM a několik dalších od různých firem, jmenujme například Progres a Informix. Pro všechny však bylo společné používání jazyka SEQUEL, jehož název byl zkrácen na pouhá tři písmena - SQL. Dnes používané relační databáze používají standardy SQL, jejichž základní dotazy se shodují, avšak každá má zároveň i svá specifika.
Příkazy SQL

Příkazy SQL je možné rozdělit na tři pevně dané typy, plus jeden univerzální, kam patří všechny ostatní příkazy. Jedná se o příkazy pro definici datové struktury DDL – Data Definition Language, příkazy pro práci s daty DML – Data Manipulation Language, příkazy pro ovládání dat/transakcí DCL – Data Control Language/ TCC – Transaction Control Commands, a o poslední nepojmenovanou skupinu, do níž řadíme všechny ostatní příkazy.
Pomocí příkazů DDL vytváříme datovou strukturu databáze obsahující tabulky, indexy, pohledy a další objekty, jimiž ovlivňujeme strukturu databáze. Základní příkazy jsou:
Create – vytváření objektů,
Alter – změny již vytvořených objektů,
Drop – odstraňování vytvořených objektů.
Příkazy DML jsou určeny pro zjišťování obsahu databáze, pro vkládání dat, jejich následné úpravy či vymazání. Základními příkazy v této kategorii jsou:
Insert – vkládá do databáze nová data,
Select – vybírá data z databáze (je možné určovat parametry dat pomocí výběrových podmínek),
Update – mění data uložená v databázi, opět pomocí výběrových podmínek,
Delete – odstraňuje data uložená v databázi.
Speciálními příkazy pak jsou:
Explain plan for – zobrazuje postup zpracování SQL příkazu. Pomáhá uživateli optimalizovat příkazy tak, aby byly rychlejší.
Show – příkaz umožňující zobrazit databáze, tabulky nebo jejich definice. DCL příkazy slouží k nastavení přístupových práv pro uživatele databáze a řízení transakcí. Databázová transakce je skupina příkazů, které převedou databází z jednoho konzistentního stavu do druhého.
Základními příkazy jsou:
Grant – přiděluje oprávnění danému uživateli k určitým objektům,
Revoke – odstraňuje oprávnění uživatele k určitým objektům,
Begin – zahajuje transakci,
Commit – potvrzení transakce,
Rollback – zrušení transakce – návrat k původnímu stavu.
Do ostatních příkazů patří především příkazy pro správu databáze jako takové, například pro přidávání uživatelů, nastavení kódování znaků, způsob řazení, formáty dat a času. Nesmí chybět ani různé příkazy pro ověření funkčnosti databáze, například jak dlouho je již v provozu, kolik obsloužila dotazů a podobně.

MySQL

MySQL je multiplatformní relační databázový systém (server), který je vytvářen švédskou firmou MySQL AB, přičemž tato společnost vytváří hned dvě verze MySQL – jednu zcela zdarma s licencí GPL a komerční verzi, již bychom označili jako edici „Deluxe“. Základem pro veškerou komunikaci v rámci databáze je samozřejmě SQL. MySQL je díky své multiplatformnosti, nezpochybnitelnému výkonu a především nulové ceně nasazován jako základní prvek LAMP serveru – Linux/Apache/MySQL/PHP – který byl představen v PC Worldu číslo 2/2008 ve formě WAMP serveru – tedy na operačním systému Windows. MySQL je od svého počátku optimalizováno především na vysoký výkon, někdy za to však zaplatíte daň v podobě nemalých zjednodušení. Tyto vlastnosti jsou postupem času doplňovány, především kvůli rostoucím požadavkům tvůrců webových aplikací. Od různých verzí tak můžeme v MySQL nově nalézt podporu:

q cizích klíčů a transakcí (od verze 3.23 jsou podporovány v tabulkách typu InnoDB),
q různých znakových sad a časových pásem v datech a poddotazy (od verze 4.1),
q uložené procedury, triggery, pohledy (od verze 5.0).

MySQL jako úložiště dat

Pro ukládání dat v MySQL je určeno několik typů databázových tabulek (storage engine), jež se liší svými možnostmi, použitím a způsobem ukládání dat do souborů:

q MyISAM – nejpoužívanější, bez podpory transakcí,
q InnoDB – s podporou transakcí,
q BerkleyDB – BDB,
q MEMORY – práce s daty v paměti,
q NDB Cluster – úložiště pro clusterované databáze (od verze 5.0),
q ARCHIVE – komprimované tabulky, bez podpory indexů,
q CSV – ukládání dat v prostých textových souborech.
MyISAM je nejpoužívanější formát úložiště dat (storage engine) v MySQL, přičemž jde o následovníka formátu ISAM (Indexed Sequential Access Method), což je metoda ukládání dat s možností rychlého vyhledávání pomocí speciálních pomocných struktur, tzv. indexů. Databázová tabulka typu MyISAM se skládá ze tří souborů:
q .frm – definice tabulky,
q .MYD – datový soubor,
q .MYI – indexový soubor.

InnoDB je formát úložiště dat s podporou transakcí a druhý nejpoužívanější systém pro ukládání dat v MySQL. Tabulky typu InnoDB oproti běžným tabulkám typu MyISAM podporují rozšířená zamykání záznamů a v neposlední řadě také transakční zpracování požadavků. To je předurčuje k využití v aplikacích, jež závisejí na naprosto spolehlivé práci s daty, jako jsou například bankovní systémy.

Správa MySQL

CMD: Databázi je možné ovládat pomocí příkazového řádku operačního systému Windows či konzoly v unixových systémech, není to však právě komfortní a uživatelsky příjemné řešení. S přihlédnutím k faktu, že databáze MySQL se využívá především pro tvorbu webových aplikací, vzniklo webové rozhraní phpMyAdmin.
phpMyAdmin: Pro správu dat v MySQL pomocí webového rozhraní se nejčastěji používá phpMyAdmin. Ten je kompletně napsán v PHP a je vyvíjen již od roku 1998, letos tak oslaví již závratných deset let od prvního vydání. V současné době se na domovské stránce http://www.phpmyadmin.net/ nachází již ve verzi 2.11.4, jež existuje minimálně v 52 jazycích, češtinu nevyjímaje. Pomocí phpMyAdmin lze také provádět veškeré úpravy databází MySQL, od změn práv uživatelů přes vytváření, mazání a kopírování dat, až po zjišťování stavu databáze.