Adatbáziok elmélete 16. előadá Katona Gyula Y. Budapeti Műzaki é Gazdaágtudományi Egyetem Számítátudományi Tz. I. B. 137/b kikat@c.bme.hu http://www.c.bme.hu/ kikat 2004 ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 2/32 RX, Y) SY, Z) végehajtáa: Ha BS) < M 1, azaz S belefé a memóiába: egymenete algoitmu 1. Beolvauk S-et é hahtáblát vagy B-fát kézítünk, ahol a kulc Y attibútumai. 2. Beolvaunk egy blokkot R-ből. Minden oáa kikeeük a pazoló S-beli ookat. Az eedményt kiíjuk. I/O műveletigény: BS) + BR) Ha BR) > BS) > M 1: beágyazott cikluú algoitmu Beolvaunk minél több blokkot a memóiába S-ből, utána ugyanazt cináljuk mint fenn. I/O műveletigény: BS)BR)/M Ha BR), BS) M 2 : endezée algoitmu Y kulc zeint endezzük R-et é S-et özeféülée endezéel. Vezük az öze y kulcú ot a két lita elejéől é kiíjuk az öze pát. Feltettük, hogy az öze y kulcú o elfé a memóiában.) I/O műveletigény: 5BS) + BR)) ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 1/32 ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 3/32 Leginkább az I/O műveletigény édeke. Ha túl nagy a zámítái igény az i baj lehet. Soonkénti, unái műveletek: Kiválaztá é vetíté. Egyzee cak egy ot kell vizgálni, az algoitmu nem függ a memóia nagyágától. Unái, telje eláció műveletek: Pl. δr), γr). Ha nem fé el a eláció a memóiában, akko mát kell cinálni. Binái, telje eláció műveletek:,, \,,. Sok minden függ a méetektől. Ha minbr), BS)) M 2 : hahelée algoitmu Y kulc zeint vödö hahelét végzünk R-e é S-e. Ha közben megtelik egy vödö, azt kiíjuk.) A kapott R i, S i vödökkel egymenete algoitmut végzünk. I/O műveletigény: 3BS) + BR)) Ha van index S-e Y zeint: indexet haználó algoitmu R-et blokkonként olvauk be, az index alapján keeük ki a hozzá pazoló ookat. Átlago I/O műveletigény: BS)BR)/VS, Y), ahol VS, Y): Y étékkézletének zámoága S-ben.
ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 4/32 ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 6/32 Tiviáli egyzeűítéek főleg geneált lekédezéek eetén hazno): = ; = ; = ; σ C ) = ) = ) ) σ A=B B=C A=C ) = σ A=B B=C ) Milyen oendben édeme kizámolni A, B) B, C) qc, D)-t? Szélőége eetben lehet, hogy bá,, q mindegyikének 1000 oa van, de -nek cak 1 oa, é q-nak 1000000 oa. = Sokkal gyoabb A, B) B, C)) qc, D) kizámoláa. Ezt peze előe nem lehet tudni biztoan. = Statiztikákat vezetünk a elációk attibútumaiban előfoduló étékekől Ebből lehet becülni a költégeket + dinamiku pogamozá vagy mohó algoitmu. Igazi optimumot nehéz megtalálni: Tétel. Annak eldöntée NP-telje, hogy néhány eláció temézete illeztéének van-e legalább egy oa. Tétel. Az optimum megtaláláa NP-nehéz pobléma. ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 5/32 Ami többzö előfodul, nem bizto, hogy édeme mindig kizámolni: Pl. ) \ q ) \ \ ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 7/32 Bizonyítá Tétel. Annak eldöntée NP-nehéz, hogy néhány eláció temézete illeztéének van-e legalább egy oa. Bizonyítá: Vizavezetjük á a 3-SZÍN poblémát. Adott egy gáf, kédé zínezhető-e 3 zínnel. A gáf minden e = {x, y} éléhez vegyünk fel egy-egy elációt: q Azociativitá kihaználható: q q = q q e X Y pio pio ága ága ága pio ága pio e X Z pio pio ága ága ága pio ága pio Ha a temézete illeztének van oa = egy o minden cúchoz endel egy zínt. Mivel az illezté megfelel az egye elációknak, egy él két végpontján nem lez ugyanolyan zín. Ha van zínezé = a zínezében minden éle vegyük ki a megfelelő zínpát. Ezek a ook özeillenek.
ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 8/32 Kiválaztá tologatáa ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 10/32 Má múveleteke vonatkozó zabályok KÓD, NÉV, EGYSÉGÁR) DÁTUM, KÓD, DB) Hány daabot adtak el 2002. jan. 15-én az A123 kódú áuból, mi a neve é az áa? DB, NÉV, EGYSÉGÁR σkód= A123 DÁTUM= 2002-01-15 )) = DB, NÉV, EGYSÉGÁR σkód= A123 DÁTUM= 2002-01-15 ) ) σ Haonló zabályok, δ, γ-a i vannak, de ezek nem annyia cökkentik a műveletigényt. De cak olyan attibútumot lehet eltüntetni, amie nem hivatkozunk feljebb. L R S) = L M R) N R)), ahol M az R olyan attibútumai, hogy vagy özekapcolái attibútum, vagy L-beli, N pedig... δr S) = δr) δs) δσ C R)) = σ C δr)) δγ L R)) = γ L R) σ De pl. δ nem tolható át M, -n. Még egy fonto kédé az alkédéek kezelée, de eől mot nem zólunk. Felhaznált azonoág: σ C R S) = σ C R) S, ha minden C-beli attibútum zeepel R-ben. Haonló azonoágok: σ C R S) = σ C R) σ C S), σ C R S) = σ C R) S, ha minden C-beli attibútum zeepel R-ben. σ C R S) = σ C R) σ C S), ha minden C-beli attibútum zeepel R-ben é S-ben i. ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 9/32 Kiválaztá tologatáa ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 11/32 Özefoglalá Özetett C zétzedhető: σ C1 C 2 R) = σ C1 σ C2 R)), σ C1 C 2 R) = σ C1 R) H σ C2 R), ha R nem multihalmaz. Sok ilyen zabály alkalmazáával több féle logikai tev előállítható. Ezeknek megbecüljük a költégét é válaztunk egyet. Ehhez kézítünk fizikai tevet. σ K= A123 D= 01-15 σ K= A123 D= 01-15 σ K= A123 Jobb endzeekben ez automatiku. Ilyenekben kédée, hogy a lekédezé beíáako mie kell figyelni. Inkább olyan egyzeűítéeket édeme cak elvégezni, ami a függéek következménye, met ezeket nehezebben lehet automatizálni. Lehet, hogy édeme előbb feltolni, aztán le. Pl. Oacle-ban van á mód, hogy megnézzük mi a logikai é fizikai tev é meg lehet adni, hogy pontoan mit cináljon.
ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 12/32 Fizikai zevezé, tákezelé ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 14/32 Blokkokól általában Célja: a ekodokból egy ekod = a eláció egy oa) álló állomány kezelée úgy, hogy az adatokhoz való hozzáféé gyo legyen. Fonto jellemzők: Tipiku blokk... külő táa adatkezelé, met ok az adat = ha valamivel dolgozni akaunk, akko be kell hozni a belő memóiába = a költéget a beolvaá/kiíá jelenti = az I/O műveletek zámáa akaunk optimalizálni a műveletek, amiket gyoan meg kell tudni cinálni: ekodok beilleztée, tölée, módoítáa, keeée fejléc 1. ekod 3. ekod 2. ekod 4. ekod üe hely A fejléc tatalmazza a blokka vonatkozó infókat, pl: melyik elációhoz tatozik, mennyi a zabad hely benne, hol kezdődik); ezután jönnek a ekodok egymá után, a végén általában maad üe hely. Fonto feltevé: ekodok blokkhatát nem lépnek át, ezét általában van üe, fel nem haználható hely a blokkok végén. Ha nagyok a ekodok, pl. képfile-ok, é mégi át kell lépni laphatát, akko exta technikák kellenek, de ezzel mot nem foglalkozunk.) ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 13/32 Az állomány felépítée ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 15/32 Rekodok típuai Az adatállomány a külő táon van, blokkok lapok) elééfolytono oozatán. Kötött fomátum Ekko a mezők záma, méete, típua é oendje fix blokk...... egyzee egy blokk íható ki/olvaható be blokk méet fix ált. 2 10, 2 12 byte) az opeáció endze tatja nyilván, hogy melyik eláció ekodjai hol vannak é ő biztoítja az elééfolytonoágot i Fejléc: fejléc 1. mezõ 3. mezõ 2. mezõ 4. mezõ a ekod kezeléével kapcolato infók: töölt-e, melyik elációhoz tatozik a mezők típua időbélyeg miko módoult utoljáa)
ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 16/32 Rekodok típuai Változó fomátum Mezők hoza eetleg nem fix zöveget tatalmazó adatbáziok) Imétlődő mezők lehetnek, é az imétléek záma nem fix vagy pedig többétékű mezők zeeplők felooláa filmnél) Ilyenko bonyolultabb a fejléc, kevébé lehet gazdaágoan/előe tevezhetően táolni a ekodokat, ezét éjük el inkább, hogy ne legyen ez az eet: Vezeük viza ezt az eetet a kötötte, pl. mutatók alkalmazáával a poblémá helyeken = Motantól feltezük, hogy a ekodok kötött fomátumúak é hogy az egéz állományon belül ugyanaz a fomátum van. ADATBÁZISOK ELMÉLETE 16. ELŐADÁS 17/32 Fonto fogalmak 1. mutató: blokk vagy ekod címét tatalmazó bejegyzé 2. kötött blokk/ekod: mutathat á mutató, ezét nem mozgatható el zabadon. Ez típuzinten adott, azaz ha egy eláció ekodjaia/blokkjaia mutathat mutató, akko még akko i kötöttnek zámít, ha éppen nem mutat egye e emmi. 3. zabad blokk/ekod: nem mutathat á mutató 4. Kulc, keeéi kulc néha cak kulcnak hívjuk): a ekodok mezőinek egy kitüntetett halmaza a eláció attibútumainak egy ézhalmaza) ez alapján megy a keeé ezeknek az étékét adjuk meg é azokat a ekodokat ookat a elációban) keeük, amiknél pont ezek az étékek zeepelnek) a keeéi kulc nem egyezik meg feltétlenül a eláció egyik kulcával em pl. név a telefonkönyvnél) de az azét elváá, hogy ne legyen nagyon ok egy-egy étéke illezkedő ekod