Databázové systémy
Štruktúra databázového systému
Vychádzajúc už z uvedeného, môžeme teda skonštatovať, že databázový systém je komplex podsystémov (jednotlivé časti viď. ďalej), ktoré sa spoločne podieľajú na spracovaní a ukladaní informácií, ako aj zabezpečovaní možností manipulácie s nimi.
Ako je možné vidieť na obrázku 1.5, štruktúra databázového systému sa skladá z programových modulov, z ktorých najdôležitejšie sú:
- prekladač jazyka DML – prekladá príkazy jazyka DML uvedené v hostiteľskom jazyku (aplikačné programy) do volania procedúr v tomto jazyku;
- prekladač jazyka DDL – spracováva definície a zmeny schémy databázy a ukladá ich do katalógu dát (data dictionary);
- prekladač dopytovacieho jazyka – prekladač dopytu interpretuje alebo prekladá dopyt definovaný v dopytovacom jazyku do optimalizovanej podoby a odovzdá ho na vyhodnotenie, ktorému rozumie manažér databázy;
- manažér databázy – sprostredkuje dopyty preložené z jazyka DML alebo z dopytovacieho jazyka; dopyty prevedie na postupnosť príkazov pre prácu so súbormi, ktoré vykoná tzv. manažér súborov;
- manažér súborov – manažér dát spolupracuje s operačným systémom, prípadne s podsystémami vnútornej a vyrovnávacej pamäte a riadi disky na ukladanie a prenos dát;
- najnižšiu úroveň tvorí subsystém pre ovládanie súborov. Zahŕňa fyzickú organizáciu dátových súborov, zabezpečuje uloženie dát na vonkajšie médium a realizuje prenosy dát s pamäťou prostredníctvom príslušných manažérov. Na disku sú uložené informácie štyroch kategórií:
- dáta v dátových súboroch (súbory dát) – obsah vlastnej databázy,
- metadáta v slovníku dát – opis schémy databázy a integritných obmedzení,
- štatistické dáta – informácie o vlastnostiach uložených dát, ako je veľkosť, charakter hodnôt, vzájomné väzby,
- indexy – podpora efektívneho prístupu k dátam.
Obrázok: Štruktúra databázového systému
Databázové systémy môžu byt’ založené na rôznych modeloch, a tak vychádzať z rôznych princípov. Avšak bez ohľadu na ne musia byť údaje v každom databázovom systéme (presnejšie v báze dát) nevyhnutne perzistentné (perzistencia – trvanie, stálosť), t.j. musia v ňom pretrvávať aj vtedy, keď s nimi nepracuje žiadny program alebo iný používateľ. Životnosť dát teda nie je ohraničená časom vykonávania programu – t.j. dáta existujú aj po ukončení programu, ktorý s nimi manipuluje. Dáta sa môžu spracovávať opätovným vykonaním daného programu, resp. iným programom. Uchovávajú sa preto v externých (sekundárnych) pamätiach: disky, magnetické pásky a iné dátové nosiče.
Dáta v databázovom systéme musia byť taktiež spoľahlivé, čiže modifikované môžu byť len na výzvu oprávneného používateľa. Keďže uchovávané dáta bývajú často veľmi dôležité, nesmie dôjsť k ich strate alebo poškodeniu pri zlyhaní hardvéru alebo softvéru. Ochrana pred zlyhaním hardvéru sa zabezpečuje predovšetkým hardvérovými prostriedkami. Databázový systém ju podporuje iba čiastočne – prostriedkami na zálohovanie dát do záložnej externej pamäte. Výraznejšiu ochranu poskytuje pred zlyhaním softvéru. Zahŕňa predovšetkým transakčný mechanizmus, umožňujúci zachovanie konzistentnosti databázy. Transakciu tvorí skupina príkazov, definovaná používateľom, a vykoná sa buď celá alebo sa nevykoná vôbec. V prípade chyby počas vykonávania transakcie systém automaticky zabezpečí návrat do konzistentného stavu pred jej začiatkom.
Okrem týchto úplne prirodzených a skôr technických podmienok však každý databázový systém hoden svojho mena musí spĺňať ešte jeden dôležitý princíp – neduplicitu dát, teda zásadu, aby sa totožná informácia v žiadnom prípade neopakovala na viacerých miestach.
Databázový systém by mal dokonca rešpektovať ešte silnejšiu požiadavku – neredundantnosť dát, keď nie sú prípustné ani údaje, ktoré možno odvodiť z iných.
Táto vlastnosť je však občas v rozpore s ďalším princípom – rýchlosťou prístupu k dátam. Väčšina dát sa uchováva v externých pamätiach. Ak chce program aktualizovať niektoré údaje, musí ich najprv načítať z externej do operačnej pamäte, tam ich spracovať a potom opätovne zapísať do externej pamäte. Operácie na sprístupňovanie externej pamäte trvajú rádovo dlhšie ako operácie vykonávané v operačnej pamäti. Databázový systém musí preto poskytovať prostriedky na zefektívnenie práce s externou pamäťou.
Tvorca databázového systému by mal dobre zvážiť, ktorú z týchto zásad poruší. Cenou za rýchly prístup je totiž nákladnejšia starostlivosť o konzistenciu prvotných a odvodených dát. Pre databázu to znamená použiť zložitejšie prvky (tzv. triggery), v opačnom prípade by táto úloha ostávala na často nedisciplinovaných klientských programoch.