diff --git a/db.org b/db.org index ab9fd60..615f5e2 100644 --- a/db.org +++ b/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. <>Fizikai mutatók, amelyek pl. mutathatnak 1) <>közvetlenül az adatállomány megfelelő blokkja (esetleg rekordja) 2) <>az adatállomány elsődleges kulcsa szerinti (sűrű) indexállomány - megfelelő rekorjára + megfelelő rekordjára 2. <> 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