Náš svět je světem databází – moderní výroba, obchod, vzdělávání, státní správa, oběh peněz – nic z toho by bez nich již nedokázalo fungovat. Jak se zrodily databáze pracující s jazkem SQL.
Náš svět je světem databází – moderní výroba, obchod, vzdělávání, státní správa, oběh peněz – nic z toho by bez nich již nedokázalo fungovat. Jak se zrodily databáze pracující s jazkem SQL.
Za zrod obojího vděčíme Tedu Coddovi, matematikovi a počítačovému vědci, který se rozhodl nespokojit s tím, jak fungovaly hierarchické databázové systémy vyvinuté v 60. letech v IBM. Jestliže Charles Bachman byl praotcem databází, Tedu Coddovi patří titul otce jejich současné podoby.
Nespokojenost a neochota smířit se s věcmi „tak, jak jsou“ do značné míry definuje celý Coddův život. Edgar Frank Codd se narodil v létě roku 1923 na ostrůvku Portland u pobřeží půvabného jihoanglického hrabství Dorset. Byl nejmladším ze sedmi dětí, jeho otec měl malou firmu na zpracování kůže a matka učila na místní základní škole. Jako nadaný student, zejména co se matematiky týče, získal poměrně snadno stipendium na Oxfordu, kde se ale nejprve zaměřil vedle matematiky na chemii. Během druhé světové války vstoupil jako dobrovolník do britského královského letectva a stal se pilotem. Ani po návratu do Oxfodu se ale nezaměřil na počítače – jeho oborem zůstávala matematika, kterou zde dokončil a poté se vydal za svou snoubenkou do USA. Poznal ji během válečných let, kdy jej RAF vyslala za Atlantik v rámci jeho pilotního výcviku, a tak se po dostudování prakticky ihned odstěhoval za oceán, kde mohl nejen létat, ale jako matematik také získat zajímavější místo.
To se mu podařilo už v roce 1949, kdy uspěl v matematické soutěži vyhlášené IBM a záhy se tak stal programátorem elektromechanických počítačů IBM SSEC a děrnoštítkových kalkulátorů. Na počátku 50. let byl součástí týmu pracujícího na vývoji prvního vědeckého počítače IBM, modelu 701. S počátkem padesátých let se ale pojí i počátek McCarthyismu – prostředí, které Codd nemohl vystát, a tak se v roce 1953 rozhodl odejít i s rodinou do Kanady, kde pracoval na vývoji systémů pro řízené střely. Už v roce 1957 se ale vrací do IBM a pracuje v týmu navrhujícím superpočítač STRETCH, zejména v oblasti multiprogramování, tedy schopnosti provozovat několik programů současně.
Na počátku 60. let udělilo Coddovi IBM stipendium aby se mohl věnovat studiu komunikačních věd na univerzitě v Michiganu. Svou doktorskou obhajobu zpracoval na téma celulárních automatů a samoreplikujících se systémů. Navázal v této oblasti na práce Von Neumanna a značně jeho koncept zjednodušil (z 29 fází na pouhých 8). Jeho práce Cellular Automata byla publikována v roce 1968 – Coddovi bylo 45 let a pro normálního smrtelníka by mohlo jít o vrchol skvělé kariéry – Ted ale vlastně ještě ani nezačal. Sebereplikující se systémy, buněčné automaty či genetické programování byla sice „cool“ akademická témata, nicméně na sklonku 60. let už začínalo být jasné, že příslib brzkého zrodu počítačové inteligence je ještě poměrně daleko. A tak se Codd rozhodl zaměřit na praktičtější oblast a ještě téhož roku přešel do výzkumné laboratoře IBM v San Jose, kde začal se věnovat problematice databází.
Z pohledu jeho kolegů v IBM se mohlo zdát, že Codd hledá klidné místo. Právě v roce 1968 totiž „modří“ uvedli jako novinku na trh svou obří hierarchickou databázi IMS (Information Management System) – pochopitelně pro svůj tehdy veleúspěšný Systém/360. Ta se zrodila jako součást měsíčního programu Apollo – společně s IBM na ní pracovali lidé z Rockwellu a Caterpillaru, protože potřebovali softwarový nástroj pro obrovský kusovník raket Saturn V. IMS nebyla (i s ohledem na svůj původ a určení) databází navigační a neodpovídala specifikacím CODASYLu, využívala ale některé prvky IDS Charlese Bachmana. Tak či onak, IBM považovalo IMS za špičkový produkt, který by jistě bylo možné postupně vylepšovat, rozhodně ale není třeba provádět zásadní revizi jeho podstaty. Codd to viděl jinak. Prakticky všechny databáze, které byly na konci 60. let na trhu, byly podle něj neohrabané, neuspořádané a především uživatelsky nepřátelské, spravovatelné jen zkušenými specialisty – bez ohledu na obrovský posun vpřed, který přinesla standardizace CODASYLem. V roce 1969 zpracoval Codd interní zprávu, v níž se objevila věta, jež se stala mottem zrodu nové generace databází:
Budoucí uživatelé velkých datových bank musí být ochráněni před povinnosti vědět, jak jsou data uspořádána ve stroji samotném.
O rok později shrnul své poznatky a vlastní teorii o uspořádání dat do studie „Relační datový model pro velké sdílené datové banky“. Popis relačního datového modelu jsme si vypůjčili z českého překladu hesla na Wikipedii:
Dle relační teorie lze pomocí základních operací (sjednocení, kartézský součin, rozdíl, selekce, projekce a spojení) uskutečnit veškeré operace s daty a ostatní operace jsou již jen kombinacemi těchto šesti. Zavádí tedy použití relačního kalkulu a algebry. Databáze mají být nezávislé na fyzickém uložení dat i na použitém jazyce.
Základním konstruktorem relačních databází jsou relace (databázové tabulky), což jsou dvourozměrné struktury tvořené záhlavím a tělem. Jejich sloupce se nazývají atributy, řádky tabulky jsou pak záznamy. Atributy mají určen svůj konkrétní datový typ a doménu, což je množina přípustných hodnot daného atributu. Řádek je řezem přes sloupce tabulky a slouží k vlastnímu uložení dat.
Pojem „relační databáze“ souvisí s teorií množin. Každá konkrétní tabulka totiž realizuje podmnožinu kartézského součinu množin přípustných hodnot všech sloupců – relaci.
Výběr pasáží z hesla Relační databáze na Wikipedii.
Coddovy práce si začali všímat výrobci počítačů i software a po několika měsících bylo jasné, že jedinou firmou, která o myšlenku relačních databází nejeví valný zájem je paradoxně IBM – koneckonců databáze IMS byla obchodním úspěchem, tak proč opravovat něco co zjevně funguje. V IBM sice zafinancovali vývoj relační databáze Systém R v rámci skupiny projektů Future Systems, vše ale bohužel bylo zadáno skupině programátorů, nad kterou neměl Codd kontrolu. Ti proto nepoužili jím navržený jazyk Alpha, ale vyvinuli pro definování a ovládání databáze jazyk vlastní pod označením SEQUEL (Structured English Query Language), ten byl později doplněn a rozšířen jako SEQUEL2 – a protože tento název vlastnilo IBM, verze, které se začaly šířit v produktech jiných výrobců, byly nakonec označeny SQL.
Zaváhání IBM totiž dalo příležitost jiným – ať už šlo o akademický projekt Ingres, nebo o zrod databázových softwarových gigantů. Codd sám nebyl podnikatel, ale akademik, a tak se snažil jen dohlédnout na to, aby jméno relačního datového modelu nebylo zneužito. V roce 1985 proto definoval dvanáct pravidel relačních databázových systémů:
(Zdroj: databázové modely)
Edgar Frank Codd, v té době již více než šedesátiletý, už mohl jen spokojeně sledovat, jak jeho relační model přebírá v rukou gigantů jako Oracle či Sybase (a nakonec i IBM) vládu nad světem databází a vlastně i nad všemi uspořádanými informacemi – jimž vládne, přes novinky jako je NoSQL, dodnes. To už jsou ale další příběhy příchodu hackerů. Ted Codd za svůj přínos světu informačních technologií získal v roce 1981 Turingovu cenu. Zemřel v roce 2003, ve věku nedožitých 80 let.
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2019 Internet Info, s.r.o. Všechna práva vyhrazena.