2.1 Základné pojmy Databázová technológia je unifikovaný súbor pojmov, prostriedkov a techník, slúžiaca pre vytváranie informačných systémov. Databázovou technológiou však nemyslíme len spôsob vytvárania základného programového vybavenia, ale aj tvorbu niektorých produktov v aplikačnej sfére. Pretože informačné systémy, a teda aj databázy, sú založené na existencii dát, pre databázovú technológiu v informačných systémoch je podstatný aj spôsob návrhu typov dát použitých v databáze, s cieľom vhodne optimalizovať funkcie celého informačného systému, ktorého súčasťou je databáza. Správanie systému závisí od toho ako navrhneme dátový model a samozrejme aj od toho akú štruktúru má IS, akým spôsobom sa k dátam bude pristupovať, aké programovacie jazyky budú použité a pod. Pod databázovým systémom (DBS) rozumieme množinu navzájom súvisiacich dát organizovanách v báze dát (BD) spoločne s programovým vybavením, ktoré umožňuje prístup k dátam – systém riadenia bázy dát (SRBD). Báza dát – množina dát, ktoré sú uchované v sekundárnej pamäti (disky) alebo inom nosiči, ktoré sú využívané aplikačnými systémami nejakého podnik. /Date, An introduction to database system , str.12/ Databázový systém môžeme chápať aj ako počítačový systém správy záznamov uložených v BD. V takomto systéme sú najdôležitejšie nasledovné funkcie: • Pridanie nového prázdneho súboru do databázy • Vloženie nových dát do existujúceho súboru • Výber dát z existujúceho súboru • Oprava dát v existujúcom súbore • Zrušenie dát z existujúceho súboru • Zrušenie existujúceho súboru z databázy
Existuje celá rada definícií databázového systému a jedna z najčastejšie používaných je nasledovná:
Databázový systém Databázový systém (DBS) tvorí databáza (DB) a systém riadenia bázy dát (SRBD).
Zjednodušene môžeme písať:
DBS = DB + SRBD Systém riadenia bázy dát (SRBD) je programové vybavenie, ktoré umožní zabezpečiť všetky požadované vlastnosti databázového systému a manipulovať s dátami
2.2 Komponenty databázového systému:
Z uvedenej definície je jasné, že súčasťou databázového systému nie sú len údaje, ktoré ukladáme do do bázy dát, ale aj technické prostriedky, ktoré používme na uchovávanie údajov. Súčasťou samotného systému je aj programové zabezpečenie, ktoré umožňuje zber, spracovanie údajov, prezentácia informácií, ochranu dát a iné služby. Tvorba takéhoto systému je opodstatnená až vtedy, ak existuje skupina používateľov, ktorí potrebujú dané údaje. Preto medzi základené komponenty DBS môže počítať: Dáta Hardware Software Používatelia
2.2.1 Dáta Databázové systémy môžu byť prevádzkované rovnako ako na malých personálnych počítačoch, tak aj na veľkých systémoch. Zvyčajne na počítačoch triedy PC pracuje jeden užívateľ, ale v dnešnej dobe, alebo aj v minulosti, keď prevažovalo centralizované spracovanie dát, pracovalo na počítači súčasne niekoľko užívateľov. Z tohto pohľadu je nutné k dátam pristupovať ako k objektom, ktoré budú integrované a súčasne zdieľané. Vlastne tieto dva aspekty patria k základným požiadavkám, ktoré sa vo všeobecnosti kladú na databázové systémy. Integrovanie dát znamená, že dáta udržiavané v databáze môžu byť umiestnené vo viacerých súboroch tak, aby bola minimalizovaná duplicita výskytov dát a zároveň, aby program mohol súčasne sprístupniť dáta z viacerých súborov. Zdieľanie dát znamená, že každý objekt v databáze môže byť zdieľaný viacerými užívateľmi, a to opakovane alebo súčasne, keď viacerí užívatelia chcú s daným datovým objektom pracovať v tom istom čase. 2.2.1.1 Dáta, vlastnosti, rozdelenie Dáta Dáta sú údaje (technické, administratívne, ekonomické, finančné, štatistické, ...), správy alebo informácie, ktoré je možné spracovávať pomocou technických prostriedkov. Vstupné dáta Vstupné dáta sú dáta, ktoré reprezentujú informácie vstupujúce do systému. Vstupné dáta, môžu byť transformované na perzistentné dáta. Je potrebné si uvedomiť, že nie všetky vstupné dáta sa stávajú perzistentnými. Zdrojom vstupných dát môžu byť rôzne technické zariadenia (v technologickom procese), ale aj dáta vstupujúce z terminálov, alebo z pracovných staníc. Výstupné dáta Výstupné dáta sú dáta, ktoré reprezentujú informácie vystupujúce zo systému. Výstupné dáta, môžu byť transformované z perzistentných dát, zo vstupných dát alebo môžu byť z nich odvodené (ako výsledok spracovania). Perzistentné dáta Perzistentné dáta sú dáta, ktoré existujú aj po ukončení programu.
Databáza Databáza je množina perzistentných dát, organizovaná ako navzájom prepojené systémy, ktorá je používaná v aplikačnom systéme daného podniku. Podnik v tomto význame môže byť:
- Výrobná organizácia,
- Finančná organizácia,
- Univerzita,
- Nemocnica, ...
Typické perzistentné dáta takýchto podnikov môžu byť potom:
- dáta o výrobe,
- účtovné dáta,
- dáta o študentoch,
- dáta o pacientoch, ....
Numerické dáta môžu byť ukladané rôznym spôsobom:
• binárne • v semilogaritmickom tvare • v pakovanom tvare • znakové Okrem toho je veľmi často potrebné zadefinovať aj počet potrebných bajtov (presnosť) pre ukladanie dát príslušného typu. Reťazce Znakové reťazce môžu byť ukladané v rôznych znakových sadách (EBDIC, ASCII, UNICODE). Číselníky Je množina kódov a ich charakteristík (resp. názvov) jednotlivých objektov. V mnohých situáciách je výhodné reprezentovať dáta pomocou číselných, alebo znakových kódov namiesto reťazcov popisujúcich význam nejakej hodnoty danej položky (napr. výsledok skúšky môžeme kódovať 1=“výborný“, 2=“veľmi dobrý“, 3=“dobrý“, 4=“nedostatočný“). Jednotky Pri ukladaní dát, ktoré reprezentujú hodnoty podľa niektorých jednotiek (napr. sústava SI), je potrebné zvážiť príslušný dátový typ s ohľadom na presnosť hodnôt a spôsob manipulácie s nimi. Napr. pri dĺžkových mierach to môže byť od mikrometrov až po kilometre a pod. Ovodené dáta Je potrebné si uvedomiť, že dáta, ktoré môžeme odvodiť by nemali byť dátami perzistentnými. V prípade, že takéto dáta ukladáme v databáze zvyšujeme náklady súvisiace s prevádzkou databázového systému. 2.2.2 Hardware Aj keď nosnou problematikou tejto oblasti nie je hardware, je nutné si uvedomiť, že hardware, prípadne komponenty z počítačových systémov, môžu výraznou mierou ovplyvniť správanie sa informačného systému, ktorý databázový systém používa. Najdôležitejšie hardwarové súčasti, ktoré ovplyvňujú databázový systém sú: • Pamäťové médiá – najčastejšie sú to magnetické disky, ktoré sú využívané na ukladanie dát spoločne s V/V zariadeniami, radičmi, kanálmi atď. • Procesor • Vnútorná pamäť (operačná pamäť) • Komunikačný podsystém Podrobnejšie informácie môžeme získať v literatúre týkajúcej sa operačných systémov, údajových štruktúr, počítačových sietí, architektúry počítačov 2.2.3 Software Programové vybavenie databázového systému, ako už bolo spomenuté skôr, tvorí systém riadenia bázy dát (SRBD). Všetky požiadavky používateľov začínajúc požiadavkymi na prístup do databázy, pridania nového súboru do databázy cez prácu so samotnými dátami až po vymazanie súboru z databázy, sú spracovávané SRBD. Systém riadenia bázy dát vytvára prostredie pre používateľov a aplikačných programátorov tak, aby mohli s databázou pracovať bez znalosti hardware, ktorý je použitý pre prevádzku databázového systému. 2.2.4 Používatelia Pri databázovom spracovaní uvažujeme nasledovné triedy používateľov:
- koncový používateľ
- DBA – databázový administrátor
2.3 Architektúra databázy
Základným východiskom pre aplikáciu databázových systémov je tzv. trojúrovňová architektúra definovaná v roku 1972 americkým národným výborom pre štandardy (ANSI/SPARC Group on Data Base Management Systems - American National Standards Committee on Computers and Information Processing / Standard Planning and Requirements Committee). Táto architektúra zavádza tri úrovne dátových štruktúr: konceptuálna logická a fyzická.
2.3.1 Konceptuálna úroveň
- reprezentuje celý informačný obsah databázy, ktorý by mal byť nezávislý ako na fyzickom riešení, tak aj na okamžitých potrebách používateľa. Konceptuálna úroveň je realizovaná vhodnou konceptuálnou schémou. Konceptuálnu schému možno tvoriť alebo tzv. podnikovým prístupom, ktorý je nezávislý na jednotlivých používateľských pohľadoch a mal by čo najvernejšie odrážať danú realitu systému, alebo tzv. integračným prístupom, kedy je zjednotením rôznych používateľských pohľadov na dáta. Hlavným nástrojom tvorby konceptuálnej schémy sú entitnorelačné diagramy.
2.3.2 Logická (Externá) úroveň
- predstavuje potreby a požiadavky používateľa. Je realizovaná pomocou externej schémy. Tá sa vyjadruje prostredníctvom jazyka, ktorý umožní používateľovi formulovať jeho logické požiadavky. Ide o kombináciu dvoch jazykov - tzv. Data Definition Language (DDL) a Data Manipulation Language (DML), pomocou ktorých používateľ deklaruje svoje dátové objekty a vzťahy medzi nimi a pomocou ktorých rieši svoje úlohy s týmito dátami. Pretože používateľov je spravidla viac a obvykle chcú pracovať s dátami z rôzneho pohľadu a s inými požiadavkami na ne, môže existovať viacej používateľských externých pohľadov. Pretože nie všetkých používateľov zaujíma všetko, jeden používateľský pohľad bude podmnožinou (subschémou) celej komplexnej štruktúry. Externá schéma závisí predovšetkým od požiadaviek používateľov. Zmena v používateľských pohľadoch by sa nemala prejaviť v zmene koncepčného modelu ale len programovou zmenou v mapovacom procese medzi externými pohľadmi (subschémami) a koncepčnou schémou.
- zaoberá sa problematikou fyzickej pamäťovej štruktúry uloženia dát – pamäťovými blokmi, stránkami, adresami, smerníkmi. Využíva vlastnosti konkrétneho SRBD, operačného systému a konkrétnej počítačovej štruktúry. Koncový používateľ s touto úrovňou prakticky neprichádza do styku, zaoberá sa ňou len administrátor databázy. Ak z nejakých dôvodov dôjde k zmene internej schémy (napr. zmenou počítačového systému alebo prechodom na iný operačný systém) nesmie sa to prejaviť v konceptuálnej úrovni. Prejaví sa to len v zmene funkcie transformačného mapovacieho procesu medzi konceptuálnou a internou schémou.
2.4 Požiadavky na databázu Na základe uvedeného je možné definovať základné požiadavky, ktoré kvalitný databázový systém musí zabezpečiť:
- oddelenie definície dát a príkazov na manipuláciu s nimi
- nezávislosť dát
- procedurálne a neprocedurálne rozhranie
- minimalizáciu redundandancie dát
- ochranu proti nekonzistencii dát
- zdieľanie dát
- bezpečný prístup k dátam
- integritu dát
2.4.1 Oddelenie definície dát a príkazov na manipuláciu s nimi Oddelenie definície dát od programov, ktoré manipulujú s týmito dátami je základnou myšlienkou, s ktorou vyšli databázové systémy. Ak máme nejakú množinu objektov v databáze, tak môžeme definovať základné operácie na manipuláciu s objektami. Každý objekt by mal byť popísaný pomocou objektového typu, ktorý popisuje spoločnú množinu vlastností týchto objektov. Tieto vlastnosti sa môžu stať operandami operácií nad touto množinou objektov. Môžeme si predstaviť množinu celých čísel {0,1,…,i,…}. Každý z týchto objektov je celočíselného typu (integer) a nad touto množinou môžme definovať dve operácie : pridaj a zruš. Z tohto príkladu je zrejmé, že databázový prístup rozlišuje medzi popisom dát a manipuláciou nad touto množinou. Čiže všetky objekty musia byť najprv popísané skôr ako budú vložené, modifikované alebo nakoniec zrušené z databázy.
Výhody tohto postupu sú nasledovné:
- kontrola objektového typu a štruktúry počas vykonávania operácií
- výber dát z databázy podľa typu objektu
- používanie rovnakých operácií pre rôzne množiny objektov
Nezávislosť delíme na:
- logickú – zmena dátového modelu by nemala ovplyvniť zmenu programu. Niekedy sa tomu však nedá vyhnúť, a to napr. keď rušíme z databázy nejakú tabuľku.
- fyzickú – zmena uloženia dát nesmie vplývať na zmenu programu. To znamená, že z hľadiska aplikačného programu nás vôbec nezaujíma, či sú dáta uložené v indexoch, B-stromoch, alebo sekvenčne. Rovnako na úrovni aplikácie nás nezaujímajú prístupové metódy k dátam.
2.5 Postup pri výstavbe databázy Proces výstavby databázy treba chápať ako dynamický a cyklický proces, ktorý je integrálnou súčasťou výstavby celého informačného systému. Vo všeobecnosti sa postupuje v nasledujúcich krokoch:
- 1. Analýza požiadaviek používateľov - zameriava sa na potencionálnych používateľov, ktorí k tomu boli vytypovaní ako výsledok všeobecnej analýzy informačných potrieb. Výsledkom analýzy požiadaviek je definovanie externej schémy (resp. externých schém).
- 2. Návrh konceptuálnej schémy databázy - navrhnutá schéma by mala byť nielen syntézou požiadaviek zákazníkov, ale byť aj obrazom reálneho sveta. Každý model predstavuje určitú abstrakciu reálneho sveta, ktorá vedie k vytvoreniu účelového modelu.
- 3. Návrh logickej štruktúry databázy - vychádza z konceptuálnej schémy, mal by však akceptovať externé pohľady budúcich používateľov. Treba brať do úvahy predovšetkým charakter úloh a používateľské prostredie. Pri návrhu logickej štruktúry je potrebné použiť vhodný dátový model.
- 4. Návrh fyzického interného modelu databázy - spravidla je určený vlastnosťami vybraného (prípadne už zakúpeného) štandardného SRBD. Bežný používateľ nemá žiadnu a správca databázy len obmedzenú možnosť rozhodovať o vnútornom usporiadaní záznamov na médiách a technikách prístupu k nim. Tu nás zaujímajú predovšetkým nároky na pamäť a celková efektívnosť práce.
- 5. Implementácia databázy - zahŕňa jej inštaláciu (t.j. oživenie príslušného SRBD) na konkrétnom počítačovom systéme. Toto úloha predovšetkým pre správcu databázy, ktorý musí konfigurovať databázové prostredie, definovať potrebné pamäťové priestory a určiť príslušné oprávnenia. Musí tiež preveriť základnú funkčnosť databázy.
- 6. Prvotné naplnenie bázy dát - predstavuje problémové miesto pri výstavbe databázy, pretože obvykle ide o veľký objem údajov, ktoré treba do databázy zadať v relatívne krátkom čase. Túto úlohu možno plniť viacerými spôsobmi :
- napĺňaním prázdnej databázy pri postupnom odlaďovaní jednotlivých funkcií celého informačného systému; ide o pomerne priaznivú situáciu, kedy sa pri ladení funkcií systému postupne zadávajú údaje do bázy dát,
- konverziou existujúcich dát už raz zozbieraných ale spracovávaných inými prostriedkami alebo nástrojmi, ktoré poskytuje samotný SRBD alebo konverznými programami špeciálne k tomuto účelu vytvorenými,
- špeciálnym zberom dát v realite v prípade, keď dáta ešte neboli zozbierané. Takýto zber dát je obvykle pomerne pracný a trvá dlhšie časové obdobie, čo spôsobuje problémy s nekonzistenciou dát (niektoré dáta zachytávajú stav tento mesiac, ďalšie až nasledujúci) - tento problém sa môže vyriešiť tzv. „zmrazením“ dát k určitému dátumu, pričom aktualizácia dát sa uskutoční po spustení databázy.
- 7. Overenie funkcie databázy - v tomto kroku sa postupuje prototypovým prístupom, t.j. najskôr sa overí základné funkčné jadro databázy pre informačné zabezpečenie niektorých používateľov alebo len niektorých ich potrieb a potom sa postupne rozširuje spektrum funkcií. Súčasne s tým prebieha školenie používateľov v práci s informačným systémom. Hlavným kritériom správnosti funkcie databázy musí byť stupeň uspokojovania informačných potrieb používateľov v rámci budovaného informačného systému a nie prevádzka databázového systému ako takého.
- 8. Prevádzkovanie informačného systému a jeho ďalší rozvoj - v tejto fáze je potrebné sledovať chod databázy a odhaľovať chyby, nedostatky a úzke miesta a odstraňovať ich. S rastom vyspelosti používateľov a rastom ich informačných potrieb a požiadaviek vzniká potreba rozširovať obsah databázy a jej funkcií.
2.6 Výhody DBS Výhody použitia DBS je nutné charakterizovať v porovnaní s tradičnou formou spracovania údajov. Potom najvýznamnejšie výhody môžeme charakterizovať ako:
- Kompaktnosť- dáta sú uložené elektronicky a nie je potrebné ich spracovávať z tradičných papierových dokumentov.
- Rýchlosť spracovania- ukladanie a vyhľadávanie požadovaných dát je rýchle.
- Dostupnosť- dáta sú prístupné na požiadanie v ľubovolnom čase a mieste s možnosťou zabezpečenia kontroly správnosti ukladaných údajov.
Výhody DBS sa prejavia hlavne v systémoch, ktoré umožňujú viacpoužívateľský prístup a v systémoch, ktoré obsahujú veľké množstvá spracovávaných údajov.
2.7 Databázové systémy – vývoj a prehľad 2.7.1 Systémy s dátami integrovanými v programoch Prvé počítače (50-te roky) pracovali s dátami tak, že samotné dáta boli súčasťou programu a používateľ musel do programu zahrnúť definíciu dát, samotné dáta ako aj algoritmy pre spracovanie týchto dát. Každý z týchto programov pracoval len s obmedzeným počtom dát. V 60-tych rokoch boli vytvorené systémy s monitorom a používateľ mohol pracovať s viacerými množinami dát. Dáta boli oddelené od programu, ale ich definícia bola súčasťou programu. 2.7.2 Súborové systémy Nárast spracovania dát a rozvoj operačných systémov viedol k vytvoreniu súborových systémov, ktoré pracovali ako súčasť operačného systému. Taktiež boli vyvinuté vyššie programovacie jazyky pre prácu so súbormi (PL/1, COBOL, FORTRAN77, …). V uvedených programoch bolo nutné definovať dáta ako súčasť aplikačných programov. Nevýhodou týchto systémov bolo, že nebola riadená redundancia, konzistencia dát atď. V minulosti a aj veľmi často v súčasnosti, sú súborové systémy súčasťou operačných systémov. Z hľadiska databázového spracovania architektúra súborových systémov predstavuje prechodné obdobie medzi centralizovanou a klient/server architektúrou. Tieto systémy využívajú lokálne počítačové siete s personálnymi počítačmi. Jeden z týchto počítačov, prípadne minipočítač, alebo mainframe slúži ako systém, na ktorom sú uložené dáta v súboroch, ktoré využívajú všetci používatelia lokálnej počítačovej siete. Operačný systém počítača pracujúci s týmito súbormi zaisťuje lokálny aj zdieľaný prístup k dátam na jeho diskoch, ale aj k iným zdielaným prostriedkom tohto počítača. Avšak jednotlivé aplikácie bežia na iných počítačoch, kam musia byť poslané dáta z centrálneho počítača. Vytvorenie tejto architektúry prinieslo väčšiu pružnosť a rýchlosť spracovania avšak za cenu zníženia bezpečnosti a integrity dát. Koncom 60-tych rokov vznikli prvé SRBD, ktoré boli centralizované, ale ich popis nebol súčasťou aplikačných programov. Dosiahlo sa takto nezávislosti dát od používateľských programov. Hlavnými reprezentantami sú: 2.7.3 Hierarchický databázový systém Tento databázový systém má dátový model definovaný pomocou množiny stromov a poskytuje operácie umožňujúce manipulovať s takýmito dátovými štruktúrami (prehľadávanie do hĺbky, do šírky, …). Reprezentantom týchto systémov je systém IMS od IBM (Information Management System). 2.7.4 Sieťový databázový systém Je založený na sieťovom dátovom modeli, kde sa vzťahy medzi objektami definujú pomocou smerníkov (lineárnych, alebo cyklických). Pre prácu s týmto systémom je definovaná množina operácií umožňujúca efektívnu manipuláciu. Avšak akákoľvek zmena v dátovom modeli, spôsobuje veľké problémy s udržaním konzistencie databázy (rovnako ako pri hierarchických systémoch). Hlavnou charakteristikou týchto systémov bolo, že boli striktne viazané na príslušný dátový model, ktorý definoval vzťahy medzi dátovými objektami. 2.7.5 Relačný databázový systém V 70-tych rokoch vznikajú relačné databázové systémy, ktorých hlavný rozvoj bol v 80-tych rokoch, ale ich vývoj pokračuje až dodnes. Hlavným prínosom týchto systémov je, že sú postavené na matematickej teórii množín s využitím relačnej algebry a kalkulu. 2.7.6 Objektový databázový systém V 90-tych rokoch vo väzbe na vývoj objektových jazykov vznikli OODBS, ktorých hlavným prínosom bolo zvýšenie úrovne abstrakcie dátového modelu. Jeho základnou vlastnosťou je možnosť enkapsulácie dátových objektov a definovanie metód pre každý objekt. Sú to systémy, ktoré sa využívajú hlavne v oblasti nasadenia systémov : • CAD/CAM • CIM • CASE • GIS • Dokumentografické systémy • ...
2.7.7 Objektovo – relačný databázový systém Tento systém spája výhody relačných a objektových systémov.
Ďalšie systémy s ktorými sa môžeme stretnúť sú:
• Textový databázový systém • Znalostný databázový systém • Expertný databázový systém