• No results found

Datov´ a ´ uloˇ ziˇstˇ e

1.2 Souˇ casn´ y stav

1.2.2 Datov´ a ´ uloˇ ziˇstˇ e

Pravdˇepodobnˇe nejjednoduˇsˇs´ım zp˚usobem ukl´ad´an´ı dat v poˇc´ıtaˇc´ıch je st´ale uloˇzen´ı do souboru. K tomu nen´ı zapotˇreb´ı ˇz´adn´y speci´aln´ı SW, pouze textov´y nebo bin´arn´ı soubor. Nen´ı potˇreba ˇz´adn´e speci´aln´ı pˇripojen´ı, staˇc´ı m´ıt pˇr´ıstup k souboru a pr´ava zapisovat do nˇej. Nev´yhodou se st´av´a nekonzistence dat souboru a jeho n´asledn´e pro-hled´av´an´ı. Pˇri zvˇetˇsuj´ıc´ı se velikosti souboru je obt´ıˇznˇejˇs´ı jeho zpracov´an´ı. V dneˇsn´ı dobˇe se kv˚uli big data mluv´ı o NoSQL datab´az´ıch, pˇritom souˇcasn´e klasick´e relaˇcn´ı datab´aze jsou mnohdy lepˇs´ım ˇreˇsen´ım.

Relaˇcn´ı datab´aze

Relaˇcn´ı datab´aze maj´ı za sebou dlouhou historii v´yvoje, a t´ım p´adem stoj´ı na pevn´e p˚udˇe. Jedna z jejich nejvˇetˇs´ıch v´yhod je dotazovac´ı jazyk SQL. Ten m´a pevn´y mate-matick´y z´aklad, a proto jsou v mnoha pˇr´ıpadech relaˇcn´ı datab´aze lepˇs´ım ˇreˇsen´ım neˇz NoSQL. Relaˇcn´ı datab´aze je typ datab´aze, kter´a ukl´ad´a a zprostˇredkov´av´a pˇr´ıstup datov´ym bod˚um, kter´e jsou spoleˇcnˇe propojeny. Z´aroveˇn jsou zaloˇzeny na relaˇcn´ım modelu, coˇz je intuitivn´ı pˇr´ımoˇcar´a cesta reprezentov´an´ı dat v tabulk´ach. [8]

V´yhody:

• Vertik´aln´ı ˇsk´alovatelnost (vyˇsˇs´ı cena)

• Pˇri r˚ustu objemu dat roste sloˇzitost udrˇzitelnosti a flexibility

NoSQL datab´aze

Datab´aze NoSQL (Not only SQL) je datab´aze, kter´a se pouˇz´ıv´a pro ukl´ad´an´ı velk´eho mnoˇzstv´ı dat. Datab´aze jsou distribuovan´a, nerelaˇcn´ı, open source a horizont´alnˇe ˇsk´alovan´a [9]. Jsou navrˇzena pro distribuovan´a datov´a ´uloˇziˇstˇe. V souˇcasn´e dobˇe se neukl´adaj´ı pouze data ve formˇe textu. Je potˇreba uloˇzit soci´aln´ı vazby (grafy), geo-grafick´a data, logy syst´em˚u (kdy jejich velikost ˇcasto exponenci´alnˇe roste), a pr´avˇe proto jsou navrˇzeny NoSQL datab´aze. Pravdˇepodobnˇe nejvˇetˇs´ı nev´yhodou oproti relaˇcn´ım datab´az´ım je absence transakc´ı ve vˇetˇsinˇe NoSQL datab´az´ı. Zde plat´ı tak-zvan´y CAP teor´em. CAP teor´em znamen´a konzistenci, dostupnost a odd´ılovou to-leranci.

• Konzistence: Data dostupn´a na vˇsech stroj´ıch po aktualizac´ıch a dalˇs´ıch akc´ıch

• Dostupnost: Data mus´ı b´yt vˇzdy dostupn´a

• Odd´ıln´a tolerance: Po dobu chybovosti stroje nebo nˇejak´e chyby datab´aze mus´ı fungovat v bˇeˇzn´em reˇzimu bez zastaven´ı ˇcinnosti

Bohuˇzel nelze splnit vˇsechny tˇri moˇznosti, a proto se vol´ı kombinace po dvou dle poˇzadavk˚u. Typicky se vol´ı kombinace konzistence a dostupnosti.

V´yhody:

• Moˇznost volen´ı datab´aze dle datov´eho modelu

• Nevyˇzaduj´ı pevn´e sch´ema datab´aze

• Podpora nestrukturovan´ych dat a nepˇredv´ıdateln´ych dat Nev´yhody:

• Nepouˇz´ıvaj´ı se JOIN operace

• Nem´a deklarativn´ı dotazovac´ı jazyk

• Pˇr´ıpadn´a konzistence upˇrednostnˇena pˇred ACID vlastnostmi

Dokumentovˇe orientovan´e NoSQL datab´aze

Dle pr˚uzkumu StackOverflow z roku 2019 je nejrozˇs´ıˇrenˇejˇs´ı NoSQL datab´az´ı Mon-goDB z t´eto kategorie [10]. Na rozd´ıl od relaˇcn´ıch datab´az´ı, kde jsou data uloˇzena v tabulk´ach, dokumentovˇe orientovan´e datab´aze maj´ı dokumenty. Dokumenty lze zhruba pˇrirovnat k ˇr´adk˚um v tabulce, ale s t´ım rozd´ılem, ˇze dokumenty jsou mno-hem v´ıce flexibiln´ı, protoˇze jsou bez pˇredem dan´eho sch´ematu (schema-less). Doku-menty b´yvaj´ı standardn´ıho form´atu (xml, json). Zde je opˇet vidˇet velk´y rozd´ıl od relaˇcn´ıch datab´az´ı, protoˇze jsou ˇr´adky v tabulce ˇcasto identick´e (myˇsleno v ide´aln´ım pˇr´ıpadˇe, kdy jsou data konzistentn´ı a napˇr´ıklad v atributu datum se opravdu nach´az´ı datum), kdeˇzto v pˇr´ıpadˇe dokumentovˇe orientovan´ych datab´az´ı m˚uˇze b´yt struktura jednotliv´ych dokument˚u naprosto odliˇsn´a, ale tak´e v´ıce ˇci m´enˇe podobn´a [11].

Grafov´e datab´aze

Grafov´e datab´aze jsou v podstatˇe zaloˇzeny na teorii graf˚u. Grafy jsou sloˇzeny z vr-chol˚u, hran a jejich ohodnocen´ım (vztah). V tˇechto datab´az´ıch vrcholy znamenaj´ı entity, ohodnocen´e hrany mezi vrcholy znaˇc´ı atributy a hrany reprezentuj´ı vztah mezi vrcholy.

V relaˇcn´ıch datab´az´ıch je obrovsk´y probl´em naznaˇcit vztahy mezi objekty, a to je pr´avˇe silnou str´ankou grafov´ych datab´az´ı. Pravdˇepodobnˇe nejzn´amˇejˇs´ım pˇr´ıkladem je datab´aze Neo4j [12].Ta umoˇzˇnuje efektivn´ı grafov´e zpracov´an´ı v re´aln´em ˇcase pomoc´ı pˇr´ım´eho indexovan´eho pˇr´ıstupu k sousedn´ım uzl˚um z dan´eho uzlu [13].

Nˇekter´e grafovˇe orientovan´e datab´aze mohou splˇnovat ACID. Ovˇsem vznik´a ot´azka za jakou cenu. Pointa pouˇz´ıv´an´ı NoSQL datab´az´ı je v jejich s´ıle ˇsk´alovatelnosti a pr´ace s big daty, ovˇsem pokud jsou pouˇzity ”levnˇe”, jsou NoSQL datab´aze pouˇzity jako alternativa k RDBMS.

Datab´aze typu kl´ıˇc-hodnota

Jak n´azev napov´ıd´a, data jsou uloˇzena v p´aru kl´ıˇc hodnota. Dalo by se ˇr´ıci, ˇze tento typ datab´az´ı je v podstatˇe rodiˇcem vˇsech NoSQL datab´az´ı [11]. Kl´ıˇc je unik´atn´ı identifik´ator k dan´ym dat˚um. Nejpouˇz´ıvanˇejˇs´ım z´astupcem tohoto typu datab´aze je dle dotazn´ıku Redis [10]. Z´aroveˇn je to dle hodnocen´ı nejv´ıce obl´ıben´a datab´aze mezi v´yvoj´aˇri.

Data Warehouse

Data warehouse (DW) je velkokapacitn´ı ´uloˇziˇstˇe, kter´e je um´ıstˇeno nad datab´azemi.

Je navrˇzeno pro ukl´ad´an´ı stˇrednˇe velk´ych strukturovan´ych dat pro ˇcast´e a opakovan´e anal´yzy. ˇCast´e vyuˇzit´ı DW je ke sdruˇzov´an´ı dat z v´ıce zdroj˚u. Nˇekter´e DW jsou schopn´e pracovat s nestrukturovan´ymi daty, ale nen´ı to bˇeˇzn´e. Protoˇze jsou data strukturovan´a, sch´ema je determinov´ano jeˇstˇe pˇred t´ım, neˇz mohou b´yt data pˇrid´ana do DW.

Charakteristiky:

• Data jsou typicky nahr´av´ana z transakˇcn´ıch syst´em˚u a z´aroveˇn jsou oˇciˇstˇena

• Zachycuje data a organizuje do sch´emat

• Sch´ema je definov´ano jeˇstˇe pˇred t´ım, neˇz se data nahraj´ı

• Pouˇzit´ı pro generov´an´ı report˚u a dashboard˚u

Typick´ymi z´astupci DW jsou SAP Bussiness Warehouse, Snowflake a Oracle Exadata Database Machine.

Data Lake

Data lake (DL) je centralizovan´e ´uloˇziˇstˇe navrˇzen´e pro ukl´ad´an´ı strukturovan´ych i nestrukturovan´ych dat jak´ehokoliv typu a bez velikostn´ıch limit˚u. Typicky se data pˇrenesou rovnou ze syst´em˚u, kter´e je generuj´ı, pˇr´ımo do DL bez jak´ekoliv ´upravy.

Kaˇzd´emu datov´emu elementu DL pˇriˇrad´ı unik´atn´ı identifik´ator, kter´y je uloˇzen, a n´aslednˇe umoˇzˇnuje lehˇc´ı vyhled´av´an´ı pomoc´ı dotaz˚u. DL je sp´ıˇse povaˇzov´an za big data platformu pro nestrukturovan´a data.

Charakteristiky:

• Data jsou typicky nestrukturovan´a, ve sv´e p˚uvodn´ı podobˇe

• Ide´aln´ı ´uloˇziˇstˇe pro hlubok´e anal´yzy nestrukturovan´ych dat s pomoc´ı analy-tick´ych n´astroj˚u, strojov´eho uˇcen´ı a podobnˇe

• Sch´ema je definov´ano aˇz po uloˇzen´ı dat. D´ıky tomu nen´ı potˇrebn´a prvotn´ı reˇzie a d˚usledkem je vyˇsˇs´ı flexibilita

Typick´ymi pˇredstaviteli DL jsou Hadoop, Microsoft Azure Data Lake, Amazon AWS Data Lake.