Nejen lidstvo, ale také počítače mají svoji historii. A to historii velmi košatou a zajímavou. Se základním zaměřením našeho časopisu souvisí databázové technologie využitelné v geografických inflačních systémech, pojďme se proto podívat na historii z pohledu prostorových dat a databází. Pochopitelně nelze historii popsat komplexně na několika málo stránkách, zaměřme se proto na některá zajímavá fakta a souvislosti. A začít můžeme například na konci devatenáctého století.
Kde to začalo?
Jedno z prvních počítačových zpracování bylo shodou okolností také zpracováním databázovým, dokonce s jistými základními prvky geoinformatiky. Nešlo přitom o nic menšího než o sčítání lidu ve Spojených státech.
Zásadním problémem statistických zpracování z mnoha uložených dat vždy byla, je a bude především rychlost. Do příchodu počítačů byla taková zpracování opravdovým oříškem, například ruční vyhodnocení sčítání lidu z roku 1880 trvalo v USA předlouhých sedm let. Již tehdy bylo úředníkům jasné, že při dalším sčítání plánovaném na rok 1890 musí být výsledky k dispozici mnohem rychleji. Jenže jak na to?
Se zajímavou myšlenkou přišel německý přistěhovalec Herman Hollerith, který u amerického statistického úřadu vyhrává konkurz se svým rok starým návrhem na využití děrnoštítkového stroje. Výsledky byly při nárůstu nákladů pouhých 100 procent impozantní, dobu sedmi let se podařilo zkrátit na fantastických šest týdnů.
Na první pohled by se možná mohlo zdát, že nešlo o databáze. Opak je ale pravdou, genialita spočívala v myšlence využít již existující děrné štítky nikoli jako prostředku pro předpis programu, ale jako nosičů dat. Tedy dat obsahujících informace, které statistický úřad zajímaly. V děrném štítku o velikosti tehdy platné jednodolarové bankovky představovala jedna vyražená dírka číslici, dvě pak jedno písmeno. Z databázového pohledu přitom nebyla důležitá ani tak samotná rychlost zpracování, jako výhody plynoucí z analytických možností a z dlouhodobého uložení dat. Například pro pozdější detailní zpracování či na tehdejší dobu snadnou revizi výsledků, včetně zohlednění územních specifik.
Buďtež prostorová data!
Více se výpočetní technika pro zpracování prostorových dat začíná využívat od začátku šedesátých let minulého století, opět především ve Spojených státech. Typicky šlo o počítačovou podporu řešení úloh souvisejících s dopravou, nicméně tehdy ještě nelze přímo hovořit o využití databázových technologií. Připomeňme si, že v této době ještě neexistoval například ani relační datový model (1969, resp. 1970), ani jazyk SQL (1974, tehdy Sequel). Léta do přelomu 60. a 70. let 20. století jsou z pohledu prostorových databází považována za jakési prehistorické období, které ovšem položilo základy dalšímu intenzívnímu vývoji.
Na novodobou historii prostorových databází je možné pohlížet mnoha různými způsoby, nejčastěji je uvažováno dělení do tří, případně čtyř generací. Pro první generaci pokrývající prakticky celá 70. léta je charakteristické uložení rastrových dat a souvisejících atributů do souborů. Uložení prostorových informací bylo velmi jednoduché a umožňovalo většinu tehdy potřebných operací – například vykreslování map na plotterech.
Architektura uložení ovšem nebyla jednotná, využívalo se jak společné uložení dat o poloze a o vlastnostech prostorových objektů do jednoho souboru, tak i oddělené uložení dat o poloze a vlastnostech do samostatných souborů. Pro jeden prostorový objekt pak obvykle existoval samostatný prostý soubor obsahující všechna popisná data a propojení na informace o poloze probíhalo pomocí jednoznačných identifikátorů. Nejčastěji bylo možné se s takto ukládanými daty setkat v ozbrojených složkách.
Toto období bylo pro další vývoj velmi důležité – došlo k upřesnění řady základních postupů a cílů, které by geografickým informačním systémům měla podpora ze strany prostorových databází přinést. Mezi další přínosy první generace patřilo také zásadní zkrácení doby potřebné pro aktualizace prostorových dat a nasměrování geoinformatiky ke zpracování digitálních dat.
Druhá generace
Druhá generace spadá do 80. let a bývá někdy označována jako období vzniku regulérních prostorových databázových platforem. Tato generace souvisí především s maximalizací snahy skloubit základní úlohy GIS systémů s tradiční funkčností nabízenou tehdy existujícími databázovými platformami. A nejčastěji s těmi platformami, které byly založené na relačním datovém modelu.
Popisná data s vlastnostmi jednotlivých prostorových objektů byla ukládána do databáze a s informacemi o poloze propojena pomocí jednoznačných identifikátorů. Prostorové objekty mohly být i nadále uloženy v oddělených souborech nebo v jedné databázové struktuře spolu s neprostorovými atributy objektů.
Na rozdíl od první generace, kdy se pro uložení dat využívalo souborů, byla již data ukládána v moderních databázových platformách a vývojáři GIS aplikací tak mohli využívat takřka všech výhod známých kolegům-vývojářům klasických databázových aplikací. Dnes se nám to možná zdá jako nepodstatná změna, nicméně na tehdejší dobu šlo o zcela zásadní zlom. A to i přesto, že stále ještě nebyly k dispozici nativní prostorové datové typy, ale využívalo se různých mapování, například do BLOBů.
Během druhé generace se díky rozvoji využití databázové podpory stále více diskutuje problematika vysoké dostupnosti, standardizace a jednotné podpory metadat. Částečně je tak kopírován obecný vývoj databázových technologií. V tomto období se také rozvíjí snaha o nalezení ideálního formátu pro uložení prostorových dat, který by dokázal skloubit výhody vektorového a rastrového formátu.
A co generace třetí?
Třetí generace je časově obtížně definovatelná – někdy se hovoří o období již od poloviny 80. let, někdy až od let devadesátých. Nicméně vždy jde o období přibližně do poloviny první dekády tohoto tisíciletí. Pro třetí generaci je typické zapracování kompletní podpory prostorových dat do moderních relačních databázových platforem, k dispozici jsou prostorové datové typy a funkčnost využitelná při vývoji aplikací pracujících s prostorovými informacemi. Prosazují se také uživatelsky definované typy. Druhým, takřka samostatným směrem byla maximální snaha o využití objektových databázových technologií, kde jeden prostorový objekt odpovídal obvykle jedné instanci definovaného objektu. Včetně prostorových a neprostorových dat a příslušných metod zajišťujících potřebnou „prostorovou" funkčnost.
Ve třetí generaci tak byla podpora zpracování prostorových dat definitivně přenesena na úroveň databázové platformy, byť jednotliví výrobci používali odlišných přístupů. Databázové platformy od této doby nabízí širokou prostorovou funkčnost – od uložení a správy dat přes indexování a dotazování až po analytické zpracování včetně dolování dat. Podobně jako v klasických databázích se i zde diskutuje škálování výkonu, řízení přístupu a vysoká bezpečnost.
Mimochodem, začátek devadesátých let je díky shodě okolností obdobím prudkého rozvoje prostorových databází i v našich podmínkách – mnohdy jsme tak v České republice de facto přeskočili předchozí generace. Možná i proto chápeme podporu prostorových dat v databázových platformách jako něco zcela samozřejmého a přirozeného.
Existuje čtvrtá generace?
Období od poloviny minulého desetiletí bývá někdy označováno jako generace čtvrtá. Na rozdíl od předchozích tří generací nejde v tomto období o zcela zásadní změny ve způsobech uložení dat, ale především o změny v oblasti využití prostorových dat a souvisejících aplikací. Dnes například představují mapové podklady nedílnou součást mnoha běžně využívaných služeb – od silničních navigací přes hledání spojů až po aplikace podporující geocaching. Vše je přitom dostupné na mnoha různých platformách, od klasických desktopů přes webové služby až po mobilní zařízení včetně dnes tak populárních tabletů.
Za zlomové je v tomto období považováno zpřístupnění 3D pohledů na terén, satelitních snímků a v neposlední řadě také využívání časové složky. Zatímco dříve se prostorová data orientovala na problematiku kde a co, dnes jde stále častěji o trojkombinaci kde, co a kdy. Výhodou časové složky je například podpora dynamické animace změn v terénu, při spojení s analytickými vlastnostmi i možnost predikce dalšího vývoje. Podpora prostorových dat je navíc součástí celé řady klientských aplikací, u kterých by to dříve bylo zcela nemyslitelné – za všechny lze uvést kancelářský balík Microsoft Office.
Jazyk a zase jazyk
Podobně jako v lidské historii se i v historii databázových technologií občas mění pojmosloví a mnohé definice jsou upravovány dle aktuálních poznatků. Svým vývojem si prošel i samotný pojem prostorových databází, který začínal na pouhé podpoře uložení prostorových informací a aktuálně souvisí s mnoha pokročilými databázovými technologiemi. V nedaleké budoucnosti bude stále větší důraz kladen mj. na zohlednění významu jednotlivých úhlů pohledu na zpracovávaná data (například kdo určí, jaké kritérium pro naplánování trasy je opravdu nejdůležitější) a podporu řešení nejednoznačných situací. Stále více vývojářů si navíc uvědomuje, že prostorová data již nejsou využitelná pouze pro GIS aplikace, ale například také pro CAD či CAM systémy. A že jednotlivé typy aplikací stále více plní roli „pouhého" frontendu.
Aby bylo možné s prostorovými databázemi rozumně pracovat, je nutné mít k dispozici patřičný dotazovací jazyk. Zdánlivě jednoduchá záležitost, vždyť je přece od roku 1974 k dispozici neprocedurální jazyk SQL – stačilo by jej rozšířit o podporu prostorových dat. Tak se tomu ostatně stalo, například se standardem SQL:1999, a to díky podpoře abstraktních datových typů. Ovšem jazyk SQL bývá i přes své standardizace mnohými dodavateli implementován mírně odlišně, proto roku 1994 definoval M. J. Egenhofer 11 požadavků na prostorový dotazovací jazyk. Tyto požadavky mj. pokryly právě podporu prostorových abstraktních datových typů, práci s kontexty, variabilní zobrazování prostorových objektů, kontrolní mechanismy k ověření obsahu či volbu měřítka a vymezení oblasti pro následující dotazy.
Firma sem, firma tam?
A jak tomu bylo u jednotlivých firem – hlavních hráčů na poli s databázovými produkty? Každý výrobce k problematice prostorových dat přistupoval a přistupuje mírně odlišně. Například z pohledu třetí generace přináší roku 1995 společnost Oracle v platformě Oracle Database verze 7.1.6 základní podporu prostorových dat v podobě práce s body. Plnohodnotné prostorové rozšíření na bázi relační technologie s názvem Spatial Data Option přichází o dva roky později ve verzi 7.3.3, v rámci které jsou již k dispozici například prostorové operátory a tzv. čtyřstromy. Od té doby prakticky s každou další verzí je rozšířena i podpora prostorových dat, včetně kombinace objektového a relačního přístupu.
A co další platformy a dodavatelé? Objektově relační přístup zvolila také společnost IBM, která svoji platformu DB2 rozšířila o IBM DB2 Spatial Extender ve verzi 7, a to za úzké spolupráce se společností ESRI, nesporným lídrem v oboru geografických informačních systémů. A například Microsoft SQL Server v podobě CLR rozšíření podporuje prostorová data od verze 2008.
Většina předních výrobců splňuje některé specifikace konsorcia Open Geospatial Consortium, například MySQL od verze 5.5 podporuje podmnožinu Simple Features – SQL. V oblasti produktů dostupných pod svobodnými licencemi je velmi úspěšné prostorové rozšíření platformy PostgreSQL – PostGIS. První stabilní verze této nadstavby je datována do roku 2005, základní kompatibilita s OGC standardy byla zapracována o rok později.
Jak jsme již uvedli, na zpracování kompletní historie prostorových databází pár stránek nestačí. Vlastně by na to nestačilo ani celé dnešní číslo, možná by byla málo i jedna celá knižní publikace. Námi uvedené členění a události jsou jakýmsi stručným souhrnem toho nejdůležitějšího, proto se některým z dalších detailů a událostem budeme věnovat někdy příště.