Co je to databáze? Kdysi to bylo jednoduché. Databáze byla moderní podobou neúnavného úředníka, který zadával data do tabulek tvořených sloupci, kde každý řádek představoval jeden záznam. Dlouhé, nekonečné obdélníky informací táhnoucích se do budoucnosti.
Relační databáze byla základem moderního způsobu využívání počítačů. Převážná většina webových stránek je jen velké množství šminek CSS namalovaných na povrchu SQL. Všechno, co nás dělá zvláštními, je jen další řádek ve velké tabulce života.
Zamilovanost do velké matice bitů ale pomalu mizí s tím, jak si vývojáři uvědomují, že jednoduchá tabulka se prostě nehodí pro všechny účely. Protože jsou vývojáři inteligentní a posedlí hledáním řešení pro každou potřebu, začali vytvářet nové a lepší způsoby pro ukládání informací. Posledních pár let tak přineslo pro ukládání našich dat doslova explozi dalších mechanismů.
Dá se říci, že jsou tyto nádherné nové možnosti stále databázemi? Musejí se data vložit do nějaké velké matice, aby to byla databáze? Někteří lidé rádi používají k odlišení moderních mechanismů pojem „úložiště dat“, protože v naší mysli je slovo „databáze“ příliš pevně spojené se starou tabulkovou strukturou.
Tuto záležitost ponecháme filozofům. Data zkrátka vstupují dovnitř a ven vystupují odpovědi. Zde je osm způsobů, jak se databáze znovu objevuje v nových formách a podobách.
GPU computing
Kdysi se grafické karty vyráběly pro vykreslování komplikovaných scén ve hrách pro děti, ale nyní grafické procesory (GPU) zvládají i velké množství negrafického zpracování. Prohledávání dat je přitom jedním z nejlepších negrafických účelů, které zvládají.
A proč ne? Přesívání nekonečných hromad dat při hledání shody je svou podstatou paralelní operací tvořenou množstvím základních úloh (testování shody), které se opakují v počtech milionů. Je tedy velmi jednoduché změnit úlohu na práci pro tisíce procesorů obsažených v GPU.
Největší výhra ale nespočívá v odpovědi na každý dotaz (což je samozřejmě mnohokrát rychlejší), ale v přípravné práci, protože je zapotřebí malá míra předběžného zpracování.
Mnoho databází šetří čas udržováním indexu, který je efektivním předpočítáním výsledku každého možného vyhledávání. Pokud se tento index poškodí nebo zničí, může jeho opětovné vytvoření trvat hodiny, dny, nebo dokonce měsíce.
Pokud se však data vejdou do paměti pro grafický procesor, není index potřeba. Pokud se data mění rychle a většina indexu se nikdy nepoužívá, mohlo by být přeskočení předběžného zpracování docela efektivní.
Seznamte se s technologiemi MapD, Kinetica, Brytlyt a dalšími, abyste zjistili, zda lze vaše data a vyhledávání zrychlit.
NVRAM (energeticky nezávislá paměť)
Programátoři z doby před padesáti lety to měli snadné. Nemuseli žonglovat s daty mezi pamětí RAM a diskem a zabývat se komplikovanými postupy pro zajištění konzistence. Důvod byl ten, že paměť byla v tehdejší době tvořena železným jádrem a při vypnutí elektrické energie se nesmazala.
Tyto dobré časy se mohou brzy vrátit, protože výrobci čipů mluví o nahrazení pamětí RAM za energeticky nezávislé paměti – NVRAM (Non-Volatile Memory). To by zcela změnilo situaci pro programátory databází, protože by zmizel jeden z jejich největších problémů.
Někteří tvrdí, že databáze mohou být mnohem rychlejší, protože sémantika transakcí bude jednodušší. Jiní předkládají myšlenku vytvoření protokolu obnovení poté, co se data zapíší na médium, a nikoli předtím.
Nikdo neví, jak to dopadne. Budou vůbec lidé stále používat databázi, když nebudou potřebovat trvalý záznam? Nebo je vyhledávání a indexování bude neustále vracet zpět? Všechny algoritmy a všechny architektury bude nutné znovu posoudit. Nejlepší způsob využití NVRAM budeme znát tak za deset let.
Škálovatelné SQL
Když se začalo prosazovat NoSQL, byla jednou z jeho velkých funkcí možnost rozložit úložiště dat na více uzlů. Databáze NoSQL, jako je třeba Cassandra a MongoDB, způsobily, že se zdálo, jako by všechny hezké vlastnosti velkokapacitního úložiště znamenaly opuštění komfortního světa SQL.
Ve skutečnosti není kompromis nutný. Přestože rané experimenty s velkými databázemi byly snadnější, protože se zbavily veškeré bagáže spojené s SQL, není ve skutečnosti důvod, proč by technologie SQL nemohla dobře fungovat i na více strojích pracujících v obrovském měřítku. Výrobci jako Oracle to samozřejmě dělají už roky.
Nejnovější rozsáhlé databáze vám umožňují využít veškeré vaše znalosti a pohodlí SQL, a mít přitom data rozložená ve velkém clusteru. Například CockroachDB nabízí standardní dotazovací stroj SQL, který přistupuje k datům replikovaným ve více uzlech, vše se zárukami typu ACID (Atomicity, Consistency, Isolation, Durability).
Je pravda, že zaplatíte za část této podvazkové podpory pro konzistenci dat, ale možná méně, než byste čekali. Je-li garance konzistence pro vaši práci důležitá, začněte seznámením s technologiemi CockroachDB, Google Cloud Spanner, Clustrix, Azure SQL a NuoDB.
Geospaciální databáze
Tradiční databáze byly vytvořené pro jednorozměrné sady dat, a ne pro dvojrozměrné geografické souřadnice. Můžete to ale napodobit a k dosažení základních úkolů s geografickými souřadnicemi použít standardní databázi.
Pokud uložíte zeměpisné šířky a délky do samostatných sloupců, nebude těžké vyhledávat řádky, které patří do oblasti definované rozmezím zeměpisné šířky a délky. Jakmile však budete chtít více než tento základní rozsah, standardní dotazy SQL to nezvládnou.
Geospaciální databáze přidávají několik dalších funkcí, které velmi usnadňují vyhledávání, třídění a protínání dvourozměrného prostoru. Prostorové indexy například obvykle používají pro svou funkci přidání mřížky nad souřadnicový prostor, aby bylo mnohem rychlejší hledání řádků patřících do dvourozměrných a třírozměrných světů.
Tyto indexy umožňují psát dotazy s operacemi jako „obsahuje,“ „překrývá se“, a dokonce „dotýká se“ u množin definovaných pomocí polygonů. To všechno výrazně zvyšuje efektivitu úvah o reálném světě.
Při seznamování se s těmito technologiemi je dobré začít s platformami Neo4j Spatial, GeoMesa, MapD a PostGIS.
Diagramové databáze
Tabulky jsou dobrým úložištěm pro mnoho datových struktur, ale neodvádějí dost práce při modelování jedné velké nové datové struktury, která pohání posledních deset let vývoje internetu: síť.
Jak prudce rostou tzv. sociální diagramy, zaplňujeme náš počítač více a více uzly a spojeními mezi nimi. A spojení mezi uzly jsou často důležitější než data v nich. Jistě, ukládání a načítání jednoho spojení mezi dvěma uzly lze snadno dělat v klasické relační databázi, ale komplikovanější dotazy začínají být nemožné. Je Bob vzdálen dva, nebo tři přeskoky od Chrise v síti přátel? Chodí Marie s bývalým partnerem někoho ze svých přátel?
Diagramové databáze takovéto dotazy usnadňují. Nedochází k nekonečnému načítání z tabulek, protože dotaz ví, jak hledat v sousedství určeném odkazy. Nástroje jako Neo4J, OrientDB a DataStax jsou jen některé z možností, jichž je nyní už více než dvacet. Také ony mají své vlastní dotazovací jazyky.
Cloudové databáze
Jedna z největších změn spočívá v tom, jak kupujeme databázový software. V minulosti jsme si koupili vlastní počítače a podepsali licenční smlouvy, abychom na nich mohli spustit software.
Nyní cloudové společnosti nabízejí služby, které uchovávají části dat někde, kam nevidíme a nemáme možnost se tam ani dostat. Prostě jen prohlašují, že data budou k dispozici, až je budeme chtít.
Výhody jsou zřejmé. Není nutné se starat o server ani o místnost, kde by byl umístěný. Není třeba se starat o licencování a konfigurace či instalace oprav. Všechny tyto starosti řeší někdo jiný. Řešení je často také levnější – zejména pokud nepotřebujete ukládat velké množství dat. Služby se obvykle platí podle objemu dat.
Případná nebezpečí však leží ve stínu. Má k datům přístup ještě někdo jiný? Je server chráněný před výpadky napájení, bouřkami a záplavami? Zálohují se data do důvěryhodného místa v jiné lokalitě? Cloudovému poskytovateli prostě musíte věřit ve všem.
Hlavní poskytovatelé cloudových služeb – Google, Microsoft a Amazon – nabízejí dlouhý seznam databázových služeb. V současné době ale i Oracle, MongoDB a DataStax zpřístupňují své databáze přes cloud.
Umělá inteligence (AI)
Někteří říkají, že umělá inteligence je jen termín pro nejnovější generaci výzkumu, který se právě dostává z laboratoří do praxe. Existuje řada nových produktů a řešení spojených s populárními pojmy jako „strojové učení“, „neuronové sítě“ a „hluboké učení“. Nemusejí vypadat jako databáze, ale plníte je daty a kladete jim otázky. Proč ne?
Dobrou zprávou v souvislosti s řešeními umělé inteligence je to, že nemusíte vědět, co hledáte. Můžete se bez námahy zeptat na něco tak mlhavého jako „nejzajímavější“ nebo „nejbližší“. Není potřeba znát správný klíč nebo referenční číslo, které požadují pracovníci podpory zákazníkům.
Špatná zpráva je, že nebudete vědět, jestli jste získali správnou odpověď, protože jste nekladli otázku se žádnou přesností. Je daný blogový příspěvek skutečně nejzajímavější? Největším tajemstvím úspěchu Googlu je, že neexistuje absolutně správná odpověď. Pokud to funguje, tak si nikdo nemůže stěžovat.
Seznam nástrojů pro strojové učení je velmi dlouhý. Vždy se můžete zeptat svého oblíbeného vyhledávače na „nejzajímavější“ technologie AI.
Blockchain
Slovo blockchain se může spojovat s komplikovanou ekonomikou a politikou bitcoinu, ale za všemi těmi hovory o měně stojí extrémně stabilní a praktické distribuované úložiště dat.
Každý má možnost aktualizovat data v dlouhé tabulce a všichni mohou sdílet odpověď. Úžasný je fakt, že všichni sdílejí stejné odpovědi. Je to perfektní pro firmy, které patří do kategorie kombinující přátelský i nepřátelský vztah.
Někteří vývojáři jdou ještě dále a mluví o „inteligentních smlouvách“, což je další způsob, jak říci, že bity v databázi jsou dostatečně důvěryhodné, aby se na ně lidé mohli spoléhat v právních záležitostech, jako je například vlastnictví. To s běžnou databází nemůžete, protože ji může změnit kdokoli s oprávněním správce.
Přesto však i zde existují slabé stránky. Každý uživatel si musí udržovat šifrovací klíč, protože musejí být všechny transakce digitálně podepsané. Pokud dojde ke ztrátě či zapomenutí tohoto klíče, jsou data v daných řádcích navždy zmražena. Když ten klíč někdo ukradne, není nic jisté.
Blockchain není jinými slovy dokonalý, ale je mnohem spolehlivější než standardní modely.
R3, Ripple a IBM jsou jen tři z mnoha konkurentů, kteří tento prostor zkoumají. Mnoho z předních bank má své vlastní interní projekty. A pak jsou zde samotné společnosti bitcoin a altcoin, které jsou také velkou částí ekosystému.
Tento příspěvek vyšel v Computerworldu 1/2018. Časopis (starší čísla i předplatné těch nadcházejících) si můžete objednat na adrese našeho vydavatelství.