DBS -jaké jsou a jaké by mohly být
Computerworld92/15
DBS -jaké jsou a jaké by mohly být:
Zo systémového hľadiska je výhodné chápať niekteré postupnosti operácií nad databázov ako celok. Napr. SPRACOVANIE KNIŽKY došlej do knižnice môže znamenať uskutočnenie jej katalogizácie (vstup dát do relácie BELETRIA) a zahrnutie do prírastku (vstup dát do relácie EXEMPLÁR). Dané akcie tvoria tzv. transakciu (transaction). Transakcie se buď vykonjú celé, alebo sa neuskutočnia vôbec.
Transakcia zároveň slúži ako jednotka zotavenia z chýb (error recovery). Typickou chybou môže byť prerušenie prúdu, zrútenie systému alebo zničenie disku. Ak dôjde k chybe v priebehu spracovania transakcie pred potvrdením, že všetky zmeny databázy, ktoré transakcia má vykonať, sa skutočne premietli do databázy, je nutné uviesť databázu do pôvodného stavu pred začiatkom uskutočnenia transakcie. K tejto (obvykle automatickej) rekonštrukcii slúži špeciálny súbor – denník transakciií (log file) nazývaný taktiež žurnál (journal), kde sú všetky zmeny vykonávané transakciami zaznamenávané. Problémom je implementácia žurnálu, lebo aj ten obecne podlieha chybám.
Vo viacužívateľskom prostredí sa uskutočňuje paralelné spracovanie transakcií nad rovnakou databázou. To je efektivné vtedy, keď sú jednotlivé komponenty DBS dobre využité. Napr. zápis na disk môže prebiehať paralelne s nejakou inou akciou vo vnútornej pameti počítača. Stanovené poradie uskutočňovania akcií viacerých transakcií sa nazýva rozvrh (schedule). Aby bol rozvrh korektný, musí byť srovnateľný s nejakým rozvrhom, kde transakcie sú vykonávané za sebou tak, že ich akcie sa vykonávajú pohromade. Takéto rozvrhy se nazývajú sériové (serial). Rozvrh je potom usporiadateľný (serializable), ak po vykonaní všetkých akcií vedie k rovnakým výsledkom ako nejaký sériový rozvrh.
Zaistiť usporiadateľnosť je možné napr. uzamyknaním a odomyknaním databázových objektov. Uzamknúť (lock) je akcia, kterú vyvolá transakcia na objekte, aby ho uchránila pred prístupom od iných transakcií, odomknutie (unlock) je akcia uvolňujúca objekt pre spracovanie inými transakciami. Objekty uzamknutia môžu byť celé relácie alebo ich n-tice, ale i komponenty n-tic či vetvy B-stromu obsahujúceho indexy.