INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
SYSTÉMY RIADENIA BÁZY DÁT Aplikačný program 1 Typ 1
algoritmus 1
Aplikačný program 2
dáta 1
Typ 2 algoritmus 2
dáta 2
Systém riadenia bázy dát SRBD
Databáza 1 Databáza 2 dáta 1.1 ......... dáta 1.x dáta 2.1 ......... dáta 2.y
.............
¾ Báza dát je množina dát organizovaných podľa jednotných princípov; dáta sú prístupné prostredníctvom funkcií programového systému - systému riadenia bázy dát. Tieto funkcie zahŕňajú : • definovanie bázy dát, •
vytváranie bázy dát,
•
aktualizáciu bázy dát,
¾ výber z bázy dát.dáta sú uložené v databáze, väčšinou centralizovane na jednom mieste, ¾ opis údajov nie je súčasťou používateľských programov, ¾ programy sú nezávislé od fyzického uloženia dát; v programoch sa objavujú nanajvýš logické opisy dát, ¾ oveľa menšia redundancie dát ako v systémoch riadenia súborov, ¾ lepšia konzistentnosť dát, ¾ jednotný prístup ku informáciám,
Spracované 17. októbra 2000
Fólia č. 1 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ ľahší vývoj informačného systému v aplikáciách, ktoré vyžadujú viac zdrojov, ¾ aplikačné programy môžu mať vlastné pohľady na dáta. ¾ báza dát je spoločná pre všetky aplikačné oblasti, ¾ každý aplikačný program užívateľa „vidí“ a má k dispozícii prostredníctvom svojej externej organizácie dát tú časť bázy dát, ktorá je preňho určená, ¾ interná organizácia dát je vytvorená pre celú bázu dát a poskytuje operácie a štruktúry dát priamo implementovateľné pomocou funkcií operačného systému. ¾ systémy riadenia bázy dát predstavujú implementačné programy pre celú triedu rôznych organizácií dát, ¾ výber konkrétnych organizácií dát z takejto triedy sa vykonáva pomocou špeciálneho definičného jazyka. ¾ Všeobecné programové vybavenie databázových systémov je prispôsobované implementácii konkrétnej konceptuálnej organizácie dát a externých organizácií dát prostredníctvom konkrétnej internej organizácie dát. ¾ Systém riadenia bázy dát je tvorený všeobecnými programami je dopĺňaný sústavou parametrov odvodených z príkazov definičného jazyka –parametre sú uložené v katalógoch databázových systémov. Obsah katalógov určuje, aké organizácie dát z triedy možných organizácií budú v danej banke dát existovať. ¾ Pomocou definičného jazyka sa obvykle stanovujú konkrétne štruktúry dát, pričom operácie nad dátami sú univerzálne, rovnaké pre všetky organizácie dát, ktoré vie daný SRBD implementovať.
Spracované 17. októbra 2000
Fólia č. 2 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Charakteristika systému riadenia bázy dát Nezávislosť bázy dát : ¾ Dáta sú prístupné na základe znalosti niektorej externej organizácie, sú nezávislé od aplikačných programov a prostredníctvom SRBD sa môžu podľa potreby využiť. ¾ Možnosť
nezávislého
vývoja
aplikačných
programov
a
dát.
Vývoj dát znamená zmenu rozsahu bázy dát, ale aj zmenu internej organizácie dát a spôsobu jej implementácie napríklad preto, aby bola optimalizovaná prevádzka databázových systémov.
¾ Zmena internej organizácie dát sa vykoná pomocou príkazov v definičnom jazyku, čím sa súčasne upravujú implementačné programy tak, aby konceptuálna organizácia mohla zostať nezmenená – ide o fyzickú nezávislosť dát. ¾ Pri nevyhnutných zmenách konceptuálnej organizácie možno zachovať nezmenené tie externé organizácie, ktorých sa zmena konceptuálnej organizácie priamo netýka – ide o logickú nezávislosť dát. ¾ V oboch prípadoch netreba robiť zmeny v aplikačných programoch využívajúcich dáta z bázy dát. Zdieľanie dát : ¾ Dáta uložené v báze dát využívajú všetky programy, ktoré s nimi pracujú ⇒ nie je potrebné získavať redundantné údaje a celkový objem dát sa zníži. ¾ určitá redundancia dát je žiadúca – redundantné údaje zrýchľujú prístup k dátam alebo zabezpečujú ochranu dát pred zničením ⇒ v databázových systémoch ide o riadenú minimálnu redundanciu dát v databáze. ¾ priaznivý vplyv na celkovú integrovanosť informačného systému: •
tie isté dáta sa používajú na viaceré účely,
•
nevznikajú náhodné rozdiely v hodnotách dát, ktoré mejú byť rovnaké;
•
po aktualizácii hodnoty je jej nová hodnota okamžite používaná vo všetkých aplikačných programoch.
Spracované 17. októbra 2000
Fólia č. 3 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Utajenie ¾ Funkcie utajenia umožňujú : •
kontrolovať prístup k dátam,
•
chrániť bázu dát pred zneužitím.
¾ Podľa dokonalosti utajovacích schém možno udeľovať a odnímať práva prístupu k jednotlivým zložkám bázy dát – k súborom, typom viet, položkám, výskytom viet, … ¾ Organizácia a riadenie utajenia v databázovom systéme je úlohou správcu bázy dát. Ochrana celistvosti bázy dát ¾ Celistvosť bázy dát = integrita – taký stav bázy dát, v ktorom sú dáta v plnom rozsahu prístupné a využiteľné v aplikačných programoch a pritom medzi hodnotami položiek súborov bázy dát platia vzťahy, ktoré boli stanovené, aby prispeli k zaručeniu sémantickej korektnosti bázy dát. • • •
SRBD poskytujú funkcie pre kopírovanie bázy dát alebo jej častí v správnom stave na záložné pamäťové médium a na spätné kopírovanie po narušení integrity bázy dát. Pre rozsiahle súbory – veľká časová náročnosť kopírovania – báza sa nemôže kopírovať príliš často ⇒ môže viesť k strate dát pochádzajúcich z operácií uskutočnených v čase od posledného kopírovania. Ak je riziko takýchto strát veľké, používajú sa jemnejšie kopírovacie procedúry – napr. použitie tzv. žurnálovej záložnej pamäti.
Náhodný prístup ¾ Agendové spracovanie – všetky požiadavky na výstupné informácie sú špecifikované vopred. Dodatočné požiadavky možno realizovať obtiažne. ¾ V databázovom systéme možno údaje využiť rôznym spôsobom aj pre náhodné, vopred nepredpokladané požiadavky. ¾ SRBD na realizáciu náhodných požiadaviek (napr. výber dát) poskytujú špeciálne užívateľské jazyky.
Spracované 17. októbra 2000
Fólia č. 4 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Časti systému riadenia bázy dát Databázové jazyky Podľa ich účelu a použitia : ¾ Definičný jazyk (data definition language – DDL) – vytvára alebo mení časti katalógu dát: • •
definuje štruktúru dát, stanovujú ďalšie atribúty databázového systému : − spôsob utajenia dát, − spôsob uloženia dát v pamätiach, − veľkosť vyrovnávacích pamätí, − počet súčasných užívateľov, − spôsob ochrany bázy dát pred stratou dát a pod.
¾ Manipulačný jazyk (data manipulation language - DML) – obsahuje všetky potrebné na styk so SRBD - vkladanie, výber a aktualizáciu viet dát. •
obvykle sa rieši tzv. hostiteľským spôsobom – jazyk je tvorený iba príkazmi rozširujúcimi možnosti konvenčného - tzv. hostiteľského jazyka.
•
techniky používané pri spracovaní príkazov DML v hostiteľskom počítači: 1. Použije sa štandardný príkaz CALL (ENTER) hostiteľského jazyka – ako parameter sa uvedie príkaz manipulačného jazyka. „Preklad“ príkazu volania príslušného programu SRBD uskutoční prekladač hostiteľského jazyka – napojenie aplikačného programu na SRBD. Nevýhody techniky : − strohá forma zápisu príkazov manipulačného jazyka – menej pohodlná pre programátorov, − komplikovaný spôsob ošetrenia chybových stavov zabezpečením potrebných návratových parametrov do príkazu CALL.
Spracované 17. októbra 2000
Fólia č. 5 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
2. Využitie predkompilácie v hostiteľskom jazyku – počas nej sa identifikujú príkazy rozširujúce hostiteľský jazyk a spracujú sa (kontrola syntaktickej a sémantickej korektnosti príkazov a ich nahradenie príkazmi hostiteľského jazyka). − Volanie funkcií SRBD príkazmi CALL alebo ENTER; − program sa v hostiteľskom jazyku rozšíri o deklaračné časti a príkazy a procedúry na ošetrenie chybových stavov. Táto technika je v súčasnosti najpoužívanejšia. 3. Vytvorenie nového kompilátora rozšíreného jazyka ⇒ možno dosiahnuť optimálne spracovanie programu z hľadiska možnosti detekcie poruchových stavov, väzieb databázových častí na ostatné časti programu, rýchlosti spracovania a pod. Táto technika je najnákladnejšia. ¾ Jazyk pre udržanie integrity dát (data integrity statements - DIS) – účelom je riadenie funkcií pre zabezpečenie integrity databázy. ¾ Jazyk pre riadenie prístupu (data access statements - DAS) – účelom je zvýšiť bezpečnosť databázy. Rieši : •
rozdelenie užívateľov do rôznych užívateľských skupín,
•
definovanie prístupových práv jednotlivým skupinám a užívateľom,
•
kontrolu práv prístupu užívateľov,
•
…
¾ Používateľské jazyky – určené pre užívateľov systému, ktorí spravidla nie sú programátormi. •
majú jednoduchú syntax, slová podobné prirodzenému jazyku, nepoužívajú procedurálne príkazy;
•
sú typické pre relačný dátový model;
•
hlavné použitie majú na výber (vyhľadávanie) dát; niektoré SRBD poskytujú užívateľské jazyky aj na aktualizáciu bázy dát.
•
prekladače užívateľských jazykov sú obvykle zložité programové prostriedky, ktoré tesne nadväzujú na realizáciu požiadavky (programu) v SRBD.
Spracované 17. októbra 2000
Fólia č. 6 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Nástroje na prácu s katalógom dát ¾ Katalóg dát – centrálna zložka databázového systému. Obsah katalógu je produktom práce prekladača definičného jazyka a po úspešnom preložení programu v definičnom jazyku sa obsah katalógu zmení. ¾ Rovnaký význam majú aj programy, ktoré prácu s katalógom zaisťujú. Ide o programy, ktoré majú na starosti napĺňanie katalógu a aktualizáciu jeho obsahu.
Výkonné programy ¾ realizujú jednotlivé funkcie SRBD : •
ukladanie, aktualizáciu a výber dát z bázy dát,
•
ochranu dát pred neoprávneným prístupom a zničením,
•
riadenie práce viacerých užívateľov s bázou dát súčasne,
•
kontrolu integrity bázy dát.
¾ vyvolávajú sa požiadavkami na realizáciu niektorej funkcie SRBD, ktoré vyplývajú z vykonania programov v manipulačnom jazyku alebo v užívateľskom jazyku; ¾ tvoria podstatnú časť SRBD; ¾ pri činnosti využívajú funkcie operačného systému počítača. Z hľadiska operačného systému sú výkonné programy buď normálne programy bez špeciálnych privilégií alebo majú možnosť využívať aj tie funkcie operačných systémov, ktoré sú vyhradené pre systémové programy.
Servisné programy ¾ určené predovšetkým pre správcu bázy dát ale aj pre užívateľov; ¾ funkcie servisných programov: •
pomáhajú pri návrhu bázy dát,
•
poskytujú informácie o stave databázového systému,
•
umožňujú riešiť niektoré štandardné situácie pri vytváraní bázy dát,
•
sú určené na reorganizáciu bázy dát,
•
realizujú ochranu bázy dát pred zničením a obnovu po poruche,
•
optimalizáciu výkonu databázového systému.
Spracované 17. októbra 2000
Fólia č. 7 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Zaistenie integrity bázy dát ¾ Integrita - celistvosť - bázy dát – taký stav bázy dát, v ktorom sú dáta v plnom rozsahu prístupné a využiteľné v aplikačných programoch a pritom medzi hodnotami položiek súborov bázy dát platia vzťahy, ktoré boli stanovené, aby prispeli k zaručeniu sémantickej korektnosti bázy dát. ¾ Stav bázy dát – daný hodnotami jej objektov. ¾ Zo všetkých možných stavov bázy dát sú pre užívateľa zaujímavé tie stavy, ktoré reprezentujú nejakú informáciu – sú odrazom možných situácií v reálnom svete – konzistentné stavy. ¾ SRBD poskytujú funkcie, pomocou ktorých možno zabrániť, aby dáta nadobudli iné ako konzistentné stavy: •
musia bázu dát udržiavať v prevádzkyschopnom stave,
•
musia chrániť bázu dát pred zničením,
•
v prípade poškodenia jej obsahu musia umožniť obnovenie bázy dát.
K narušeniu integrity bázy dát môže dôjsť viacerými spôsobmi: •
chybami technického vybavenia, napr. haváriou diskov,
•
zlyhaním základného programového vybavenia, napr. operačného systému počítača,
•
chybami v aplikačných programoch,
•
chybným zásahom obsluhy počítača,
•
chybami v dátach a pod.
Techniky používané na ochranu integrity bázy dát : •
techniky a metódy poskytované v rámci základného programového vybavenia počítačového systému na ochranu bežných súborov dát organizovaných prostriedkami operačného systému,
•
techniky a metódy vyvinuté špeciálne pre potreby databázových systémov.
Spracované 17. októbra 2000
Fólia č. 8 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Konvenčné metódy ochrany súborov ¾ sú určené na ochranu bežných súborov, ¾ sú podporované operačnými systémami alebo zvláštnymi servisnými programami základného programového vybavenia počítača. Viacnásobné kópie súboru ¾ súbor existuje vo viacerých kópiách (najčastejšie vo dvoch), •
kópie by mali byť umiestnené na rôznych pamäťových médiách (rôzne disky) a ak je to z hľadiska organizácie súboru možné, na rôznych typoch pamäťových médií;
•
každá zmena v obsahu súboru sa zaznamená do všetkých jeho kópií;
•
čítať možno z ľubovoľnej kópie.
¾ Nevýhoda : n-násobne vyššia spotreba pamäťového priestoru. Časové nároky na zápis možno minimalizovať, ak sú jednotlivé kópie súboru prístupné prostredníctvom samostatných kanálov. ¾ V SRBD sa táto metóda používa na ochranu takých súborov, ktoré majú kľúčový význam pre prácu systému, napr. na ochranu katalógov dát. Kopírovanie súborov ¾ Podstata metódy spočíva vo vytvorení kópie súboru. ¾ Pri zistení poruchy sa vykoná spätný proces - zo záložnej kópie sa obnoví pôvodný obsah súboru. Obnovená verzia nebude obsahovať zmeny, ktoré sa v súbore vykonali v čase od vytvorenia kópie po výskyt poruchy. ¾ Ak sa pre niektorý aplikačný systém vytvoria v určitom čase kópie všetkých jeho súborov – kontrolný bod. •
Pri poruche jedného alebo viacerých súborov možno obnoviť všetky súbory systému na stav v čase vytvorenia kontrolného bodu ⇒ v systéme budú obnovené aj všetky väzby medzi súbormi.
•
Kontrolný bod, kópia celej bázy dát k určitému termínu, zaručuje po výskyte poruchy návrat celej bázy dát do konzistentného stavu. Stratí sa však všetka informácia uložená do bázy dát medzi časom kontrolného bodu a výskytom poruchy.
Spracované 17. októbra 2000
Fólia č. 9 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
•
Spracoval Ing. Peter Nagy
Príliš častému vytváraniu kontrolných bodov bráni obvykle veľký rozsah bázy dát, pretože na vytvorenie kópie je potrebný dlhý čas.
¾ Kopírovanie súborov je najbežnejšou technikou ochrany dát a používa sa bežne aj v databázových systémoch. Viaceré verzie súboru ¾ podstata spočíva vo vedení viacerých (najčastejšie dvoch) verzií súboru. Ak sú k dispozícii dve verzie súboru A a B, verzia B sa modifikuje a verzia A zostáva bez zmien. V čase, keď už treba pracovať aj so zmenami, verzia B sa prepíše namiesto verzie A. ¾ technika redukuje využitie funkcií diskových pamätí, ¾ využíva sa len obmedzene. Inkrementálne kopírovanie ¾ po vykonaní kontrolného bodu sa označujú tie bloky súboru, v ktorých došlo ku zmene. Tieto bloky sú potom v kratších časových intervaloch kopírované na záložné médium, pričom sa rušia značky zmenených blokov. Št
Pi
So
Ne
Po
Ut
St
Št
Pi
So
Ne
Po
Ut
St
- inkrementálne kopírovanie - kontrolný bod
¾ najčastejšie sa používa v systémoch knižníc programov. Zaznamenávanie zmien ¾ používa sa v prípade databázových systémov založených na spracovaní tzv. transakcií; ¾ zmeny vykonané v súbore sa priebežne zaznamenávajú do súboru zmien. •
Zaznamená sa hodnota príslušnej časti súboru (obvykle bloku) pred zmenou a po jej vykonaní.
•
Súčasne sa zaznamenajú aj ďalšie údaje súvisiace so zmenou: časové údaje, údaje o pôvodcovi zmeny (program, ktorý zmenu realizoval) a pod.
Spracované 17. októbra 2000
Fólia č. 10 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ Súbor, do ktorého sa zaznamenávajú informácie o zmenách sa obvykle nazýva žurnálový súbor. •
obsahuje protokol o všetkých zmenách súboru, ktoré sa v ňom vykonali,
•
vedie sa od kontrolného bodu a poskytuje ochranu proti viacerým typom poškodenia súboru: − pri fyzickom poškodení sa môže obnoviť stav v kontrolnom bode a postupnou aplikáciou záznamov zo žurnálového súboru sa dosiahne obnovenie súboru až do stavu pred poruchou; − pri chybnej funkcii niektorého programu sa zo súboru môžu odstrániť všetky zmeny, ktoré tento program spôsobil (za predpokladu, že tieto zmeny nespracovali aj iné programy); − súbor možno vrátiť do stavu, v ktorom bol v určitom čase, atď.
¾ Žurnálový súbor sa môže viesť pre jeden alebo viac súborov. Kvôli zabezpečeniu proti poruchám sa môže viesť vo viacerých kópiách.
Spracované 17. októbra 2000
Fólia č. 11 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Ochrana transakcií ¾ Doteraz uvedené techniky ochrany integrity bázy dát chránia dáta v báze dát predovšetkým pred fyzickým zničením alebo poškodením, resp. umožňujú eliminovať následky takýchto porúch. ¾ V SRBD sú k dispozícii aj ďalšie funkcie, ktoré dovoľujú ochraňovať bázu dát pred operáciami, ktoré by viedli k nekonzistentným stavom. Napríklad ochrana pred operáciami, ktoré by viedli k tomu, aby hodnota nejakého objektu bázy dát vyšla zo stanoveného intervalu (napr. vek alebo výška nadobudnú zápornú hodnotu). Takéto operácie môže SRBD odmietnuť a informovať o tom aplikačný program.
Transakcia je postupnosť operácií nad objektmi bázy dát, ktorá realizuje jednu ucelenú operáciu z hľadiska užívateľa bázy dát. Príklad transakcie : „prevod X Sk z účtu Y na účet Z“. − v skutočnosti bude tvorená operáciami čítania, zápisu, súčtu a rozdielu obsahu rôznych premenných. ¾ Pri zabezpečovaní integrity bázy dát nás nebudú zaujímať stavy, ktoré báza dát nadobúda počas realizácie transakcie. Vtedy totiž môže byť nekonzistentná. ¾ Vyžadujeme, aby báza dát bola v konzistentnom stave po realizácii každej transakcie. ¾ Transakcia sa začína vykonaním prvého príkazu alebo špeciálnym príkazom (napr. BEGIN TRANSACTION). ¾ Môže sa skočiť úspešne alebo neúspešne. •
Pri úspešnom skončení sa zmeny, ktoré transakcia v báze dát spôsobila, stávajú platnými, záväznými - vykonal sa posledný príkaz transakcie (napr. END TRANSACTION) a všetky ďalšie operácie SRBD potrebné na to, aby sa zmeny v báze dát príslušným spôsobom zaznamenali a aby databázový systém bol pripravený na realizáciu ďalších transakcií.
Spracované 17. októbra 2000
Fólia č. 12 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
•
Neúspešne sa transakcia môže skončiť z viacerých dôvodov : − kvôli poruche technického vybavenia, − chybe programového vybavenia, − vinou iných transakcií, − dobrovoľným rozhodnutím vyjadreným príslušným príkazom transakcie (napr. ABORT TRANSACTION), − keď sa zistili okolnosti, kvôli ktorým transakcia nemôže pokračovať a pod.
•
Neúspešne ukončené transakcie sa nazývajú zničené, úspešne ukončené sa nazývajú potvrdené transakcie. Z hľadiska vykonávania transakcie je dôležitý okamih, odkedy ju možno považovať za potvrdenú, t.j. od ktorého okamihu sú zmeny, ktoré transakcia spôsobila záväzné. Tento okamih nazývame bod potvrdenia.
Transakcie majú tieto vlastnosti: •
z hľadiska vplyvu na bázu dát sú transakcie atomické - buď sa transakcia skončí úspešne a všetky ňou spôsobené zmeny sa stanú platné alebo sa skončí neúspešne a v báze dát nesmie zostať žiadna zmena ňou spôsobená;
•
realizáciou transakcie sa báza dát dostáva z konzistentného stavu opäť do konzistentného stavu – konzistentnosť (consistency);
•
transakcie musia byť nezávislé od iných transakcií – nezávislosť (independence);
•
transakciou sa môžu meniť hodnoty niektorých objektov bázy dát, počas vykonávania transakcie však hodnoty, ktoré transakcia mení, nesmú byť prístupné (viditeľné) pre iné súbežne bežiace transakcie;
•
zmeny uskutočnené počas transakcie sa najneskôr po jej skončení musia uložiť do databázy – trvanlivosť (durability).
Spracované 17. októbra 2000
Fólia č. 13 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ SRBD zariaďujú prevádzku databázového systému tak, aby transakčný model pracoval za všetkých okolností aj v prípade porúch ⇒ dosiahne sa integrita bázy dát i v podmienkach paralelnej práce viacerých transakcií. V prípade poruchy je potrebné zariadiť, aby: •
sa obnovilo čo najviac transakcií potvrdených pred poruchou,
•
v báze dát nezostali následky po žiadnej zničenej transakcii a po žiadnej transakcii, ktorá nebola do okamihu poruchy potvrdená.
Metódy ochrany transakcií ¾ technika zaznamenávania zmien do žurnálového súboru - základný prostriedok ochrany. Zaznamenávajú sa staré a nové hodnoty tých objektov bázy dát, ktoré sa menia operáciami transakcie. ⇒ záznamy umožňujú dva rôzne typy činnosti na zotavenie po poruchách: •
zopakovanie transakcie (REDO) – zmenu stavu bázy dát z východiskového do cieľového stavu tak, ako sa táto zmena vykonala vlastnou transakciou,
•
vycúvanie (UNDO) – z bázy dát sa odstraňujú dôsledky operácií úplne alebo čiastočne realizovanej transakcie.
Záznamy v žurnálovom súbore sa používajú aj pri bežnej činnosti databázového systému: napr. pri dobrovoľnom zničení už bežiacej transakcie sa použije žurnálový súbor na odstránenie už realizovaných zmien na objektoch bázy dát. Z hľadiska ochrany bázy dát existujú tri skupiny operácií nad objektmi bázy dát: • nechránené operácie – v prípade zničenia transakcie alebo rekonštrukcie hodnoty objektu nemusia byť zopakované alebo „vycúvané“ (napr. čítanie, diagnostické správy, zápisy do pracovných súborov, …), •
chránené operácie – v prípade zničenia transakcie alebo rekonštrukcie hodnoty objektu musia byť zopakované alebo „vycúvané“,
•
neodstrániteľné (tzv. reálne) operácie – ich následky sa nedajú po vykonaní technikami zotavenia odstrániť (napr. operácie na reálnych objektoch - expedícia výrobku, vyplatenie peňazí, …).
Spracované 17. októbra 2000
Fólia č. 14 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ Dvojfázové potvrdzovanie – platia pravidlá: •
transakcia nesmie meniť hodnoty objektov bázy dát skôr, ako je potvrdená,
•
transakcia nemôže byť potvrdená skôr, ako sa vytvoria príslušné záznamy v žurnálovom súbore.
•
Všeobecný postup metódy: 1. Transakcia zaznamená všetky zmeny do žurnálového súboru. 2. Keď sa podarí vykonať posledný záznam do žurnálového súboru, je transakcia potvrdená. 3. Nové hodnoty objektov sa prepíšu do bázy dát. 4. Ak sa vyskytne porucha pred potvrdením transakcie, nebudú po nej v báze dát žiadne stopy. 5. Ak sa vyskytne porucha po potvrdení transakcie, sú k dispozícii všetky záznamy v žurnálovom súbore, pomocou ktorých možno priradiť objektom, ktorých sa to týka, správne hodnoty.
•
Do žurnálového súboru je potrebné zaznamenať údaje o začatí a skončení transakcie a o prepísaní nových hodnôt objektov do bázy dát.
•
V žurnálovom súbore obvykle nie je potrebné uchovávať záznamy o starých stavoch objektov - vycúvanie nie je na obnovu po poruche potrebné.
•
Od začiatku transakcie T až po prepísanie posledného jej záznamu zo žurnálového súboru do bázy dát je potrebné urobiť objekty bázy dát, ktorých hodnoty sa budú meniť, neprístupnými pre iné transakcie objekty je potrebné na túto dobu uzamknúť v prospech transakcie T.
•
priraďovanie nových hodnôt objektom bázy dát až po skončení transakcie môže byť nevýhodou pri dlhotrvajúcich transakciách a v prostredí, v ktorom sa predpokladá pri spracovaní viacerých transakcií paralelná (súbežná) práca.
Spracované 17. októbra 2000
Fólia č. 15 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ Priamy zápis do bázy dát – zmeny objektov bázy dát sa zapisujú priamo na mieste (v báze dát). •
Predpokladá to vedenie žurnálového súboru so záznamami o hodnotách objektov pred a po príslušnej transakcii.
•
Ak to nenaruší integritu bázy dát, po priradení novej hodnoty objektu bázy dát, možno objekt uvoľniť pre iné - paralelne bežiace transakcie.
•
V prípade zničenia transakcie možno zreštaurovať konzistentný stav aplikovaním tých záznamov zo žurnálového súboru, ktoré umožňujú vycúvanie transakcie.
•
Po poruche, ktorá nastane po potvrdení transakcie, možno využiť záznamy v žurnálovom súbore na zopakovanie transakcie.
•
Problémy pri nedodržaní požiadavky transakčného modelu: „je prípustné, aby transakcie pracujúce paralelne s transakciou T mohli čítať objekty ovplyvňované transakciou T“ ⇒ po zničení transakcie T treba zničiť a vycúvať aj všetky transakcie, ktoré čítali objekty menené v T ⇒ do žurnálového súboru sa musia zaznamenávať aj informácie o prečítaní hodnôt objektov, ktoré sa menili inou, zatiaľ nepotvrdenou transakciou, aj záznamy o začatí a ukončení každej transakcie.
•
Zopakovanie transakcie aj jej vycúvanie musia byť procesy schopné obnovy. Pri vykonávaní vycúvania alebo opakovania transakcie môže dôjsť k poruchám, a preto je potrebné mať možnosť spustiť tieto operácie opäť. Systém ochrany transakcií musí zaistiť, aby sa pri obnove konzistentného stavu nemenili hodnoty objektov, ktoré majú správnu hodnotu. Táto požiadavka sa dá zaistiť napríklad pridelením čísiel označujúcich verziu príslušného objektu. Pri rekonštrukcii bázy dát sa potom menia len tie objekty, ktoré majú nižšie číslo verzie objektu, ako je číslo verzie v žurnálovom súbore.
Spracované 17. októbra 2000
Fólia č. 16 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Paralelná práca v databázových systémoch ¾ V rozsiahlych informačných systémoch je potrebné zabezpečiť súčasný prístup viacerých užívateľov k funkciám SRBD a podľa charakteru požiadaviek aj k tým istým dátam ⇒ pri aktualizačných operáciách musí byť implementované dodržiavanie určitých pravidiel pre prístup k dátam a ich modifikáciu. Predpoklady : •
transakcie sú korektné – po svojom úspešnom alebo neúspešnom ukončení nechávajú bázu dát v konzistentnom stave,
•
jednotlivé operácie v rámci transakcie sa vykonávajú buď sekvenčne, alebo tak, že koordinácia prípadných paralelných operácií vo vnútri transakcie je zabezpečená v rámci transakcie samotnej.
Príklad: Majme dve súbežne bežiace transakcie T1 a T2, ktoré sú tvorené rovnakými operáciami :
Transakcia T1, T2 : A:= READ (X); {prečítanie hodnoty objektu X bázy dát} A:= A + 5; WRITE (X,A); {priradenie novej hodnoty (A) objektu X} Možné sekvencie vykonania transakcií : T1
T2
T1
A:=READ (X)
A:=READ (X) A:= A + 5 WRITE (X,A)
A:=READ (X) A:= A + 5 WRITE (X,A) A:= A + 5 WRITE (X,A)
T2
T1
T2 A:=READ (X) A:= A + 5
A:=READ (X) A:=READ (X) A:= A + 5 WRITE (X,A)
WRITE (X,A) A:= A + 5 WRITE (X,A)
¾ počiatočná hodnota objektu X = 10, •
po prvom a treťom spôsobe súbežného vykonania transakcií T1 a T2 bude X = 15
•
po druhom spôsobe vykonania bude X = 20.
•
Správny výsledok je 20.
Spracované 17. októbra 2000
Fólia č. 17 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ Pri nekoordinovanom vykonávaní súbežných transakcií sa výsledok nedá predpokladať - je nedeterminovaný. ¾ Na odstránenie tohto nedeterminizmu je potrebné do SRBD zaviesť do vykonávania transakcií koordináciu, ktorá by zabezpečila, aby výsledok práce paralelne bežiacich transakcií viedol vždy ku korektným stavom bázy dát.
transakcia 2
Báza dát
SRBD
transakcia 1
RT
PLÁNOVAČ
RD
. . . transakcia n
¾ Pre zaistenie synchronizácie transakcií, musí mať SRBD moduly: •
modul riadenia transakcií – transakcie sa naň obracajú so žiadosťou o vykonanie operácie „prečítaj hodnotu X objektu bázy dát“ – READ (X) – a „zapíš novú hodnotu X do bázy dát“ – WRITE (X). Okrem toho transakcie vysielajú na začiatku a konci práce príkazy BEGIN TRANSACTION a END TRANSACTION.
•
modul riadenia dát – vykonáva v báze dát realizáciu čítania a zápisu hodnoty objektov v báze dát podľa požiadavky plánovača a o výsledku podáva plánovačovi správu a hodnotu prečítaného objektu alebo správu o výsledku zápisu do bázy dát.
•
Plánovač – zabezpečuje synchronizáciu požiadaviek viacerých transakcií z RT a jednotlivé požiadavky zaraďuje do plánov vykonania operácií - tzv. rozvrhov (schedule).
Spracované 17. októbra 2000
Fólia č. 18 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
¾ Rozvrh pre množinu transakcií – poradie, v ktorom sa operácie transakcií realizujú. •
Ak nedovolíme vzájomné prelínanie operácií rôznych transakcií – sériový rozvrh – také poradie vykonávania ich operácií, že všetky operácie každej transakcie sa vykonávajú bezprostredne za sebou. − sériové rozvrhy zabezpečujú integritu bázy dát po skočení každej, a teda aj všetkých transakcií.
¾ Cieľom SRBD je okrem zabezpečenia integrity umožniť čo najväčší stupeň paralelného vykonávania operácií ⇒ zvyšuje sa celková priechodnosť systému. •
Sérializovateľný rozvrh množiny transakcií – taký rozvrh, po ktorého vykonaní sa dosiahne rovnaký výsledok (stav bázy dát) ako po vykonaní sériového rozvrhu tejto množiny transakcií. − zaisťuje takú integritu bázy dát, ako sériový rozvrh.
Spracované 17. októbra 2000
Fólia č. 19 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Príklad: Budeme realizovať transakciu „prevod X Sk z účtu Y na účet Z“ postupnosťou operácií: A:= READ (Y); A:= A-X; WRITE (Y,A); A:= READ (Z); A:= A+X; WRITE (Z,A); Transakcie budeme vykonávať s týmito hodnotami : •
Transakciu T1 : X=50, Y=UA, Z=UB,
•
Transakciu T2 : X=100, Y=UB, Z=UA
Možné rozvrhy transakcií: Rozvrh I T1 A:=READ (UA) A:=A-50 WRITE (UA,A) A:=READ (UB) A:=A+50 WRITE (UB,A)
Rozvrh II T2
T1
Rozvrh III T2
A:=READ (UA) A:=A-50 WRITE (UA,A)
T1
T2
A:=READ (UA) A:=A-50
A:=READ (UB) A:=READ (UB) A:=A-100 A:=A-100 WRITE (UA,A) WRITE (UB,A) A:=READ (UB) A:=READ (UB) WRITE (UB,A) A:=READ (UB) A:=A+50 A:=READ (UA) A:=A-100 WRITE (UB,A) A:=A+50 WRITE (UB,A) A:=READ (UA) WRITE (UB,A) A:=READ (UA) A:=A+100 A:=A+100 A:=A+100 WRITE (UA,A) WRITE (UA,A) WRITE (UA,A)
Súčet stavov účtov UA a UB po vykonaní transakcií T1 a T2: UA + UB 9 sériový rozvrh
UA + UB 9 sérializovateľný rozvrh
UB + UB
Úlohou plánovača je riadiť sled vykonávania operácií súbežných transakcií tak, aby rozvrh operácií týchto transakcií bol sérializovateľný.
Spracované 17. októbra 2000
Fólia č. 20 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Zamykanie ¾ Princíp zamykania objektov – zneprístupnenie objektov v priebehu vykonávania transakcie pre iné transakcie. ¾ Ak je objekt bázy dát zamknutý (t.j. vyhradený, rezervovaný) pre transakciu T, nemá k nemu okrem tejto transakcie prístup žiadna iná transakcia – t.j. nemôže jeho hodnotu čítať alebo zmeniť. ¾ Transakcie môžu objekty zamykať pomocou operácie LOCK (objekt bázy dát) a odomykať pomocou operácie UNLOCK(objekt bázy dát). ¾ Aby ochrana pomocou zamykania objektov bola korektná, musíme predpokladať, že každá transakcia je naprogramovaná podľa týchto zásad : •
pred operáciami READ a WRITE príslušné objekty zamkne,
•
nepokúsi sa zamknúť objekt, ktorý už zamkla,
•
pred ukončením všetky zamknuté objekty odomkne.
¾ Zamykanie a odomykanie riadi plánovač, ktorý zamknutie objektu povolí, alebo, ak už je objekt zamknutý, zdrží vykonanie nového príkazu LOCK, až pokiaľ transakcia, ktorá objekt zamkla objekt neodomkne príkazom UNLOCK. V prípade zničenia transakcie plánovač odomkne všetky objekty, ktoré boli pre túto transakciu zamknuté. Dvojfázové zamykanie ¾ Samotné zamykanie rozvrhov však nezaručí sérializovateľnosť rozvrhov. Príklad: Majme dve transakcie T1 a T2. Pre zjednodušenie sú príkazy READ zlúčené s príkazmi LOCK a WRITE s príkazmi UNLOCK. T2: LOCK (B); T1: LOCK (A); LOCK (B); B:=2*B; B:=A+B; UNLOCK (B); A:=A-B; LOCK (A); UNLOCK (B); A:=A+1; UNLOCK (A); UNLOCK (A); Pre začiatočné hodnoty objektov A=1 a B=1 dostaneme vykonaním najprv jednej a potom druhej transakcie tieto konečné hodnoty: •
ak T1 predchádza T2: A = 0, B = 4,
•
ak T2 predchádza T1: A = -2, B = 4.
Spracované 17. októbra 2000
Fólia č. 21 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Dva možné rozvrhy transakcií Rozvrh I T1 LOCK (A) LOCK (B) B:=A+B A:=A-B UNLOCK (B)
Rozvrh II T2
T1 LOCK (A)
T2 LOCK (B) B:=2*B UNLOCK (B)
LOCK (B) UNLOCK (A) B:=2*B UNLOCK (B) LOCK (A) A:=A+1 UNLOCK (A) Konečné hodnoty : A=0 B=4 9 sérializovateľný rozvrh
LOCK (B) B:=A+B A:=A-B UNLOCK (B) UNLOCK (A) LOCK (A) A:=A+1 UNLOCK (A) A = -1 B=3
¾ Sérializovateľnosť rozvrhov je zaručená dvojfázovom zamykaní, pri ktorom sú dodržané tieto pravidlá : •
objekt bázy dát môže byť v každom čase zamknutý iba pre jednu transakciu,
•
ak transakcia odomkla aspoň jeden objekt, nesmie už žiadny objekt zamknúť.
¾ Transakcie zamykajú a odomykajú objekty dvojfázovo: •
v prvej fáze zamykajú objekty bez toho, aby čo i len jeden odomkli,
•
v druhej fáze, v ktorej žiadny objekt nesmú zamknúť, objekty postupne odomykajú.
•
dvojfázové zamykanie sa často realizuje tak, že transakcie odomknú zamknuté objekty až tesne pred ukončením.
¾ Postup (systém) zamykania a odomykanie objektov v rámci transakcie je daný v protokole zamykania. Pri transakciách, ktoré dodržujú protokol dvojfázového zamykania, je zaručená ich sérializovateľnosť. Spracované 17. októbra 2000
Fólia č. 22 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Uviaznutie ¾ Zamykanie môže viesť k problému nazývanému uviaznutie (deadlock). Príklad: Majme dve transakcie T1 a T2 : T2: LOCK(B); T1: LOCK(A); READ(A); READ(B); LOCK(B); LOCK(A); READ(B); READ(A); UNLOCK(A); UNLOCK(A); UNLOCK(B); UNLOCK(B); a tento rozvrh:
1 2 3 4 5 6 7 8 9 10 11 12
T1 LOCK(A);
T2 LOCK(B);
READ(A); READ(B); LOCK(B);
Uviaznutie
LOCK(A); READ(B); UNLOCK(A); UNLOCK(B); READ(A); UNLOCK(A); UNLOCK(B);
¾ Problém uviaznutia sa vyskytuje a rieši aj pri návrhoch operačných systémov. Metódy riešenia: •
periodické sledovanie systému, v prípade zistenia uviaznutia zrušenie jednej požiadavky – zničením príslušnej transakcie a jej opätovným vykonaním.
•
vyšším stupňom koordinácie v systémoch – transakcie zamykajú objekty v poradí rešpektujúcom nejaké lineárne usporiadanie definované nad týmito objektmi (dané napríklad abecedným usporiadaním nad menami objektov)
Spracované 17. októbra 2000
Fólia č. 23 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Časové pečiatky ¾ Časová pečiatka – číslo priradené transakcii alebo objektu bázy dát. •
pridelené ČP tvoria rastúcu postupnosť – obyčajne sú funkciou času;
•
SRBD hodnotu časovej pečiatky určia pri využití funkcie TIME – realizujú operačné systémy;
•
ČP prideľuje transakcii modul riadenia transakcií a je platná pre všetky jej operácie;
•
ČP využíva plánovač, aby pomocou nich riadil vykonávanie konfliktných operácií čítania a zápisu.
¾ O dvoch operáciách hovoríme, že sú konfliktné, ak sa obidve týkajú toho istého objektu bázy dát a aspoň jedna z nich je operáciou zápisu (WRITE). ¾ Princíp práce plánovača založeného na časovej pečiatke spočíva v tom, že všetky páry konfliktných operácií treba vykonať v poradí ich ČP. Základný plánovač s využitím časových pečiatok ¾ registruje pre každý objekt bázy dát najväčšiu ČP, ktorú mala operácia READ čítajúca hodnotu tohto objektu a najväčšiu ČP operácie WRITE – pre objekt X označme tieto ČP ako R/ČP(X), resp. W/ČP(X). ¾ Činnosť plánovača po prijatí požiadavky (s ČP = čp) na prečítanie hodnoty objektu X: •
ak čp < W/ČP(X) – odmietne požiadavku a zničí transakciu, ktorá ju vyslala,
•
ak čp ≥ W/ČP(X) požiadavke vyhovie a aktualizuje : R/ČP(X) := max (čp R/ČP(X)).
¾ Činnosť plánovača po prijatí požiadavky WRITE(X) s nejakým čp: •
ak čp < W/ČP(X) or R/ČP(X), odmietne požiadavku a zničí transakciu, ktorá ju vyslala,
•
inak realizuje požiadavku a aktualizuje : W/ČP(X) := čp.
¾ Zničené transakcie sa spustia znovu s novou (vyššou) časovou pečiatkou.
Spracované 17. októbra 2000
Fólia č. 24 (celkom 25)
INFORMAČNÉ SYSTÉMY Prednáška 5 Systémy riadenia bázy dát
Spracoval Ing. Peter Nagy
Thomasov plánovač ¾ Znižuje pravdepodobnosť odmietnutia transakcií typu WRITE. ¾ Vychádza zo skutočnosti, že keď má operácia WRITE nižšiu (staršiu) časovú pečiatku ako už realizovaná operácia WRITE nad tým istým objektom a novú hodnotu tohto objektu ešte nikto neprečítal, môžeme ju ignorovať, pretože by priradila objektu bázy dát medzitým zastaralú hodnotu. ¾ Operácie READ realizuje rovnako ako základný plánovač. ¾ Operácie WRITE(X) s nejakou čp spracuje takto: •
ak čp < R/ČP(X) – požiadavku odmietne a zničí transakciu, ktorá ju vyslala,
•
ak čp < W/ČP(X) – predstiera pred modulom riadenia transakcií, že požiadavku úspešne realizoval, ale do modulu riadenia dát nepošle príslušný príkaz na zápis,
•
inak akceptuje WRITE a aktualizuje W/ČP(X) := čp.
Spracované 17. októbra 2000
Fólia č. 25 (celkom 25)