Adtázisok elmélete 4. elődás Kton Gyul Y. Budpesti Műszki és Gzdságtudományi Egyetem Számítástudományi Tsz. I. B. 137/ kiskt@s.me.hu http://www.s.me.hu/ kiskt 2005 ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 2/26 3. Hivtkozási épség: lehet rjzon jelezni, h egy kpsoltnál zt szeretnénk, hogy pontosn egy egyed trtozzon egy kiválsztott egyedhez. Ilyenkor kerek nyilt hsználunk: Film gyárt Stúdió Een z eseten minden filmhez pontosn egy stúdiónk kell trtozni. 4. Értelmezési trtományr vontkozó megkötések és egyé megszorítások: Értelmezési trtomány: típussl. Egyé: kpsolt fokát lehet itt is korlátozni, pl: Film szerepel <10 Színész Ekkor egy filmhez 10-nél kevese színészt rendelünk. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 1/26 Megszorítások E/K modellen ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 3/26 Gyenge egyedhlmzok 1. Kulsok: egy kulsot láhúzássl jelölünk ( kuls trtozó ttriútumokt láhúzzuk), töi kulsot z árán nem lehet jelölni, ezeket szövegesen mellékeljük. NÉV CÍM ÜGYFELEK TELSZÁM SZÁMLÁJA SZÁMA SZÁMLÁK TÍPUSA Az E/K modell sjátosság. Egy egyedhlmz kkor gyenge egyedhlmz, h z egyedeit nem zonosítják z ttriútumi, sk kpsoltokkl együtt. (ODL-nél nins ez dolog, mert ott z egyedi OID mindig zonosít.) Jelölés: dupl tégllp z egyedhlmznk és dupl romusz zoknk kpsoltoknk, miken keresztül megy z zonosítás. A gyenge egyedhlmznál z láhúzott ttriútumok elekerülnek gyenge egyedhlmz kulsá, de még más ttriútumok is hozzájönnek ehhez: zok, mik duplromuszos kpsolt(ok) végén álló egyedhlmz(ok) kulsi. SZEMSZÁM EGYENLEG 2. Egyértékűség: egyszerű ttriútumok hsznált = minden ttriútum egyértékű z E/K modellen (áltlán lehet NULL-érték is, h mégsem, kkor írásn jelezhető) kpsoltnál: nyilkkl jelezhető, h vlmerre egy kpsolt
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 4/26 Példák: ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 6/26 Követelmények z zonosító kpsoltr 1. Amikor töágú kpsoltot inárissá írtuk át, kkor olyn egyedhlmz keletkezik ( kpsoltól), minek áltlán nins is ttriútum, ezért ennek z egyedhlmznk z egyedeit sk kpsoltokon át lehet zonosítni. A filmes péld esetén Szerződés egyedhlmz egyedeit kpsolódó egyedhlmzok (Film, Színész, Stúdió) kulsttriútumi zonosítják: film íme, gyártási éve, színész neve, stúdió neve. H ezek dottk, kkor már sk egy szerződés lehet, mi ezekre vontkozik. Szerzõdés Film Stúdió ím hossz év A gyenge egyedhlmz kulsán enne lehetnek sját ttriútumi (mint z elő Csoport neve) és iztosn vnnk enne olyn ttriútumok, miket duplromuszos kpsolt(ok)on keresztül szerez. Követelmények ezekre kpsoltokr: 1. H z E gyenge egyedhlmz kulsttriútumot szerez egy F egyedhlmztól z R kpsolton át, kkor R legyen tö-egy E-ől F-e. (Így egy E-elihez egyértelműen trtozik egy F-eli). 2. Egy ttriútum pontosn kkor kerül ele z E gyenge egyedhlmz kulsá, h enne vn z F egyedhlmz kulsán is. Színész Megjegyzés: természetesen F is lehet gyenge egyedhlmz. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 5/26 2. Een példán soport neve még önmgán nem kuls (sok égnél lehet pl. HR soport), sőt ímmel együtt sem feltétlenül zonosít egy soportot, de h kpsolton keresztül éget is evesszük z zonosítás, úgy már egyértelmű lesz, hogy melyik soportról eszélünk. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 7/26 Péld Tervezzen E/K digrmmot egy egyetemi nyilvántrtáshoz, hol hllgtókt és z áltluk szerzett jegyeket trtjuk nyilván. Vegyünk három egyedhlmzt: hllgtó, kurzus, kurzusfelvétel (ez utói kpsoló egyedhlmz hllgtók és kurzusok között, ennél reprezentáljuk kpott érdemjegyet is). Adjuk meg ezt E/K digrmml, jelöljük gyenge egyedhlmzokt és kulsokt is. Csoport Része Cég Neptun kód érdemjegy tárgykód tárgyím ím ím Hllgtó Hllg k Kurzus felvétel Kurzus k Kurzus félév okttó Döntsük el, hogy z érdemjegy része-e kurzusfelvételt reprezentáló egyedhlmz kulsánk? Az érdemjegy nem része kurzusfelvétel egyedhlmz kulsánk, ezen egyedhlmz kuls két kpsolton keresztül jön: hllgtótól neptun-kód, tárgytól meg tárgykód és félév.
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 8/26 Péld Tervezzen E/K digrmmot következőre és jelölje rjzon kulsokt és gyenge egyedhlmzokt: Egyedhlmzok: Kurzusok, Tnszékek. Egy kurzust egy tnszék hirdet meg, de zt sk egy számml zonosítj. Különöző tnszékek dhtják ugynzt számot kurzusuknk, de egy tnszék tárgyi mind különöző számot kpnk. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 10/26 Miért vnnk gyenge egyedhlmzok? Mguktól keletkeznek, mikor töágú kpsoltot írunk át inárissá. A redundni elkerülése éljáól. (Minek ég nevét minden soportnál külön felvenni, elég h egyszer felírjuk és kpsoltól derítjük ki.) A redundni elkerülése nem sk z E/K modellen fontos, ez minden megközelítésen lényeges, hisz redundni jok forrás. szám Nehéz konzisztens állpotn trtni DB-t, h ugynz z infó ezer helyen vn eírv. Nem lesz elég egyszerű sém, nehéz lesz átlátni, hogy mi z mi ugynz, sk sokszor tároljuk és mi vlón más infó. Kurzus Hirdeti Tnszék Helyprolém (ez egyre kevésé vn). Ezek mitt törekszünk redundni kiküszöölésére, de persze nem kell mindent kiirtni, hisz világ is redundáns. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 9/26 Péld ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 11/26 Tervezési lpelvek Tervezzen E/K digrmmot következőre és jelölje rjzon kulsokt és gyenge egyedhlmzokt: Egyedhlmzok: Ligák, Csptok, Játékosok. A Ligák nevei egyediek, Csptoké egy ligán elül különözik, de különöző ligán elül lehetnek zonos nevű sptok. Egy spton elül ninsenek zonos kódszámú játékosok, de különöző sptokn lehetnek ilyenek. kódszám Játékos játszik Cspt Ligán Lig 1. Vlósághű modellezés: megrgdni lényeget, megfelelő dtelemeket válsztni, megfelelő kpsoltokt (természetesek legyenek, de néh kellenek mesterséges, tehniki egyedhlmzok, osztályok is). 2. Redundni kerülése: észszerű mértéken. Ezt mjd reláiós modell ngyon jól megoldj, de zért már tervezéskor is jó erre figyelni. 3. Egyszerűség: sk z legyen sémán, minek lennie kell, minél egyszerű szerkezeten. 4. Megfelelő (típusú, összetettségű) dtelemek válsztás: jól döntsünk, hogy mi legyen ttriútum, mi inká kpsolt, illetve esetleg külön osztály/egyedhlmz. Az ttriútumot egyszerű implementálni, de néh átláthtó egy külön egyedhlmz. Áltlános elvek: h egy egyedhlmznk sk egy ttriútum lenne = nem érdemes külön venni, h összetette, kkor legyen külön. h egy infót mgán nem krunk megőrizni, sk vlmihez kpsoltn = lehet sk ttriútum (pl. h stúdiók sk nnyin érdekelnek minket, hogy melyik filmet ki gyártj, kkor nem kell külön Stúdió egyedhlmz) Ez mind modellezéskor dől el, szerint, hogy milyen sémát krunk.
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 12/26 Régei dtmodellek ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 14/26 Reláiós dtmodell Hálós dtmodell: szemléletéen hsonlít z ojektumosr, de itt sokkl jon közelíti terv fiziki megvlósítást (pl. z ttriútumok megdásánál rögtön rendelkezünk tárolás módjáról is). Lekérdezés, módosítás sk tárolás pontos ismeretéen lehetséges = nehézkese mint reláiós modell hsznált. Hierrhikus dtmodell: z első, kori rendszerek hierrhikusság mitt szervesen lkult ki. Akkor jó, h z dtok, vgy tárolás hierrhikus szerkezetű. Itt is ismerni kell fiziki megvlósítást kérdezéshez/módosításhoz. Mit fogunk ról tnulni? 1. elvi keret (lpfoglmk, lpműveletek) 2. konkrét nyelvek (ISBL, QBE, QUELL, SQL, sémdefiníiór, dtmódosításr és lekérdezésre) 3. tervezés (minél jo sém kilkítás, mtemtiki elmélet) Egyetlen lpfoglom (nins külön egyedhlmz és kpsolt): reláió. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 13/26 Reláiós dtmodell ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 15/26 A reláió definíiój Jelenleg ez legelterjedte, szinte minden DBMS ezen z elven működik. 1. Gondolhtunk rá úgy, mint egy síkeli táláztr: Ennek oki: jól lehet enne modellezni, modell után pedig könnyű konkrét sémát megvlósítni nem kell ismerni fiziki megvlósítást lekérdezéshez, módosításhoz logiki tervezésnek ngy, szép mtemtiki eszköztár vn, mi segíti z egyszerű sém létrehozását R 1 A 1 A 2 1 y 1 z 3 y R 2 A 1 A 2 2 y 1 z Itt R 1 reláió neve, A 1 és A 2 z ttriútumok nevei, sorok pedig reláió elemei. Az oszlopokn levő értékek z ttriútumokhoz trtozó értékkészletől kerülnek ki.
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 16/26 2. Tekinthetjük egy Desrtes-szorzt részhlmzánk is reláiót: ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 18/26 Reláiós modell A 1, A 2,..., A n tetszőleges hlmzok (ttriútumok) R A 1 A n = Minden sor sk egyszer szerepel = sorok sorrendje lényegtelen. Péld: A 1 = {1, 2, 3}, A 2 = {x, y, z} R 1 = {{1, y}, {1, z}, {3, z}} R 2 = {{2, y}, {1, z}} De R elemeit tekinthetjük hlmzoknk is, nem rendezett n-eseknek. Ekkor z ttriútumok sorrendje is mindegy. Edgr F. Codd, (1932 ) 1970-es ikk: A Reltionl Model of Dt for Lrge Shred Dt Bnks Teljes dtmodell: nem sk zt mondj meg hogyn írok le, hnem vnnk műveletek is. Ezeket műveleteket reláiókr lklmzhtom és így új reláiókt kpok mjd. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 17/26 3. Gondolhtunk egy reláiór úgy is, mint függvények hlmzár: Definíió. Egy sor = egy függvény: s : {ttriútumok} {ttr. értékkészlete} Egy R reláió ilyen függvények hlmz. Így tényleg nem számít sorrend, se sorok között, se z ttriútumok között. Nins két zonos sor. Például: R 1 -en: 1. sor: A 1 1; A 2 y; Jelölés: Definíió. Reláiós sém: R(A 1,..., A n ), hol R reláió neve, z A i -k pedig z ttriútumok nevei. ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 19/26 A reláiós lger lpműveletei Hlmzműveletek (ármilyen hlmzr mennének) unió: különség: \ szorzt: Reláiós műveletek (ezek már kihsználják, hogy itt reláiókról vn szó) vetítés, projekió: π kiválsztás, szelekió: σ Ezek mind tiszt műveletek: reláió reláió = gond nélkül egymás ágyzhtók Például: Személy(Vezeték, Kereszt, Neme, Végzettsége) Gykorltn zért mégis rögzítünk egy sorrendet, zt, melyiken felsoroljuk z ttriútumokt.
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 20/26 ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 22/26 Unió Szorzt (direkt szorzt, Desrtes szorzt) R, S reláiók = R S = sori vgy R vgy S sori Azonos sorok sk egyszer szerepeljenek. (Gykorltn néh lehetnek zonos sorok.) sk kkor lklmzhtó, h R és S oszlopszám egyenlő nem feltétlenül örököl típusokt vgy ttriútum neveket Péld: R(A 1,..., A k ), S(B 1,..., B l ) k ill. l ttriútumos reláiók = R S = egy k + l ttriútumos reláió, R minden sor mögé odtesszük S minden sorát, minden lehetséges módon. H R-nek n sor vn S-nek m sor = R S-nek nm sor vn nins komptiilitási követelmény Az eredmény lényegéen örökli R és S típusit és ttriútum neveit, esetleg át kell nevezni. R A B S A C d R S A (R S) 2 d ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 21/26 Különség R, S reláiók = R \ S = R zon sori, melyek S-en nem szerepelnek nins komptiilitási követelmény (H pl. különöző z oszlopszám, nem szerepelhetnek zonos sorok úgysem. Ekkor R \ S = R) Az eredmény örökli R típusit és ttriútum neveit (mert R \ S R) Péld: R A B S A C d R \ S A B ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 23/26 Péld: R A B S A C d R S A B A C d d d Az unió és különség könnyű művelet, szorzt neheze. Vigyázni kell mennyit hsználjuk.
ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 24/26 Vetítés R(A 1,..., A l ) lkú reláió = π Ai1,...,A in (R) R vetítése A i1,..., A in -re (fontos sorrend) = Veszem z oszlopokt een sorrenden, töit eldoom és töszörös sorokt is eldoom. Egy oszlop kár töször is szerepelhet. = átnevezés nins komptiilitási követelmény (persze mire vetítünk z R-nek ttriútum kell, hogy legyen) Az eredmény örökli R típusit és ttriútum neveit Péld: R A B C π A (R) A π C,B,B (R) C B B 2 3 4 2 3 4 ADATBÁZISOK ELMÉLETE 4. ELŐADÁS 25/26