Smyslem databáze je umožnit rychlé třídění a nacházení informací. V době, kdy se zrodily první mainframy, nebylo často úkolem počítačů třídit a vyhledávat informace, ale spíše provádět různě náročné výpočty. V padesátých letech tak „databázové“ funkce plnily ve velké míře ještě děrnoštítkové elektromechanické systémy. Byla ale jen otázka času, kdy i tuto úlohu převezmou počítače.
Poznámka: toto není první článek věnovaný historii databází na Rootu. Již v roce 2001 vyšel výtečný článek Karla Žáka o historii relačních databází, který se dotýká i jejich kořenů a zmiňuje Charlese Bachmana. Tentokrát se věnujeme spíše příběhům lidí, kteří za zrodem databází stáli a (snad) méně známým souvislostem.
Praotec databází
Charles William Bachman III. se narodil v městečku Manhattan, které není součástí New Yorku, ale nachází se v Kansasu. Jeho otec byl trenérem vysokoškolského týmu amerického fotbalu a Charles tak strávil dětství doslova napříč spojenými státy tak, jak se jeho otec stěhoval z jedné vysoké školy na druhou – nejprve do Gainesville na Floridě a posléze na opačný konec země do East Lansing v Michiganu. Oba Bachmanovi rodiče působili ve vysokoškolské sféře, i když jak sám zdůrazňoval, akademická sféra a univerzitní sportovní týmy nejsou tak úplně totéž.
Protože bylo jasné, že střední školu dokončí ještě před koncem války, rozhodl se nastoupit na vysokou školu několik měsíců před dokončením středoškolského studia (měl už dost kreditů pro úspěšné „odmaturování“), aby před nástupem do armády měl alespoň jeden semestr vysoké školy a získal tak zajímavější umístění blízké jeho vášni – konstruktérství, kterému se věnoval od dětství.
Jako kluk jsem se zajímal o různé věci, ale když mi bylo jedenáct, postavili jsme s tátou závodní auto pro Soapbox Derby (legendární americký závod minikár – tedy autíček bez vlastního pohonu). Po řadě vyřazovacích závodů jsem vyhrál finále státu Michigan a měl sem se zúčastnit celostátního finále v Akronu, Ohio. Během letu do Akronu se mi ale udělalo děsně špatně. Aerolinie Eastern, které závod sponzorovaly, se mne snažily dostat zpět do formy – zavolal mi sám ředitel Eddie Rickenbacker, letecké eso první světové války, aby se zeptal jak se mám. Ten telefonát byla vlastně ta nejfantastičtější část celého závodění a nadšení pro stavbu různých strojů už mi pak zůstalo.
Z rozhovoru Ch. W. Bachmana s Thomasem Haighem, Insititut Chalese Babbage, 2004
Bachman tak získal v roce 1943 umístění do přípravné důstojnické školy OCS v Austrálii a k protiletadlové obraně na pacifickém bojišti během tažení na Nové Guinei a Filipínách. Zde se seznámil s (nepříliš efektivními) elektromechanickými počítači, určenými pro řízení střelby 90 mm protiletadlových děl. Byla to zkušenost, na kterou později vzpomínal jako na zásadní pro svou práci na vývoji řešení pro řízení výroby. Po propuštění z armády v roce 1946 se proto rozhodl studovat strojírenství na Michiganské univerzitě a posléze na univerzitě Pennsylvánské, kde získal v roce 1950 magisterský titul (posléze studoval také MBA, které ale nedokončil).
Jak Bachman vzpomíná v rozhovoru, který s ním v roce 2011 vedli Andrew Russell z IEEE Computer Society History Committee, strávil nejprve po deseti letech u třech významných koncernů – nejprve v Dow Chemical, to bylo od roku 1950 do roku 1960 a pak deset let u General Electric, tedy přibližně od roku 1960 do 1970 a nakonec deset let do roku 1980 u Honeywell. V roce 1983 nakonec zakládá vlastní Bachman Information systems, kde působí až do odchodu do důchodu ve druhé polovině devadesátých let. Ale to bychom předbíhali. V roce 1957 se v Dow Chemicals stal prvním manažerem odpovědným za strojové zpracování dat.
Během oněch deseti let práce pro Dow Chemical jsem nejprve pracoval jako strojař a konstruktér, následně přešel do oblasti financí a výroby a nakonec jsem byl požádán, abych se stal vedoucím nové skupiny nazvané „Central Data Processing“. Ta byla na úrovni vedení korporace a stala se základem pro první pokus zprovoznit v Dow velký počítač pro řízení provozu – a já dostal za úkol ji sestavit a řídit. Postupně jsem se dobře obeznámil s datovou stránkou chodu korporace. Jednou ze zjevných věcí byla rostoucí provázanost mezi počítači a komunikací.
V Dow byl dálnopisný komunikační systém propojující jednotlivé továrny, administrativní pracoviště a obchodní oddělení. Dálnopisy generovaly výstup v podobě papírové pásky nebo role popsaného papíru – každý kus pásky či papíru byl novou transakcí, tedy objednávkou, žádostí o schválení přesčasů nebo něčím podobným. A na každou zprávu bylo třeba odpovědět. V polovině padesátých let byl sice podnik vybavený dálnopisnou komunikací, o správné směrování a doručování zpráv nebo doručování odpovědí se nestaral počítač, ale operátoři v dálnopisné místnosti v centrále v michiganském Midlandu. Když do dálnopisné místnosti přišla nová zpráva, operátor si nejprve přečetl hlavičku, a když byla zpráva na pásce vytištěná celá, operátor ji odtrhl a přenesl k jinému dálnopisu (podle adresáta uvedeného v hlavičce) a odeslal mu ji. A protože ne všechna spojení vedla do dálnopisné centrály, museli někdy operátoři v dalších pobočkách zprávy předávat dále. Věděl jsem, že ten systém s odtrhávanými zprávami lze zlepšit a zvládat tak věci rychleji, poskytovat lepší služby zákazníkům. Rychleji zpracovávat objednávky, dokázat odpovědět do hodiny. To byl můj první vstup do světa elektronických komunikací – použít počítače k automatizaci věcí, které lidé dělali neefektivně a často s chybami. Šlo o to definovat procesy tak, aby pro jejich automatizaci mohly být využity počítače, zvýšit efektivitu, výkonnost a zlepšit služby pro zákazníky.
Z rozhovoru Ch. W. Bachmana s A. L. Russelem, IEEE CSHC, 2011
Bachman se proto stal členem pracovní skupiny SHARE, která se v roce 1955 původně zrodila kolem rodiny mainframů IBM 701 a sloužila pro výměnu zkušeností o programovacích jazycích, operačních systémech a časem i prvních databázích. Skupina SHARE dokonce v roce 1959 vytvořila vlastní operační systém SOS pro IBM 709/7090, který byl jedním z prvních příkladů a případů komunitně vyvíjeného software, respektive open-source či GNU.
Bachman nicméně v SHARE pracoval od roku 1957 na jiném projektu – balíčku 9PAC (plným názvem 709 PACkage, později 90PAC – 7090 PACkage), který sloužil pro sestavování výstupů z dat uložených v mainframech (reportů) a vycházel ze systému pro údržbu souborů a generátoru reportů vyvinutého krátce před tím v GE pro mainframy IBM 702. Bachman nakonec 9PAC v Dow Chemicals nevyužil, protože společnost objednávku mainframe IBM 709 zrušila, své zkušenosti ale o něco později zúročil po přechodu k General Electric. 9PAC tak vlastně byl zárodkem budoucího projektu navigačních databází – a proto má v našem příběhu své místo.
Jak se ptát počítače
Vše začalo setkáním Bachmana s Harry Tellierem, vedoucím zpracování dat v továrně na zpracování plutonia Hanford Atomic Products Operation ve Washingtonu, kterou spravovala General Electric. Tellier zde řídil vývoj systému Handford 702 FMRGS (File Maintenance and Report Generator Systém), nebo zkráceně Handford 702 Report Generator (H702RG).
„V podstatě se jednalo o master file systém pro magnetické pásky. Pokaždé, když byl na pásce aktualizován nějaký soubor, byl přepsán i master soubor z jedné sady pásek na další a při tom byly aktualizovány související záznamy, zatímco ostatní byly překopírovány beze změn. Celý proces aktualizací se pravidelně, týdně, měsíčně, ale také třebas několikrát denně, opakoval. Soubor přitom mohl být na jediném kotouči, nebo být „rozprostřen“ na několika magnetických páskách. A pokaždé, když se s ním pracovalo, bylo z něj možné také dělat výstupy. Fungovalo to tak, že jste vyplnili papírový formulář, sloupec po sloupci, podle toho, jaké informace jste chtěli vytáhnout. Například zda je to nejnižší řádka s „detaily“ na nejnižší úrovni v daném souboru, nebo naopak něco z „hlavičky“ – například zajímá mne konkrétní zákazník a podrobnosti o tom, co jsem mu prodal. A úplně dole pak může být například součet všech transakcí. Každý takový formulář byl návodem, jak vše převést na jeden nebo dva děrné štítky – každý sloupec na štítku odpovídal sloupci na datovém výstupu – reportu. Výstup mohl být až 120 nebo 144 sloupců široký, takže proto byly potřeba až dva děrné štítky. Následně jste tyto dotazovací štítky vzali a seřadili je – některé byly dotazy na soubory s daty o prodejích, jiné například o skladových zásobách, nebo lidech. Mohli jste najednou použít pět, deset nebo dvacet takových balíčků a použít je pro dávkový dotaz. Byl to systém pro kladení dotazů, nic víc. Jakýsi předchůdce pozdějších OLAP kostek.“
Z rozhovoru Ch. W. Bachmana s Thomasem Haighem, Insititut Chalese Babbage, 2004
Podle Bachmana byl Handfordský systém první skutečnou počítačovou alternativou pro tabelační přístroje a třídičky děrných štítků. Měl sice nedostatky v oblasti správy souborů, ale právě ty vyřešil 9PAC, který byl vlastně vylepšenou verzí H702RG kde byla otázka správy souborů vyřešena pomocí vysokoúrovňových programovacích jazyků – zejména COBOLu. To už je ale téma pro další díl.