10. Transakce, řízení konkurenčních přístupů.

Rozměr: px
Začít zobrazení ze stránky:

Download "10. Transakce, řízení konkurenčních přístupů."

Transkript

1 10. Transakce, řízení konkurenčních přístupů. Jedním kritériem klasifikace databázových systémů je počet uživatelů, kteří současně využívají systém. Jednouživatelský systém SŘBD - v daném okamžiku může nejvýše jeden uživatel používat systém. Víceuživatelský systém SŘBD - současné užívání systému více uživateli najednou (letecké rezervační systémy, bankovní a pojišťovací systémy ) Poznámka: Díky koncepci multiprogramování, která dovoluje spustit na počítači více programů najednou, může obecně také více uživatelů používat počítačový systém, v tomto případě se ovšem jedná o sdílení procesoru (CPU), kdežto v případě SŘBD jde především o sdílení dat Transakce Posloupnost operací, které se chápou jako nedělitelný celek tj. buďto úspěšně proběhnou všechny operace nebo se vše vrátí do původního stavu (všechno nebo nic). Databázová transakce se chápe jako vykonání programu, který přistupuje či mění data uložená v databázi. Použití transakcí Řízení konkurenčních přístupů Obnova (rekonstrukce dat) Zajištění datové konzistence zajištění korektního provedení posloupnosti závislých operací s daty V souvislosti s prováděním transakcí a řízením konkurenčních přístupů k datům a obnově (rekonstrukci, záchraně) dat se nyní budeme zabývat transakcemi na úrovni datových položek a diskových bloků Operace v transakcích read_item(x) - načte databázovou položku X do programové proměnné. Pro zjednodušení předpokládejme, že příslušná programová položka se jmenuje také X write_item(x) - zapíše hodnotu programové proměnné X do databázové proměnné X Základní jednotkou přenosu dat mezi diskem a pamětí je pochopitelně jeden blok. Obecně datová položka: jedna položka z nějakého záznamu databáze celý záznam celý blok Provedení operace read_item(x) zahrnuje následující kroky: 1. Najít adresu diskového bloku obsahujícího položku X 2. Nakopírovat tento blok do bufferu (za předpokladu, že už tam jmenovaný blok není uložen) 3. Nakopírovat položku X do příslušné programové proměnné

2 Provedení operace write_item(x) zahrnuje tyto kroky: 1. Najít adresu diskového bloku obsahujícího položku X 2. Nakopírovat tento blok do bufferu (za předpokladu, že už tam jmenovaný blok není uložen) 3. Nakopírovat položku X z programové proměnné na správné místo do bufferu 4. Uložit aktualizovaný blok z bufferu zpět na disk (buď okamžitě, nebo až později) Čtvrtý krok aktualizuje databázi na disku. Pokud není bezprostředně uložen blok na disk, může dojít ještě k dalším změnám v bufferu. Rozhodnutí, zda provést zpětné uložení bloku na disk okamžitě či později, záleží na operačním systému nebo na manažeru (správci) transakcí. Transakce může zahrnovat jak operace read_item, tak i operace write_item. Řízení konkurenčního přístupu a obnovující (rekonstruující) mechanismus se hlavně zaměřuje právě na ty příkazy v transakcích, které realizují přístup do databáze. Transakce prováděné různými uživateli mohou být prováděny současně a mohou přistupovat a aktualizovat tytéž databázové položky. Pokud by nebyl tento konkurenční přístup regulován, mohlo by to vést k takovým problémům, jako je např. nekonzistence databáze. Pokud transakce neprovádí žádné aktualizace dat, ale jen výběr údajů z databáze, pak hovoříme o read-only transakci. Příklad 10.1: Transakce T 1 Transakce T 2 read_item(x) ; read_item(x) ; X := X - N ; X := X + M ; čas write_item(x) ; write_item(x) ; Y := Y + N ; write_item(y) ; Na uvedeném příkladu jednoduchých transakcí si ukážeme problémy, které mohou nastat, pokud budou tyto transakce probíhat nekontrolovaným způsobem. Představme si, že uvedený problém se týká rezervace letenek v jednoduchém leteckém rezervačním systému, kdy každý záznam obsahuje kromě jiných informací počet rezervovaných sedadel na určitý let. Uvažovaná transakce T 1 by tedy zrušila rezervaci N míst na určitý let X a tentýž počet míst by rezervovala pro jiný let Y. Transakce T 2 pouze rezervovala M míst na první let X, na který se ovšem obracela i transakce T 1. Pro zjednodušení situace se pochopitelně nezabýváme otázkou, zda je uvedený počet míst k dispozici.

3 Problémy Ztráta aktualizovaných dat Problém dočasné aktualizace (tzv. nečisté čtení dirty read) Problém nesprávného součtu Problém neopakovatelného čtení Ztráta aktualizovaných dat Tento problém se vyskytne, pokud dvě (obecně více) transakcí přistupují ke stejným datovým položkám tak, že dílčí operace transakcí se provádějí prokládaně, což způsobí, že hodnoty některých datových položek jsou chybné. Příklad 10.2 : Ztráta aktualizovaných dat T 1 T 2 read_item(x) X := X N ; čas write_item(x) ; Y := Y + N ; write_item(y) ; provedenou v T 1 read_item(x) ; X := X + M ; write_item(x) ; hodnota X je chybná, neboť transakce T 2 přepsala aktualizaci Předpokládejme výchozí hodnoty X = 80, N = 5, M = 4. Konečná hodnota X by měla být X = 79, ale podle výše uvedeného schématu vychází 84. Problém dočasné aktualizace Tento problém nastane, pokud jedna transakce provede aktualizaci datové položky a poté tato transakce z nějakého důvodu selže (nedokončí se). Vzápětí mohou být aktualizovaná data čtena jinou transakcí, aniž došlo k jejich změně na původní hodnotu, (což by se mělo provést, neboť transakce neproběhla korektně - nebyla dokončena). Tj. jiná transakce čte vlastně špinavá data, která byla zapsána nedokončenou a nepotvrzenou transakcí.

4 Příklad 10.3: Dirty read T 1 T 2 read_item(x) X := X N ; write_item(x) ; čas read_item(x) ; X := X + M ; write_item(x) ; hodnota X je chybná, neboť transakce T 1 změnila hodnotu X, se kterou poté pracovala T 2, přičemž T 1 pak ale selhala, takže T 2 pracovala s nečistými daty selhání!! Problém nesprávného součtu Pokud jedna transakce provádí nějaké agregační výpočty zpracovávající hodnoty v záznamech, zatímco jiná transakce aktualizuje hodnoty z některých sumarizovaných záznamů, může dojít k tomu, že budou sečteny některé hodnoty aktualizované s jinými dosud neaktualizovanými. Příklad 10.4: Chybný součet T 1 T 3 čas read_item(x) ; X := X - N ; write_item(x) ; sum := 0 ; read_item(a) ; sum := sum + A ; Y := Y + N ; write_item(y) ; read_item(x) ; sum := sum + X ; sum := sum + Y ; hodnota sum je chybná, neboť v součtu jsou zahrnuty některé položky již aktualizované a jiné neaktualizované Problém neopakovatelného čtení Jedna transakce může opakovaně číst určitou datovou položku, zatímco jiná transakce provede změnu této položky mezi těmito dvěmi čteními, takže se vlastně pokaždé přečte jiná hodnota Žádoucí vlastnosti transakcí ACID atomicita (Atomicity) - transakce je atomická nedělitelná jednotka

5 schopnost zachovat konzistenci (Consistency) databáze transakce musí převádět databázi z jednoho konzistentního stavu do druhého izolace (Isolation) změny, které transakce provádí, jsou izolovány od ostatních transakcí, jsou neviditelné, dokud nejsou schváleny trvanlivost (Durability) jakmile transakce provede změny a tyto jsou potvrzeny, nemůže nikdy dojít k jejich ztrátě změny trvají Stupeň izolace transakcí 0. transakce nepřepíše "dirty read" transakci s vyšším stupněm 1. transakce nemá ztracené aktualizace 2. stupeň 0 a stupeň 1 dohromady 3. pravá izolace oproti stupni 2 nemá problémy s opakovaným čtením Obnovovací systém SŘBD je při provádění transakcí zodpovědný za kompletní úspěšné provedení všech operací trvalý zápis všech změn do databáze Nastane-li chyba transakce se vůbec neprovede tj. všechny operace a data jsou vrácena do původního stavu, ať se stane cokoliv SŘBD nesmí dopustit, aby se některé operace na datových položkách provedly, zatímco jiné neproběhnou. zásada "všechno nebo nic" Druhy chyb 1. Selhání počítače (system crash) - hardwarová či softwarová chyba během provádění transakce. V řadě případů je ztracen obsah operační paměti. 2. Transakční či systémová chyba - některé operace v transakci mohou způsobit selhání transakce - např. dělení nulou, přetečení v pevné řádové čárce, chybné parametry (i typy), logická chyba programu. 3. Lokální chyby nebo nesplnění podmínek nutných pro korektní průběh transakce - během provádění transakce může nastat taková situace, že je nezbytné transakci zrušit - např. nebyl nalezen soubor s daty, v bankovních transakcích není dostatečná částka na účtu klienta, takže není možné provést převod peněz z jednoho účtu na druhý. Toto zrušení transakce se dá provést programově příkazem ABORT. 4. Chyba vynucená řízením konkurenčního přístupu - transakce může být přerušena a později odstartována, protože narušuje tzv. pravidlo sériovosti transakcí nebo některé transakce jsou ve stavu dead-lock. 5. Disková chyba - došlo k chybě při čtení či zápisu bloku na disk např. z důvodů selhání (zničení) čtecí/záznamové hlavy 6. Fyzikální problémy a katastrofy - nekonečný seznam problémů, které zahrnují výpadek proudu, selhání klimatizace, požár, krádež, sabotáž, omylem přepsaná či smazaná data...

6 Chyby 1-4 jsou častější, takže systém musí uchovávat dostatek informací k možnému obnovení - vzpamatování se z chyby Transakční stavy a další operace Transakce je atomická (základní) jednotka, která se buďto provede celá, nebo se vůbec neprovede. Pro účely rekonstrukce systém sleduje start transakce, její ukončení, potvrzení (odeslání) nebo přerušení. BEGIN_TRANSACTION - značka zahájení provádění transakce READ nebo WRITE - čtení nebo zápis datových položek END_TRANSACTION - tato operace signalizuje, že došlo k ukončení operací READ a WRITE a zaznamenává ukončení transakce. V tomto momentu by bylo nutné zkontrolovat, zda změny představované transakcí se trvale promítly do databáze (odevzdání transakce) nebo zda se má transakce přerušit, protože je narušen konkurenční přístup nebo nastaly jiné důvody vynucující si přerušení transakce. COMMIT_TRANSACTION - signál úspěšného ukončení transakce všechny změny provedené transakcí byly úspěšně provedeny a zaznamenány do žurnálu, a tedy mohou být bezpečně zaznamenány do databáze a nic se nemusí vracet. ROLLBACK (ABORT) - signál neúspěšného ukončení transakce, takže vše se musí vrátit do původního stavu Další operace UNDO - podobná operace jako ROLLBACK, která se ale týká spíše jednoduché operace, než celé transakce - tj. ROLLBACK je vlastně posloupnost UNDO REDO -tato operace zajišťuje, že jistá činnost musí být zopakována, aby se zajistilo, že všechny operace odeslané transakce se úspěšně promítnou do databáze. Obrázek 10.1 stavový diagram provádění transakce Aktivní Částečně potvrzená Potvrzená Chybový stav selhání Přerušená nastane rollback

7 Bezprostředně po startu se transakce dostává do aktivního stavu, kdy může provádět operace READ a WRITE. Když transakce skončí, je ve stavu částečně potvrzeném (odeslaném), protože se vlastně ještě musí zkontrolovat, jestli nedošlo ke konfliktu s jinými právě probíhajícími transakcemi. Obnovující protokoly se potřebují ujistit, že eventuální systémové selhání nebude mít za následek nemožnost zapsat provedené změny do databáze. (K tomu účelu se do systémového žurnálu zapisují průběžně změny). Pokud úspěšně proběhnou obě tyto kontroly, transakce se dostává do stavu potvrzení. Jakmile transakce dosáhne stavu potvrzení, je chápána jako úspěšně provedená. Pokud jedna z kontrol selže nebo došlo k přerušení transakce během jejího aktivního stavu, dostává se do stavu selhání (chybový stav), transakce je poté zpětně vracena v podstatě do původního výchozího stavu. Stav ukončení odpovídá stavu, kdy transakce opouští systém. Přerušené transakce nebo transakce, které selhaly, mohou být později restartovány nebo odeslány jako část nové transakce Transakce na MS SQL serveru 2008 Každý SQL příkaz se bere jako atomický Zahájení lokální transakce BEGIN TRANSACTION název_transakce [WITH MARK] zvýší systémovou o 1 je-li použito WITH MARK, zapisuje se do transakčního logu (žurnálu) Potvrzení transakce COMMIT TRANSACTION název_transakce Zpětný chod transakce (vrácení do původního stavu) ROLLBACK TRANSACTION název_transakce Příklad 10.5 BEGIN TRANSACTION T1 WITH MARK UPDATE Mzdy SET priplatek = 0.75 * priplatek BEGIN TRANSACTION T2 IF (SELECT SUM(prescasy) from Hodiny WHERE Oddeleni = 5 and mesic = 10) > 300 BEGIN UPDATE Mzdy SET Priplatek = 0 WHERE Id_zam = (SELECT vedouci FROM Oddeleni WHERE Oddeleni = 5) END COMMIT TRAN T2 UPDATE Hodiny... COMMIT TRANSACTION T1

8 10.6. Transakční žurnál je udržován systémem zaznamenává informace nutné pro zpětnou rekonstrukci (obnovení) po neúspěšně provedených transakcích. bývá uložen na disku a pravidelně zálohován na pásky Položky transakčního žurnálu [start_transaction, T] zaznamená start transakce [write_item,t, X, old_value, new_value] zaznamená, že transakce změnila hodnotu položky X [read_item, T, X] zaznamená, že transakce čte položku X [commit, T] zaznamená, že transakce proběhla úspěšně a potvrzuje, že všechny změny mohou být trvale promítnuty do databáze, vynutí též zápis samotného žurnálu na disk [abort, T] zaznamená, že transakce byla přerušena [check point] zapisuje se periodicky do žurnálu, zajistí provedení zápisu veškerých změn hodnot položek potvrzených transakcí na disk (tj permanentní promítnutí veškerých potvrzených změn do databáze), vynutí též zápis samotného žurnálu na disk Poznámka: Dojde-li k systémovému selhání, všechny transakce, které nemají zapsaný svůj potvrzovací bod v žurnálu, musí být stornovány a odrolovány zpět do výchozího stavu. Transakce se zapsaným commit pointem se nestornují, ale v případě, že nebylo dosaženo checkpointu, musí se vynutit znovu zápis veškerých změn (výsledků write_item) do databáze Poznámka: Předpokládáme, že transakce nemohou být do sebe vnořeny!!! Transakční scénáře jedná se vlastně o historii (pořadí) zaznamenávající posloupnost jednotlivých dílčích operací současně probíhajících transakcí. Dvě operace jsou konfliktní, pokud patří každá z nich do jiné transakce, přistupují k téže datové položce X a jedna z nich je write_item(x). Scénář je úplný, pokud: 1. zahrnuje všechny operace jednotlivých transakcí od první operace až do poslední operace (commit nebo abort) 2. každé dvě operace z jedné transakce jsou zapsány v tom pořadí, v jakém skutečně probíhají 3. pro každé dvě konfliktní operace musí platit, že jedna z nich musí proběhnout před druhou (tj. nemohou nastat současně) Poznámka: z bodu 3 vyplývá, že nekonfliktní operace nemusí mít stanoveno pořadí Scénář je obnovitelný, pokud žádná transakce T nedosáhne svého potvrzení (commit point), dokud všechny další transakce T, které zapisovaly položky, které četly transakce T, nedosáhnou svého bodu potvrzení Scénář může být sériový (všechny operace jedné transakce proběhnou před operacemi druhé transakce) nebo prokládaný

9 Příklad Bankovní transakce Předpokládejme, že na účtu A je Kč, na účtu B Kč Transakce T 1 A := A 5000 B := B Transakce T 2 tmp := A* 0.1 A := A tmp B := B + tmp Uvažujme různé scénáře provádění transakcí Řešení 10.6.a: Nejdřív transakce T 1, pak T 2 Transakce T 1 Transakce T 2 A := A 5000 čas B := B sériový scénář tmp := A* 0.1 A := A tmp B := B + tmp Před zahájením transakcí je na účtu A , na účtu B , celkem tedy po provedení je na účtu A , na účtu B , celkem Řešení 10.6.b: Nejdřív transakce T 2, pak T 1

10 Transakce T 1 Transakce T 2 čas A := A 5000 B := B tmp := A* 0.1 A := A tmp B := B + tmp sériový scénář Před zahájením transakcí je na účtu A , na účtu B , celkem tedy po provedení je na účtu A , na účtu B , celkem Řešení 10.6.c: Současně T 1, pak T 2 Transakce T 1 Transakce T 2 A := A 5000 čas tmp := A* 0.1 A := A tmp B := B B := B + tmp scénář ekvivalentní variantě a Před zahájením transakcí je na účtu A , na účtu B , celkem tedy po provedení je na účtu A , na účtu B , celkem

11 Řešení 10.6.d: Současně T 1, pak T 2 Transakce T 1 Transakce T 2 A := A 5000 čas tmp := A* 0.1 A := A tmp B := B B := B + tmp CHYBA ztratilo se Kč Před zahájením transakcí je na účtu A 35000, na účtu B , celkem tedy po provedení je na účtu A 30000, na účtu B , celkem Posloupnost (řazení) konfliktních operací Uvažujme transakce T1 a T2 a jejich operace O1 a O2. Nastanou případy: O1 = ; O2 = na pořadí operací nezáleží, O1 = ; O2 = na pořadí operací záleží, pokud O1 proběhla dříve než O2, transakce T1 nepracovala s korektní hodnotou A O1 = ; O2 = na pořadí operací záleží, pokud O1 proběhla dříve než O2, je to v pořádku, pokud naopak O1 proběhla později než O2, pak transakce T2 nepracovala s korektní hodnotou A O1 = ; O2 = na pořadí operací nezáleží, jedna transakce vždy přepíše data té druhé Techniky řízení konkurenčních přístupů zamykání dat - zabrání vícenásobnému současnému přístupu k datům časové známky - zajišťují sériovost transakčních scénářů multiverze - používání více verzí dat optimistické protokoly - koncepce validace nebo certifikace transakcí po provedení operací

12 Zamykání dat Zámek je proměnná svázaná s datovou položkou popisující její status z ohledem na možné operace, které se s položkou mohou provádět. Binární zámek nabývá dvou hodnot nebo stavů (např. 0 odemknuto, 1 zamknuto). LOCK(X) hodnota (stav) zámku patřícího k proměnné X lock_item(x) operace uzamčení položky X ZAMEK : if LOCK(X) = 0 ; then LOCK(X) := 1 ; else begin {čekej, dokud není LOCK(X)=0 a správce zámků neaktivuje transakci} goto ZAMEK ; end ; unlock_item odemkne položku LOCK(X) := 0 ; {pokud nějaká transakce čeká ve frontě, tak se aktivuje} Manažer zámků SŘBD v sobě zahrnuje jako subsystém manažera zámků, který sleduje a řídí zamykání. Každá transakce používající tento binární způsob zamykání musí splňovat následující pravidla před každým čtením nebo zápisem X se musí použít lock_item(x) jakmile je čtení nebo zápis dokončen, musí se použít unlock_item(x) transakce nepoužije lock_item(x) na položku, kterou sama uzamkla transakce nepoužije unlock_item(x), pokud nezamkla položku X Tyto binární zámky se dají jednoduše implementovat jako jednoduché záznamy obsahující dvě položky - jméno datové položky a dvouhodnotovou proměnnou signalizující stav zámku. Systém spravuje tyto záznamy v tabulce zámků Sdílené a výhradní výlučné zámky Operace čtení může být prováděna více transakcemi najednou vícenásobný (sdílený) zámek Operace zápis jen jediná transakce může zapisovat výhradní zámek

13 read_lock(x) ZAMEK : write_lock(x) ZAMEK : unlock(x) if LOCK(X) = "unlocked" then begin LOCK(X) := "read-locked" ; no_of_reads(x) := 1 ; end ; else if LOCK(X)= "read-locked" then inc(no_of_reads(x)) else begin {čekej, dokud LOCK(X)= "unlocked" a správce zámků aktivuje trans. } go to ZAMEK ; end ; if LOCK(X) = "unlocked" then LOCK(X) := "write-locked" else begin {čekej, dokud LOCK(X)= "unlocked" a správce zámků aktivuje trans. } go to ZAMEK ; end ; if LOCK(X) ="write-locked" then begin LOCK(X) = "unlocked" ; {aktivuj čekající transakci, pokud je nějaká ve frontě} end else if LOCK(X) = "read-locked" then begin dec(no_of_reads(x)) ; if no_of_reads(x) = 0 then begin LOCK(X) := "unlocked" ; {aktivuj čekající transakci, pokud je nějaká ve frontě} end end ; Všechny tyto operace se chápou jako nedělitelné, není povoleno prokládání jednotlivých dílčích činností. Používáme-li tento systém zamykání, musí být dodržena následující pravidla : před každým čtením X se musí provést read_lock(x) nebo write_lock(x) před každým zápisem X se musí provést write_lock(x) po ukončení čtení nebo zápisu se musí provést unlock(x) transakce nesmí použít znovu read_lock(x), pokud sama zamkla X transakce nesmí použít znovu write_lock(x), pokud sama zamkla X transakce nesmí použít unlock(x), pokud sama neuzamkla nad X

14 Poznámka: Čtvrté a páté pravidlo nemusí být vždy dodrženo - read_lock se dá povýšit na write_lock a opačně write_lock se dá ponížit na read_lock. Pokud toto je přípustné, pak samozřejmě je nutné u každého zámku ještě zavést identifikátor pro transakci, která tento zámek provedla. Spolu s technikami zamykání se dále ještě používají další protokoly, aby se zajistila tzv. sériovost transakčních scénářů - nejlepší je protokol dvoufázového zamykání. Transakce dodržuje tento protokol, pokud všechna zamykání předcházejí prvnímu odemykání v transakci. Taková transakce může být rozdělena do dvou fází expanzní (rozpínající se) fáze, kdy se postupně zamyká, ale nic se neuvolňuje redukující se fáze, kdy se zámky uvolňují a už se nezamyká Příklad 10.8: Předpokládejme, že X = 20, Y = 30 Transakce T 1 read_lock(y) ; unlock(y) ; write_lock(x) read_item(x) ; X := X + Y; write_item(x); unlock(x); Řešení 10.7a: Proběhne-li nejprve T 1, pak T 2, je X = 50 a Y = 80 Řešení 10.7b: Proběhne-li nejprve T 2, pak T 1, je X = 70 a Y = 50 Transakce T 2 read_lock(x); read_item(x); unlock(x) ; write_lock(y); Y := Y + X ; write_item(y) ; unlock(y) ; ) Příklad 10.7c: Transakční scénář (předp. X = 20, Y = 30) T 1 T 2 read_lock(y) ; unlock(y) ; read_lock(x) ;, read_item(x) ; unlock(x) ; čas write_lock(y) ; Y := Y + X ; write_item(y) ; unlock(y) ; write_lock(x) ; read_item(x) ; X := X +Y ; write_item(x) ; unlock(x) ; nejde o sériový transakční scénář, výsledek je X = 80, Y = 50

15 Příklad 10.7d :Transakční scénář podle protokolu dvoufázového zamykání T 1 T 2 read_lock(y) ; read_lock(x) ; read_item(x) ; čas write_lock(x) ; write_lock(y) ; unlock(y) ; unlock(x) ; read_item(x) ; X := X +Y ; Y := Y + X ; write_item(x) ; write_item(y) ; unlock(x) ; unlock(y) ; Dodržen protokol dvoufázového zamykání X = 50, Y = Druhy dvoufázového zamykání - základní viz výše popsaný postup, tj. průběžně podle potřeby se zamyká, provádějí se operace čtení, zápis a další a pak se postupně odmyká všechny operace zamykání jsou časově před odemykacími operacemi - konzervativní předem se stanoví množiny položek, které se mají zamknout množina zámků pro čtení a množina pro zápis, pokud se nepodaří zamknout všechny potřebné položky, nezamkne se žádná - striktní žádný zámek není uvolněn, pokud není transakce potvrzena může snadno způsobit deadlock na rozdíl od konzervativního zamykání Deadlock - nastane tehdy, pokud dvě transakce čekají na sebe navzájem Příklad 10.8: T 1 T 2 read_lock(y) ; write_lock(x) ; read_lock(x) ; read_item(x) ; write_lock(y) ; Deadlock Dead-lock techniky Jedná se o techniky, jejichž prostřednictvím se zajišťuje, že nedojde k dreadlocku. Technika používající časové známky (timestamp) Každé transakci je v okamžiku startu přiděleno číslo (časová značka TS časové razítko), transakce jsou seřazeny podle těchto známek.

16 wait-die : je-li TS(T i ) < TS(T j ) tj. T i je starší T j pak starší transakce T i čeká, než mladší transakce T j uvolní zámek nad položkou, kterou starší transakce potřebuje zamknout. V opačném případě T i zahyne je stornována. V tomto případě je T i mladší transakce, neboť má větší časovou známku, přičemž je později restartována se stejnou TS wound-wait : je-li TS(T i ) < TS(T j ) tj. T i je starší T j pak T i zruší mladší transakci T j Jinak T i smí čekat (vlastně teď čeká mladší transakce), až starší transakce uvolní zámek Poznámka: Může nastat též livelock jedna transakce nemůže pokračovat čeká a čeká a čeká (nekonečný cyklus abortů a restartů) a není to nic platné, zatímco ostatní transakce běží normálně. Tento problém může být způsoben například špatnou prioritou obsluhy transakcí stačí použít třeba metodu first-come first-serve Časové známky (značky) Jedná se vlastně o jednoznačnou proměnnou přidělenou každé transakci, jejíž hodnota se mění podle toho, jak transakce probíhá (vlastně něco jako čítač). Základní idea je uspořádat transakce podle jejich hodnot TS. read_ts(x) - hodnota největší TS ze všech transakcí, které úspěšně četly X write_ts(x) - hodnota největší TS ze všech transakcí, které úspěšně zapsaly X Kdykoliv se transakce snaží číst nebo psát položku, algoritmus TU (transakční uspořádání) porovnává TS transakce a read_ts(x) eventuelně write_ts(x) a kontroluje, zda není narušeno pořadí TS (což má za následek pozastavení a novou TS nebo ukončení a rollback ). Základní algoritmus provedení read_item(x) 1. je-li write_ts(x) > TS(T), nastane ABORT a ROLLBACK (nějaká transakce s vyšším TS může ještě zapisovat) 2. jinak se povolí čtení a read_ts(x) := max( TS(T), read_ts(x) ) provedení write_item(x) 1. je-li read_ts(x) > TS(T) nebo write_ts(x) > TS(T), nastane ABORT a ROLLBACK (nějaká transakce s vyšším TS může ještě zapisovat nebo číst) 2. jinak se povolí zápis a write_ts(x) := TS(T) Techniky multiverzního řízení konkurenčního přístupu pomocí časových značek

17 pomocí dvoufázového zamykání Časové značky V systému je udržováno více verzí X 1,X 2, X 3, X 4, každá položka X i má svou hodnotu read_ts( X i ) i write_ts( X i ). Pokud se transakce snaží zapisovat X i, je vytvořena nová verze X i+1, pro níž je nastaveno read_ts( X i+1 ) = write_ts( X i+1 ) = TS(T). Pravidla pro provádění operací write_item a read_item jsou následující: operace write_item(x) pokud transakce T použije operaci write_item(x) a i.tá verze X má nejvyšší hodnotu write_ts ( X i ) ze všech verzí X takovou, že je současně menší nebo rovna TS(T), a současně TS(T) < read_ts ( X i ), nastane abort a rollback jinak se vytvoří nová verze X j s read_ts( X j ) = write_ts( X j ) = TS(T) operace read_item(x) v tomto případě se najde verze X i s nevyšší hodnotou write_ts ( X i ) ze všech takovou, že současně platí write_ts ( X i ) < = TS(T) a transakci T se vrátí jako výsledek čtení právě tato hodnota X a nastaví se read_ts( X i ) = max (read_ts( X i ), TS(T) ) Validace optimistické řízení konkurenčního přístupu V průběhu transakce se neprovádějí žádné kontroly, používá se tzv. validační technika. Aktualizace se neprovádějí přímo na datech, ale na jejich lokálních kopiích. Na závěr validační fáze se kontroluje, zda transakce nenarušuje sériovost. Fáze řídícího protokolu 1. read fáze čtou se data z databáze a aktualizace se provedou na lokálních kopiích položek 2. validační fáze kontrola sériovosti 3. write fáze provede se, pokud dopadla dobře validační fáze

18 Literatura: [1] ELMASRI, R., NAVATHE, S., B. Fundamentals of Database Systems, 5th edition. Addison- Wesley, ISBN [2] SILBERSCHATZ, A., KORTH H. F., SUDARSHAN S. Database System Concepts, 5 th edition, New York: McGraw-Hill, ISBN [3] CONOLLY, T., BEGG, C., HOLOWZAK R. Profesionální průvodce tvorbou databází. Praha: Computer Press, a. s., ISBN [4] HERNANDEZ, M., J. Návrh databází. Praha: Grada, ISBN [5] POKORNÝ, J. Databázová abeceda. Veletiny: Science, 1998, ISBN [6] POKORNÝ, J., HALAŠKA, I. Databázové systémy, 2. vydání. Praha Vydavatelství ČVUT, 2003, ISBN

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti

Kapitola 13: Transakce. Koncept transakce. ACID vlastnosti - 13.1 - Kapitola 13: Transakce Koncept transakce Stavy transakce Implementace atomičnosti a trvanlivosti Souběžné spouštění Serializovatelnost Koncept transakce Transakce je posloupnost operací (část

Více

Transakce a zamykání Jiří Tomeš

Transakce a zamykání Jiří Tomeš Transakce a zamykání Jiří Tomeš Administrace MS SQL Serveru (NDBI039) O čem to dnes bude Úvodní opakování základních pojmů Jištění transakcí Speciální konstrukce Typy transakcí Závěrečný souhrn, použité

Více

Zotavení z chyb. Databázové systémy

Zotavení z chyb. Databázové systémy Zotavení z chyb Databázové systémy Zotavení z chyb v DBS Úloha: Po chybě obnovit poslední konzistentní stav databáze Třídy chyb: 1. Lokální chyba v ještě nepotvrzené transakci 2. Chyba se ztrátou hlavní

Více

TÉMATICKÝ OKRUH TZD, DIS a TIS

TÉMATICKÝ OKRUH TZD, DIS a TIS TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 15. Otázka : Paralelní procesy v databázích. Transakce, zamykání, uváznutí. Dvoufázový protokol, časová razítka. Obsah : 1 Úvod 2 Paralelní procesy v databázích

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí

Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer dat - rozvrhovač - manažer transakcí Transakce = programová jednotka, která: - zachovává konzistenci databáze - končí v konečném čase - se provede celá nebo vůbec Architektura SW pro transakční zpracování se skládá ze 3 modulů: - manažer

Více

Databáze I. 5. přednáška. Helena Palovská

Databáze I. 5. přednáška. Helena Palovská Databáze I 5. přednáška Helena Palovská palovska@vse.cz SQL jazyk definice dat - - DDL (data definition language) Základní databáze, schemata, tabulky, indexy, constraints, views DATA Databáze/schéma

Více

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 3 PARALELNÍ PROCESY V DATABÁZÍCH 1 teorie dosud -aplikace jednouživatelské praxe - databáze současně přístupná více uživatelům, paralelní běh aplikací příklady

Více

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík

Transakce a zamykání. Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Transakce a zamykání Administrace MS SQL Serveru (NDBI039) Pavel Hryzlík Základní pojmy Databázová transakce je skupina příkazů, které převedou databázi z jednoho konzistentního stavu do druhého. Transakční

Více

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1

Transakční zpracování Bezpečnost databází. Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakční zpracování Bezpečnost databází Vladimíra Zádová, KIN, EF TUL- DBS 1 Transakce Transakce systém zpracování transakcí vlastnosti ACID stavy transakce SŘBD a transakční zpracování Řešení transakcí

Více

Transakční zpracování

Transakční zpracování Transakční zpracování Transakční zpracování Dva základní požadavky na SŘBD: chránit data organizovaná pod daným SŘBD, poskytnout korektní a rychlý asynchronní přístup většímu množství uživatelů. Řešení:

Více

2. Konceptuální model dat, E-R konceptuální model

2. Konceptuální model dat, E-R konceptuální model 2. Konceptuální model dat, E-R konceptuální model Úvod Databázový model souhrn prostředků, pojmů a metod, jak na logické úrovni popsat data a jejich strukturu výsledkem je databázové schéma. Databázové

Více

9. Transakční zpracování

9. Transakční zpracování 9. Transakční zpracování 9.1. Transakce... 3 9.1.1. Vlastnosti transakce... 3 9.1.2. Stavy transakce... 4 9.2. Transakce v SQL... 6 9.3. Zotavení po chybách a poruchách... 10 9.3.1. Zotavení využívající

Více

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka

Transakce. Ing. Marek Sušický, RNDr. Ondřej Zýka Transakce Ing. Marek Sušický, RNDr. Ondřej Zýka 1 Obsah Definice Savepoint, autonomní transakce Transakční módy Izolační úrovně Implementace pomocí zámků Implementace pomocí snapshotů Oracle, Microsoft

Více

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy

Databázové systémy. transakce. Tomáš Skopal. * vlastnosti transakcí * rozvrhy Databázové systémy Tomáš Skopal transakce * vlastnosti transakcí * rozvrhy Osnova motivace co je a proč je transakce vlastnosti transakcí rozvrhy ( prokládané zpracování transakcí) uspořádatelnost konflikty

Více

DBS transakční zpracování

DBS transakční zpracování DBS transakční zpracování Michal Valenta Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2010 BI-DBS, ZS 2010/11 https://edux.fit.cvut.cz/courses/bi-dbs/ Michal

Více

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK listopad 2009 souhrn v1 Červené dobře (nejspíš), modré možná Oracle Internet Directory OID: Databáze nemůže z OID přebírat seznam uživatelů *Databáze může získat z OID seznam

Více

Procesy a vlákna - synchronizace

Procesy a vlákna - synchronizace ÚVOD DO OPERAČNÍCH SYSTÉMŮ Ver.1.00 Procesy a vlákna - synchronizace České vysoké učení technické Fakulta elektrotechnická 2010 Studijní materiály a informace o předmětu http://measure.feld.cvut.cz/vyuka/predmety/bakalarske/navody

Více

Databáze II. 2. přednáška. Helena Palovská

Databáze II. 2. přednáška. Helena Palovská Databáze II 2. přednáška Helena Palovská palovska@vse.cz SQL a aplikace Program přednášky Řízení transakcí v SQL Integritní omezení v SQL Triggery a uložené procedury Zpracování množin záznamů Řízení

Více

Paralelní přístup k databázi

Paralelní přístup k databázi Paralelní přístup k databázi Motivační příklad: Bankovní převod 100,- Kč z účtu "A" na účet "B" a současný výběr 200 Kč z účtu "B". Transakce Hodnota A Hodnota B Stav účtu A Stav účtu B 1000,- 1000,- T1:

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

IW3 MS SQL SERVER 2014

IW3 MS SQL SERVER 2014 Zálohování a obnova IW3 MS SQL SERVER 2014 Ing. Peter Solár, MCITP EA solar@pocitacoveskoleni.cz 1 OSNOVA 1. Návrh strategie zálohování 2. Zálohování uživatelských databází 3. Obnova uživatelských databází

Více

Řízení IO přenosů DMA řadičem

Řízení IO přenosů DMA řadičem Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována

Více

Distribuované transakce

Distribuované transakce Distribuované transakce Lukáš Petrlík luki@kiv.zcu.cz Úvod Pojem transakce pochází původně z obchodního světa. Předpokládejme, že firma A hledá dodavatele pro jistou zakázku. V úvahu přichází firma B,

Více

Služba ve Windows. Služba (service) je program

Služba ve Windows. Služba (service) je program Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání, školské

Více

Implementace dávkových operací

Implementace dávkových operací Implementace dávkových operací Petr Steckovič 12. 5. 2011 Hradec Králové 1 Dávkové zpracování dat Procesy běžící na pozadí Spouštěné Časem Stavem (např. dochází místo) Ručně Obvykle se jedná o podpůrné

Více

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

Konzistentnost. Přednášky z distribuovaných systémů

Konzistentnost. Přednášky z distribuovaných systémů Konzistentnost Přednášky z distribuovaných systémů Pro a proti replikaci 1. Zvýšení spolehlivosti. 2. Zvýšení výkonnosti. 3. Nutnost zachování škálovatelnosti systému co do počtu komponent i geografické

Více

Analýza a modelování dat 6. přednáška. Helena Palovská

Analýza a modelování dat 6. přednáška. Helena Palovská Analýza a modelování dat 6. přednáška Helena Palovská Historie databázových modelů Jak je řešena temporalita? Temporalita v databázích Možnosti pro platnost faktu (valid time): platí nyní, je to aktuální

Více

8.2 Používání a tvorba databází

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou

Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou Administrace Oracle Replikace je proces kopírování a udržování databázových objektů, které tvoří distribuovaný databázový systém. Změny aplikované na jednu část jsou zachyceny a uloženy lokálně před posláním

Více

6. Fyzická (interní) úroveň databázového systému

6. Fyzická (interní) úroveň databázového systému 6. Fyzická (interní) úroveň databázového systému 6.1. Struktura databázového systému... 2 6.2. Přístup k datům v databázi... 3 6.3. Struktura souborů... 4 6.4. Správa vyrovnávací paměti... 8 6.5. Podstata

Více

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD

Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD Bc. David Gešvindr MSP MCSA MCTS MCITP MCPD 1. Návrh strategie zálohování 2. Zálohování uživatelských databází 3. Obnova uživatelských databází 4. Obnova z databázového snapshotu 5. Automatizace záloh

Více

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

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 2 KONZISTENCE DATABÁZE 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ý

Více

Principy operačních systémů. Lekce 6: Synchronizace procesů

Principy operačních systémů. Lekce 6: Synchronizace procesů Principy operačních systémů Lekce 6: Synchronizace procesů Kritická sekce Při multitaskingu (multithreadingu) různé procesy často pracují nad společnou datovou strukturou (např. zápis a čtení do/z fronty)

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

10. Architektura klient/server a třívrstvá architektura

10. Architektura klient/server a třívrstvá architektura 10. Architektura klient/server a třívrstvá architektura 10.1. Varianty architektury... 3 10.2. Přínos architektury klient/server a třívrstvé architektury... 5 10.3. Podpora pro rozdělení zátěže v architektuře

Více

Řízení souběžného přístupu k datům v systémech řízení báze dat

Řízení souběžného přístupu k datům v systémech řízení báze dat Bankovní institut vysoká škola Praha Katedra matematiky, statistiky a informačních technologií Řízení souběžného přístupu k datům v systémech řízení báze dat Bakalářská práce Autor: Petr Havlas Informační

Více

Téma 11 Transakce a řízení souběhu

Téma 11 Transakce a řízení souběhu 1 Téma 11 Transakce a řízení souběhu Obsah 1. Transakce a jejich stavy 2. Souběh transakcí 3. Sériovost, serializovatelnost, obnovitelnost 4. Řízení souběhu 5. Úrovně konzistence 6. Řídicí protokoly se

Více

Text úlohy. Systémový katalog (DICTIONARY):

Text úlohy. Systémový katalog (DICTIONARY): Úloha 1 Částečně správně Bodů 050 / 100 Systémový katalog (DICTIONARY): a Se skládá z tablek a pohledů uložených v tabulkovém SYSTEM b Všechny tabulky vlastní uživatel SYS c Se skládá z tablek a pohledů

Více

Provozní řád zálohování virtuální infrastrukury

Provozní řád zálohování virtuální infrastrukury Provozní řád zálohování virtuální infrastrukury 1 Popis služby Služba zálohování poskytuje možnost pravidelného automatizovaného vytváření kopií (záloh) dat z daného časového okamžiku na vyhrazena datová

Více

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu 8. Zpracování dotazu 8.1. Podstata optimalizace zpracování dotazu... 2 8.2. Postup optimalizace zpracování dotazu... 3 8.2.1. Implementace spojení... 5 8.2.2. Využití statistik databáze k odhadu ceny dotazu...11

Více

Management procesu I Mgr. Josef Horálek

Management procesu I Mgr. Josef Horálek Management procesu I Mgr. Josef Horálek Procesy = Starší počítače umožňovaly spouštět pouze jeden program. Tento program plně využíval OS i všechny systémové zdroje. Současné počítače umožňují běh více

Více

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze 5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie

Více

Činnost počítače po zapnutí

Činnost počítače po zapnutí Projekt: Inovace oboru Mechatronik pro Zlínský kraj Registrační číslo: CZ.1.07/1.1.08/03.0009 Činnost počítače po zapnutí Paměť RWM(Read Write Memory - paměť pro čtení a zápis, označovaná také jako RAM)

Více

6. Fyzická (interní) úroveň databázového systému

6. Fyzická (interní) úroveň databázového systému 6. Fyzická (interní) úroveň databázového systému 6.1. Struktura databázového systému... 2 6.2. Přístup k datům v databázi... 3 6.3. Struktura souborů... 4 6.4. Správa vyrovnávací paměti... 8 6.5. Podstata

Více

6. SQL složitější dotazy, QBE

6. SQL složitější dotazy, QBE 6. SQL složitější dotazy, QBE Příklady : Veškeré příklady budou dotazy nad databází KONTAKTY nebo KNIHOVNA nebo FIRMA Databáze KONTAKTY OSOBA (Id_osoba, Příjmení, Jméno, Narození, Město, Ulice, PSČ) EMAIL

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Instalace programu ProVIS

Instalace programu ProVIS Instalace programu ProVIS Tento program umožňuje instalovat program ProVIS. Umožňuje vybrat, kam se bude instalovat, a jednotlivé součásti instalace. Instalace probíhá v několika krocích. Každý krok má

Více

Přidělování zdrojů (prostředků)

Přidělování zdrojů (prostředků) Přidělování zdrojů (prostředků) Proces potřebuje zdroje (prostředky) hardware (I/O zařízení, paměť) software (data, programy) Klasifikace zdrojů (z hlediska multitaskingového režimu) Násobně použitelné

Více

Dijkstrův algoritmus

Dijkstrův algoritmus Dijkstrův algoritmus Hledání nejkratší cesty v nezáporně hranově ohodnoceném grafu Necht je dán orientovaný graf G = (V, H) a funkce, která každé hraně h = (u, v) H přiřadí nezáporné reálné číslo označované

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Převod na nový školní rok

Převod na nový školní rok Převod na nový školní rok Funkce pro převod na nový školní je součástí systému SAS od jeho počátku. Umožňuje převést třídy a žáky ze školního roku, který končí, do dalšího školního roku. Před tím, než

Více

Technologické postupy práce s aktovkou IS MPP

Technologické postupy práce s aktovkou IS MPP Technologické postupy práce s aktovkou IS MPP Modul plánování a přezkoumávání, verze 1.20 vypracovala společnost ASD Software, s.r.o. dokument ze dne 27. 3. 2013, verze 1.01 Technologické postupy práce

Více

Přerušovací systém s prioritním řetězem

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

Principy operačních systémů. Lekce 7: Obrana proti deadlocku

Principy operačních systémů. Lekce 7: Obrana proti deadlocku Principy operačních systémů Lekce 7: Obrana proti deadlocku Deadlock Deadlock = uváznutí, zablokování Vznik problému: proces drží určité prostředky, požaduje přidělení dalších prostředků, tyto nedostane

Více

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

Práce se soubory. Základy programování 2 Tomáš Kühr

Práce se soubory. Základy programování 2 Tomáš Kühr Práce se soubory Základy programování 2 Tomáš Kühr Soubory z pohledu C Soubor zjednodušeně chápeme jako posloupnost bytů uložených někde na disku Datový proud (anglicky stream) Ještě obecnější přístup

Více

Aplikace DBS. Osnova:

Aplikace DBS. Osnova: Aplikace DBS Osnova: 1. Úvod - Co je to informační systém (IS), vazba na DBS? 1.0. Obsah přednášky 1.1. Základní pojmy databází 1.2. Komerční databázové systémy 1.3. Realizace IS 2. OLTP 2.0. Charakteristika

Více

Příručka pro správu systému

Příručka pro správu systému Příručka pro správu systému Medtronic MiniMed Northridge, CA 91325 USA 800-646-4633 (800-MiniMed) 818.576.5555 www.minimed.com Zástupce pro ES Medtronic B.V. Earl Bakkenstraat 10 6422 PJ Heerlen Nizozemsko

Více

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ZÁLOHOVÁNÍ DAT V DATABÁZI Ing. Lukáš OTTE, Ph.D. Ostrava 2013 Tento studijní materiál vznikl za finanční podpory Evropského

Více

Synchronizace Mgr. Josef Horálek

Synchronizace Mgr. Josef Horálek Synchronizace Mgr. Josef Horálek Synchronizace procesu = Kooperující proces je proces, který může ovlivnit nebo být ovlivněn jiným procesem právě spuštěným v systému = Spolupracující procesy mohou sdílet:

Více

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení

Databázové systémy. transakce. Tomáš Skopal. * uzamykací protokoly * alternativní protokoly * zotavení Databázové systémy Tomáš Skopal transakce * uzamykací protokoly * alternativní protokoly * zotavení Osnova uzamykací protokoly 2PL striktní 2PL uváznutí, prevence fantom alternativní protokoly optimistické

Více

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21

Obsah. Kapitola 1 Hardware, procesory a vlákna Prohlídka útrob počítače...20 Motivace pro vícejádrové procesory...21 Stručný obsah 1. Hardware, procesory a vlákna... 19 2. Programování s ohledemna výkon... 45 3. Identifikování příležitostí pro paralelizmus... 93 4. Synchronizace a sdílení dat... 123 5. Vlákna v rozhraní

Více

Paralelní programování

Paralelní programování Paralelní programování přednášky Jan Outrata únor duben 2011 Jan Outrata (KI UP) Paralelní programování únor duben 2011 1 / 14 Atomické akce dále nedělitelná = neproložitelná jiným procesem izolovaná =

Více

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny 1 TXV 003 73.01 Historie změn Datum Vydání Popis změn Září 2012 1 První vydání, popis odpovídá EpsnetLib_v11 OBSAH 1 Úvod...3 2 Datové

Více

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze 5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie

Více

BankKlient. FAQs. verze 9.50

BankKlient. FAQs. verze 9.50 BankKlient FAQs verze 9.50 2 BankKlient Obsah: Úvod... 3 Instalace BankKlient možné problémy... 3 1. Nejsou instalovány požadované aktualizace systému Windows... 3 2. Instalační program hlásí, že nemáte

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

4IT218 Databáze. 4IT218 Databáze

4IT218 Databáze. 4IT218 Databáze 4IT218 Databáze Osmá přednáška Dušan Chlapek (katedra informačních technologií, VŠE Praha) 4IT218 Databáze Osmá přednáška Normalizace dat - dokončení Transakce v databázovém zpracování Program přednášek

Více

Disková pole (RAID) 1

Disková pole (RAID) 1 Disková pole (RAID) 1 Architektury RAID Základní myšlenka: snaha o zpracování dat paralelně. Pozice diskové paměti v klasickém personálním počítači vyhovuje pro aplikace s jedním uživatelem. Řešení: data

Více

10. blok Logický návrh databáze

10. blok Logický návrh databáze 10. blok Logický návrh databáze Studijní cíl Tento blok je věnován převodu konceptuálního návrhu databáze na návrh logický. Blok se věnuje tvorbě tabulek na základě entit z konceptuálního modelu a dále

Více

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština) Instalace OS Linux Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu www.rvp.cz, ISSN: 1802-4785. Provozuje Národní ústav pro vzdělávání,

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Architektura Pentia úvod

Architektura Pentia úvod Architektura Pentia úvod 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné jak

Více

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí Výpočet v módu jádro v důsledku událostí - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení řízení se předá na proceduru pro ošetření odpovídající události část stavu přerušeného procesu

Více

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy

Úloha 1. Úloha 2. Úloha 3. Text úlohy. Text úlohy. Text úlohy Úloha 1 Zkratka ERP jako celopodniková transakční aplikace znamená: a. Enterprise Route Planning b. Enterprise Resource Planning c. Enterprise Re-implementation Planning d. Enterprise Resource Processing

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

B4B35OSY: Operační systémy

B4B35OSY: Operační systémy B4B35OSY: Operační systémy Souborové systémy Michal Sojka 1 7. prosince 2017 1 michal.sojka@cvut.cz 1 / 35 Obsah I 1 Úvod 2 Souborové systémy FAT Souborový systém založený na inode 3 Žurnálování 4 Souborové

Více

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz

Databáze II. 1. přednáška. Helena Palovská palovska@vse.cz Databáze II 1. přednáška Helena Palovská palovska@vse.cz Program přednášky Úvod Třívrstvá architektura a O-R mapování Zabezpečení dat Role a přístupová práva Úvod Co je databáze Mnoho dat Organizovaných

Více

Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat).

Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat). 3. Relační model Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat). Příklad 3.1: Filmová databáze relace: FILM REŢISÉR

Více

Zálohování a obnova databáze. Kryštof Měkuta 15. 12. 2011

Zálohování a obnova databáze. Kryštof Měkuta 15. 12. 2011 Zálohování a obnova databáze Kryštof Měkuta 15. 12. 2011 Zálohovací strategie RMAN User-Managed Backup and Recovery Import / Export On-line Backups Off-line Backups ARCHIVELOG mode V archivelog modu se

Více

Výpočet globálního stavu

Výpočet globálního stavu PDV 09 2017/2018 Výpočet globálního stavu Michal Jakob michal.jakob@fel.cvut.cz Centrum umělé inteligence, katedra počítačů, FEL ČVUT Globální Stav Globální stav: množina lokální stavů procesů v DS a stavů

Více

Národní elektronický nástroj. Import profilu zadavatele do NEN

Národní elektronický nástroj. Import profilu zadavatele do NEN Národní elektronický nástroj Import profilu zadavatele do NEN V 1.2 2014 Obsah 1 Cíl...... 2 2 Nutné podmínky k umožnění importu profilu zadavatele...... 2 3 Povinnosti zadavatele dle metodiky k vyhlášce

Více

1. Databázové systémy (MP leden 2010)

1. Databázové systémy (MP leden 2010) 1. Databázové systémy (MP leden 2010) Fyzickáimplementace zadáníaněkterářešení 1 1.Zkolikaajakýchčástíseskládáčasprovstupněvýstupníoperaci? Ze tří částí: Seektime ječas,nežsehlavadiskudostanenadsprávnou

Více

Architektura procesorů PC shrnutí pojmů

Architektura procesorů PC shrnutí pojmů Architektura procesorů PC shrnutí pojmů 1 Co je to superskalární architektura? Minimálně dvě fronty instrukcí. Provádění instrukcí je možné iniciovat současně, instrukce se pak provádějí paralelně. Realizovatelné

Více

Převod na 2. pololetí

Převod na 2. pololetí Převod na 2. pololetí Funkce pro převod na 2. pololetí je součástí systému SAS od verze 5.12, kdy byla v SASu zavedena evidence žáků po pololetích. Umožňuje převést třídy a žáky z 1. do 2. pololetí. Nová

Více

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc. 1 Kurz Databáze Zpracování dat Doc. Ing. Radim Farana, CSc. Obsah Druhy dotazů, tvorba dotazu, prostředí QBE (Query by Example). Realizace základních relačních operací selekce, projekce a spojení. Agregace

Více

Healtcheck. databáze ORCL běžící na serveru db.tomas-solar.com pro

Healtcheck. databáze ORCL běžící na serveru db.tomas-solar.com pro Ukázka doporučení z health checku zaměřeného na PERFORMANCE. Neobsahuje veškeré podkladové materiály, proto i obsah píše špatné odkazy. Healtcheck databáze ORCL běžící na serveru db.tomas-solar.com pro

Více

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980 01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980 02. Kdy přibližně vznikly první komerční relační databázové servery?

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje.

Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje. Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje. Servery jsou buď umístěny volně nebo ve speciální místnosti, kterou

Více

Operátory ROLLUP a CUBE

Operátory ROLLUP a CUBE Operátory ROLLUP a CUBE Dotazovací jazyky, 2009 Marek Polák Martin Chytil Osnova přednášky o Analýza dat o Agregační funkce o GROUP BY a jeho problémy o Speciální hodnotový typ ALL o Operátor CUBE o Operátor

Více

HELIOS - Zálohování BüroKomplet, s.r.o.

HELIOS - Zálohování BüroKomplet, s.r.o. HELIOS - Zálohování 2017 BüroKomplet, s.r.o. Obsah Záloha... 3 Přehled záloh... 3 Typ zálohy... 3 Adresář... 4 Nový... 4 Obnova... 6 2 Záloha V přehledu lze provádět zálohy dat jednotlivých firem a v případě

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

Více

Paměti a jejich organizace

Paměti a jejich organizace Kapitola 5 Paměti a jejich organizace 5.1 Vnitřní a vnější paměti, vlastnosti jednotlivých typů Vnější paměti Jsou umístěny mimo základní jednotku. Lze je zařadit mezi periferní zařízení. Zápis a čtení

Více