Základní pojmy

Databáze je množina záznamů s pevnou strukturou dat, organizovaná za určitým účelem.

V jedné databázi můžeme mít několik databázových modelů. Jeden databázový model může být složen z několika databázových tabulek (entities, relací). Jedna relace se může skládat z několika i mnoha atributů (attributes, sloupců). V rámci jednoho databázového modelu by měly být všechny relace nějakým způsobem propojené, a to pomocí vztahů (relations). Jakmile máme databázový model připravený, budeme do něj vkládat záznamy (records, řádky).

entityrelacedatabase table
relationvztah
attributeatributcolumn
recordzáznamrow

Příklady užití databází

Databázový systém

Databázový systém (DBS) se skládá ze dvou částí:

Databázi si tedy můžeme představit jako samotné skladiště dat. Je to místo, kde jsou všechna data fyzicky uložena (buďto na disku či přímo v operační paměti). Představte si to jako když přijdete poprvé do knihovny a vidíte desetitisíce svazků.

DBMS si můžeme představit jako knihovníka a jeho systém – systém, který nám pomůže rychle a správně najít správnou knihu; pohlídá, aby se knihy nepůjčovaly dvakrát a zajišťuje, že jsou vždy vrácené na správné místo.

Příklady

Vezměme si například databázový model, který potřebuje každá firma k evidenci oddělení, zaměstnanců a jejich mezd. Na první pokus nás napadne, že v takovém databázovém modelu budeme mít data uložena například v relacích (entitách):

Asi tušíme, že oddělení bude spojené se zaměstnancem (čili vytvoříme vztah (relation) mezi relacemi (entitami) oddeleni a zamestnanec) a stejně tak zaměstnanec bude spojený se mzdami (čili vytvoříme vztah (relation) mezi relacemi (entitami) zamestnanec a mzdy).

Abychom popsali jednotlivé relace (entity), mohou nás napadnout různé atributy, například:

Druhy databází

Databáze se dělí do různých kategorií podle toho, jakým způsobem ukládají a organizují data. Nejčastěji se můžeme setkat s těmito hlavními typy:

  1. Relační databáze
    • data ukládají do relací (entit), které se skládají z atributů (sloupců) a záznamů (řádků)
    • vztahy mezi relacemi jsou definovány pomocí klíčů
    • ideální pro transakční systémy (např. bankovní aplikace, účetnictví, e-shopy)
    • jsou navržené tak, aby zajišťovaly konzistenci a integritu dat
    • jsou buďto řádkové (row-oriented) – data se ukládají po řádcích; vhodné pro transakce a dotazy pracující s kompletními záznamy
    • nebo sloupcové (column-oriented) – data se ukládají po sloupcích; výrazně rychlejší pro práci s daty v konkrétním atributu u velkého počtu záznamů
  2. NoSQL databáze („Not only SQL“)
    • flexibilní, vhodné pro práci s velkým objemem dat, vhodné pro často se měnící strukturu dat
    • dokumentové – ukládají data například ve formátu JSON; ideální pro ukládání dat bez pevně stanovené struktury; např. MongoDB
    • grafové – ukládají data s komplexními vztahy; data jsou uložena jako uzly, mezi nimiž jsou hrany; např. neo4j
    • key-value – nejjednodušší typ databází ukládající data pouze jako dvojice klíč–hodnota; vhodné pro rychlé ukládání a načítání dat (např. cache); např. redis
    • wide-column – používají se pro big data; např. cassandra
  3. Objektové a objektivě-relační databáze
    • používají se ve specifických oblastech jako je CAD nebo vědecké databáze, kde je velmi důležité zachovat složitou strukturu objektů
    • ukládají data jako objekty (podobné těm v OOP) – nemají tabulky, pracují přímo s objekty; záznamy vkládáme jako instance, atributy objektu mají vyplněné hodnoty
    • používají Object Query Language