Fixed many typos
This commit is contained in:
parent
0b52eb5fb9
commit
5bf5c0a5a3
1 changed files with 104 additions and 104 deletions
208
db.org
208
db.org
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue