Fixed many typos

This commit is contained in:
Toldi Balázs Ádám 2021-01-06 10:48:01 +01:00
parent 0b52eb5fb9
commit 5bf5c0a5a3

208
db.org
View file

@ -7,24 +7,25 @@
#+LATEX_HEADER: \usepackage{blindtext} #+LATEX_HEADER: \usepackage{blindtext}
#+LaTeX_HEADER: \setcounter{secnumdepth}{5} #+LaTeX_HEADER: \setcounter{secnumdepth}{5}
* Adat, információ, tudás. Metaadatok. Strukturált, szemistrukturált és nem strukturált adatok * Adat, információ, tudás. Metaadatok. Strukturált, szemi-strukturált és nem strukturált adatok
** Adat ** Adat
A körülöttünk lévő világ egy része,ami értelmezhető ugyan,de nem értelmezzük. A körülöttünk lévő világ egy része,ami értelmezhető ugyan,de nem
értelmezzük.
** Információ ** Információ
Az adathoz redelünk egy értelmet,egy jelentést. Az adathoz rendelünk egy értelmet,egy jelentést.
** Tudás ** Tudás
Kontextusba helyezett információ. Kontextusba helyezett információ.
** Metaadat ** Metaadat
Adat, az adatról. Segéd adatok. Adat, az adatról. Segéd adatok.
*** Szerkezeti(Strukturális) metaadat *** Szerkezeti(Strukturális) metaadat
pl. Hol található egy file fizikailag pl. Hol található egy fájl fizikailag
*** Szemantikus(Üzleti információs) metaadat *** Szemantikus(Üzleti információs) metaadat
Hogyan kell értelmezni egy adatot. Hogyan kell értelmezni egy adatot.
*** Üzemeltetési metaadat *** Üzemeltetési metaadat
Mi történt az adatokkal. Mi történt az adatokkal.
pl. mikor lett módosítva. pl. mikor lett módosítva.
** Struktúrált adat ** Strukturált adat
Olyan adat,amire struktúrális $\text{metaadat} << \text{adat}$ . Olyan adat,amire strukturális $\text{metaadat} << \text{adat}$ .
*** Semi-struktúrált adat *** Semi-struktúrált adat
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
@ -343,11 +344,11 @@ Az invertált állomány mutatói lehetnek:
1. <<elso>>Fizikai mutatók, amelyek pl. mutathatnak 1. <<elso>>Fizikai mutatók, amelyek pl. mutathatnak
1) <<elso.a>>közvetlenül az adatállomány megfelelő blokkja (esetleg rekordja) 1) <<elso.a>>közvetlenül az adatállomány megfelelő blokkja (esetleg rekordja)
2) <<elso.b>>az adatállomány elsődleges kulcsa szerinti (sűrű) indexállomány 2) <<elso.b>>az adatállomány elsődleges kulcsa szerinti (sűrű) indexállomány
megfelelő rekorjára megfelelő rekordjára
2. <<masodik>> Logikai mutatók, amelyek az adatállomány valamely kulcsának értékét 2. <<masodik>> Logikai mutatók, amelyek az adatállomány valamely kulcsának értékét
tartalmazzák tartalmazzák
Az [[elso.a]] esetben az adatállomány rekordjai kötöttek és ráadásul csak egyetlen Az [[elso.a]] esetben az adatállomány rekordjai kötöttek és ráadásul csak egyetlen
inverált állomány esetén használható. invertált állomány esetén használható.
Az [[elso.b]] esetben egyel több indirekción keresztül elrejtjük a keresett Az [[elso.b]] esetben egyel több indirekción keresztül elrejtjük a keresett
rekordot, de az adatrekord megváltoztatásakor csak az érintett mezőhöz (vagy rekordot, de az adatrekord megváltoztatásakor csak az érintett mezőhöz (vagy
@ -358,7 +359,7 @@ ismerjük a keresett rekord címét.
* 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
tudjuknk kinyerni. A legtöbb esetben nem tudunk minden adatot eltárlni egy adott tudjunk kinyerni. A legtöbb esetben nem tudunk minden adatot eltárolni egy adott
témakörrel kapcsolatban, ezért csak az adatok egy részét tároljuk. Az eltárolni témakörrel kapcsolatban, ezért csak az adatok egy részét tároljuk. Az eltárolni
kívánt adatokat klasszikus modellezési eszközökkel választjuk ki: a fontos kívánt adatokat klasszikus modellezési eszközökkel választjuk ki: a fontos
információkat megtartjuk, a kevésbé fontosakat elhanyagoljuk. információkat megtartjuk, a kevésbé fontosakat elhanyagoljuk.
@ -375,7 +376,7 @@ felhasználó szempontjából miként valósul meg az adatok közötti kapcsolat
ábrázolása. ábrázolása.
** Adatmodellek ** Adatmodellek
- Hálos adatmodell - Hálós adatmodell
- Relációs adatmodell - Relációs adatmodell
- Objektumorientált adatmodell - Objektumorientált adatmodell
* Az E-R modell és elemei * Az E-R modell és elemei
@ -389,7 +390,7 @@ adatmodellnek, hiszen nem definiál műveleteket az adatokon.
A valós világban létező, logikai vagy fizikai szempontból saját léttel A valós világban létező, logikai vagy fizikai szempontból saját léttel
rendelkező dolog, amelyről adatokat tárolunk. rendelkező dolog, amelyről adatokat tárolunk.
*** Tulajdonságok(property) *** Tulajdonságok(property)
Az etitásokat jellemzi; ezeken keresztül különböztethetőek meg az entitások. Az entitásokat jellemzi; ezeken keresztül különböztethetőek meg az entitások.
*** Egyedhalmaz *** Egyedhalmaz
Azonos attribútumokkal rendelkező egyedek összessége. Azonos attribútumokkal rendelkező egyedek összessége.
*** Kapcsolatok *** Kapcsolatok
@ -414,10 +415,10 @@ Az ER modell egy grafikus megjelenítése az ER diagram.
| ER modell elem | Alakzat | | ER modell elem | Alakzat |
|----------------+----------| |----------------+----------|
| Egyedhalmaz | Téglalap | | Egyedhalmaz | Téglalap |
| Attribútum | Elipszis | | Attribútum | Ellipszis |
| Kapcsolat | Rombusz | | Kapcsolat | Rombusz |
Az aláhúzott attribútumok az adott eygedhalmaz kulcsait jelenti. Az aláhúzott attribútumok az adott egyedhalmaz kulcsait jelenti.
** ISA kapcsolat ** ISA kapcsolat
Gyakori az a modellezési szituáció, amikor egy entitáshalmaz minden eleme Gyakori az a modellezési szituáció, amikor egy entitáshalmaz minden eleme
rendelkezik egy másik (általánosabb) entitáshalmaz attribútumaival, de azokon rendelkezik egy másik (általánosabb) entitáshalmaz attribútumaival, de azokon
@ -430,7 +431,7 @@ Gyakran előfordul, hogy egy entitáshalmaznak nem tudunk kulcsot kijelölni,
ehelyett az egyedek azonosításához valamely kapcsolódó egyed(ek)re is szükség ehelyett az egyedek azonosításához valamely kapcsolódó egyed(ek)re is szükség
van. Ebben az esetben gyenge egyedhalmazokról beszélünk. Az identitását egy 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
egyedhalmazzaltöbb-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló egyedhalmazzal több-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló
kapcsolat. kapcsolat.
* A relációs adatmodell: adatok strukturálása és műveletek * A relációs adatmodell: adatok strukturálása és műveletek
@ -440,12 +441,12 @@ A relációs adatmodell alapját, ahogyan a neve is árulkodik róla, relációk
alkotják. alkotják.
*** Reláció *** Reláció
Halamzok Decartes szorzatának részhalmaza. Halmazok Descartes szorzatának részhalmaza.
A halmazokban található értékek egy-egy ún. tartományból (domain) kerülnek ki. A halmazokban található értékek egy-egy ún. tartományból (domain) kerülnek ki.
Fontos megjegyezni, hogy alapvetően a relációban tárolt elemek sorrendjének Fontos megjegyezni, hogy alapvetően a relációban tárolt elemek sorrendjének
nincs jelentősége.Sőt az attribútumok nevének sincs jelentősége a modelre nincs jelentősége. Sőt az attribútumok nevének sincs jelentősége a modellre
nézve, de egy adatbázis akkor jó, ha információt tudunk kinyerni belőle. Ehhez nézve, de egy adatbázis akkor jó, ha információt tudunk kinyerni belőle. Ehhez
viszont szükséges az, hogy az egyes relációk, attribútumok valamilyen, a modell viszont szükséges az, hogy az egyes relációk, attribútumok valamilyen, a modell
szempontjából értelmezhető információval rendelkezzen. szempontjából értelmezhető információval rendelkezzen.
@ -455,9 +456,9 @@ A relációban tárolható attribútumok halmaza.
Ha egy adatbázis több relációs sémát is tartalmaz, akkor a relációs sémák Ha egy adatbázis több relációs sémát is tartalmaz, akkor a relációs sémák
összességének neve adatbázis séma. összességének neve adatbázis séma.
*** A relációk további jellemzői *** A relációk további jellemzői
**** A releciók foka **** A relációk foka
A relecióban lévő oszlopok (attribútumok) száma. A relációban lévő oszlopok (attribútumok) száma.
**** A releciók számossága **** A relációk számossága
A relációban található sorok száma A relációban található sorok száma
** Műveletek ** Műveletek
@ -477,13 +478,13 @@ művelet segítségével:
A\cap B &= A\setminus(A\setminus B) A\cap B &= A\setminus(A\setminus B)
\end{align} \end{align}
** Descartes szorzat ** Descartes szorzat
Két halmaz dékártszorzatának attribútúmainak száma a két reláció attribútúmainak Két halmaz Descartes szorzatának attribútumainak száma a két reláció attribútumainak
összege, a benne található adatok pedig a relációk összes sorának összes összege, a benne található adatok pedig a relációk összes sorának összes
kombinációja. kombinációja.
*Jelölése:* $r_1\times r_2$ *Jelölése:* $r_1\times r_2$
** Vetítés, projekció ** Vetítés, projekció
Vetítés során a reláció egyes kiválasztott attribútumait megtarjuk, a többit Vetítés során a reláció egyes kiválasztott attribútumait megtartjuk, a többit
pedig töröljük. pedig töröljük.
*Jelölése:* $\pi_{A,B}(r_1)$ *Jelölése:* $\pi_{A,B}(r_1)$
@ -494,7 +495,7 @@ $r$ relációból, egy meghatározott logikai formula alapján. A formulát a re
formula igaz értéket kap. formula igaz értéket kap.
*Jelölés:* $\sigma_{F}(r)$, ahol az $F$ a kiértékelendő logikai formulát jelöli, *Jelölés:* $\sigma_{F}(r)$, ahol az $F$ a kiértékelendő logikai formulát jelöli,
vagy másnéven a szelekcós feltételt. vagy más néven a szelekciós feltételt.
*** A formula elemei *** A formula elemei
- Konstansok - Konstansok
@ -530,7 +531,7 @@ a kvantorok sorvektor változókat kvantifikálhatnak.
*** Felépítése *** Felépítése
A nyelv szimbólumból atomokat épít fel, amelyek formulákká rakhatók össze, a A nyelv szimbólumból atomokat épít fel, amelyek formulákká rakhatók össze, a
formulák pedig egy kifejezéssé építhetők, amelyek segítségével relációk írhatók le. formulák pedig egy kifejezéssé építhetők, amelyek segítségével relációk írhatók le.
*** Szimbolumai *** Szimbólumai
- Zárójelek: (,) - Zárójelek: (,)
- Aritmetikai relációk $<,>,=,\neq,m,\leq,\geq$ - Aritmetikai relációk $<,>,=,\neq,m,\leq,\geq$
- logikai műveletek $\vee,\wedge,\neg$ - logikai műveletek $\vee,\wedge,\neg$
@ -542,12 +543,12 @@ formulák pedig egy kifejezéssé építhetők, amelyek segítségével reláci
*** Atomok felépítése *** Atomok felépítése
- $R^{(m)}(s^{(m)})$ - $R^{(m)}(s^{(m)})$
- $s^{(n)}[i]\Theta u^{(k)}[j]$, ahol $1\leq i \leq n$, $1\leq j \leq k$ és - $s^{(n)}[i]\Theta u^{(k)}[j]$, ahol $1\leq i \leq n$, $1\leq j \leq k$ és
$\Theta$ aritmetikai relációsjel $\Theta$ aritmetikai relációs jel
- $s^{(n)}[i]\Theta c$ - $s^{(n)}[i]\Theta c$
- $R^{(m)}(c_1,c_2,\ldots,c_n)$ - $R^{(m)}(c_1,c_2,\ldots,c_n)$
*** Formulák felépítése *** Formulák felépítése
- minden atom formula - minden atom formula
- Ha $\Psi_1$ és $\Psi_2$ formuál, akkor $\Psi_1\vee\Psi_2$, - Ha $\Psi_1$ és $\Psi_2$ formulák, akkor $\Psi_1\vee\Psi_2$,
$\Psi_1\wedge\Psi_2$ és $\neg\Psi_1$ is formulák $\Psi_1\wedge\Psi_2$ és $\neg\Psi_1$ is formulák
- Ha $\Psi$ formula és $s^{(n)}$ egy szabad sorváltozója, akkor $(\exists - Ha $\Psi$ formula és $s^{(n)}$ egy szabad sorváltozója, akkor $(\exists
s^{(n)})\Psi$ és $(\forall s^{(n)})\Psi$ is formulák, amelyben $s^{(n)})$ már s^{(n)})\Psi$ és $(\forall s^{(n)})\Psi$ is formulák, amelyben $s^{(n)})$ már
@ -568,14 +569,14 @@ helyet egyszerű változók szerepelnek benne. Ennek köszönhetően egy kicsive
egyszerűbb kifejezni vele bizonyos lekérdezéseket. egyszerűbb kifejezni vele bizonyos lekérdezéseket.
*** Szimbólumai *** Szimbólumai
- \ldots - \ldots
- oszlopbáltozók: $u_i$ - oszlopváltozók: $u_i$
- \ldots - \ldots
*** Atomok felépítése *** Atomok felépítése
- $R^{(m)}(x_1,x_2,\ldots,x_m)$, ahol $x_1,x_2,\ldots,x_m$ konstansok vagy oszlopváltozók. - $R^{(m)}(x_1,x_2,\ldots,x_m)$, ahol $x_1,x_2,\ldots,x_m$ konstansok vagy oszlopváltozók.
- $x\Theta y$, ahol $x$ és $y$ konstansok vagy oszlopváltozók és $\Theta$ - $x\Theta y$, ahol $x$ és $y$ konstansok vagy oszlopváltozók és $\Theta$
aritmetikai relációjel. aritmetikai relációjel.
- $\ldots$ - $\ldots$
*** Formulá felépítése *** Formulák felépítése
- $\ldots$ - $\ldots$
*** Kifejezések felépítése *** Kifejezések felépítése
\begin{align*} \begin{align*}
@ -583,39 +584,39 @@ egyszerűbb kifejezni vele bizonyos lekérdezéseket.
\end{align*} \end{align*}
ahol $\Psi$ olyan formula, amelyek szabad változói csak $x_1,x_2,\ldots,x_m$ ahol $\Psi$ olyan formula, amelyek szabad változói csak $x_1,x_2,\ldots,x_m$
*** Tétel *** Tétel
Rögzített $A$ interpretációs halmaz és $R_k^{(n_k)}\subseteq A^{n_k}$ reá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.
* 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óko/véges idő kiértékelhetőek legyenek számítógépen kezelhető méretű relációk/véges idő
mellett is. mellett is.
** Formula doménje ** Formula doménje
$\text{DOM}\Psi\equiv\{\Psi\text{-beli alaprelációk összes attribútumának $\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)\}$ biztosnágos, ha $\{t|\Psi(t)\}$ biztonságos, ha
1) minden $\Psi(t)$-t kielégítő $t$ minden komponense 1) minden $\Psi(t)$-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$ lielégíti $\omega\text{-t}$ szabad változók valamelym 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 abiztonságos sorkalkulus kifejezőereje ekvivalens. A relációs algebra és a biztonságos sorkalkulus kifejezőereje ekvivalens.
* 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
módosítani, hogy kiválasszuk a leggyorsabb, még a helyes eredményt kapjuk. módosítani, hogy kiválasszuk a leggyorsabb, még a helyes eredményt kapjuk.
** Első lépés ** Első lépés
A lekérdezés kanonikus alakjából indulunk ki. Vegyük először a kiválasztott A lekérdezés kanonikus alakjából indulunk ki. Vegyük először a kiválasztott
relációk Descartes szorzatát, majd hajtsuk végre a szelciót, végül alkalmazzuk a relációk Descartes szorzatát, majd hajtsuk végre a szekciót, végül alkalmazzuk a
kivánt projekciót. kívánt projekciót.
** Második lépés ** Második lépés
Itt a szelekciós feltételeket próbáljuk meg sülyeszteni. Ehhez fel kell Itt a szelekciós feltételeket próbáljuk meg süllyeszteni Ehhez fel kell
használni a relációs algebrai kifejezések ekvivalenciákját. A célja az input használni a relációs algebrai kifejezések ekvivalenciáját A célja az input
relációkat, a további műveletekhez szükséges részét redukáljuk le amennyire csak relációkat, a további műveletekhez szükséges részét redukáljuk le amennyire csak
lehet. lehet.
** Harmadik lépés ** Harmadik lépés
Ebben a lépésben a fában szereplő leveleket (azaz relációkat) próbáljuk minnél Ebben a lépésben a fában szereplő leveleket (azaz relációkat) próbáljuk minél
jobb helyre rendezni. Ez akkor hasznos, ha ezzel nagyságrendekkel kisebb jobb helyre rendezni. Ez akkor hasznos, ha ezzel nagyságrendekkel kisebb
Descartes szorzatok jönnek létre. Descartes szorzatok jönnek létre.
** Negyedik lépés ** Negyedik lépés
@ -659,10 +660,10 @@ Valóban.
*** Demorgen azonosságok *** Demorgen azonosságok
Itt is alkalmazhatóak. Itt is alkalmazhatóak.
*** STB *** STB
Ennél jóval több van. Csak egy pár fontosabbat soraltam itt fel. Ennél jóval több van. Csak egy pár fontosabbat soroltam itt fel.
* 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ügvény a legkisebb után azt a végrehajtási tervet alkalmazzuk, amelyre ez a függvény a legkisebb
értéket adta. értéket adta.
** Katalógusadatok ** Katalógusadatok
A költségbecslést segítő metaadatokat katalógus adatoknak nevezzük. Ilyen adat A költségbecslést segítő metaadatokat katalógus adatoknak nevezzük. Ilyen adat
@ -670,7 +671,7 @@ például a rekordok/blokkok száma, a relációhoz tartozó indexek, egyes
lekérdezések költsége lekérdezések költsége
*** Költsége *** Költsége
Ezeket az adatokat folyamatosan frissíteni kell. Ez bizonyos esetekben igencsak Ezeket az adatokat folyamatosan frissíteni kell. Ez bizonyos esetekben igencsak
költséges lehet, jól meg kell gondolni, hogy ezt mikor teszük meg. költséges lehet, jól meg kell gondolni, hogy ezt mikor tesszük meg.
** Költség meghatározása ** Költség meghatározása
A költségek meghatározása elsősorban a blokkműveletek számára szoktunk A költségek meghatározása elsősorban a blokkműveletek számára szoktunk
optimalizálni,hiszen ez független a rendszer terhelésétől, valamint ennek a optimalizálni,hiszen ez független a rendszer terhelésétől, valamint ennek a
@ -719,9 +720,9 @@ B* fáknál, azaz a csomópontokból induló ágak átlagos száma.
+ költsége: $E_{A1}=b_r$ + költsége: $E_{A1}=b_r$
- (A2 )Bináris keresés: - (A2 )Bináris keresés:
+ Feltétele: + Feltétele:
- A blokkok folyamatosan helyzkednek el a diszken - A blokkok folyamatosan helyezkednek el a diszken
- Az $A$ attribútum szerinte rendezett - Az $A$ attribútum szerinte rendezett
- Szelekció feltétele egyenőség - Szelekció feltétele egyenlőség
+ Költsége: $E_{A2}=\lceil\log_2(b_r+1)\rceil+\left\lceil\frac{SC(A,r)}{f_r}\right\rceil-1$ + Költsége: $E_{A2}=\lceil\log_2(b_r+1)\rceil+\left\lceil\frac{SC(A,r)}{f_r}\right\rceil-1$
*** Indexelt szelekciós algoritmusok *** Indexelt szelekciós algoritmusok
Elsődleges index: segítségével a háttértáron a rekordokat a tényleges fizikai Elsődleges index: segítségével a háttértáron a rekordokat a tényleges fizikai
@ -753,7 +754,7 @@ r_1\Join r_2&= \pi_{A\cup B}(\sigma_{R1.X=R2.X}(r_1\times r_2))
**** Külső illesztések **** Külső illesztések
- Bal oldali külső illesztés $r_1*(+)r_2$ - Bal oldali külső illesztés $r_1*(+)r_2$
- Jobb oldali külső illesztés $r_1(+)*r_2$ - Jobb oldali külső illesztés $r_1(+)*r_2$
- Teljse külső illesztés $r_1(+)*(+)r_2$ - Teljes külső illesztés $r_1(+)*(+)r_2$
**** Theta illesztés **** Theta illesztés
\begin{align} \begin{align}
r_1 \Join_\theta r_2 = \sigma_\theta(r_1\times r_2) r_1 \Join_\theta r_2 = \sigma_\theta(r_1\times r_2)
@ -761,15 +762,15 @@ r_1 \Join_\theta r_2 = \sigma_\theta(r_1\times r_2)
*** Egymásba ágyazott ciklikus illesztés (Nested loops join) *** Egymásba ágyazott ciklikus illesztés (Nested loops join)
Két egymásba ágyazott ciklus használatával hajtja végre a join műveletet: Két egymásba ágyazott ciklus használatával hajtja végre a join műveletet:
1) Végig megy az egyik reláció összes rekordján, az ehhez tartozókat fogjuk keresni 1) Végig megy az egyik reláció összes rekordján, az ehhez tartozókat fogjuk keresni
2) Végig megy a másik reláció összes rekordján és menézi,hogy az előző ciklus 2) Végig megy a másik reláció összes rekordján és megnézi,hogy az előző ciklus
futó változójához megfelel-e futó változójához megfelel-e
Legrosszabb esetben a kölrtsége $b_r+n_r\cdot b_s$,de ha legalább az egyik befér Legrosszabb esetben a költsége $b_r+n_r\cdot b_s$,de ha legalább az egyik befér
a memóriába akkor a költség $b_r+b_s$ lesz. a memóriába akkor a költség $b_r+b_s$ lesz.
*** Blokk alapú egymásba ágyazott ciklikus illesztés(block nested *** Blokk alapú egymásba ágyazott ciklikus illesztés(block nested
loop join) loop join)
Itt négy darab egymásba ágyazott ciklust alkalmazunk: Itt négy darab egymásba ágyazott ciklust alkalmazunk:
1) Végig megy az egyik reláció blokkjain 1) Végig megy az egyik reláció blokkjain
2) Másik reláció blokkaji 2) Másik reláció blokkjai
3) Első reláció beolvasott blokkjának rekordjai 3) Első reláció beolvasott blokkjának rekordjai
4) Másik reláció beolvasott blokkjának rekordjai 4) Másik reláció beolvasott blokkjának rekordjai
@ -790,7 +791,7 @@ Költsége: $b_r+n_r\cdot c$, ahol $c$ a szelekció költsége.
rendezzük,majd összefűzzük. rendezzük,majd összefűzzük.
- Hash join - Hash join
* Az egyik relációt hash-táblán keresztül érjük el, miközben a másik reláció * Az egyik relációt hash-táblán keresztül érjük el, miközben a másik reláció
egy adott rekordjához illeszekedő rekordokat keressük. egy adott rekordjához illeszkedő rekordokat keressük.
- Egyéb - Egyéb
- pl. bitmap join - pl. bitmap join
** Egyéb operációk ** Egyéb operációk
@ -813,21 +814,20 @@ 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.
* Kiértékeliési terv kiválasztása * Kiértékelési terv kiválasztása
Az egyes műveletekre több fé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:
- Milyen műveleteket - Milyen műveleteket
- Milyen sorrendben - Milyen sorrendben
- Minlyen algoritmus szerint - Milyen algoritmus szerint
- és milyen workflow-ban értékeljük ki. - és milyen workflow-ban értékeljük ki.
** Költség alapú optimalizáció ** Költség alapú optimalizáció
Nem jó ötlet az összes ekvivalens kifejezést felsorolni, kiértékelni, majd a Nem jó ötlet az összes ekvivalens kifejezést felsorolni, kiértékelni, majd a
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.
**
* 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
@ -836,29 +836,29 @@ transzformációt végzünk.
1. Az egyedhalmazokat olyan relációs sémában ábrázoljuk, amely tartalmazza az 1. Az egyedhalmazokat olyan relációs sémában ábrázoljuk, amely tartalmazza az
entitáshalmaz összes attribútumát. Ha van olyan egyedhalmaz, amely "isa" entitáshalmaz összes attribútumát. Ha van olyan egyedhalmaz, amely "isa"
kapcsolatban van egy másik egyedhalmazzal, akkor a specializált kapcsolatban van egy másik egyedhalmazzal, akkor a specializált
egyedhalmazhoz redelt relációs sémába az általánosabb egyedhalmaz egyedhalmazhoz rendelt relációs sémába az általánosabb egyedhalmaz
attributumait is fel kell venni. attribútumait is fel kell venni.
2. A kapcsolattípusokat olyan sémákká alakítjuk, amelyek attribútumai 2. A kapcsolattípusokat olyan sémákká alakítjuk, amelyek attribútumai
tartalmazzák a kapcsolatban szereplő összes reláció kulcsait is. tartalmazzák a kapcsolatban szereplő összes reláció kulcsait is.
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 indegen kulcsos megoldás. esetben jobbak is lehetnek. Ilyen pl. az idegen kulcsos megoldás.
* 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.
** Módosítási anomália ** Módosítási anomália
Ha egy adatot több helyen tárolunk és módosítani szeretnénk, akkor minden helyen Ha egy adatot több helyen tárolunk és módosítani szeretnénk, akkor minden helyen
meg kell azt változtatni. Ha ezt elmulasztjuk, akkor különböző helyekeről meg kell azt változtatni. Ha ezt elmulasztjuk, akkor különböző helyekről
különböző információt kapnánk. Az ilyen szituációk nem csak többletmunkát, hanem különböző információt kapnánk. Az ilyen szituációk nem csak többletmunkát, hanem
logikai ellentmondásokat is jelenthet. logikai ellentmondásokat is jelenthet.
** Beszúrási anomália ** Beszúrási anomália
Ennek alapja, hogy nem tudunk rekordot felvenni, ha van olyan adat, ami nem Ennek alapja, hogy nem tudunk rekordot felvenni, ha van olyan adat, ami nem
ismert és a tárolandó adattal megahtározott kapcsolatban áll. ismert és a tárolandó adattal meghatározott kapcsolatban áll.
Példa: egy új szálítót nem tudunk felvenni, ha még nem szálított semmit. Példa: egy új szállítót nem tudunk felvenni, ha még nem szállított semmit.
** Törlési anomália ** Törlési anomália
Ha csak egy attribútum értékét akarjuk törölni akkor előfordulhat,hogy ez csak Ha csak egy attribútum értékét akarjuk törölni akkor előfordulhat,hogy ez csak
az egész sor törlésével lehetséges (pl. ha az adott attribútom része valamely az egész sor törlésével lehetséges (pl. ha az adott attribútum része valamely
kulcsnak). Ezzel viszont olyan információt is törölnénk, amire még szükség kulcsnak). Ezzel viszont olyan információt is törölnénk, amire még szükség
lehet. lehet.
@ -868,14 +868,14 @@ esetben alkalmazható.
* 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
segítségével korlátozni lehet azadatbázisunk tartalmát, olyan módon, hogy az segítségével korlátozni lehet az adatbázisunk tartalmát, olyan módon, hogy az
valamilyen módon megfeleljen egy elvárásnak vagy elképzelésnek. Az alábbiak a valamilyen módon megfeleljen egy elvárásnak vagy elképzelésnek. Az alábbiak a
leggyakrabban használt kényszerek: leggyakrabban használt kényszerek:
- értékfüggő kényszerek (pl. 0 < TESTMAGASSÁG < 300) - értékfüggő kényszerek (pl. 0 < TESTMAGASSÁG < 300)
- értékfüggetlen kényszerek. - értékfüggetlen kényszerek.
* Tartalmi függőség(pl. az idegen kulcsok értékeinek halmaza rész- * Tartalmi függőség(pl. az idegen kulcsok értékeinek halmaza rész-
halmaza a neki megfeleltethető kulcsértékek halmazának) halmaza a neki megfeleltethető kulcsértékek halmazának)
* Funcionális függőség * Funkcionális függőség
* Többértékű függőség * Többértékű függőség
@ -888,7 +888,7 @@ szabály segítségével, akkor a relációt redundánsnak nevezzük.
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}$,
$i=1,2,\ldots,n$ (alap)attribútumok. Legyen $X$ és $Y$ a reláció attribútumainak $i=1,2,\ldots,n$ (alap)attribútumok. Legyen $X$ és $Y$ a reláció attribútumainak
két részhalmaza: $X\subseteq R$ és $Y\subseteq R$. Ha bármely, az $R$ sémára két részhalmaza: $X\subseteq R$ és $Y\subseteq R$. Ha bármely, az $R$ sémára
illeszkedő $r$ reláció bármely két $t,t'\in r(R)$ sorára fenáll az, hogy ha illeszkedő $r$ reláció bármely két $t,t'\in r(R)$ sorára fennáll az, hogy ha
$t[X]=t'[X]$, akkor $t[Y]=t'[Y]$ ($t[Z]:=\pi_Z(t)$), akkor azt mondjuk,hogy az $t[X]=t'[X]$, akkor $t[Y]=t'[Y]$ ($t[Z]:=\pi_Z(t)$), akkor azt mondjuk,hogy az
$Y$ attribútumok funkcionálisan függenek $X$ attribútumoktól. $Y$ attribútumok funkcionálisan függenek $X$ attribútumoktól.
Más megfogalmazásban azt is mondhatjuk, hogy az $X$ értékei meghatározzák az $Y$ Más megfogalmazásban azt is mondhatjuk, hogy az $X$ értékei meghatározzák az $Y$
@ -899,7 +899,7 @@ $X'\rightarrow Y$, akkor $X\text{-et } Y$ determinánsának nevezzük.
** Teljes függőség ** Teljes függőség
Ha $X,Y\subseteq R$ és $X \rightarrow Y$, de $\nexists X'\subset X$, hogy Ha $X,Y\subseteq R$ és $X \rightarrow Y$, de $\nexists X'\subset X$, hogy
$X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ teljesen függ $X\text{-től}$. $X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ teljesen függ $X\text{-től}$.
** Részelegs 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}$.
* Relációs sémák kulcsai * Relációs sémák kulcsai
@ -908,12 +908,12 @@ $X\text{-et}$ pontosan akkor nevezzük kulcsnak az $R$ relációs sémán, ha
1. $X\rightarrow R$ 1. $X\rightarrow R$
2. $\nexists X'\subset X$,hogy $X'\rightarrow R$. 2. $\nexists X'\subset X$,hogy $X'\rightarrow R$.
Tehát, ha $R$ teljesen függ $X\text{-től}$ Tehát, ha $R$ teljesen függ $X\text{-től}$
** Szuperkulcs ** Szuper kulcs
$X\text{-et}$ szuperkulcsnak nevezzük, ha igaz,hogy $X\rightarrow R$. Más szóval $X\text{-et}$ szuper-kulcsnak nevezzük, ha igaz,hogy $X\rightarrow R$. Más szóval
akkor, ha $X$ tartalmaz kulcsot. akkor, ha $X$ tartalmaz kulcsot.
*** Egyszerű kulcs *** Egyszerű kulcs
Ha egy kulcs csak egy attribútumból áll,akkor egyszerű kulcsról Ha egy kulcs csak egy attribútumból áll,akkor egyszerű kulcsról
beszélünk. Elenkező esetben összetett kucslrólm van szó. beszélünk. Ellenkező esetben összetett kulcsról van szó.
** Tétel ** Tétel
Minden relációs sémának van kulcsa. Minden relációs sémának van kulcsa.
** Elsődleges kulcs ** Elsődleges kulcs
@ -945,11 +945,11 @@ Adottak az $R$ sémán az $X$, $Y$, $Z$ attribútumhalmazok.
2) Ha $X\rightarrow Y$ és $Y\rightarrow Z$,akkor $X \rightarrow Z$ (tranzitivitás). 2) Ha $X\rightarrow Y$ és $Y\rightarrow Z$,akkor $X \rightarrow Z$ (tranzitivitás).
3) Ha $X\rightarrow Y$, akkor $XZ \rightarrow YZ$ (bővíthetőség) 3) Ha $X\rightarrow Y$, akkor $XZ \rightarrow YZ$ (bővíthetőség)
** Igazság tétel ** Igazság tétel
Az amstrong axiómák igazak, alkalmazásukkal csak igaz függőségek állíthatók elő Az armstrong axiómák igazak, alkalmazásukkal csak igaz függőségek állíthatók elő
adott függéshalmazból. adott függéshalmazból.
** Teljesség tétel ** Teljesség tétel
Az Armstrong axiómák teljesek, azaz belőlük minden iaz függőség levezethető. Az Armstrong axiómák teljesek, azaz belőlük minden igaz függőség levezethető.
$F_R \models X \rightarrow Y \implies FR \vdash X \rightarrow Y$ $F_R \models X \rightarrow Y \implies FR \vdash X \rightarrow Y$
** Axiómák következményei ** Axiómák következményei
@ -957,14 +957,14 @@ $F_R \models X \rightarrow Y \implies FR \vdash X \rightarrow Y$
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$ (dekompozíciós/felbontási szabály).
* Az első normálforma (1NF) * Az első normálforma (1NF)
Annak érdekében, hogy a fentebb említett anomáliák ne forduljanak elő, arelációs Annak érdekében, hogy a fentebb említett anomáliák ne forduljanak elő, a relációs
simá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
Ilyen alakúnak tekintünk minden olyan relációs sémát, amelyben legalább egy Ilyen alakúnak tekintünk minden olyan relációs sémát, amelyben legalább egy
attribútum nem atomi abban az értelemben, hogy az attribútum értéke nem attribútum nem atomi abban az értelemben, hogy az attribútum értéke nem
tekinthető egyetlen egységnek. tekinthető egyetlen egységnek.
** Első nomá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 benne.
* A második normálforma (2NF) * A második normálforma (2NF)
** Elsődleges és másodlagos attribútumok ** Elsődleges és másodlagos attribútumok
@ -974,10 +974,10 @@ a séma valamely $K$ kulcsának. Egyébként $A$ másodlagos attribútum.
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 vaó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
MInen $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) * Harmadik normálforma (3NF)
** Triviális függés ** Triviális függés
@ -985,7 +985,7 @@ 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.
** Tranzitív függés ** Tranzitív függés
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 fgg $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ó
@ -997,14 +997,14 @@ Más szavakkal: ha egyetlen másodlagos attribútuma sem függ tranzitívan egye
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 definició 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\text{-e}$, elég az $F$
funkiconá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ó.
@ -1025,11 +1025,11 @@ függőség esetén $X$ szuperkulcs.
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\text{-e}$, elég az
$F\text{-beli}$ funkcióná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özvetlek következménye. Ez a definíció közvetlen következménye.
** Tétel ** Tétel
A BCNF sémára illeszkedő relációk nem tartalmaznak redundanciát.(legalábbis A BCNF sémára illeszkedő relációk nem tartalmaznak redundanciát.(legalábbis
funkcionális függőségek következtében) funkcionális függőségek következtében)
@ -1083,19 +1083,19 @@ Legális az ütemezés, amelyben
*** Patt *** Patt
Ha egy $T_m$ tranzakció azért nem tud továbblépni, mert egy olyan $A$ Ha egy $T_m$ tranzakció azért nem tud továbblépni, mert egy olyan $A$
adategységre vár, amin egy olyan $T_n\neq T_m$ tranzakció tart fenn zárat, ami adategységre vár, amin egy olyan $T_n\neq T_m$ tranzakció tart fenn zárat, ami
azért nem tud továbblépni mert, ehhet olyan adategységhez kéne hozzáférnie, amin azért nem tud továbblépni mert, ehhez olyan adategységhez kéne hozzáférnie, amin
már $T_m$ tart fenn zárat, akkor pattról, holtpontról (deadlock) beszélünk. már $T_m$ tart fenn zárat, akkor pattról, holtpontról (deadlock) beszélünk.
**** Megoldási lehetőségek **** Megoldási lehetőségek
- A tranzakcióhoz szüséges összes adategységet már a kezdéskor lefoglalja. Ha - A tranzakcióhoz szükséges összes adategységet már a kezdéskor lefoglalja. Ha
valamely zárat nem kapja meg, akkor meg sem próbálkozhat egyetlen művelettel sem. valamely zárat nem kapja meg, akkor meg sem próbálkozhat egyetlen művelettel sem.
- Ha egy tranzakció túl sokat várakozik, akkor valószínűleg patt-helyzetbe - Ha egy tranzakció túl sokat várakozik, akkor valószínűleg patt-helyzetbe
került, ezért abortálandó került, ezért abortálandó
- Valamilyen egyértelmű sorrendet rendelünk az adategységekhez és zárat csak - Valamilyen egyértelmű sorrendet rendelünk az adategységekhez és zárat csak
ennek sorrendjében lehet kérni. ennek sorrendjében lehet kérni.
- Folyamatosan monitorozzuk a zárak elhelyezkedését, és ha valahol patthelyzetet - Folyamatosan monitorozzuk a zárak elhelyezkedését, és ha valahol patthelyzetet
érzékelünk akkor valamely trancakciót, amely a pattot okozza, megszakítjuk. érzékelünk akkor valamely tranzakciót, amely a pattot okozza, megszakítjuk.
**** Várakozási gráf **** Várakozási gráf
Olyan irányított gráf, ahol a csomópontjai a trancakciók, egy élt pedig akkor Olyan irányított gráf, ahol a csomópontjai a tranzakciók, egy élt pedig akkor
rajzolunk a $T_i$ csomópontól a $T_j$ csomópont felé, ha $T_i$ tranzakció rajzolunk a $T_i$ csomópontól a $T_j$ csomópont felé, ha $T_i$ tranzakció
bármely okból várakoztatja $T_j$ tranzakciót úgy, hogy nem tud továbbmenni. bármely okból várakoztatja $T_j$ tranzakciót úgy, hogy nem tud továbbmenni.
**** Tétel **** Tétel
@ -1121,7 +1121,7 @@ kapunk, ha a tranzakció futása közben más tranzakció nem fut.
** Korrekt ** Korrekt
Egy ütemezés pontosan akkor korrekt, ha sorosítható. Egy ütemezés pontosan akkor korrekt, ha sorosítható.
** Ütemező ** Ütemező
A DBMS azon része, amely az adatelérési igények megítékése felett dönt (pl A DBMS azon része, amely az adatelérési igények megtérítése felett dönt (pl
sorosíthatóság biztosítása). Ennek során sorosíthatóság biztosítása). Ennek során
- Engedélyezheti az egyes műveleteket - Engedélyezheti az egyes műveleteket
- Ha ennek feltételei nem állnak fent, akkor - Ha ennek feltételei nem állnak fent, akkor
@ -1130,7 +1130,7 @@ sorosíthatóság biztosítása). Ennek során
* 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:
- csak egy fajta zár léztezik - csak egy fajta zár létezik
- egy adatelemen egy időben csak egyetlen zár lehet. - egy adatelemen egy időben csak egyetlen zár lehet.
** sorosítási gráf, precedenciagráf ** sorosítási gráf, precedenciagráf
Olyan irányított gráf, amely csomópontjai tranzakciók és egy $T_i$ csomópontból Olyan irányított gráf, amely csomópontjai tranzakciók és egy $T_i$ csomópontból
@ -1139,8 +1139,8 @@ 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ázísú zárolás (2PL) * Kétfázisú zárolás (2PL)
** Kétfázísú 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
@ -1162,7 +1162,7 @@ szabályok szerint rajzolt sorosítási gráf DAG.
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\text{-ot}$
** Tétel ** Tétel
Ha egy ütemezésben csak kétfázísú, $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ó.
* 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
@ -1170,23 +1170,23 @@ 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\text{-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\text{-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 protolollnak eleget tevő legális ütemezések sorosíthatók. A fa protokollnak eleget tevő legális ütemezések sorosíthatók.
* Figyelmesztető protokol * 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(impicit zár). az összes leszármazott csomópontok zárolását is jelenti(implicit zár).
** Zárkonfliktus ** Zárkonfliktus
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ő protokol 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\text{-ot}$ kiadó tranzakció
áltak 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
@ -1195,7 +1195,7 @@ már egy $T_1$ tranzakció lezárt magáának.
fenn sem $LOCK\text{-ot}$ sem $WARN\text{-t}$ fenn sem $LOCK\text{-ot}$ sem $WARN\text{-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 ütemezs zárkonfliktusmentesek és sorosíthatóak. A figyelmeztető protokollt követő legális ütemezés zárkonfliktusmentesek és sorosíthatóak.
* 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.
@ -1233,31 +1233,31 @@ Mindez természetesen csak akkor igaz, ha nem kell rendszerhibákkal is számoln
amelyek az írási folyamat megzavarásával eredményezhetik, hogy piszkos adat amelyek az írási folyamat megzavarásával eredményezhetik, hogy piszkos adat
kerül az adatbázisba. Ez ellen azonban más módszerekkel kell védekezni kerül az adatbázisba. Ez ellen azonban más módszerekkel kell védekezni
** Tétel ** Tétel
A szigorú kétfázisú protokollt követő tranazkciókból álló legális ütemezések A szigorú kétfázisú protokollt követő tranzakciókból álló legális ütemezések
sorosíthatóak és lavinamentesek. 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.
* Agresszív és konzervatív protokollok * Agresszív és konzervatív protokollok
Tranzakciós protokoll kiválasztásánál fontos, hogy az adott protokol mennyire Tranzakciós protokoll kiválasztásánál fontos, hogy az adott protokoll mennyire
``hatékony''. A hatékonyágot nézhetjük úgy, hogy ``hatékony''. A hatékonyságot nézhetjük úgy, hogy
- egy adott tranzakció minél ghamarabb fusson le - egy adott tranzakció minél hamarabb fusson le
- adott idő alatt minél több tranzakció fusson le sikeresen (tranzakció - adott idő alatt minél több tranzakció fusson le sikeresen (tranzakció
teljesítmény) teljesítmény)
Ezek ellentmondásosak, és olykor az egyik sokkal fontosabb a másiknál, mégis, Ezek ellentmondásosak, és olykor az egyik sokkal fontosabb a másiknál, mégis,
gyakran a tranzakció teljesítményét kivánjuk maximalizálni. gyakran a tranzakció teljesítményét kívánjuk maximalizálni.
** Agresszív protokol, optimista konkurenciakezelés ** Agresszív protokoll, optimista konkurenciakezelés
Egy protokoll agresszív, ha megpróbál olyan gyorsan lefutni, amennyire csak Egy protokoll agresszív, ha megpróbál olyan gyorsan lefutni, amennyire csak
lehetséges, nem törődve azzal, hogy ez esetleg aborthoz is vezethet. 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 protokol 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.
* 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.
** Napló (journal, log) ** Napló (journal, log)
A napló a mi értelmezésünk szerint az adatbázison végrahajtott változások A napló a mi értelmezésünk szerint az adatbázison végrehajtott változások
története. története.
Ha tudható, hogy undo műveleteket nem kell a napló alapján végezni, akkor elég az Ha tudható, hogy undo műveleteket nem kell a napló alapján végezni, akkor elég az