Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE



Podobné dokumenty
Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 4 DOPLNĚNÍ DAT A ALGORITMŮ MODULOVÉSCHÉMA

Algoritmizace a programování

PŘÍLOHA č. 2C PŘÍRUČKA IS KP14+ PRO OPTP - ZPRÁVA O REALIZACI

Algoritmizace a programování

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Soubory a databáze. Soubor označuje množinu dat, která jsou kompletní k určitému zpracování a popisují vybrané vlastnosti reálných objektů

účetních informací státu při přenosu účetního záznamu,

TÉMATICKÝ OKRUH TZD, DIS a TIS

Ovoce do škol Příručka pro žadatele

Tekla Structures Multi-user Mode

Objektově orientované databáze

Podrobný postup pro vygenerování a zaslání Žádosti o podporu a příloh OPR přes Portál farmáře

Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/

Distribuované algoritmy

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Konzistence databáze v nekonzistentním světě

Způsob hodnocení bezpečnostního programu prevence závažné havárie a bezpečnostní zprávy

2015/OKP/0692 SMLOUVA O POSKYTNUTÍ DOTACE MČ Praha 10. mezi těmito subjekty

Operace nad celými tabulkami

Návod k používání registračního systému ČSLH

Pokyny k vyplnění Průběžné zprávy

Metodika kontroly naplněnosti pracovních míst

Školní kolo soutěže Mladý programátor 2016, kategorie A, B

9. Transakční zpracování

4. Počítačová síť. Co je to počítačová síť

MOBILNÍ KOMUNIKACE STRUKTURA GSM SÍTĚ

NÁVOD K OBSLUZE. Obj. č.:

DATOVÉ SCHRÁNKY. Seminární práce z předmětu Information and communication policy

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

Veřejnoprávní smlouva o poskytnutí investiční dotace č. 1/2016

I. Základní pojmy a zkratky. - provedení koordinační funkční zkoušky EPS a navazujících zařízení,

Návod na zřízení datové schránky právnické osoby nezapsané v obchodním rejstříku

Manuál uživatele čipové karty s certifikátem

MAGIS ve strojírenské firmě Strojírna Vehovský s.r.o.

Seznámení žáků s pojmem makra, možnosti využití, praktické vytvoření makra.

TRANSFORMACE. Verze 4.0

Z A D Á V A C Í D O K U M E N T A C E k výzvě k podání nabídek

Kótování na strojnických výkresech 1.část

PALETOVÉ REGÁLY SUPERBUILD NÁVOD NA MONTÁŽ

ZPRÁVA O ZAHÁJENÍ REALIZACE PROJEKTU (dále jako ZZRP ) OPERAČNÍHO PROGRAMU LIDSKÉ ZDROJE A ZAMĚSTNANOST

Vzdělávací program pro obchodní partnery společnosti ROCKWOOL průvodce školením

ROZKLIKÁVACÍ ROZPOČET - ONLINE ZVEŘEJŇOVÁNÍ EKONOMICKÝCH DAT ÚŘADU

VI. Finanční gramotnost šablony klíčových aktivit

Všeobecné podmínky provozu sběrných míst kolektivního systému Eltma

ZADÁVACÍ DOKUMENTACE

Programování 1. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

Základní stavební prvky algoritmu

PŘÍLOHA Č. 9 PRAVIDLA PRO PROVÁDĚNÍ INFORMAČNÍCH A PROPAGAČNÍCH OPATŘENÍ. Řízená kopie elektronická Vydání: 1 Revize:0 Strana 1 z 11

Výzva pro předložení nabídek k veřejné zakázce malého rozsahu s názvem Výměna lina

S t ř e d o f r e k v e n č n í g e n e r á t o r HF1-VA5

Souborové operace Mgr. Josef Horálek

Programový komplet pro evidence provozu jídelny v modul Sklad Sviták Bechyně Ladislav Sviták hotline: 608/

Modul Řízení objednávek.

OBEC HORNÍ MĚSTO Spisový řád

Zvyšování kvality výuky technických oborů

Adresace paměti. 11.přednáška

Návod k obsluze. Programovací a zobrazovací přístroj PP2000. Mode/Enter

SMĚRNICE - OBĚH ÚČETNÍCH DOKLADŮ

Pokyny k instalaci FRIATRACE Verze 5.3

ORGANIZAČNÍ ŘÁD ŠKOLNÍ VÝLETY

SMLOUVA O DÍLO. Článek 1 Smluvní strany. Pivovarské náměstí 1245, Hradec Králové. Bc. Lubomírem Francem, hejtmanem Královéhradeckého kraje

AXIgo NÁVOD K OBSLUZE

1. Mění se lhůta pro podání nabídek a termín otevírání obálek

Předmětem řízení je výběr projektů pro rok 2015 v níže uvedených oblastech:

INFORMATIKA V CHOVECH PRASAT

VYR-32 POKYNY PRO SPRÁVNOU VÝROBNÍ PRAXI - DOPLNĚK 6

Generátor sítového provozu

Rozvojový projekt na rok 2012

Věc: VEŘEJNÁ ZAKÁZKA MALÉHO ROZSAHU NA STAVEBNÍ PRÁCE PRO AKCI: dodavatele k předložení nejvhodnější nabídky na výše uvedenou zakázku.

Benefit7 jak vyplnit projektovou žádost.

Příprava odborného pojednání Yvona Řepová

11. Působení stážistů a dobrovolníků

Obecně závazná vyhláška města Žlutice č. 2/2011 Požární řád obce

ZÁKLADNÍ POVINNOSTI DOPRAVCE I PRÁCI S DATY Z DIGITÁLNÍHO TACHOGRAFU

Školní řád. od

Integrita dat, hash, autenticita, šifrovací algoritmus a klíč

Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ

VÝZVA K PODÁNÍ NABÍDKY A PROKÁZÁNÍ SPLNĚNÍ KVALIFIKACE VÝBĚR DODAVATELE HW A SW PRO POČÍTAČOVOU UČEBNU A INTERAKTIVNÍ VÝUKU

4 Část II Základy práce v systému. 6 Část III Úvodní obrazovka. 8 Část IV Práce s přehledy. 13 Část V Kontakty. 19 Část VI Operativa

VNITŘNÍ ŘÁD ŠKOLNÍ DRUŽINY

PŘÍRUČKA K PŘEDKLÁDÁNÍ PRŮBĚŽNÝCH ZPRÁV, ZPRÁV O ČERPÁNÍ ROZPOČTU A ZÁVĚREČNÝCH ZPRÁV PROJEKTŮ PODPOŘENÝCH Z PROGRAMU BETA

Směrnice rektora č. 7/2014

Integrovaný Ekonomický Systém Zakázkový list - IES WIN 2006

ZADÁVACÍ DOKUMENTACE A POKYNY PRO ZPRACOVÁNÍ NABÍDKY

téma: Formuláře v MS Access

NÁVRHOVÝ PROGRAM VÝMĚNÍKŮ TEPLA FIRMY SECESPOL CAIRO PŘÍRUČKA UŽIVATELE

Vyvažování tuhého rotoru v jedné rovině přístrojem Adash Vibrio

Miroslav Kunt. Srovnávací přehled terminologie archivních standardů ISAD(G), ISAAR(CPF) a české archivní legislativy

Zadávání tiskových zakázek prostřednictvím JDF a Adobe Acrobat Professional

NEJČASTĚJI KLADENÉ DOTAZY K PUBLICITĚ PROJEKTŮ OP LZZ

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT. Cyklus while, do-while, dělitelnost, Euklidův algoritmus

Výzva k podání nabídek (zadávací dokumentace)

S B Í R K A O B S A H :

ČEZ Prodej, s.r.o., sídlem Duhová 425/1, 14053, Praha, IČ , zast. David Jünger, Mgr., sídlem 28. října 438/219, 70900, Ostrava

Žáci mají k dispozici pracovní list. Formou kolektivní diskuze a výkladu si osvojí grafickou minimalizaci zápisu logické funkce

Návod k montáži Ohřev odtoku vany kondenzátu Venkovní jednotka BWL-1S(B)-07/10/14 Strana 2 8

Radlice pro sněhové frézy, kultivátory a MF 70. Radlice VARES. Návod k používání (cz) 2

SO 01 STAVEBNÍ ÚPRAVY A INTER.ŘEŠENÍ PŘEDPROSTORU,ŠATEN,UMÝVÁREN A WC PRO MUŽE A ŽENY V BUDOVĚ 25M BAZÉNU

Organizační řád Č.j.: Spisový znak Skartační znak

Transkript:

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE 1

KONZISTENCE DATABÁZE Jedním z velkých nebezpečí při provozu IS je porušení konzistence databáze. Konzistence databáze je vzájemný soulad údajů v databázi. Konzistence databáze může být porušena vlivem špatného návrhu struktury databáze redundance nekonzistence (řeší datová analýza) chybnými funkcemi nad databází chybné údaje (řeší funkční analýza) během běhu aplikační úlohy vlivem systémové chyby HW nebo SW (řeší návrh implementace transakční analýza) během uložení na vnějším médiu (řeší návrh implementace zálohování databáze a změn) 2

Transakční analýza řeší možná porušení konzistence dat během běhu aplikační úlohy Příčiny: poruchy diskové paměti výpadky napětí a s tím spojená ztráta informací v operační paměti chybyhw chyby programového vybavení OS, SŘBD, IS Vznik: datové soubory se přenášejí mezi diskem a pamětí po blocích aplikační programy nad daty provádějí operace - čtou data z disku, někdy je modifikované zapisují zpět na disk, vše po blocích 3

read (X,PX) načítá databázovou hodnotu X do lokální proměnné PX; není-li blok s hodnotou X právě umístěn v paměti, provede se operací input (X) přesun bloku z disku do vyrovnávací paměti; hodnota X se z vyrovnávací paměti přenese do PX. write (X,PX) hodnotu lokální proměnné PX zapíše do databázové položky X ve vyrovnávací paměti; pokud blok, ve kterém je X umístěna, není v operační paměti, provede se nejprve operací input (X) jeho přesun z disku do vyrovnávací paměti; pak se provede přenos hodnoty proměnné PX do X. 4

Obě operace nevyžadují zápis na disk příkazem output (X). Blok s daty je na disk zapsán teprve v jednéz následujících situací: správce vyrovnávací paměti potřebuje v paměti místo pro jiný blok program končí práci s datovým souborem příkazem close, pak správce zapíše všechny bloky tohoto souboru na disk program dá příkaz k zápisu změn provedených z cache na disk (vynucený výstup) Operace output(x) nemusí bezprostředně následovat za write(x,px), protože v bloku, kde se X nalézá, mohou být umístěny další položky, se kterými chce program pracovat. Když dojde k chybě mezi operací write a output, ztratí se nová informace uložená v cache, dosud nezapsaná na disk. Řešení: IS musí být schopen chybu detekovat a vrátit se do stavu před výskytem chyby -obnovit hodnoty dat, pro kteréještě konzistence platila. 5

Příklad - algoritmus bankéře: V bance se jednoduchou operací převádí částka 100.-Kčz jednoho konta na druhé. program read(a,a) a:=a-100 write(a,a) output(a) read(b,b) b:=b+100 write(b,b) output(b) paměť a=500 a=400 b=500 b=600 porucha systému? databáze A=500, B=500 A=400, B=500 A=400, B=600 6

Za porušení konzistence zde považujeme stav, kdy součet A+B se změní. Dojde-li k poruše před první operací output, není porušena konzistence, jen integrita. To se dá vyřešit zopakováním celé transakce, až je chyba systému odstraněna. Dojde-li však k chybě mezi dvěma operacemi output, je porušena konzistence i integrita a přitom není možné celou operaci spustit znovu. 7

Řešení pomocí transakcí Transakcí nazýváme základní logickou jednotku zpracování, která pro zachování konzistence musí proběhnout buď celá, nebo se vrátit na začátek a později zopakovat. Transakce je tedy atomická, logicky nedělitelná operace. Metody zajištění transakcí mají společnou vlastnost: pracují s kopiemi dat tak dlouho, dokud není jasné, že transakce proběhla bezchybně celá, nebo že je nutné ji zopakovat. Databázové transakce mohou být složeny z vysokého počtu operací. Transakce se vždy týkají jen změn v databázi. 8

Metoda zpožděné aktualizace Výsledky transakce nezapisuje přímo do databázového souboru, ale do pomocného systémového souboru log. Pokud dojde při transakci k chybě, může se celá provádět znovu, protože původní data nebyla změněna. Přitom se obsah pomocného souboru začne vytvářet znovu, původní je ignorován. Skončí-li transakce úspěšně, obsah souboru log se překopíruje do skutečného datového souboru. Pokud by došlo k chybě při kopírování, může se spustit znovu tolikrát, dokud neskončí tato druhá etapa úspěšně. Operace, které je možno spouštět opakovaně, aniž by došlo k porušení konzistence dat, nazýváme operacemi typu redo. Původní transakce, která nebyla znovuspustitelná, se rozdělila na dvě znovuspustitelné části. Ty se opakují, dokud neproběhnou obě až do konce. 9

Příklad: program paměť log databáze A=500, B=500 1. read(a,a) a=500 a:=a-100 a=400 write(la,a) output(la) La=400 read(b,b) b=500 b:=b+100 b=600 write(lb,b) output(lb) La=400, Lb=600 2. read(la,a) write(a,a) output(a) A=400 read(lb,b) write(b,b) output(b) A=400, B=600 10

Metoda přímé aktualizace Provádí zápis do výsledného datového souboru přímo, avšak pro případ neúspěšného ukončení transakce si zaznamená do souboru log počáteční hodnoty před transakcí objektů (záznamů, tabulek), kterétransakce modifikuje. Skončí-li transakce úspěšně, obsah pomocného souboru log se ignoruje. Dojde-li v průběhu transakce k chybě, překopírují se z pomocného souboru původníhodnoty zpět do datového souboru. Operace, která obnoví původní hodnoty dat v souboru se nazývá operací typu undo a musí mít stejnou vlastnost jako operace redo, tj. že ji lze opakovat tak dlouho, dokud nebude provedena bez poruchy, anižby to mělo vliv na jejívýsledek. Oběma takovým operacím říkáme idempotentní operace. Obě metody používají systémový soubor log pro ukládání protokolu o průběhu transakcí, ty se dají využít i při obnově databáze ze záložní kopie. 11

Příklad: program paměť log databáze 1. read(a,a) A=500, B=500 write(la,a) a=500 output(la) La=500 a:=a-100 a=400 write(a,a) output(a) A=400 read(b,b) a=400, b=500 write(lb,b) output(lb) La=500, Lb=500 b=b+100 a=400, b=600 write(b,b) output(b) A=400, B=600 2. read(la,a) a=500 write(a,a) output(a) A=500 read(lb,b) a=500, b=500 write(b,b) output(b) A=500, B=500 12

13

Využití souboru log pro obnovu databáze pravidelné uchovávání kopií databáze uchovávání souboru log po havárii databáze provedení změn nad poslední kopií podle log kopie databáze kopie změny... havárie aktual obnova log čas 14

Metoda stínového stránkování k popisu uložení dat v databázi na disku dvě pomocné tabulky stránek. Bloky na disku označuje jako stránky a v tabulkách stránek jsou postupně diskové adresy bloků databáze. Před zahájením transakce mají obě pomocné tabulky stejný obsah -aktuální adresy obsazených stránek. Stínová tabulka zůstává stejná. Pokud se během transakce mění obsah některé stránky, nechá se na disku původní stránka beze změny a stránka s novým obsahem se zapíše na prázdné místo na disku. V aktuální tabulce stránek se změní odkaz na novou stránku, ve stínové tabulce odkazů zůstává odkaz na starou stránku. Skončí-li transakce bezchybně, platí aktuální tabulka a místo se starým obsahem stránky na disku se uvolní pro další použití. Skončí-li transakce poruchou, platí stínová stránka, která obsahuje odkazy na stránky před zahájením transakce. Uvolní se naopak stránky se změněnými hodnotami, transakce se může zopakovat. Problémem při tomto způsobu práce je evidence uvolněných stránek (garbage collection = sběr smetí) a uvolňování pro další použití. To zvyšuje složitost a režii celého systému. 15

Příklad: 16

Realizace v programu (v SŘBD podporujícím transakce)...... begin transaction begin work příkaz příkaz... transakce......... if ERROR then rollback if ERROR then rollbackwork else commit else commit work end transaction end work...... 17

Transakční analýza Příklad: algoritmus bankéře begintransaction read(a,a) a:=a-100 write(a,a) read(b,b) b:=b+100 write(b,b) if ERROR then rollback else commit end transaction 18

Transakční analýza Příklad: 1.1. příjem do skladu transakční analýza základ, XXX 1. Pro všechen přijatý materiál na faktuře dodavatele proveď begintransaction {před prvním databázovým příkazem} 2. zobraz seznam karet ze Sklad uživatel vybere kartu 3. zapamatuj Sklad.karta, Sklad.cenj a Sklad.mnoz 4. zobraz formulář příjmu pro vybranou kartu, uživatel vyplní karta : vybraná, opsáno ze Sklad, jen pro čtení název : opsáno ztabulky Sklad, jen pro čtení změna : =1 (příjem), bez editace datum : dnešní, možnost přepsat, kontrola na měsíc mnoz : >0 cenpri: >0 nebo NULL cizakaz : kontrola na existenci vzakázka nebo NULL cifak : kontrola na existenci ve Faktpnebo NULL 5. zapiš vyplněný formulář jako nový záznam do Pohyb 6. vypočti novémnožství ve skladu, cenu jedn -zprůměrovanou 7. modifikuj v záznamu Sklad.karta hodnoty Sklad.mnoza Sklad.cenj end transaction {po posledním databázovém příkazu} 8. Konec cyklu pro jeden materiál 19

Transakční analýza Příklad: 1.1. příjem do skladu transakční analýza po záznamech 1. Pro všechen přijatý materiál na faktuře dodavatele proveď begintransaction 2. zobraz seznam karet ze Sklad uživatel vybere kartu endtransaction 3. zapamatuj Sklad.karta, Sklad.cenj a Sklad.mnozdo pole PSklad 4. zobraz formulář příjmu pro vybranou kartu, uživatel vyplní karta : vybraná, opsáno ze Sklad, jen pro čtení mnoz : >0 cenpri : >0 nebo NULL 5. zapiš vyplněný formulář jako nový záznam do pole PPohyb 6. vypočti novémnožství ve skladu, cenu jedn -zprůměrovanou 7. modifikuj v poli PSklad.karta hodnoty Sklad.mnoza Sklad.cenj begintransaction 8. zapišnový záznam z Ppohyb do Pohyb 9. modifikuj záznam karty ve Sklad endtransaction 10. Konec cyklu pro jeden materiál 20

Transakční analýza Příklad: řešení bez přístupu uživatele uvnitř globální transakce 1. Pro všechen přijatý materiál na faktuře dodavatele proveď begintrans 2. zobraz seznam karet ze Sklad uživatel vybere kartu endtrans 3. zapamatuj Sklad.karta, Sklad.cenj a Sklad.mnozdo pole PSklad 4. zobraz formulář příjmu pro vybranou kartu, uživatel vyplní karta : vybraná, opsáno ze Sklad, jen pro čtení mnoz : >0 cenpri : >0 nebo NULL 5. zapiš vyplněný formulář jako nový záznam do pole PPohyb 6. vypočti novémnožství ve skladu, cenu jedn -zprůměrovanou 7. modifikuj v poli PSklad.karta hodnoty Sklad.mnoza Sklad.cenj 8. Konec cyklu pro jeden materiál begintrans 9. zapišnovézáznamy z PPohyb do Pohyb 10. modifikuj záznamy všech karet ze PSklad ve Sklad endtrans OK 21

KONZISTENCE DATABÁZE Malé SŘBD nepodporují transakce nemají prostředky pro obnovu aktuálního stavu báze pomocí log konstrukce elementárních funkcí IS nutně jako znovuspustitelné, jsou nutné vhodné techniky programování -elementární funkce jako znovuspustitelné v dávce = opět transakční analýza, programové řešení jiné -při zpracování uvnitř souboru provádět nevratné změny na kopii souboru (aritmetika, třídění) -připravovat předem bezchybné dávky dat pro dávkový vstup a modifikaci - častější zápis na disk interaktivně, třeba vynucený tyto postupy jsou náročnější na implementaci, zvětšují paměťové a časové nároky při běhu na IS, ale jsou bezpečné. 22

KONZISTENCE DATABÁZE Porušení konzistence dat ve vnější paměti ke ztrátě informace může dojít také na disku ochrana dat na vnějším médiu by měla být součástí každého IS základní metodou ochrany diskových dat je důsledné a pravidelné kopírování obsahu disku během ukládání nesmí být prováděny žádné transakce a uloženy musí být všechny informace, z nichž by bylo možno rekonstruovat databázi v případě poruchy (soubory log ap.). zničená data ve vnější paměti se zrekonstruují obnovením dat ze staré kopie a automatickým provedením všech modifikací ze souboru log větší SŘBD obsahují prostředky pro průběžný záznam modifikací databáze i pro obnovu databáze z její starší kopie; do IS se pomocí nich budují moduly pro zabezpečení ochrany dat. 23