Svět se strašlivě změnil, ale databáze jsou pořád stejné

29. 1. 2019
Doba čtení: 6 minut

Sdílet

Jak se svět změní za dvacet let? V IT se toho stalo hodně: technologie jsou všude kolem nás, všechno se profesionalizovalo a neuvěřitelným tempem vyrostlo a data jsou všude kolem. Databáze ale zůstávají.

Root.cz v těchto dnech slaví 20. narozeniny a já jsem byl požádán o nějaké ohlédnutí. Co se změnilo za těch posledních dvacet let? Dalo by se napsat všechno, a zrovna tak by se dalo napsat skoro nic.

Technopesimista ve mně

Určitě jsem se změnil já, od nadšeného technoptimisty se sklonem ke zkoušení všeho nového (nových operačních systémů, nových jazyků), se ze mne stal spíš technopesimista, který si vystačí s 8 let starým notebookem, jedním operačním systémem, jednou databází a používá jeden z nejstarších programovacích jazyků.

Určitě se změnil svět, v něčem k lepšímu, v něčem k horšímu, a to i díky novým technologiím. To ale není nic nového. Určitě se změnilo zdejší IT. Profesionalizovalo se. Před dvaceti lety nikdo z mých tehdejších kolegů nestudoval IT. V IT mohl začít dělat kdokoliv. Stačilo nadšení. Přijímací pohovory byly krátké – „umíš programovat, berem!“

Neřešil se jazyk, prostředí, framework. Předpokládalo se, že kdo umí programovat, umí programovat ve všem. V IT byli většinou nadšenci ochotní programovat, programovat, programovat. Peníze byly fajn, možná víc než dnes nebyly tím hlavním (a když si to člověk spočítal na čas, tak se dostal na průměr). Vidím to idealisticky, byl jsem mladší.

Databáze jsou stejné, ale jsou všude

Předně, neobjevila se tu žádná přelomová klíčová technologie, která by změnila způsob psaní databázových aplikací o 180 stupňů. Určitě došlo ke změně parametrů – u RAM z megabajtů na stovky gigabajtů, u disků z gigabajtů na terabajty. Díky SSD se redukoval problém s náhodným čtením/zápisem. Nicméně dnešní databáze jsou typově, funkčně pořád databázemi 80. let.

Naprosto dramaticky se ovšem změnila dostupnost databází (informací). Dnes v jediném okamžiku na jakémkoliv civilizovaném místě planety máte přístup k téměř veškerým informacím – ať už veřejného nebo soukromého charakteru. Prakticky jakákoliv činnost se ukládá do databází (archivuje) a tento záznam je přístupný odkudkoliv, kdekoliv, kdykoliv. Je impozantní, jak se IT promítlo do našich životů. A databáze jsou všude a ve všem.

Generální partner speciálu Žijeme 20 let Linuxem

ACTIVE 24 je tradiční webhostingová společnost s více než dvacetiletou historií. Poskytuje komplexní hostingové služby pro živnostníky, malé a středně velké firmy i jednotlivce. Soustředí se na vysokou technickou úroveň služeb a kvalitní zákaznickou podporu. Pro své servery využívá primárně moderní datové centrum Tower v Praze na Žižkově.

Před dvaceti lety byla zajímavá doba

Konec devadesátých byl zajímavý v mnoha ohledech: zaprvé, skončila dvacetiletá éra souborových databází, kterou začala DBase II. Zadruhé, díky Visual Basicu a Delphi se dramaticky zjednodušil vývoj aplikací pro MS Windows (v podstatě skončil vývoj pro MS DOS, a vše nové se začalo psát pro Win). Zatřetí, i díky MySQL se zvýšila dostupnost SQL databází (Před MySQL bylo SQL do jisté míry exkluzivní luxusní drahou technologií). V té době se, pro běžného vývojáře, SQL databáze stala synonymem databáze.

Vzpomínám na žhavou diskuzi, zdali byla MySQL databází či nikoliv, a to kvůli tomu, že nesplňovala ACID (přičemž jsme pořádně netušili proč a k čemu je ACID). Kromě takových a podobných diskuzí to byla pohodová doba. Na malé disky se nevešlo příliš dat a uživatelé byli trpěliví a tolerantní. Navíc vývoj aplikací v Delphi nebo ve Visual Basicu byl primitivně jednoduchý (a pro aplikace tehdejšího rozsahu efektivní).

Na univerzitách se poněkud neproduktivně zkoumaly koncepty objektových a proudových databází. Z objektových databází částečně vycházejí NoSQL databáze. Masovým použítím ORM (Object Relation Mapping) objektové databáze nedostaly prostor a v součastnosti jsou na okraji zájmu. Velice podobné je to s proudovými databázemi (streaming databases), které se používají téměř výlučně ve výzkumu.

Bouře na obzoru

Schylovalo se ale už k několika bouřím. Masivní nástup internetu (sociálních sítí) po roce 2000 ukázal limity stávajících SQL databází i stávajících prostředí pro tvorbu webových aplikací. Zhruba po roce 2005 nastává nástup NoSQL Key Value databází, které neměly jednotný dotazovací jazyk, nezaručovaly konzistenci dat, ale docela dobře a snadno horizontálně škálovaly.

Tou dobou se hodně změnil vývoj www aplikací. Od amatérského lepení webů v PHP či ASP se přešlo k použití prvních frameworků s aktivnějším využitím JavaScriptu. Vybavuji si RoR (Ruby on Rails). Tehdy se snad poprvé začala řešit kvalita software. Tou dobou, minimálně v akademické sféře, se opustil koncept jedné univerzální databáze. Charakter databáze vychází z formátu uložených dat, a data mohu mít uložená pouze v jednom formátu. Jeden formát ale nemůže vyhovět všem možným způsobům použití dat.

Výsledkem změny paradigma jsou relativně stále nové databáze pro big data (Map/Reduce), sloupcové databáze a paměťové databáze. S těmito novými databázemi se vývojáři mohli setkat zhruba po roce 2010. SQL relační databáze kolem roku 2005 přebírají částečně některé funkce NoSQL databází – např. podporu XML, JSON dokumentů.

Cloud přinesl zlom

Další zlom je vidět cca po roce 2015, kdy se již i veřejně mluví o cloudu. Vznikly nové databáze navržené speciálně pro cloud (Snowflake…) (pokud podporují SQL, tak označené jako New SQL), případně se již existující databáze začaly provozovat jako služba (Heroku, Aurora).

Řekl bych, že trochu opadla vlna NoSQL, a někteří uživatelé se vrátili zpět k SQL transakčním databázím. Myslím si, že se docela dobře ukázalo, že NoSQL a SQL (netransakční (CAP) a transakční (ACID)) databáze mohou dost dobře žít vedle sebe a je naopak vhodné tyto systémy kombinovat. Některé NoSQL databáze se naučily SQL. V akademické sféře vidím ochladnutí zájmu o Map/Reduce systémy a větší zájem o cloud (o komplexní distribuované systémy).

Co bude za deset let

Vývoj databází, používání databází v následujích 10 letech bude určitě ovlivněn přechodem od rotačních disků k perzistentní paměti. Tím zmizí jeden z dominantních faktorů, který motivoval, určoval optimalizaci zpracování dotazů. Mnohem častěji se budeme setkávat s termínem paměťové databáze.

Také vidím velkou snahu o vyřešení problémů spojených s optimalizací (odhady) buďto s použitím metod umělé inteligence (tam jsem docela skeptik, ale nový hardware to možná změní), nebo zavedením adaptivních algoritmů zpracování dotazů (čemuž dávám osobně mnohem větší šanci).

Vyjma menších privátních (osobních) databází předpokládám přesun databází do cloudu nebo privátního cloudu. Určitě bude pokračovat nástup pro cloud speciálně navržených databází. S tím souvisí přechod na použití databází jako službu. Může to znamenat zánik databází, tak jak je známe dnes. Databáze bude nahraditelná komponenta.

Naopak nepředpokládám ústup SQL. Připravovaná verze ANSI/SQL bude pokrývat i oblast grafových databází. Přechod na cloud bude relativně pomalý proces. Probíhat bude až někdy do roku 2030. Někde bude zpomalený (čti: sabotovaný) adminy, jinde urychlený (odchody do důchodu, konec životnosti, podpory hardware, software). Databázový svět je hodně konzervativní. Důležité je nepřijít o data a nové funkce jsou vývojáři akceptovány s 5 až 10letým zpožděním.

Myslím si, že v IT dojde, musí dojít k určité konsolidaci. S každou etapou se technologie víc a víc přibližovaly člověku. Se sálovými počítači běžný člověk nepřišel do styku. PC už měl skoro každý doma nebo v kanceláři. S internetem už nemusíte do kanceláře, všechna data jsou na dosah. Konečně, s chytrými telefony sebou neustále nosíme výkonný počítač nonstop připojený k internetu.

ict ve školství 24

Nenapadá mě, kam by to dále mohlo pokračovat (smysluplně), takže čekám určitou konsolidaci, stabilizaci, možná i určitý ústup. IT si sebou táhne neskutečný historický balast, kterého je potřeba se zbavit. Práce bude dost. Uvidíme. Asi to bude zajímavá doba.

Rootu přeji hodně štěstí minimálně do dalších 20 let, další autory, další čtenáře.

Autor článku

Pavel Stěhule je odborníkem na relační databázový systém PostgreSQL, pracuje jako školitel a konzultant.