Databázový systém
Z Wikipédie
Databázový systém (často aj systém riadenia báz dát, skrátene SRBD alebo DBMS) je programový systém pre efektívne ukladanie, modifikáciu a výber veľkého množstva perzistentných dát.
Obsah |
[úprava] Definícia a charakteristika
Aby mohol byť nejaký programový systém označený za SRBD, musí
- byť schopný riadiť perzistentné dáta,
- byť schopný pristupovať efektívne k veľkému množstvu dát.
Obidve podmienky sú nutné (napr. bez druhej by definíciu spĺňal aj ktorýkoľvek súborový systém). V súčasnosti používané databázové systémy majú aj mnoho ďalších charakteristických vlastností, ako
- podporu pre aspoň jeden dátový model (napr. relačný, logický), ktorým oddeľujú konceptuálnu (logickú) úroveň od fyzickej,
- správu transakcií,
- využitie niektorého jazyka vyššej úrovne pre manipuláciu a definíciu dát (napr. SQL, QBE, datalog),
- autentifikáciu používateľov a autorizáciu operácií nad dátami,
- robustnosť a zotaviteľnosť po chybách bez straty dát.
[úprava] História
Prvé komerčné databázové systémy boli vyvinuté začiatkom 60. rokov 20. storočia, kedy sa začali prejavovať nedostatky riešení založených na čistých súborových systémoch. V tých časoch prevládal tzv. navigačné databázové systémy, ktoré využívali sieťový dátový model alebo hierarchický dátový model. Začiatkom 70. rokov po publikovaní článku "A Relational Model of Data for Large Shared Data Banks" doktorom Edgarom Coddom vznikli prvé databázy s podporou relačného dátového modelu (tzv. relačné databázové systémy, skrátene RSRBD alebo RDBMS), ktoré rýchlo vytlačili z trhu nepohodlné a ťažkopádne navigačné systémy. V 80. rokoch 20. storočia sa začal robiť intenzívny výskum v oblasti objektovo-orientovaných databázových systémoch, avšak na tomto poli ešte nemáme dostatočné znalosti, aby sme ich vedeli implenentovať dostatočne efektívne. Začiatkom 90. rokov sa prvýkrát objavuje pojem tzv. znalostne-orientovaného systému riadenia, čo je SRBD založený na logickom dátovom modeli, ktorý poskytuje ako jazyk pre manipuláciu (DML) a definíciu (DDL) dát niektorý z deklaratívnych programovacích jazykov, napr. datalog. Tieto systémy sú v súčasnosti predmetom intenzívneho výskumu a očakáva sa, že v strednodobej budúcnosti budú mať veľký význam.
V súčasnosti sú takmer všetký používané databázové systémy založené na relačnom dátovom modeli. Podľa výkonu a možností, ktoré poskytujú, ich môžeme zrhuba rozdeliť na „high-end“ (Oracle Database, Microsoft SQL Server, IBM DB/2) a „low-end“ (MySQL, MiniSQL, ...) a systémy medzi nimi (PostgreSQL, ...). Okrem nich existujú aj tzv. desktopové relačné databázové systémy, ktoré narozdiel od „plných“ systémov neposkytujú na vysokej úrovni alebo vôbec pokročilé funkcie, ako napr. transakčné spracovanie, autorizáciu, robustnosť a zotaviteľnosť, viacpoužívateľský prístup a distribuoovanosť; na druhej strane sú oveľa lacnejšie (Microsoft Access, dBASE, Microsoft FoxPro, Firebird, Interbase, ...).
[úprava] Architektúra
Hoci existujú rozmanité databázové systémy s podporou rôznych dátových modelov, ich architektúra aspoň v tej najvšeobecnejšej forme je rovnaká a skladá sa z troch podsystémov: procesoru jazykov DML a DDL, správcu databáz a správcu súborov.
[úprava] Procesor jazykov DML a DLL
Táto časť, označovaná aj ako procesor „dotazov“, je zodpovedná za spracovanie používateľského vstupu zadaného väčšinou prostredníctvom jazykov z tried DML a DDL, ktoré systém podprouje (napr. SQL). Okrem toho slúži aj ako rozhranie medzi aplikačnými programami využívajúce systém, ktoré môže byť implementované ako knižnica používateľských funkcií alebo ako preprocesor špeciálnych príkazov v hostiteľskom jazyku. Úlohou procesora je potom riadne spracovať a optimalizovať požiadavky kladené na databázu zvonka a ohlásiť prípadné chyby v nich. Svoj výstup (napr. optimalizovaný strom dotazu) posiela ďalej na spracovanie správcovi databáz.
[úprava] Správca databáz
Správca databáz má za úlohu riadenie systému (spravuje systémové tabuľky, načítava jednotlivé moduly a pod.) a poskytuje aj výkonné služby medzi procesorom dotazov a správcom súborov. Po obrdžaní vstupu od procesora dotazov môže urobiť ďalšie optimalizácie, keďže má znalosti, ktoré procesor nemá (náročnosť výpočtu jednotlivých funkcií, vzťahy medzi reláciami a pod.) a pripraví tzv. logický plán. Logický plán pretransformuje a zoptimalizuje na základe ďalších znalostí (existencia indexov, distribúcia súborov a pod.) na tzv. fyzický plán, čo je postupnosť krokov na nižšej úrovni, ktorá často okrem íného obsahuje rôzne analógie operátorov relačnej algebry (napr. načítaj tabuľku zo súboru, utrieď podľa atribútu, vykonaj karteziánsky súčin pod.). Fyzický plán sa transformuje do postunposti nízkoúrovňových krokov pre správcu súborov (napr. načítaj prvých 100 blokov z tohto súboru, zapíš do tohto súboru obsah tejto pamäťovej bunky). Správca databáz má na starosti takisto správu transakcií, autentifikáciu a autorizáciu a mnohé iné.
[úprava] Správca súborov
Správca súborov riadi prístup k fyzickým súborom a vykonáva operácie, ktoré mu zadá správca databáz. Túto funkciu pri jednoduchých databázových systémoch môže vykonávať správca súborov z operačného systému, často sa však kombinuje s vlastným modulom, ktorý má napr. zaznačené zámky na jednotlivé bloky súboru. Pri systémoch, kde je výkon na prvom mieste, môže byť celý správca súborov dodávaný s databázou, ktorá si spravuje samostatnú patríciu na disku či dokonca celý disk, čo umožňuje robiť optimalizácie na veľmi nízkej úrovni (napr. často vyžadované údaje uložiť na spoločný cylinder).