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: \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
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ó
Az adathoz redelünk egy értelmet,egy jelentést.
Az adathoz rendelünk egy értelmet,egy jelentést.
** Tudás
Kontextusba helyezett információ.
** Metaadat
Adat, az adatról. Segéd adatok.
*** 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
Hogyan kell értelmezni egy adatot.
*** Üzemeltetési metaadat
Mi történt az adatokkal.
pl. mikor lett módosítva.
** Struktúrált adat
Olyan adat,amire struktúrális $\text{metaadat} << \text{adat}$ .
** Strukturált adat
Olyan adat,amire strukturális $\text{metaadat} << \text{adat}$ .
*** Semi-struktúrált adat
Olyan adat,amire struktúrális $\text{metaadat} \approx \text{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.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
megfelelő rekorjára
megfelelő rekordjára
2. <<masodik>> Logikai mutatók, amelyek az adatállomány valamely kulcsának értékét
tartalmazzák
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
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
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
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
kívánt adatokat klasszikus modellezési eszközökkel választjuk ki: a fontos
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.
** Adatmodellek
- Hálos adatmodell
- Hálós adatmodell
- Relációs adatmodell
- Objektumorientált adatmodell
* 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
rendelkező dolog, amelyről adatokat tárolunk.
*** 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
Azonos attribútumokkal rendelkező egyedek összessége.
*** Kapcsolatok
@ -414,10 +415,10 @@ Az ER modell egy grafikus megjelenítése az ER diagram.
| ER modell elem | Alakzat |
|----------------+----------|
| Egyedhalmaz | Téglalap |
| Attribútum | Elipszis |
| Attribútum | Ellipszis |
| 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
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
@ -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
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
egyedhalmazzaltöbb-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló
egyedhalmazzal több-egy kapcsolatban áll. Az ilyen kapcsolat neve: determináló
kapcsolat.
* 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.
*** 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.
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
viszont szükséges az, hogy az egyes relációk, attribútumok valamilyen, a modell
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
összességének neve adatbázis séma.
*** A relációk további jellemzői
**** A releciók foka
A relecióban lévő oszlopok (attribútumok) száma.
**** A releciók számossága
**** A relációk foka
A relációban lévő oszlopok (attribútumok) száma.
**** A relációk számossága
A relációban található sorok száma
** Műveletek
@ -477,13 +478,13 @@ művelet segítségével:
A\cap B &= A\setminus(A\setminus B)
\end{align}
** 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
kombinációja.
*Jelölése:* $r_1\times r_2$
** 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.
*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.
*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
- Konstansok
@ -530,7 +531,7 @@ a kvantorok sorvektor változókat kvantifikálhatnak.
*** Felépítése
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.
*** Szimbolumai
*** Szimbólumai
- Zárójelek: (,)
- Aritmetikai relációk $<,>,=,\neq,m,\leq,\geq$
- 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
- $R^{(m)}(s^{(m)})$
- $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$
- $R^{(m)}(c_1,c_2,\ldots,c_n)$
*** Formulák felépítése
- 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
- 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
@ -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.
*** Szimbólumai
- \ldots
- oszlopbáltozók: $u_i$
- oszlopváltozók: $u_i$
- \ldots
*** 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.
- $x\Theta y$, ahol $x$ és $y$ konstansok vagy oszlopváltozók és $\Theta$
aritmetikai relációjel.
- $\ldots$
*** Formulá felépítése
*** Formulák felépítése
- $\ldots$
*** Kifejezések felépítése
\begin{align*}
@ -583,39 +584,39 @@ egyszerűbb kifejezni vele bizonyos lekérdezéseket.
\end{align*}
ahol $\Psi$ olyan formula, amelyek szabad változói csak $x_1,x_2,\ldots,x_m$
*** 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
kifejezése,amely az előzővel azonos relációt határoz meg.
* Biztonságos sorkalkulus
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.
** Formula doménje
$\text{DOM}\Psi\equiv\{\Psi\text{-beli alaprelációk összes attribútumának
értékeik}\}\cup\{\Psi\text{-ben előforduló konstansok}\}$
** 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
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}$
** 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
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
módosítani, hogy kiválasszuk a leggyorsabb, még a helyes eredményt kapjuk.
** Első lépés
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
kivánt projekciót.
relációk Descartes szorzatát, majd hajtsuk végre a szekciót, végül alkalmazzuk a
kívánt projekciót.
** Második lépés
Itt a szelekciós feltételeket próbáljuk meg sülyeszteni. Ehhez fel kell
használni a relációs algebrai kifejezések ekvivalenciákját. A célja az input
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á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
lehet.
** 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
Descartes szorzatok jönnek létre.
** Negyedik lépés
@ -659,10 +660,10 @@ Valóban.
*** Demorgen azonosságok
Itt is alkalmazhatóak.
*** 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
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.
** Katalógusadatok
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
*** Költsége
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
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
@ -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$
- (A2 )Bináris keresés:
+ Feltétele:
- A blokkok folyamatosan helyzkednek el a diszken
- A blokkok folyamatosan helyezkednek el a diszken
- 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$
*** Indexelt szelekciós algoritmusok
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
- Bal 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
\begin{align}
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)
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
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
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.
*** Blokk alapú egymásba ágyazott ciklikus illesztés(block nested
loop join)
Itt négy darab egymásba ágyazott ciklust alkalmazunk:
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
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.
- Hash join
* 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
- pl. bitmap join
** 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.
Ez persze nem minden esetben működik, pl rendezés esetében.
* Kiértékeliési terv kiválasztása
Az egyes műveletekre több féle algoritmust, metódust is megvizsgáltunk és közel
* Kiértékelési terv kiválasztása
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:
- Milyen műveleteket
- Milyen sorrendben
- Minlyen algoritmus szerint
- Milyen algoritmus szerint
- és milyen workflow-ban értékeljük ki.
** Költség alapú optimalizáció
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ú
optimalizálás.
**
* 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
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
entitáshalmaz összes attribútumát. Ha van olyan egyedhalmaz, amely "isa"
kapcsolatban van egy másik egyedhalmazzal, akkor a specializált
egyedhalmazhoz redelt relációs sémába az általánosabb egyedhalmaz
attributumait is fel kell venni.
egyedhalmazhoz rendelt relációs sémába az általánosabb egyedhalmaz
attribútumait is fel kell venni.
2. A kapcsolattípusokat olyan sémákká alakítjuk, amelyek attribútumai
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
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)
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.
** Módosítási anomália
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
logikai ellentmondásokat is jelenthet.
** Beszúrási anomália
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
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
lehet.
@ -868,14 +868,14 @@ esetben alkalmazható.
* Adatbázis kényszerek, redundancia
** Adatbázis kényszerek
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
leggyakrabban használt kényszerek:
- értékfüggő kényszerek (pl. 0 < TESTMAGASSÁG < 300)
- értékfüggetlen kényszerek.
* Tartalmi függőség(pl. az idegen kulcsok értékeinek halmaza rész-
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
@ -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}$,
$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
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
$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$
@ -899,7 +899,7 @@ $X'\rightarrow Y$, akkor $X\text{-et } Y$ determinánsának nevezzük.
** Teljes függőség
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}$.
** 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
$X'\rightarrow Y$, akkor azt mondjuk, hogy $Y$ részlegesen függ $X\text{-től}$.
* 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$
2. $\nexists X'\subset X$,hogy $X'\rightarrow R$.
Tehát, ha $R$ teljesen függ $X\text{-től}$
** Szuperkulcs
$X\text{-et}$ szuperkulcsnak nevezzük, ha igaz,hogy $X\rightarrow R$. Más szóval
** Szuper kulcs
$X\text{-et}$ szuper-kulcsnak nevezzük, ha igaz,hogy $X\rightarrow R$. Más szóval
akkor, ha $X$ tartalmaz kulcsot.
*** Egyszerű kulcs
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
Minden relációs sémának van kulcsa.
** 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).
3) Ha $X\rightarrow Y$, akkor $XZ \rightarrow YZ$ (bővíthetőség)
** 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.
** 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$
** 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).
3) $X \rightarrow Y$ és $Z \subseteq Y \models X \rightarrow Z$ (dekompozíciós/felbontási szabály).
* Az első normálforma (1NF)
Annak érdekében, hogy a fentebb említett anomáliák ne forduljanak elő, arelációs
simáinknak meg kell felelni egyes feltételeknek. Ezeket normálformáknak nevezik.
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.
** Nulladik normálforma
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
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.
* A második normálforma (2NF)
** 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
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.
** 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.
* Harmadik normálforma (3NF)
** 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.
** Tranzitív függés
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$
** Harmadik normálforma (3NF)
*** 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.
*** 2. Definíció
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
- A elsődleges attribútum
** Tétel
Az előző két definició ekvivalens
Az előző két definíció ekvivalens
** Tétel
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
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ó.
@ -1025,11 +1025,11 @@ függőség esetén $X$ szuperkulcs.
Az előző két definíció ekvivalens.
** Tétel
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
Ha egy séma $BCNF$ alakú, akkor $3NF$ is.
*** Bizonyítás
Ez a definíció közvetlek következménye.
Ez a definíció közvetlen következménye.
** Tétel
A BCNF sémára illeszkedő relációk nem tartalmaznak redundanciát.(legalábbis
funkcionális függőségek következtében)
@ -1083,19 +1083,19 @@ Legális az ütemezés, amelyben
*** Patt
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
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.
**** 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.
- Ha egy tranzakció túl sokat várakozik, akkor valószínűleg patt-helyzetbe
került, ezért abortálandó
- Valamilyen egyértelmű sorrendet rendelünk az adategységekhez és zárat csak
ennek sorrendjében lehet kérni.
- 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
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ó
bármely okból várakoztatja $T_j$ tranzakciót úgy, hogy nem tud továbbmenni.
**** Tétel
@ -1121,7 +1121,7 @@ kapunk, ha a tranzakció futása közben más tranzakció nem fut.
** Korrekt
Egy ütemezés pontosan akkor korrekt, ha sorosítható.
** Ü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
- Engedélyezheti az egyes műveleteket
- Ha ennek feltételei nem állnak fent, akkor
@ -1130,7 +1130,7 @@ sorosíthatóság biztosítása). Ennek során
* Tranzakció modellek
** Egyszerű tranzakció modell
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.
** 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
@ -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.
** Tétel
Egy $S$ ütemezés sorosítható $\Leftrightarrow$ a sorosítási gráf DAG.
* Kétfázísú zárolás (2PL)
** Kétfázísú 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ő
zárfelszabadítást megelőzni mindegyik zárkérés.
** 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
$WLOCK$ megelőzi az első $UNLOCK\text{-ot}$
** 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ó.
* A fa protokoll
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
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
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
** Tétel
A fa protolollnak eleget tevő legális ütemezések sorosíthatók.
* Figyelmesztető protokol
A fa protokollnak eleget tevő legális ütemezések sorosíthatók.
* Figyelmeztető protokoll
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
Egy $T_2$ tranzakció, egy olyan adategységre tesz lockot, amely leszármazottját
már egy $T_1$ tranzakció lezárt magáának.
** Figyelmeztető protokol zárművei
már egy $T_1$ tranzakció lezárt magának.
** Figyelmeztető protokoll zárművei
- $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.
- $WARN$ $A$: $A\text{-ra}$ figyelmeztetést rak. Ekkor $A\text{-t}$ más
tranzakció nem zárolhatja
- $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
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
@ -1195,7 +1195,7 @@ már egy $T_1$ tranzakció lezárt magáának.
fenn sem $LOCK\text{-ot}$ sem $WARN\text{-t}$
4. Kétfázisú: az első $UNLOCK$ után nem következhet $LOCK$ vagy $WARN$
** 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
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.
@ -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
kerül az adatbázisba. Ez ellen azonban más módszerekkel kell védekezni
** 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.
*** Bizonyítás
Az ütemezés sorosítható, mert kétfázisú; továbbá lavinamentes,
mert nincs lehetőség piszkos adat olvasására.
* Agresszív és konzervatív protokollok
Tranzakciós protokoll kiválasztásánál fontos, hogy az adott protokol mennyire
``hatékony''. A hatékonyágot nézhetjük úgy, hogy
- egy adott tranzakció minél ghamarabb fusson le
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
- egy adott tranzakció minél hamarabb fusson le
- adott idő alatt minél több tranzakció fusson le sikeresen (tranzakció
teljesítmény)
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.
** Agresszív protokol, optimista konkurenciakezelés
gyakran a tranzakció teljesítményét kívánjuk maximalizálni.
** Agresszív protokoll, optimista konkurenciakezelés
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.
** 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.
* 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 naplózásnak számos módja lehet, itt csak a leggyakoribbakra térünk ki.
** 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.
Ha tudható, hogy undo műveleteket nem kell a napló alapján végezni, akkor elég az