Compare commits

...

2 commits

Author SHA1 Message Date
9c8173c166
Some small changes 2021-01-08 07:47:44 +01:00
6ee628f3d0
Added README.org 2021-01-07 13:05:15 +01:00
2 changed files with 109 additions and 55 deletions

3
README.org Normal file
View file

@ -0,0 +1,3 @@
* Adatbázisok tételek 2020/2021
Az Adatbázisok (VITMAB04) című tárgy tételeinek kidolgozása, Gajdos Sándor
"Adatbázisok" című könyvének 2019-es kiadására *NAGYBAN* alapozva.

161
db.org
View file

@ -31,6 +31,8 @@ pl. mikor lett módosítva.
Olyan adat,amire struktúrális $\text{metaadat} \approx \text{adat}$ . Olyan adat,amire struktúrális $\text{metaadat} \approx \text{adat}$ .
*** Nem struktúrált adat *** Nem struktúrált adat
Olyan adat,amihez egyáltalán nem értelmezünk. Olyan adat,amihez egyáltalán nem értelmezünk.
\clearpage
* Adatbázis-kezelő fogalma, feladatai, felépítése, használói * Adatbázis-kezelő fogalma, feladatai, felépítése, használói
** Adatbázis kezelő fogalma ** Adatbázis kezelő fogalma
Az adatbáziskezelő, olyan hardware- softwarerendszer, amelyet 3 fő tulajdonság Az adatbáziskezelő, olyan hardware- softwarerendszer, amelyet 3 fő tulajdonság
@ -120,6 +122,7 @@ másolatot készíteni az adatbázisról. Ha az adatbázis megsérül, ez a más
teszi lehetővé a visszaállítást a mentés időpontjának állapotába. teszi lehetővé a visszaállítást a mentés időpontjának állapotába.
**** DBMS tervező/programozó (DBMS designer/programmer) **** DBMS tervező/programozó (DBMS designer/programmer)
Tudja, hogyan kell DBMS-t készíteni, ami különösen specializált tudást igényel. Tudja, hogyan kell DBMS-t készíteni, ami különösen specializált tudást igényel.
\clearpage
* Heap szervezés * Heap szervezés
** Általános jellemzői ** Általános jellemzői
Jelentése halmaz, kupac. Ez a legegyszerűbb tárolási megoldás. Legalább annyi Jelentése halmaz, kupac. Ez a legegyszerűbb tárolási megoldás. Legalább annyi
@ -147,6 +150,7 @@ feladata).
*** Módosítás *** Módosítás
Először meg kell keresnünk a blokkot,amiben a keresett rekord található. Majd a Először meg kell keresnünk a blokkot,amiben a keresett rekord található. Majd a
rekord módosítása után a blokkot vissza kell írni a háttértárra. rekord módosítása után a blokkot vissza kell írni a háttértárra.
\clearpage
* Hash-állományok * Hash-állományok
A hash-címzés során a kesesés kulcsának bitmintájából csonkolás segítségével is A hash-címzés során a kesesés kulcsának bitmintájából csonkolás segítségével is
@ -176,7 +180,7 @@ megváltoztatott blokkot vissza kell írni.
Ha nem a kulcs mezőt módosítjuk,akkor az a módosítás a szokott módon történik. Ha nem a kulcs mezőt módosítjuk,akkor az a módosítás a szokott módon történik.
Ha kulcs mező is módosul akkor a törlés és a beszurás műveletet kell alkalmazni Ha kulcs mező is módosul akkor a törlés és a beszurás műveletet kell alkalmazni
egymás után. egymás után.
\clearpage
* Indexelt állományok * Indexelt állományok
Az indexelt szervezés alapgondolata: a keresés kulcsát egy ún. indexállományban Az indexelt szervezés alapgondolata: a keresés kulcsát egy ún. indexállományban
@ -195,7 +199,7 @@ Két alapvetően különböző megvalósítás lehetséges:
1. indexrekordot rendelünk minden egyes adatrekordhoz (sűrű index) 1. indexrekordot rendelünk minden egyes adatrekordhoz (sűrű index)
2. indexrekordot rendelünk adatrekordok egy csoportjához, tipikusan az egy 2. indexrekordot rendelünk adatrekordok egy csoportjához, tipikusan az egy
blokkban levőkhöz. (ritka index) blokkban levőkhöz. (ritka index)
\clearpage
* Ritka index, B*-fák * Ritka index, B*-fák
** Ritka index ** Ritka index
Ebben az esetben indexrekordot redot az adatrekordok egy csoportjához Ebben az esetben indexrekordot redot az adatrekordok egy csoportjához
@ -257,7 +261,7 @@ részfájából. Ehhez adott esetben a fa minden szintjén szükség lehet néh
módosítására. módosítására.
*** Módósítás *** Módósítás
Megegyezik a ritka index beli módosítás elvével. Megegyezik a ritka index beli módosítás elvével.
\clearpage
* Sűrű indexek, előnyök és hátrányok * Sűrű indexek, előnyök és hátrányok
Minden adatrekordhoz tartozik egy index rekord. Ez általában még mindig a Minden adatrekordhoz tartozik egy index rekord. Ez általában még mindig a
@ -292,6 +296,7 @@ Sűrű indexelés esetén a módosítás viszonylag egyszerű: megkeressük a m
rekordot tartalmazó adatblokkot, majd a módosított tartalommal visszaírjuk a rekordot tartalmazó adatblokkot, majd a módosított tartalommal visszaírjuk a
háttértárra. Ha a módosítás kulcsmezőt is érintett, akkor az indexállományt háttértárra. Ha a módosítás kulcsmezőt is érintett, akkor az indexállományt
újrarendezzük. újrarendezzük.
\clearpage
* Változó hosszúságú rekordok kezelése * Változó hosszúságú rekordok kezelése
** Változó hosszú ságú rekordok oka ** Változó hosszú ságú rekordok oka
- Egy mező hossza változó - Egy mező hossza változó
@ -307,6 +312,7 @@ a mező tényleges tartalma van. Így egy állomány csak egy féle rekordot tar
Erre több megoldás is létezik: Erre több megoldás is létezik:
- A maximális számú ismétlődésnek elegendő helyet foglalunk le minden rekordnak - A maximális számú ismétlődésnek elegendő helyet foglalunk le minden rekordnak
- Mutatók használata - Mutatók használata
\clearpage
* Részleges információ alapján történő keresés * Részleges információ alapján történő keresés
Gyakran megesik, hogy egy rekord több mezéjét is ismerjük és meg akarjuk keresni Gyakran megesik, hogy egy rekord több mezéjét is ismerjük és meg akarjuk keresni
azokat a rekordokat, amelyek ugyanezen értékeket tárolják. A továbbiakban úgy azokat a rekordokat, amelyek ugyanezen értékeket tárolják. A továbbiakban úgy
@ -331,6 +337,7 @@ a $*$ pedig a konkatonáció (összefűzés) jele.
Az ismert mezők értékei alapján meghatározhatjuk az $N$ hosszúságú bitmintának az Az ismert mezők értékei alapján meghatározhatjuk az $N$ hosszúságú bitmintának az
ismert darabjait. Mindenazon vödröket kell megnézni amelyeknek a sorszáma ismert darabjait. Mindenazon vödröket kell megnézni amelyeknek a sorszáma
illeszkedik a kapott bitmintára. illeszkedik a kapott bitmintára.
\clearpage
* Több kulcs szerinti keresés támogatása * Több kulcs szerinti keresés támogatása
Fontos, hogy egy adatbáziskezelő ne csak elsődleges kulcs szerint tudjon Fontos, hogy egy adatbáziskezelő ne csak elsődleges kulcs szerint tudjon
keresni, hanem egyéb mezők alapján is. Ezeket a mezőket keresési kulcsoknak keresni, hanem egyéb mezők alapján is. Ezeket a mezőket keresési kulcsoknak
@ -357,6 +364,7 @@ mezőkhöz) tartozó invertált állományt kell frissíteni.
A [[masodik]]. lehetőségben az adatállomány rekordjai szabadok lehetnek, viszont nem A [[masodik]]. lehetőségben az adatállomány rekordjai szabadok lehetnek, viszont nem
ismerjük a keresett rekord címét. ismerjük a keresett rekord címét.
\clearpage
* Adatmodellek, modellezés * Adatmodellek, modellezés
Amikor egy adatbázist létrehozunk a cél az, hogy egy kiválasztott valós dologról Amikor egy adatbázist létrehozunk a cél az, hogy egy kiválasztott valós dologról
úgy tároljunk adatokat, hogy utána később ugyanarról a dologról információt úgy tároljunk adatokat, hogy utána később ugyanarról a dologról információt
@ -380,6 +388,7 @@ felhasználó szempontjából miként valósul meg az adatok közötti kapcsolat
- Hálós adatmodell - Hálós adatmodell
- Relációs adatmodell - Relációs adatmodell
- Objektumorientált adatmodell - Objektumorientált adatmodell
\clearpage
* Az E-R modell és elemei * Az E-R modell és elemei
Az egyed kapcsolat (entity-relationship; ER) modell nem tekinthető Az egyed kapcsolat (entity-relationship; ER) modell nem tekinthető
adatmodellnek, hiszen nem definiál műveleteket az adatokon. adatmodellnek, hiszen nem definiál műveleteket az adatokon.
@ -409,6 +418,7 @@ tartozhat.
*** Kulcs *** Kulcs
Az ER-modellezésben az attribútumok azt a halmazát, amely egyértelműen azonosít Az ER-modellezésben az attribútumok azt a halmazát, amely egyértelműen azonosít
egy entitás példányait, kulcsnak nevezzük. egy entitás példányait, kulcsnak nevezzük.
\clearpage
* Az E-R diagram, ISA kapcsolatok, gyenge egyedhalmazok * Az E-R diagram, ISA kapcsolatok, gyenge egyedhalmazok
** ER-diagram ** ER-diagram
Az ER modell egy grafikus megjelenítése az ER diagram. Az ER modell egy grafikus megjelenítése az ER diagram.
@ -434,7 +444,7 @@ van. Ebben az esetben gyenge egyedhalmazokról beszélünk. Az identitását egy
tulajdonos egyedhalmaz (owner entity set) biztosítja,amely a gyenge tulajdonos egyedhalmaz (owner entity set) biztosítja,amely a gyenge
egyedhalmazzal több-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló egyedhalmazzal több-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló
kapcsolat. kapcsolat.
\clearpage
* A relációs adatmodell: adatok strukturálása és műveletek * A relációs adatmodell: adatok strukturálása és műveletek
** Struktúrája ** Struktúrája
@ -465,7 +475,7 @@ A relációban található sorok száma
** Műveletek ** Műveletek
A relációs adatmodell a relációkon megengedett műveletek meghatározásával válik A relációs adatmodell a relációkon megengedett műveletek meghatározásával válik
teljessé. Ezen műveletekből épül fel az ún. relációs algebra (relational algebra). teljessé. Ezen műveletekből épül fel az ún. relációs algebra (relational algebra).
\clearpage
* Relációalgebra * Relációalgebra
** Egyesítés, Unió ** Egyesítés, Unió
Az attribútumok száma mindkét relációban ugyanannyinak kell lennie, de az egyes Az attribútumok száma mindkét relációban ugyanannyinak kell lennie, de az egyes
@ -523,7 +533,9 @@ a rekordpáron értelmezett $\Theta$ feltétel szerint választunk ki sorokat: $
*Jelölése:* $r \underset{\Theta}{\Join} s$ *Jelölése:* $r \underset{\Theta}{\Join} s$
** Hányados ** Hányados
Jelölje $r \div s$ azt a relációt, amelyre igaz az, hogy az $s\text{-sel}$ alkotott Descartes-szorzata Jelölje $r \div s$ azt a relációt, amelyre igaz az, hogy az $s\text{-sel}$ alkotott Descartes-szorzata
a lehető legbővebb részhalmaza $r\text{-nek}$ : $(r \div s) \setminus s \subseteq r$ a lehető legbővebb részhalmaza $r\text{-nek}$ : $(r \div s) \setminus s
\subseteq r$
\clearpage
* Sorkalkulus, oszlopkalkulus * Sorkalkulus, oszlopkalkulus
** Sorkalkulus ** Sorkalkulus
*** Fogalma *** Fogalma
@ -588,6 +600,7 @@ ahol $\Psi$ olyan formula, amelyek szabad változói csak $x_1,x_2,\ldots,x_m$
Rögzített $A$ interpretációs halmaz és $R_k^{(n_k)}\subseteq A^{n_k}$ relációk Rögzített $A$ interpretációs halmaz és $R_k^{(n_k)}\subseteq A^{n_k}$ relációk
esetén a sorkalkulus bármely kifejezéséhez létezik az oszlopkalkulusnak olyan esetén a sorkalkulus bármely kifejezéséhez létezik az oszlopkalkulusnak olyan
kifejezése,amely az előzővel azonos relációt határoz meg. kifejezése,amely az előzővel azonos relációt határoz meg.
\clearpage
* Biztonságos sorkalkulus * Biztonságos sorkalkulus
A biztonságos sorkalkulus célja az, hogy a sorkalkulus kifejezések A biztonságos sorkalkulus célja az, hogy a sorkalkulus kifejezések
kiértékelhetőek legyenek számítógépen kezelhető méretű relációk/véges idő kiértékelhetőek legyenek számítógépen kezelhető méretű relációk/véges idő
@ -597,12 +610,13 @@ $\text{DOM}\Psi\equiv\{\Psi\text{-beli alaprelációk összes attribútumának
értékeik}\}\cup\{\Psi\text{-ben előforduló konstansok}\}$ értékeik}\}\cup\{\Psi\text{-ben előforduló konstansok}\}$
** Biztonságos kifejezés ** Biztonságos kifejezés
$\{t|\Psi(t)\}$ biztonságos, ha $\{t|\Psi(t)\}$ biztonságos, ha
1) minden $\Psi(t)$-t kielégítő $t$ minden komponense 1) minden $\Psi(t)\text{-t}$ kielégítő $t$ minden komponense
2) $\Psi\text{-nek}$ miden $(\exists u)\omega(u)$ alakú részformulájára 2) $\Psi\text{-nek}$ miden $(\exists u)\omega(u)$ alakú részformulájára
teljesül, hogy ha $u$ kielégíti $\omega\text{-t}$ szabad változók valamely teljesül, hogy ha $u$ kielégíti $\omega\text{-t}$ szabad változók valamely
értéke mellett, akkor $u$ minden komponense $\text{DOM}(\omega)\text{-beli}$ értéke mellett, akkor $u$ minden komponense $\text{DOM}(\omega)\text{-beli}$
** Tétel ** Tétel
A relációs algebra és a biztonságos sorkalkulus kifejezőereje ekvivalens. A relációs algebra és a biztonságos sorkalkulus kifejezőereje ekvivalens.
\clearpage
* Relációs lekérdezések heurisztikus optimalizálása * Relációs lekérdezések heurisztikus optimalizálása
A heurisztikus optimalizálás során, relációs algebrai műveletekből egy fát A heurisztikus optimalizálás során, relációs algebrai műveletekből egy fát
építünk. Ezt felhasználva próbáljuk a műveletek sorrendjét és felépítését építünk. Ezt felhasználva próbáljuk a műveletek sorrendjét és felépítését
@ -627,6 +641,7 @@ kevesebb rekordot kell generálni.
** Ötödik lépés ** Ötödik lépés
Most a vetítéseket fogjuk a fában süllyeszteni, amennyire csak tudjuk. Ehhez új Most a vetítéseket fogjuk a fában süllyeszteni, amennyire csak tudjuk. Ehhez új
vetítéseket is létrehozhatunk, ha szükséges. vetítéseket is létrehozhatunk, ha szükséges.
\clearpage
* Relációalgebraikifejezések transzformációi, ekvivalens kifejezések * Relációalgebraikifejezések transzformációi, ekvivalens kifejezések
A lekérdezés optimalizáció egy fontos eleme a relációs kifejezések A lekérdezés optimalizáció egy fontos eleme a relációs kifejezések
transzformációja. Ehhez különböző ekvivalencia szabályokat alkalmazunk. transzformációja. Ehhez különböző ekvivalencia szabályokat alkalmazunk.
@ -662,6 +677,7 @@ Valóban.
Itt is alkalmazhatóak. Itt is alkalmazhatóak.
*** STB *** STB
Ennél jóval több van. Csak egy pár fontosabbat soroltam itt fel. Ennél jóval több van. Csak egy pár fontosabbat soroltam itt fel.
\clearpage
* Relációs lekérdezések költségbecslés alapú optimalizálása * Relációs lekérdezések költségbecslés alapú optimalizálása
Ez egy jóval kifinomultabb metódus. Egy költség függvényt definiálunk, és ezek Ez egy jóval kifinomultabb metódus. Egy költség függvényt definiálunk, és ezek
után azt a végrehajtási tervet alkalmazzuk, amelyre ez a függvény a legkisebb után azt a végrehajtási tervet alkalmazzuk, amelyre ez a függvény a legkisebb
@ -684,6 +700,7 @@ szempontot is érdemes figyelembe venni.
\begin{align} \begin{align}
E_{\text{alg.}}=\text{Az algoritmus becsült költsége (estimate)} E_{\text{alg.}}=\text{Az algoritmus becsült költsége (estimate)}
\end{align} \end{align}
\clearpage
* Katalógusban tárolt információk * Katalógusban tárolt információk
A katalógus adatai fontos szerepet játszanak a lekérdezés optimalizációban. Ezek A katalógus adatai fontos szerepet játszanak a lekérdezés optimalizációban. Ezek
segítségével lehet megbecsülni az egyes lekérdezések költségét. segítségével lehet megbecsülni az egyes lekérdezések költségét.
@ -714,6 +731,7 @@ B* fáknál, azaz a csomópontokból induló ágak átlagos száma.
- hash-állománynál HTi = 1. - hash-állománynál HTi = 1.
- $LB_i$ : az $i$ index legalsó szintű blokkjainak a száma, azaz a levélszintű - $LB_i$ : az $i$ index legalsó szintű blokkjainak a száma, azaz a levélszintű
indexblokkok száma (Lowest level index Block) indexblokkok száma (Lowest level index Block)
\clearpage
* A lekérdezés költsége: szelekció, indexelt szelekció, join műveletek és algoritmusok, egyéb műveletek. * A lekérdezés költsége: szelekció, indexelt szelekció, join műveletek és algoritmusok, egyéb műveletek.
** Szelekciós művelet költségbecslése ** Szelekciós művelet költségbecslése
*** Algoritmusok alapján *** Algoritmusok alapján
@ -804,6 +822,7 @@ Költsége: $b_r+n_r\cdot c$, ahol $c$ a szelekció költsége.
- Különbség(mindkét relációt rendezzük, fésülésnél csak az első relációbeli - Különbség(mindkét relációt rendezzük, fésülésnél csak az első relációbeli
rekordokat hagyjuk) rekordokat hagyjuk)
- Aggregáció - Aggregáció
\clearpage
* Materializáció és pipelining * Materializáció és pipelining
** Materializáció ** Materializáció
Ebben a módszerben az összetett kifejezésnek egyszerre egy műveletét hajtjuk Ebben a módszerben az összetett kifejezésnek egyszerre egy műveletét hajtjuk
@ -815,6 +834,7 @@ Itt egyszerre több elemi műveletet szimultán kiértékelése folyik, egy oper
eredményét azonnal megkapja a sorban következő operáció operandusaként. eredményét azonnal megkapja a sorban következő operáció operandusaként.
Ez persze nem minden esetben működik, pl rendezés esetében. Ez persze nem minden esetben működik, pl rendezés esetében.
\clearpage
* Kiértékelési terv kiválasztása * Kiértékelési terv kiválasztása
Az egyes műveletekre többféle algoritmust, metódust is megvizsgáltunk és közel Az egyes műveletekre többféle algoritmust, metódust is megvizsgáltunk és közel
sem triviális ezek kiválasztása. Tudnunk kell, hogy: sem triviális ezek kiválasztása. Tudnunk kell, hogy:
@ -828,7 +848,7 @@ Nem jó ötlet az összes ekvivalens kifejezést felsorolni, kiértékelni, majd
legjobbat kiválasztani. Ennek az az oka,hogy ezzel túl sok lehetőséget kell legjobbat kiválasztani. Ennek az az oka,hogy ezzel túl sok lehetőséget kell
megvizsgálni. Ezért egy jobb megoldást biztosíthat a heurisztikus költségalapú megvizsgálni. Ezért egy jobb megoldást biztosíthat a heurisztikus költségalapú
optimalizálás. optimalizálás.
\clearpage
* Relációs adatbázis sémák tervezése E-R diagramból * Relációs adatbázis sémák tervezése E-R diagramból
Egy ER-diagram megtervezése után fontos lehet, hogy a megtervezett modellt Egy ER-diagram megtervezése után fontos lehet, hogy a megtervezett modellt
relációs adatmodellbe transzformáljuk, ezzel működőképessé téve. Ehhez relációs adatmodellbe transzformáljuk, ezzel működőképessé téve. Ehhez
@ -844,6 +864,7 @@ transzformációt végzünk.
Ezen kívül számos más lehetőség van a kapcsolatok létrehozására, amelyek adott Ezen kívül számos más lehetőség van a kapcsolatok létrehozására, amelyek adott
esetben jobbak is lehetnek. Ilyen pl. az idegen kulcsos megoldás. esetben jobbak is lehetnek. Ilyen pl. az idegen kulcsos megoldás.
\clearpage
* Anomáliák (módosítási, törlési, beszúrási) * Anomáliák (módosítási, törlési, beszúrási)
A redundáns relációknak megfelelő adattárolással kapcsolatban egy sor A redundáns relációknak megfelelő adattárolással kapcsolatban egy sor
kellemetlen jelenség fordulhat elő. Ezeket hagyományosan anomáliáknak nevezik. kellemetlen jelenség fordulhat elő. Ezeket hagyományosan anomáliáknak nevezik.
@ -866,6 +887,7 @@ lehet.
Erre egy megoldás lehet a relációk függőleges felbontása,de ez nem minden Erre egy megoldás lehet a relációk függőleges felbontása,de ez nem minden
esetben alkalmazható. esetben alkalmazható.
\clearpage
* Adatbázis kényszerek, redundancia * Adatbázis kényszerek, redundancia
** Adatbázis kényszerek ** Adatbázis kényszerek
Adatbázis kényszerek kényszerek alatt azokat a szabályokat értjük, amelyek Adatbázis kényszerek kényszerek alatt azokat a szabályokat értjük, amelyek
@ -884,6 +906,7 @@ halmaza a neki megfeleltethető kulcsértékek halmazának)
Ha egy relációban valamely attribútum értéké a relációban található más Ha egy relációban valamely attribútum értéké a relációban található más
attribútum(ok) értékéből ki tudjuk következtetni valamely ismert következtetési attribútum(ok) értékéből ki tudjuk következtetni valamely ismert következtetési
szabály segítségével, akkor a relációt redundánsnak nevezzük. szabály segítségével, akkor a relációt redundánsnak nevezzük.
\clearpage
* Funkcionális függőségek * Funkcionális függőségek
** Definíció ** Definíció
Legyen adott az $R(A_1,A_2,\ldots,A_n)$ reláció séma, ahol $A_i\text{-k}$, Legyen adott az $R(A_1,A_2,\ldots,A_n)$ reláció séma, ahol $A_i\text{-k}$,
@ -903,6 +926,7 @@ $X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ teljesen függ $X\text{-től}$.
** Részleges függés ** Részleges függés
Ha $X,Y\subseteq R$ és $X \rightarrow Y$ mellett $\exists X'\subset X$, hogy Ha $X,Y\subseteq R$ és $X \rightarrow Y$ mellett $\exists X'\subset X$, hogy
$X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ részlegesen függ $X\text{-től}$. $X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ részlegesen függ $X\text{-től}$.
\clearpage
* Relációs sémák kulcsai * Relációs sémák kulcsai
** Kulcs ** Kulcs
$X\text{-et}$ pontosan akkor nevezzük kulcsnak az $R$ relációs sémán, ha $X\text{-et}$ pontosan akkor nevezzük kulcsnak az $R$ relációs sémán, ha
@ -940,6 +964,7 @@ $F_R$ függőségből, ha az axiomák ismételt alkalmazásával $F_R\text{-ből
kiindulva megkaphatjuk $W\rightarrow Z\text{-t}$. kiindulva megkaphatjuk $W\rightarrow Z\text{-t}$.
*Jelölése:* $F_R \vdash W\rightarrow Z$ *Jelölése:* $F_R \vdash W\rightarrow Z$
\clearpage
* Armstrong axiómái a funkcionális függőségekről * Armstrong axiómái a funkcionális függőségekről
Adottak az $R$ sémán az $X$, $Y$, $Z$ attribútumhalmazok. Adottak az $R$ sémán az $X$, $Y$, $Z$ attribútumhalmazok.
1) Ha $X\subseteq Y$, akkor $Y\rightarrow X$ (reflexivitás vagy triviális függőség). 1) Ha $X\subseteq Y$, akkor $Y\rightarrow X$ (reflexivitás vagy triviális függőség).
@ -956,8 +981,10 @@ $F_R \models X \rightarrow Y \implies FR \vdash X \rightarrow Y$
1) $X \rightarrow Y$ és $X\rightarrow Z \models X \rightarrow YZ$(egyesítési szabály). 1) $X \rightarrow Y$ és $X\rightarrow Z \models X \rightarrow YZ$(egyesítési szabály).
2) $X \rightarrow Y$ és $WY \rightarrow Z \models XW \rightarrow Z$ (pszeudotranzitivitás). 2) $X \rightarrow Y$ és $WY \rightarrow Z \models XW \rightarrow Z$ (pszeudotranzitivitás).
3) $X \rightarrow Y$ és $Z \subseteq Y \models X \rightarrow Z$ (dekompozíciós/felbontási szabály). 3) $X \rightarrow Y$ és $Z \subseteq Y \models X \rightarrow Z$
* Az első normálforma (1NF) (dekompozíciós/felbontási szabály).
\clearpage
* Az első normálforma (=1NF=)
Annak érdekében, hogy a fentebb említett anomáliák ne forduljanak elő, a relációs Annak érdekében, hogy a fentebb említett anomáliák ne forduljanak elő, a relációs
sémáinknak meg kell felelni egyes feltételeknek. Ezeket normálformáknak nevezik. sémáinknak meg kell felelni egyes feltételeknek. Ezeket normálformáknak nevezik.
** Nulladik normálforma ** Nulladik normálforma
@ -966,21 +993,24 @@ attribútum nem atomi abban az értelemben, hogy az attribútum értéke nem
tekinthető egyetlen egységnek. tekinthető egyetlen egységnek.
** Első normálforma ** Első normálforma
Egy relációs séma 1NF alakú, ha csak atomi attribútum-értékek szerepelnek benne. Egy relációs séma =1NF= alakú, ha csak atomi attribútum-értékek szerepelnek
* A második normálforma (2NF) benne.
\clearpage
* A második normálforma (=2NF=)
** Elsődleges és másodlagos attribútumok ** Elsődleges és másodlagos attribútumok
Egy $R$ relációs séma $A\in R$ attribútuma elsődleges attribútum, ha $A$ eleme Egy $R$ relációs séma $A\in R$ attribútuma elsődleges attribútum, ha $A$ eleme
a séma valamely $K$ kulcsának. Egyébként $A$ másodlagos attribútum. a séma valamely $K$ kulcsának. Egyébként $A$ másodlagos attribútum.
** Második normálforma(2NF) ** Második normálforma(2NF)
Egy $1NF$ relációs séma $2NF$ alakú, ha benne minden másodlagos attribútum a Egy =1NF= relációs séma =2NF= alakú, ha benne minden másodlagos attribútum a
séma bármely kulcsától teljesen függ. séma bármely kulcsától teljesen függ.
Más szavakkal: másodlagos attribútum nem függ egyetlen kulcs valódi Más szavakkal: másodlagos attribútum nem függ egyetlen kulcs valódi
részhalmazától sem. részhalmazától sem.
** Tétel ** Tétel
Minden $1NF$ séma felbontható $2NF$ sémákba úgy, hogy azok használatával az $1NF$ Minden =1NF= séma felbontható =2NF= sémákba úgy, hogy azok használatával az =1NF=
sémára illesztett, "eredeti" relációk helyreállíthatók. sémára illesztett, "eredeti" relációk helyreállíthatók.
* Harmadik normálforma (3NF) \clearpage
* Harmadik normálforma (=3NF=)
** Triviális függés ** Triviális függés
Ha az $X,Y$ attribútumhalmazokra igaz, hogy $Y\subseteq X$, akkor $X\rightarrow Ha az $X,Y$ attribútumhalmazokra igaz, hogy $Y\subseteq X$, akkor $X\rightarrow
Y$ függőséget triviális függőségnek nevezzük, egyébként a függőség nemtriviális. Y$ függőséget triviális függőségnek nevezzük, egyébként a függőség nemtriviális.
@ -988,47 +1018,48 @@ Y$ függőséget triviális függőségnek nevezzük, egyébként a függőség
Adott egy $R$ séma, a sémán értelmezett függőségek $F$ halmaza, $X\subseteq Adott egy $R$ séma, a sémán értelmezett függőségek $F$ halmaza, $X\subseteq
R,A\in R$. $A$ tranzitívan függ $X\text{-től}$, ha $\exists Y\subset R$, hogy R,A\in R$. $A$ tranzitívan függ $X\text{-től}$, ha $\exists Y\subset R$, hogy
$X\rightarrow Y$, $Y\not\to X$, $Y\to A$ és $A\notin Y$ $X\rightarrow Y$, $Y\not\to X$, $Y\to A$ és $A\notin Y$
** Harmadik normálforma (3NF) ** Harmadik normálforma (=3NF=)
*** 1. definíció *** 1. Definíció
Egy $1NF$ séma $3NF$, ha $\forall A\in R$ másodlagos attribútum és $\forall Egy =1NF= séma =3NF=, ha $\forall A\in R$ másodlagos attribútum és $\forall
X\subseteq R$ kulcs esetén $\nexists Y$, hogy $X\to Y$, $Y\not\to X$, $Y\to A$ X\subseteq R$ kulcs esetén $\nexists Y$, hogy $X\to Y$, $Y\not\to X$, $Y\to A$
és $A\not\in Y$ és $A\not\in Y$
Más szavakkal: ha egyetlen másodlagos attribútuma sem függ tranzitívan egyetlen Más szavakkal: ha egyetlen másodlagos attribútuma sem függ tranzitívan egyetlen
kulcstól sem. kulcstól sem.
*** 2. Definíció *** 2. Definíció
Egy $1NF$ $R$ séma $3NF$, ha $\forall X\to A, X\subseteq R, A\in R$ nemtriviális Egy =1NF= $R$ séma =3NF=, ha $\forall X\to A, X\subseteq R, A\in R$ nemtriviális
függőség esetén függőség esetén
- X szuperkulcs vagy - X szuperkulcs vagy
- A elsődleges attribútum - A elsődleges attribútum
** Tétel ** Tétel
Az előző két definíció ekvivalens Az előző két definíció ekvivalens
** Tétel ** Tétel
Ahhoz,hogy egy $(R,F)$ sémáról eldöntsük, hogy $3NF\text{-e}$, elég az $F$ Ahhoz,hogy egy $(R,F)$ sémáról eldöntsük, hogy =3NF=-e, elég az $F$
funkcionális függőségek vizsgálata. funkcionális függőségek vizsgálata.
** Tétel ** Tétel
Minden legalább $1NF$ relációs séma felbontható $3NF$ sémába úgy, hogy azokból Minden legalább =1NF= relációs séma felbontható =3NF= sémába úgy, hogy azokból
az eredeti reláció információveszteség nélkül helyreállítható. az eredeti reláció információveszteség nélkül helyreállítható.
** Tétel ** Tétel
Ha egy séma $3NF$ alakú, akkor $2NF$ is egyben. Ha egy séma =3NF= alakú, akkor =2NF= is egyben.
\clearpage
* A Boyce-Codd normálforma (BCNF) * A Boyce-Codd normálforma (BCNF)
** A BoyceCodd normálforma ** A BoyceCodd normálforma
*** 1. Definíció *** 1. Definíció
Egy $1NF$ séma $3NF$, ha $\forall A\in R$ attribútum és $\forall Egy =1NF= séma =3NF=, ha $\forall A\in R$ attribútum és $\forall
X\subseteq R$ kulcs esetén $\nexists Y$, hogy $X\to Y$, $Y\not\to X$, $Y\to A$ X\subseteq R$ kulcs esetén $\nexists Y$, hogy $X\to Y$, $Y\not\to X$, $Y\to A$
és $A\not\in Y$ és $A\not\in Y$
Más szavakkal: ha egyetlen attribútuma sem függ tranzitívan egyetlen kulcstól sem. Más szavakkal: ha egyetlen attribútuma sem függ tranzitívan egyetlen kulcstól sem.
*** 2. Definíció *** 2. Definíció
Egy $1NF$ $R$ séma $BCNF$, ha $\forall X\to A,X\subseteq R,A\in R$ nemriviális Egy =1NF= $R$ séma =BCNF=, ha $\forall X\to A,X\subseteq R,A\in R$ nemriviális
függőség esetén $X$ szuperkulcs. függőség esetén $X$ szuperkulcs.
** Tétel ** Tétel
Az előző két definíció ekvivalens. Az előző két definíció ekvivalens.
** Tétel ** Tétel
Ahhoz, hogy egy (R,F) sémáról eldöntsük, hogy $BCNF\text{-e}$, elég az Ahhoz, hogy egy (R,F) sémáról eldöntsük, hogy =BCNF=-e, elég az
$F\text{-beli}$ funkcionális függőségek vizsgálata. $F\text{-beli}$ funkcionális függőségek vizsgálata.
** Tétel ** Tétel
Ha egy séma $BCNF$ alakú, akkor $3NF$ is. Ha egy séma =BCNF= alakú, akkor =3NF= is.
*** Bizonyítás *** Bizonyítás
Ez a definíció közvetlen következménye. Ez a definíció közvetlen következménye.
** Tétel ** Tétel
@ -1039,8 +1070,9 @@ Emiatt egyetlen attribútum értékét sem lehet kikövetkeztetni más attribút
értékeinek ismeretében, ismert funkcionális függőség alapján. értékeinek ismeretében, ismert funkcionális függőség alapján.
** BCNF adatbázis ** BCNF adatbázis
Egy adatbázis $BCNF$ ($3NF$, $2NF$, $1NF$) alakú, ha a benne található összes relációs Egy adatbázis =BCNF= (=3NF=, =2NF=, =1NF=) alakú, ha a benne található összes relációs
séma rendre legalább $BCNF$ ($3NF$, $2NF$, $1NF$). séma rendre legalább =BCNF= (=3NF=, =2NF=, =1NF=).
\clearpage
* ACID tulajdonságok adatbázis-kezelő rendszerekben * ACID tulajdonságok adatbázis-kezelő rendszerekben
** Tranzakció ** Tranzakció
Egy program egyszeri futása, amelyek vagy minden művelete hatásos, vagy belőle Egy program egyszeri futása, amelyek vagy minden művelete hatásos, vagy belőle
@ -1054,6 +1086,7 @@ semmi sem.
egyedül futna csak le egyedül futna csak le
- tartósság (durability): Ha egy tranzakció már sikeresen lefutott, akkor annak - tartósság (durability): Ha egy tranzakció már sikeresen lefutott, akkor annak
hatása ``nem veszhet el''. hatása ``nem veszhet el''.
\clearpage
* lost update, non-repetable read, phantom read, dirty data * lost update, non-repetable read, phantom read, dirty data
** Lost update (elveszett frissítés) ** Lost update (elveszett frissítés)
Két tranzakció egyszerre ugyan azt az adategységet módosítani, úgy hogy az egyik Két tranzakció egyszerre ugyan azt az adategységet módosítani, úgy hogy az egyik
@ -1071,7 +1104,7 @@ Egy $T_2$ tranzakció olyan ún. piszkos - adatot olvas, melyet egy másik,
$T_1$ tranzakció azelőtt írt az adatbázisba, hogy sikeresen befejeződött $T_1$ tranzakció azelőtt írt az adatbázisba, hogy sikeresen befejeződött
volna. Ha a $T_1$ tranzakció végül valóban sikertelennek bizonyul, akkor a volna. Ha a $T_1$ tranzakció végül valóban sikertelennek bizonyul, akkor a
piszkos adat az adatbázisból mihamarabb eltávolítandó. piszkos adat az adatbázisból mihamarabb eltávolítandó.
\clearpage
* Problémák a zárakkal: pattok és éhezés * Problémák a zárakkal: pattok és éhezés
** Zár (lock) ** Zár (lock)
Hozzáférési privilégium egy adategységen, amely adható és visszaadható. Hozzáférési privilégium egy adategységen, amely adható és visszaadható.
@ -1109,10 +1142,15 @@ mindig lockolják előtte a kédéses adategységet, akkor éhezésről beszél
Egy lehetőség az éhezés elkerülésére, ha feljegyezzük a sikertelen zárkéréseket, Egy lehetőség az éhezés elkerülésére, ha feljegyezzük a sikertelen zárkéréseket,
és ha egy adategység felszabadul, akkor zárat csak a zárkérések sorrendjében és ha egy adategység felszabadul, akkor zárat csak a zárkérések sorrendjében
ítélünk oda (FIFO stratégia) ítélünk oda (FIFO stratégia)
\clearpage
* Ütemezések fajtái * Ütemezések fajtái
** Ütemezés ** Ütemezés
Tranzakciók elemi műveleteinek összessége, melyben a műveletek időbeli sorrendje Tranzakciók elemi műveleteinek összessége, melyben a műveletek időbeli sorrendje
is egyértelműen meghatározott. is egyértelműen meghatározott.
** Soros ütemezés
Ha a tranzakciók egy rendszerben szigorúan egymás után futnak le úgy, hogy
egyidejűleg mindig csak egyetlen tranzakció fut, tehát időben nem lapolódnak át,
akkor ez egy soros ütemezés.
** Sorosíthatóság ** Sorosíthatóság
Egy ütemezés pontosan akkor sorosítható, ha létezik olyan soros ütemezés, Egy ütemezés pontosan akkor sorosítható, ha létezik olyan soros ütemezés,
amelyek minden hatása a módosított adatokra azonos az adott ütemezéssel. amelyek minden hatása a módosított adatokra azonos az adott ütemezéssel.
@ -1128,6 +1166,7 @@ sorosíthatóság biztosítása). Ennek során
- Ha ennek feltételei nem állnak fent, akkor - Ha ennek feltételei nem állnak fent, akkor
- várakozásra kényszerítheti - várakozásra kényszerítheti
- abortálhatja - abortálhatja
\clearpage
* Tranzakció modellek * Tranzakció modellek
** Egyszerű tranzakció modell ** Egyszerű tranzakció modell
Egyszerű tranzakció modellről beszélünk ha: Egyszerű tranzakció modellről beszélünk ha:
@ -1140,41 +1179,44 @@ adott $S$ ütemezésben a $T_i$ tranzakció zárat helyezett el, majd a zár
felszabadítása után először a $T_j$ tranzakció helyez el zárat. felszabadítása után először a $T_j$ tranzakció helyez el zárat.
** Tétel ** Tétel
Egy $S$ ütemezés sorosítható $\Leftrightarrow$ a sorosítási gráf DAG. Egy $S$ ütemezés sorosítható $\Leftrightarrow$ a sorosítási gráf DAG.
* Kétfázisú zárolás (2PL) \clearpage
** Kétfázisú zárolás (2PL) * Kétfázisú zárolás (=2PL=)
** Kétfázisú zárolás (=2PL=)
Egy tranzakció a kétfázisú zárolás protokollt követi, ha az első Egy tranzakció a kétfázisú zárolás protokollt követi, ha az első
zárfelszabadítást megelőzni mindegyik zárkérés. zárfelszabadítást megelőzni mindegyik zárkérés.
** Tétel ** Tétel
Ha egy legális ütemezés minden tranzakciója a $2PL\text{-t}$ követi, akkor az Ha egy legális ütemezés minden tranzakciója a =2PL=-t követi, akkor az
ütemezés sorosítható. ütemezés sorosítható.
** Zárpont ** Zárpont
Az az időpont, amikor egy kétfázisú protokoll szerinti tranzakció az utolsó Az az időpont, amikor egy kétfázisú protokoll szerinti tranzakció az utolsó
zárját is megkapja. zárját is megkapja.
** RLOCK-WLOCK modell ** RLOCK-WLOCK modell
A modell két fajta zárt definiál: A modell két fajta zárt definiál:
- RLOCK: ha $T:RLOCK$ $A$ érvényes, akkor más tranzakció is olvashatja - RLOCK: ha $T$: =RLOCK A= érvényes, akkor más tranzakció is olvashatja
$A\text{-t}$, de írni egy sem írhatja $A\text{-t}$, de írni egy sem írhatja
- WLOCK: ha $T:WLOCK$ $A$ érvényes, akkor $T\text{-n}$ kívül más tranzakció nem - WLOCK: ha $T$: =WLOCK A= érvényes, akkor $T\text{-n}$ kívül más tranzakció nem
fér hozzá $A\text{-hoz}$, sem írásra , sem olvasásra. fér hozzá $A\text{-hoz}$, sem írásra , sem olvasásra.
** Tétel ** Tétel
Egy $RLOCK-WLOCK$ modellbeli $S$ ütemezés sorosítható $\Leftrightarrow$ a fenti Egy =RLOCK-WLOCK= modellbeli $S$ ütemezés sorosítható $\Leftrightarrow$ a fenti
szabályok szerint rajzolt sorosítási gráf DAG. szabályok szerint rajzolt sorosítási gráf DAG.
** Definíció ** Definíció
Egy $RLOCK-WLOCK$ modell szerinti tranzakció kétfázisú, ha minden $RLOCK$ és Egy =RLOCK-WLOCK= modell szerinti tranzakció kétfázisú, ha minden =RLOCK= és
$WLOCK$ megelőzi az első $UNLOCK\text{-ot}$ =WLOCK= megelőzi az első =UNLOCK=-ot.
** Tétel ** Tétel
Ha egy ütemezésben csak kétfázisú, $RLOCK-WLOCK$ modell szerinti tranzakciók Ha egy ütemezésben csak kétfázisú, =RLOCK-WLOCK= modell szerinti tranzakciók
vannak, akkor az ütemezés sorosítható. vannak, akkor az ütemezés sorosítható.
\clearpage
* A fa protokoll * A fa protokoll
Az egyszerű tranzakció modellt követjük és egy csomópont Az egyszerű tranzakció modellt követjük és egy csomópont
zárolása nem jelenti a gyerekek zárolását is. zárolása nem jelenti a gyerekek zárolását is.
** Szabályai ** Szabályai
1. Egy tranzakció az első $LOCK\text{-ot}$ akárhová teheti 1. Egy tranzakció az első =LOCK=-ot akárhová teheti
2. A további $LOCK\text{-ok}$ csak akkor helyezhetők el, ha az adategység 2. A további =LOCK=-ok csak akkor helyezhetők el, ha az adategység
szülőjére az adott tranzakció már rakott zárat szülőjére az adott tranzakció már rakott zárat
3. Egyazon tranzakció kétszer ugyanazt az adategységet nem zárolhatja 3. Egyazon tranzakció kétszer ugyanazt az adategységet nem zárolhatja
** Tétel ** Tétel
A fa protokollnak eleget tevő legális ütemezések sorosíthatók. A fa protokollnak eleget tevő legális ütemezések sorosíthatók.
\clearpage
* Figyelmeztető protokoll * Figyelmeztető protokoll
Az egyszerű tranzakció modellt követjük, de egy csomópont zárolása a gyerek és Az egyszerű tranzakció modellt követjük, de egy csomópont zárolása a gyerek és
az összes leszármazott csomópontok zárolását is jelenti(implicit zár). az összes leszármazott csomópontok zárolását is jelenti(implicit zár).
@ -1182,21 +1224,23 @@ az összes leszármazott csomópontok zárolását is jelenti(implicit zár).
Egy $T_2$ tranzakció, egy olyan adategységre tesz lockot, amely leszármazottját Egy $T_2$ tranzakció, egy olyan adategységre tesz lockot, amely leszármazottját
már egy $T_1$ tranzakció lezárt magának. már egy $T_1$ tranzakció lezárt magának.
** Figyelmeztető protokoll zárművei ** Figyelmeztető protokoll zárművei
- $LOCK$ $A$: zárolja $A\text{-t}$ és az összes leszármazott csomópontot is. Két - =LOCK A=: zárolja $A\text{-t}$ és az összes leszármazott csomópontot is. Két
különböző tranzakció nem tarthat fent zárat ugyanazon adategységen. különböző tranzakció nem tarthat fent zárat ugyanazon adategységen.
- $WARN$ $A$: $A\text{-ra}$ figyelmeztetést rak. Ekkor $A\text{-t}$ más - =WARN A=: $A\text{-ra}$ figyelmeztetést rak. Ekkor $A\text{-t}$ más
tranzakció nem zárolhatja tranzakció nem zárolhatja
- $UNLOCK$ $A$: eltávolítja a zárat vagy az $UNLOCK\text{-ot}$ kiadó tranzakció - =UNLOCK A=: eltávolítja a zárat vagy az =UNLOCK=-ot kiadó tranzakció
által elhelyezett figyelmeztetést $A\text{-ról}$ által elhelyezett figyelmeztetést $A\text{-ról}$
** További szabályok ** További szabályok
1. Egy tranzakció első művelete kötelezően $LOCK$ gyökér vagy $WARN$ gyökér 1. Egy tranzakció első művelete kötelezően =LOCK= gyökér vagy =WARN= gyökér
2. $LOCK$ $A$ vagy $WARN$ $A$ akkor helyezhető el, ha $A$ szülőjén ugyanaz a 2. =LOCK A= vagy =WARN A= akkor helyezhető el, ha $A$ szülőjén ugyanaz a
tranzakció már helyezett el $WARN\text{-t}$. tranzakció már helyezett el =WARN=-t.
3. $UNLOCK$ $A$ akkor lehetséges, ha gyerekein már ugyanaz a tranzakció nem tart 3. =UNLOCK A= akkor lehetséges, ha gyerekein már ugyanaz a tranzakció nem tart
fenn sem $LOCK\text{-ot}$ sem $WARN\text{-t}$ fenn sem =LOCK=-ot sem =WARN=-t
4. Kétfázisú: az első $UNLOCK$ után nem következhet $LOCK$ vagy $WARN$ 4. Kétfázisú: az első =UNLOCK= után nem következhet =LOCK= vagy =WARN=
** Tétel ** Tétel
A figyelmeztető protokollt követő legális ütemezés zárkonfliktusmentesek és sorosíthatóak. A figyelmeztető protokollt követő legális ütemezés zárkonfliktusmentesek és
sorosíthatóak.
\clearpage
* Tranzakcióhibák kezelése, commit pont * Tranzakcióhibák kezelése, commit pont
Mindeddig nem foglalkoztunk azokkal a problémákkal, amelyek akkor lépnek fel, Mindeddig nem foglalkoztunk azokkal a problémákkal, amelyek akkor lépnek fel,
ha egy tranzakció nem fut le teljesen, valamely ok miatt idő előtt befejeződik. ha egy tranzakció nem fut le teljesen, valamely ok miatt idő előtt befejeződik.
@ -1219,6 +1263,7 @@ commitált volna.
Azt a jelenséget, amikor egy tranzakciók piszkos adatot olvasnak be és ezzel Azt a jelenséget, amikor egy tranzakciók piszkos adatot olvasnak be és ezzel
végeznek el műveleteket, lavinának nevezzük, hiszen ezek az eredmények nem végeznek el műveleteket, lavinának nevezzük, hiszen ezek az eredmények nem
tekinthetők helyesnek. tekinthetők helyesnek.
\clearpage
* Szigorú kétfázisú protokoll * Szigorú kétfázisú protokoll
A tranzakcióhibák kezelésének igen gyakori módszere. Egy tranzakció ezt a A tranzakcióhibák kezelésének igen gyakori módszere. Egy tranzakció ezt a
protokollt követi, ha kétfázisú, továbbá protokollt követi, ha kétfázisú, továbbá
@ -1239,6 +1284,7 @@ sorosíthatóak és lavinamentesek.
*** Bizonyítás *** Bizonyítás
Az ütemezés sorosítható, mert kétfázisú; továbbá lavinamentes, Az ütemezés sorosítható, mert kétfázisú; továbbá lavinamentes,
mert nincs lehetőség piszkos adat olvasására. mert nincs lehetőség piszkos adat olvasására.
\clearpage
* Agresszív és konzervatív protokollok * Agresszív és konzervatív protokollok
Tranzakciós protokoll kiválasztásánál fontos, hogy az adott protokoll mennyire Tranzakciós protokoll kiválasztásánál fontos, hogy az adott protokoll mennyire
``hatékony''. A hatékonyságot nézhetjük úgy, hogy ``hatékony''. A hatékonyságot nézhetjük úgy, hogy
@ -1254,6 +1300,7 @@ lehetséges, nem törődve azzal, hogy ez esetleg aborthoz is vezethet.
** Konzervatív protokoll, pesszimista konkurenciakezelés ** Konzervatív protokoll, pesszimista konkurenciakezelés
Egy protokoll konzervatív, ha megkísérli elkerülni az olyan tranzakciók Egy protokoll konzervatív, ha megkísérli elkerülni az olyan tranzakciók
futtatását, amelyek nem biztos, hogy eredményesek lesznek. futtatását, amelyek nem biztos, hogy eredményesek lesznek.
\clearpage
* Védekezés rendszerhibák ellen * Védekezés rendszerhibák ellen
A rendszerhibák elleni védekezés általános módszere a (tranzakciós) naplózás. 6 A rendszerhibák elleni védekezés általános módszere a (tranzakciós) naplózás. 6
A naplózásnak számos módja lehet, itt csak a leggyakoribbakra térünk ki. A naplózásnak számos módja lehet, itt csak a leggyakoribbakra térünk ki.
@ -1267,6 +1314,7 @@ az kerülhet a naplóba, hogy hogyan kell az adategység új értékét előáll
Alapszabály, hogy a naplót azelőtt írjuk, mielőtt a naplózott műveletre sor kerülne Alapszabály, hogy a naplót azelőtt írjuk, mielőtt a naplózott műveletre sor kerülne
(kivétel: az abort művelet naplózása). (kivétel: az abort művelet naplózása).
\clearpage
* Hatékonysági kérdések * Hatékonysági kérdések
Fontos, hogy a napló stabil tárban legyen eltárolva,hiszen ez használható Fontos, hogy a napló stabil tárban legyen eltárolva,hiszen ez használható
helyreállításra. Ez viszont azzal jár, hogy az adatbázis blokkjai mellett a napló helyreállításra. Ez viszont azzal jár, hogy az adatbázis blokkjai mellett a napló
@ -1284,13 +1332,13 @@ blokkműveletet végzünk. Ugyanakkor szabály, hogy egy tranzakció vége után
is kiírandó a háttértárra, ha a lapozási stratégia ezt még nem követelné meg, is kiírandó a háttértárra, ha a lapozási stratégia ezt még nem követelné meg,
hiszen ezáltal válik a tranzakció tartósan akár megismételhetően hiszen ezáltal válik a tranzakció tartósan akár megismételhetően
végrehajtottá (az ACID-ból a tartósság így teljesül). végrehajtottá (az ACID-ból a tartósság így teljesül).
\clearpage
* A redo protokoll * A redo protokoll
A protokoll onnan kapta a nevét, hogy rendszer- vagy tranzakcióhiba esetén nincs A protokoll onnan kapta a nevét, hogy rendszer- vagy tranzakcióhiba esetén nincs
szükség undo műveletre, csak redo művelet kell. szükség undo műveletre, csak redo művelet kell.
** Redo naplózás ** Redo naplózás
A redo naplózás a szigorú $2PL$ finomítása. A redo naplózás a szigorú =2PL= finomítása.
*** Lépései *** Lépései
1. $(T,\text{ begin})$ naplóba 1. $(T,\text{ begin})$ naplóba
@ -1321,6 +1369,7 @@ kerül.
Ha a redo helyreállítás elszáll, akkor egyszerűen megismételendő, hiszen Ha a redo helyreállítás elszáll, akkor egyszerűen megismételendő, hiszen
a 4. pontban végzett műveletek hatása az adatbázisra idempotens (idempotent). a 4. pontban végzett műveletek hatása az adatbázisra idempotens (idempotent).
\clearpage
* Ellenőrzési pontok * Ellenőrzési pontok
A redo helyreállításnál előfordulhat, hogy túl régi időpontra kell visszamennie A redo helyreállításnál előfordulhat, hogy túl régi időpontra kell visszamennie
ahhoz, hogy a helyreállításhoz megfelelő időpontot találjunk. Ezen a problémán segítenek az ellenőrzési pontok, amikor kikény- ahhoz, hogy a helyreállításhoz megfelelő időpontot találjunk. Ezen a problémán segítenek az ellenőrzési pontok, amikor kikény-
@ -1344,6 +1393,7 @@ szerítik az adatbázisnak egy konzisztens állapotát:
- adott idő eltelte után - adott idő eltelte után
- adott számú tranzakció után - adott számú tranzakció után
- az előző kettő kombinációja - az előző kettő kombinációja
\clearpage
* Időbélyeges tranzakciókezelés R/W modellben * Időbélyeges tranzakciókezelés R/W modellben
** Időbélyeg ** Időbélyeg
Olyan érték, amelyet minden tranzakcióhoz szigorú egyediséget biztosítva Olyan érték, amelyet minden tranzakcióhoz szigorú egyediséget biztosítva
@ -1444,8 +1494,8 @@ illetve $A$ adategység, $R(A)$ olvasási- és $W(A)$ írási-időbélyege
\node at (5.5,-0.8) {Időbélyegek azonosítója}; \node at (5.5,-0.8) {Időbélyegek azonosítója};
\end{tikzpicture} \end{tikzpicture}
\end{center} \end{center}
\clearpage
* Az időbélyeges R/W modell és a 2PL összehasonlítása * Az időbélyeges R/W modell és a =2PL= összehasonlítása
Elképzelhető, hogy egy ütemezés sorosítható Elképzelhető, hogy egy ütemezés sorosítható
időbélyegesen, de kétfázisú zárakkal nem időbélyegesen, de kétfázisú zárakkal nem
@ -1456,7 +1506,7 @@ Elképzelhető, hogy egy ütemezés sorosítható
Tanulság: sem a zárakkal, sem az időbélyegekkel való sorosítás nem jobb egyér- Tanulság: sem a zárakkal, sem az időbélyegekkel való sorosítás nem jobb egyér-
telműen a másiknál. telműen a másiknál.
\clearpage
* Tranzakcióhibák és az időbélyegek * Tranzakcióhibák és az időbélyegek
Elképzelhető olyan helyzet, amelyben egy $T_1$ tranzakció előállít egy $A$ Elképzelhető olyan helyzet, amelyben egy $T_1$ tranzakció előállít egy $A$
adategységben értékeket, majd egy $T_2$ tranzakció ezt beolvassa, de később adategységben értékeket, majd egy $T_2$ tranzakció ezt beolvassa, de később
@ -1484,6 +1534,7 @@ amikor tehát lavinaveszéllyel kell számolni.
\draw[black] (9.0,0.15) -- (9.0,-0.15) node[below] {írás az adatbázisba}; \draw[black] (9.0,0.15) -- (9.0,-0.15) node[below] {írás az adatbázisba};
\end{tikzpicture} \end{tikzpicture}
\end{center} \end{center}
\clearpage
* Verziókezelés időbélyegek mellett ($MVCC$) * Verziókezelés időbélyegek mellett ($MVCC$)
Feltételezés: minden adatelem írásakor a régi értéket is megőrizzük. Feltételezés: minden adatelem írásakor a régi értéket is megőrizzük.