Professional Documents
Culture Documents
o Nézet (view):
▪ az, amit és ahogy a felhasználó az adatbázisból lát
▪ minden felhasználóhoz tartozhat külön nézet
▪ külső sémának (external schema)
A fizikai adatbázis
● Adat:A valóságnak egy értelmezhető, de nem értelmezett része
● Információ:Az értelmezett adat
● Tudás:Az információ elemek kontextusba helyezése, az információból nyerhető ki. (Az információ elemek között
milyen kapcsolat van)
Adatmodellek, modellezés
o Adatmodell:
▪ Formális jelölőrendszer adatok és kapcsolatok leírására
▪ Milyen műveleteket lehet végezni az adatokon, milyen kapcsolatok kialakítását támogassuk az
adataink között
▪ aszerint osztályozzuk, hogy a rekordtípusok között milyen kapcsolatok definiálása megengedett
1
Egyed-kapcsolat modell (entity-relationship, ER)
o modell az adatokról, de nem adatmodell (nincsenek benne adatműveletek definiálva)
o Elemei:
▪ egyedtípusok
▪ attribútumtípusok
▪ kapcsolattípusok
o Entitások:
▪ egyed, entitás (entity):
A valós világban létező, logikai vagy fizikai szempontból saját léttel rendelkező dolog, amelyről
adatokat tárolunk. (valóságban jelenik meg)
● megkülönböztethetőnek kell lenni (megfelelő attribútumokat kell választani)
● ~főnevek
▪ tulajdonság (property):
Az entitásokat jellemzi, amelyen vagy amelyeken keresztül az entitások megkülönböztethetők
● Tulajdonságok halmaza: közös jelentés alapján teszem egy halmazba
● ~melléknevek
o Kapcsolatok (relationship):
Entitások névvel ellátott viszonya (nem lehet kulcsa!!)
o Kulcs (key):
Az ER-modellezésnél az attribútumoknak azt a halmazát, amely az entitás példányait egyértelműen azonosítja,
kulcsnak nevezzük.
▪ minden egyedhalmaznak legalább egy kulcsa van!
▪ aláhúzással jelöljük
o ER-diagram
2
● ER modell:
o Entitáshalmaz
▪ KIRENDELTSÉG(k_kód,
hely)
▪ ALKALMAZOTT(a_kód,
név, beosztás, fizetés)
o Kapcsolattípus:
▪ DOLGOZIK: KIRENDELTSÉG, ALKALMAZOTT; dátum
● ISA kapcsolat:
egy entitáshalmaz minden eleme rendelkezik egy másik
(általánosabb) entitáshalmaz attribútumaival, de azokon kívül
még továbbiakkal is (specializáció)
● Gyenge egyedhalmaz (weak entity set):
modellezés során egy entitáshalmaznak nem tudunk kulcsot
meghatározni, hanem az egyedek azonosításához valamely
kapcsolódó egyed(ek)re is szükség van
o determináló kapcsolat (identifying relationship):
A gyenge egyedhalmaz identitását egy (vagy ritkán több) ún. tulajdonos egyedhalmaz (owner
entity set) biztosítja, amely a gyenge egyedhalmazzal több-egy kapcsolatban áll.
3
Műveletek relációkon
Relációs algebra:a relációkon megengedett műveletek épül fel a relációs algebra
● K
ülönbségképzés (set difference)
o megkötések, mint az egyesítenél
o metszetet(set intersection) képezhetünk belőle :
A B = A \ (A\B)
● Descartes szorzat
o az r1x r2Descartes-szorzat eredménye az összes olyan
(n1+ n2)-esekből áll, amelyeknek első niattribútuma az
első operandusból, második n2attribútuma a második
operandusból származik, ebben a rögzített
sorrendben
o nincs semmilyen megkötés
● Vetítés (projection)
o reláció összes rekordjának egyes attribútumait megtartjuk, a többit pedig töröljük (oszlopok között
válogatunk)
o Ha az attribútum elemei megegyeznek, csak egyet veszek fel, mert egyedinek kell lennie!
o Jelölése: πMELYIK ATTRIBÚTUMOKAT AKAROM(Melyik relációból)
o Példa: GÉPKOCSI(ÁR, RENDSZÁM, ÉVJÁRAT, ELSŐ_TULAJDONOS, VIZSGA_ÉRVÉNYESSÉGE,
TÍPUS, FOGYASZTÁS) → πTÍPUS,ÉVJÁRAT,FOGYASZTÁS
(gépkocsi)Ekkor a vetítés a gépkocsi reláció n-
eseiből csak a TÍPUS, ÉVJÁRAT, FOGYASZTÁS azonosítójú attribútumoknak megfelelő hármasokat tartja meg.
● Kiválasztás (selection)
o egy részhalmaz képzése az r reláción, amelynek vezérlésére egy logikai formula szolgál. Az r reláció minden
elemére kiértékeljük a formulát, és azokat az elemeket vesszük be az új relációba, amelyekre a formula igaz
értéket vesz fel (sorok között válogatunk)
o Jelölése: σF(r), ahol F a logikai formula (szelekciós feltétel)
o A logikai formula a következő elemeket tartalmazhatja:
▪ konstansokat vagy R attribútumainak azonosítóit,
▪ aritmetikai összehasonlító operátorokat (< = > ≤ ≥) és
▪ logikai operátorokat ( ⌐ V)
o Példa: A σKOR<23 NÉV =’Kovács’(névsor) kifejezés a névsor reláció azon elemeinek halmazát jelenti, amelyeknek KOR
azonosítójú attribútuma kisebb huszonháromnál, NÉV azonosítójú attribútuma pedig Kovács
Származtatott műűveletek
o Példa lépésenként:
4
o Példa (relációs sémákkal):
▪ OSZTÁLY (NÉV, OSZT_NÉV)
▪ SZEMÉLY (NÉV, LAKCÍM, SZÜL_DÁTUM)
● θ-illesztés (θ
θ-join, theta join)
o r és s két reláció, θ pedig egy kvantormentes
feltétel, melyet az r és s relációk egy-egy
attribútuma között definiálunk.
o Jelölése:
● Hányados (division)
o az s-sel alkotott Descartes-szorzata a lehető
legbővebb részhalmaza r-nek
o (r÷s) x s részhalmaza r
Relációs sorkalkulus:
elsőrendű nyelv, amely tehát kvantorokat (quantifier) is tartalmazhat és a kvantorok sorvektor változókat kvantifikálhatnak.
● Felépítése:szimbólumból -> atomok (alapformulák) -> formulákká építhető össze -> kifejezésbe építve relációkat
írhatunk le
o Szimbólumai:
▪ zárójelek: ( , )
▪ aritmetikai rclációjclek: <, >, =, ≥, ≤, ≠
▪ logikai műveleti jelek: ⌐ V
▪ sorváltozók: s(n)[i] változós
▪ sorváltozók komponensei: s(n)[i], ahol 1 ≤ i ≤ n
5
▪ (konstans) relációk: R(m), m változós
▪ konstansok: c
▪ kvantorok: ,
o atomok (atomic formulae)
felépítése:
● TÉTEL:
6
o Kifejezőereje legalább olyan erős mint a relációs algebráé
o Megfordítása semmiképpen nem igaz
● Biztonságos (sorkalkulus) kifejezés (safe tuple relational calculus):
o sorkalkulus kifejezés kiértékelhető legyen számítógépben kezelhető méretű relációk/véges idő mellett is
o
Felépítése, interpretációja a sorkalkuluséhoz igen hasonló, ezért csak a különbségek vannak felsorolva
● Szimbólumai:
o …
o oszlopváltozók: ui
o …
● Az atomok felépítése:
o
● TÉTEL:
● Keresés:
A keresési kulcs alapján egyetlen rekordot tudunk azonosítani (egyediek), egymás után beolvassuk a háttértárból a
blokkokat, majd végig olvassuk. Addig folytatjuk, amíg, nincs meg amit keresünk (lineáris keresés)
o Időigénye: (Blokkok száma +1)/2
● Törlés:
1. keresés az előbb leírt szerint
2. fejlécben jelezzük, hogy a terület felszabadult (törlés bit = 1)
3. megváltozott blokkot visszaírni háttértárra
4. (időnként, a felszabadult és szétszórt lemezterületeket szükséges összegyűjteni)
o időigénye: (Blokkok száma +1)/2
● Beszúrás:
o Ügyelni, hogy beszúrás után is egyediek maradjanak a rekordok
8
o keresés
1. először a törlés által felszabadított területeken, ha nincs hely akkor állomány végében
2. ha ott sincs kérni, hogy bővítsék az állományt (komplex)
3. +1 blokkművelet
● Módosítás:
o Ha az egyediség nem sérül
1. keresés
2. felülírás
3. visszaírás
Hash-állományok
Legegyszerűbb:
● Keresés
1. Meghatározzuk a rekord kulcsát : K
2. kiszámítjuk h(K)-t
3. Kiolvassuk a vödör katalógus h(K )-adik bejegyzését, ezen a címen kezdődő vödörben kell a rekordnak
lennie, ha egyáltalán benne van,
4. A vödrökön belül tulajdonképpen lineárisan kereüsnk
o Időigény: 1/(2B) , (1+(N/B)) /2
● Beszúrás:
o Egyediség megőrzése!
1. Kiszámoljuk h(K)
2. kiolvassuk h(K)-adik elemet a katalógusból
a) végig keressük az így meghatározott vödröt a K kulcsú rekord után -> ha van -> hibaüzenet
b) ha nincs-> első szabad vagy törölt helyre beírjuk, beállítjuk a törölt bitet
c) ha minden hely foglalt -> új blokk hozzáfűzése a vödörhöz
● Törlés:
1. Keresés
2. Törölt bit beállítása
3. Visszaírás
9
● Módosítás:
o Ha nem érinti a kulcsmezőt
1. keresés
2. művelet elvégzése
3. visszaírás
4. (ha nem találtuk a rekordot -> hibaüzenet)
o Ha érinti a kulcsmezőt
1. Törlés
2. Módosítás
Indexelt állományok
Keresés kulcsát egy ún. indexállományban (kb. katalógus)
megismételjük, és a kulcshoz egy mutatót rendelünk, amely a
tárolt adatrekord helyére mutat
● k-kulcs, key
● p-mutató, pointer
● Blocking factor:
● RENDEZETT AZ INDEXÁLLOMÁNY
● indexállomány rekordjai szabadok, könnyen
mozgathatók, jól karbantarthatók
10
● Beszúrás:
o Egyedileg tudjuk azonosítani, minden rendezett tehát meg van a helye
o Megkeressük a blokkot
1. Ha van hely: a rekordot beírjuk a helyére
2. Nincs hely, helyet kell csinálni
a) Biblokk rekordjainak számát (beleértve a kikulcsút is)
megfelezzük Biés Bnközött
b) Meghatározzuk mindkét blokkban a legkisebb kulcsú rekordot
c) Bi-hez tartozó indexrekordban szükség esetén korrigáljuk a
kulcsmező értékét
d) Bn-hez tartozó legkisebb kulccsal és Bncímével új indexrekordot képezünk (esetleg
indexállományt is újra rendezni) (+2 blokkművelet)
● Törlés
1. Keresés
2. Ha nem a legkisebb a keresett kulcs: egyszerűen törüljük
3. Ha a legkisebb, akkor az indexállományt is korrigálni
4. Ha az egyetlen volt, akkor a rá mutató indexrekordot is törölni kell, az üres adatblokkot pedig fel kell
szabadítani
o Időigény: keresés + 1blokkművelet
● Módosítás
o Nem érinti a kulcsot:
1. keresés
2. elvégezni a műveletet
3. visszaírás
o Érinti a kulcsot
1. keresés
2. törlés
3. beszúrás
● Height of Tree:
● Törlés:
1. Keresés
2. Törlés
3. Összevonás lehetőség szerint
4. Ha utolsó rekord -> kulcsot is ki kell venni
11
● Módosítás:azonos kb mint az egyszintes
● Törlés:
1. keresés
2. törlés bit beállítása
3. kulcsot kivesszük az indexállományból (időnként tömörítjük)
● Beszúrás:
o üres hely keresése
1. ha nincs:
a) állomány végére,
b) foglalási jelzést beállítjuk
c) beírjuk az adatot
d) berendezzük az indexállományba
● Módosítás:
o keresés az adatblokkot
o módosítás
o visszaírás
o (ha módosítás kulcsmezőt is érintett, akkor az indexállományt újrarendezzük)
Invertálás
● Szélsőséges esetben akár minden mező lehet ún. keresési kulcs
● invertált állomány (inverted file): Az az indexállományt, amely nem kulcsmezőre tartalmaz indexeket
o mutatói:
▪ fizikai, amelyek mutathatnak:
● közvetlenül az adatállomány megfelelő blokkjára (esetleg közvetlenül a rekordra)
o adatállomány rekordjai kötöttek és ráadásul csak egyetlen invertált állomány esetén
használható.
● az adatállomány elsődleges kulcsa szerinti
(sűrű) indexállomány megfelelő rekordjára
o eggyel több indirekción keresztül
érjük el a keresett rekordot
12
▪ logikai mutatók, amelyek az adatállomány valamely
kulcsának értékét tartalmazzák
//itt kimaradt a változó hosszúságú rekordok kezelése és a részleges info alapján történő keresés (jegyzet 37-38.oldal)
Összefoglalva: optimalizációs stratégiák alapján végrehajtási terveket kell készíteni, amelyeket előbb értékelni kell, majd
közülük a legjobbat kiválasztva azt végrehajtani
Relációs algebrai fa (relational algebra tree):primitív műveletek a relációs algebra műveletei, akkor a primitív műveletek
szekvenciája
Végrehajtási terv (execution plan): milyen algoritmusokat alkalmazunk, milyen fizikai segédstruktúrákat használunk, és hogy
az egymásra épülő műveletek párhuzamossága hogyan alakul. A relációs algebrai fa az előbbi információkkal kiegészítve
Katalógus költségbecslés
A becslés elvégzéséhez az adatbázis-kezelő rendszernek a relációkról különböző statisztikákat, mérőszámokat kell
karbantartania. Mindig frissíteni kéne ->terhelés -> csak akkor ha „van rá idő”-> nem mindig konzisztens. A katalógusban
tároljuk.
13
Katalógusban tárolt egyes relációkra vonatkozó információk
● n
r: az r relációban levő rekordok (elemek) száma (number)
● b
r: az r relációban levő rekordokat tartalmazó blokkok (blocks) száma
● s az r reláció egy rekordjának nagysága (size) bájtokban
r:
● f mennyi rekord fér az r reláció egy blokkjába (blocking factor)
r:
● V(A,r):hány különböző értéke (Values) fordul elő az A attribútumnak az r relációban. V(A,r) = |πA(r)|. Speciálisan, ha
az A kulcs, akkor V(A,r) = nr.
● SC(A,r):azon rekordok átlagos száma, amelyek kielégítenek egy egyenlőségi, feltételt az A attribútumra (Selection
Cardinality), feltéve, hogy legalább egy rekord kielégíti ezt az egyenlőségi feltételt.
Például, ha az A egyediséget biztosít, akkor SC(A,r) = 1. Ha az A nem biztosít egyediséget, és feltesszük, hogy a V(A,r)
különböző érték egyenletesen oszlik el a rekordok között, akkor SC(A,r) = .
Költség meghatározása
Költség
: háttértár blokkolvasások és írások száma a válasz kiírásának költsége nélkül
E : az algoritmus becsült költsége (Estimate)
alg
● Meghatározása:
o igényelt és felhasznált erőforrások alapján?
o válaszidő alapján?
o kommunikációra fordított idő alapján?
Műveletek költsége
Szelekció:
Egy reláció végigolvasása a legalacsonyabb szintű művelet
● Lineáris keresés(„full table scan”): Minden rekordot beolvasunk, és megvizsgáljuk, hogy kielégíti-e a szelekció
feltételét. E = br
● Bináris keresés:
o Feltétele:
▪ Blokkok folyamatosan a diszken
▪ Az 𝐴attribútum szerint rendezettek
▪ Szelekció feltétele az egyenlőség az 𝐴attribútumon
o Költsége:
● ődleges index: a rekordok olyan sorrendben való olvasását teszi lehetővé, amely megfelel a rekordok fizikai tárolási
Első
sorrendjének
● Másodlagos index: minden egyéb
● ődleges index használatával, egyenlőőségi feltételt a kulcson vizsgálva:
Első
o Költsége:
14
● ődleges index használatával, egyenlőőségi feltétel nem kulcson
Első
o (a nemkulcs attribútumon van az elsődleges index)
o költsége:
Join operáció
Típusai:
15
● Egyik relációhoz van indexünk
● Tegyük az első algoritmus belső ciklusába az indexelt relációt ⟹A keresés index alapján kisebb költséggel is
elvégezhető
● Költség : 𝑏𝑟+𝑛𝑟⋅𝑐, ahol 𝑐 a szelekció költsége 𝑠-en.
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 illeszkedő rekordokat keressük
űveletek
Egyéb mű
● Ismétlődés kiszűrése
o rendezés, majd törlés
o Költség: a rendezés költsége
● Projekció
o projekció, majd ismétlődés kiszűrés
o br+ rendezés költsége
● Unió
o mindkét relációt rendezzük, majd összefésülésnél kiszűrjük a duplikációkat
● Metszet
o mindkét relációt rendezzük, fésülésnél csak a másodpéldányokat hagyjuk meg
● Különbség
o mindkét relációtrendezzük, fésülésnél csak első relációbeli rekordokat hagyunk
Kifejezés kiértékelés
Materializáció: összetett kifejezésnek egyszerre egy műveletét értékeljük ki valamilyen rögzített sorrend szerint
● Kanonikus alak:
● Eredő költség: a végrehajtott műveletek költsége + részeredmények tárolásának költsége
● Előnye:
o egyszerű implementálhatóság
● Hátrány:
o sok háttértár-művelet
Pipelining:
● milyen műveletek
● milyen sorrendben
16
● milyen algoritmus szerint
● milyen workflow-ban
1. Szelekció kaszkádosítása
2. A szelekció kommutativitása
3. Projekció kaszkádosítása:
5. A θ -illesztés kommutativitása
17
7. A szelekció művelet disztributivitása a θ -illesztés felett, ha a θ0csak Ei-beli attribútumokat tartalmaz:
8. A projekció disztributív a θ -illesztés felett, ha Li és L2Ei, illetve E2- beli attribútumokat tartalmaz, és az illesztés
feltételében csak LiU L2-beli attribútumok vannak:
18