0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:



Hasonló dokumentumok
Kezdők és Haladók (I., II. és III. kategória)

4. Számelmélet, számrendszerek

Skatulya-elv. Sava Grozdev

Többtáblás lekérdezések megjelenítése

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Szakdolgozat. Készítette: Csuka Anita. Témavezető: Besenyei Ádám, adjunktus

Jelöljük az egyes területrészeket A-val, B-vel és C-vel, ahogy az ábrán látható.

1J. feladat Petike menő srác az iskolában, így mindig csak felemás színű zoknikat hord. Ruhásszekrénye mélyén

Euler kör/út: olyan zárt/nem feltétlenül zárt élsorozat, amely a gráf minden élét pontosan egyszer tartalmazza

LÁNG CSABÁNÉ TELJES INDUKCIÓ, LOGIKA, HALMAZOK, RELÁCIÓK, FÜGGVÉNYEK. Példák és feladatok

A lehetetlenségre visszavezetés módszere (A reductio ad absurdum módszer)

Komplex számok algebrai alakja

6. előadás Környezetfüggetlen nyelvtanok/1.

Programozási Módszertan definíciók, stb.

Alap fatranszformátorok I. Oyamaguchi [3], Dauchet és társai [1] és Engelfriet [2] bebizonyították hogy egy tetszőleges alap

KOVÁCS BÉLA, MATEMATIKA I.

10. Síkgeometria. I. Elméleti összefoglaló. Szögek, nevezetes szögpárok

2. Logika gyakorlat Függvények és a teljes indukció

1/50. Teljes indukció 1. Back Close

LOGIKA. A logika feladata tehát a premisszák és a konklúzió

MATEMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

Diszkrét matematika II., 1. el adás. Lineáris leképezések

MATEMATIKA ÉRETTSÉGI október 15. EMELT SZINT

SZÁMELMÉLET FELADATSOR

GONDOLKODÁSI MÓDSZEREK

Számítások, hivatkozások

Oszthatósági problémák

"Ha" - avagy a Gödel paradoxon érvényességének korlátai

A geometriák felépítése (olvasmány)

MATEMATIKA A 10. évfolyam

Átírás:

Funkcionális függések, kulcskeresés, Armstrong axiómák A kékkel írt dolgokat tudniuk kell már, nem kell újra elmondani 0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni: Példa: Önálló feladat: 1. Funkcionális függőség: Definíció: B attribútum funkcionálisan függ A attribútumtól (vagy A funkcionálisan meghatározza B-t), ha t1[a]=t2[a] esetén t1[b]=t2[b]. Ez a definíció azt jelenti, hogy ha B attribútum (tábla egy oszlopa) funkcionálisan függ A attribútumtól, akkor az A attribútmon azonos értéket felvevő sorokban a B attribútum értékei is megegyeznek. Jelölés: A B A B C a1 b1 c1 a1 b2 c2 a2 b3 c3 b2=b1 F: funkcionális függés halmaza ( pl: F={A D, B E, DE C} ) 1 A B C a1 b1 c1 a1 b1 c2 a2 b3 c3

Implikáció definíciója (Logikai következmény) Egy adott FD1 funkcionális függőségi halmaz implikáltja (logikai következménye) FD2 függőségi halmaz, ha a reláció minden egyes legális előfordulása FD1 szerint legális FD2 szerint is. Jelölés: FD1 = FD2 1.1. Adott a következő R(X,Y,Z) reláció egy r előfordulása: r: X Y Z x1 y1 z1 x1 y1 z2 x2 y1 z1 x2 y1 z3 Kérdések: Mondjon példát olyan funkcionális függésre, amely szerint legális az előfordulás. Módosítsuk z3-at, z2-re. Válaszoljon az előző kérdésre újra! Válaszok: F={ Z Y, X Y, XZ Y } Ugyan az mint előbb. ( F nem változott ) 1.2. Adott a következő S(A,B,C) reláció egy s példánya: s: A B C 1 2 3 4 2 3 5 3 3 Kék részeket csak kérdezni kell. Kérdés: Ellenőrizze, hogy s legális-e az alábbi függőségekre: A B, BC A, B C Válasz: BC A szerint nem legális (pl: 1,2,3 illetve 4,2,3) a többi igen 2. Armstrong axiómák: (Előadáson szerepelt! Ezért talán nem kellene ideírni, nehogy véletlenül vegyék) 2.1. Reflexívitás-Reflexivity: Állítás (nem def)ha attribútum részhalmaza attribútumnak akkor funkcionálisan függ -tól. (Ha, akkor ) Biz.: A funkcionális függések definíciójából következik, hogyha t1[ ]= t2[ ], akkor t1[ ]= t2[ ] is igaz. A állítás következménye, hogy ha a sorok értéke ugyanaz az attribútumok halmazán, akkor a részhalmazon is. 2.2. Bővítés-Augmentation: Def.: Ha, akkor Biz.: t1[ ] = t2[ ] és t1[ ] = t2[ ] t1[ ] = t2[ ] t1[ ] = t2[ ] t1[ ] = t2[ ] 2.3. Tranzitivitás-Transivity: Def.: Ha és, akkor Biz.: jelentése: ha t1[ ] = t2[ ] t1[ ] = t2[ ] jelentése: ha t1[ ] = t2[ ] t1[ ] = t2[ ] Így ha t1[ ] = t2[ ] és t1[ ] = t2[ ] fennáll, akkor t1[ ]= t2[ ] kell legyen. 2

3. Levezetések és formális bizonyítások: 3.1. Dekompozíció szabály (definíció alapján) (ha, akkor és ) jelentése: ha t1[ ]= t2[ ], akkor t1[ ]= t2[ ] igaz. De ez a második egyenlőség a t1[ ]= t2[ ] és t1[ ]= t2[ ] egyenlőségekből áll, amelyek bizonyítják az állítást. 3.2. Unió szabály ( és, akkor ) Ha t1[ ]= t2[ ], akkor t1[ ]= t2[ ] és t1[ ]= t2[ ], akkor t1[ ]= t2[ ] igaz, akkor a t1[ ]= t2[ ], akkor t1[ ]= t2[ ] is teljesül. 3.3. Pszeudo-tranzitivitás (ha és, akkor ) Ha + bővítés -val. Mivel és, ezért a tranzitivitás miatt. 3.4. Pszeudo-kibővítés (ha, akkor ) Ha + bővítés -val. Dekompozíciós szabály: és. 3.5. Önálló feladat (ha és, akkor ) Ha + bővítés -val. Valamint + bővítés -val. Tranzitivitással: és. 4. Funkcionális függés lezártja: F lezártja F +, ha az F + tartalmazza az összes funkcionális függést, amit az F meghatároz (ami az Armstrong axiómák segítségével levezethető F-ből). Két függőségi halmaz ekvivalens, ha lezártjuk egyenlő. Ez nem volt még! A kékek kövekező gyakorlaton legyenek! Definíció: Az levezethető (derivation) az FD1, FD2, FD3,...FDn funkcionális függések sorozatából az FD funkcionális függések halmazán, ha: FDn = és minden FDk FD, vagy az FDk az FD elemeiből levezethető az Armstrong axiómák segítségével vagy az előzőleg meghatározott származtatottakból vagy mindkettőből. 4.1. Funkcionális függés lezártja: R(A,B,C,D) F = {A B, A C, C D} F + = {A A, A B, A C, A D, A AB, A AC, A AD, A BC, A BD, A CD, A ABC, A ABD, A BCD, A ABCD, C D } 3

4.2. Ekvivalens függőségi halmazok: R(A,B,C) F1 = {AC C, A BC, C C} F2 = {ABC BC, A B, A C} Megoldás: F1-ből levezethetőek F2 funkcionális függőségei: A BC dekompozíció: A B, A C A BC bővítés BC-vel: ABC BC F2-ből levezethetőek F1 funkcionális függőségei: A B és A C unió: A BC A C bővítés C-vel: AC C C-ből triviális (reflexivitással): C C 4.3. Következménye-e a C A, illetve a D C függőségek az F:={AB C, C D, D A} függőségi halmaznak? (Funkcionális függés lezárttal) Megoldás: C D és D A tranzitivitás: C A C A következménye F-nek. D funkfügg-jei: D A, D D, D AD D C nem következménye F-nek. 5. Attribútum halmaz lezártja adott F függőségi halmaz szerint: {A1, A2,... An} + ={B A1, A2,... An B, amely F-ből következik} Bemenet: X attribútum halmaz, F függőségi halmaz Eredmény: X attribútum halmaz F szerinti lezártja (X + ), azaz minden olyan attribútum, ami X + -ból következik F függőségeit felhasználva. Az algoritmus nem szerepelt, végig kell következtetniük Módszer: 1. X(0) = X (Az attribútum halmaz elemei triviálisan bent lesznek) 2. X(i+1) = X(i) A, ha F-ben van olyan függőség, hogy Y Z, ahol A Z, és Y X(i) 3. Kilépés: X(i+1) = X(i) (Ha nincs változás készen vagyunk) ( Tétel: Ez a módszer helyesen számolja ki X + -t Bizonyítás: Teljes indukcióval ) 5.1. Keressük meg a különböző attribútum halmazok lezártjait! R{A,B,C,D,E} F={A C, B C, C D, DE C, CE A} Megoldás: tehát itt le kell vezetniük {A} + = {A,C,D}; {B} + = {B,C,D}; {C} + = {C,D} {DE} + = {D,E,C,A}... {BE} + ={ A,B,C,D,E} 5.2. Következménye-e a C A, illetve a D C függőségek az F:={AB C, C D, D A} függőségi halmaznak? (Attribútum halmaz lezárttal) Megoldás: Megoldás: tehát itt le kell vezetniük 4

C + ={C, D, A}, így A C +, tehát C A következik F-ből. D + ={ D, A}, így C D +, tehát D C nem következik F-ből. 6. Kulcsok meghatározása a funkcionális függőség segítségével: Szuperkulcs (Super key): α szuperkulcs, ha α R. Vagyis α-ból levezethető a reláció összes attribútuma a funkcionális függőségek segítségével. Kulcsjelölt (Candidate key): α kulcsjelölt, ha α R és nincs olyan β α amire β R. Máshogy: {A} kulcsjelölt, ha {A} + az összes R attribútum, de A egy valódi részhalmazára sem igaz ez, azaz minimális. Elsődleges kulcs: Tetszőleges kulcsjelölt A funkcionális függések segítségével meg lehet határozni a kulcsokat és az elsődleges kulcsot. Egy attribútum vagy attribútum halmazt akkor nevezünk kulcsnak, ha az attribútum halmaz lezártja tartalmazza az összes attribútumot (Ki lehet fejezni velük az összes többi attribútumot). Tippek kulcs jelöltek keresésére: - Amelyik attribútumok nem szerepelnek a funkcionális függések jobb oldalán, azokat nem határozza meg semmi (csak önmaguk), tehát mindenképpen a kulcsjelölt részét fogják képezni. - Ha a fenti attribútumok, kevesek lennének kulcs jelöltnek, akkor a funkcionális függések bal oldalán álló attribútumok közül esélyes (ezek meghatározhatnak más attribútumokat), hogy valamelyikre még szükség van LEFT( kulcsban lesz) LEFT-RIGHT (lehet a kulcsban) RIGHT(soha nem lesz a kulcsban) 6.1. Példa: Kérem szépen a Left(FD-k csak baloldalán szereplő attr), Left- Right(mindlkét oldalon szerpel), Right(csak jobboldalon szerepel) csoportosításra trenírozni őket!! Határozzuk meg a kulcsjelölteket! R(A,B,C,D) a) F1 = {C D, C A, B C} B LEFT LEFT_RIGHT RIGHT B C A a) F2 = {B C, D A} BD LEFT B D LEFT_RIGHT RIGHT A b) F3 = {ABC D, D A} ABC vagy BCD LEFT LEFT_RIGHT RIGHT B,C A,D _ 5

b) F4 = {A B, BC D, A C} A LEFT LEFT_RIGHT RIGHT A B, C D c) F5 = {AB C, AB D, C A, D B} AB, CD, AD, vagy BC LEFT LEFT_RIGHT RIGHT A, B, C, D 6.2. Befektetési iroda Séma: Attribútumok: {Bróker, Iroda, Befektető, Részvény, Darab, Osztalék} Függőségi halmaz = {Bróker Iroda; Részvény Osztalék; Befektető, Részvény Darab; Befektető Bróker} Határozzuk meg a reláció kulcsát az előző megoldások mintájára! Megoldás: (Befektető, Részvény) lesz a kulcsjelölt 6.3. Határozzuk meg a reláció kulcsait A reláció sémája: R(A, B, C, D, E) A hozzátartozó függőségi halmaz: F={A B, CA D, C E, D A} LEFT LEFT_RIGHT RIGHT C A, D B, E 6

Megoldás: Figyelmesen nézzük meg a funkcionális függőségek bal és jobb oldalait: C mindenképpen benne lesz a kulcsban (jobb oldalt nem szerepel) bal oldalon még az A és D attribútum szerepel Sejtés: CA és CD lehet kulcs jelölt 1. CA + 1={C, A} a reflexivitás miatt 2. CA + 2={C, A} {B} az A B 3. CA + 3={C, A, B} {D} a CA D 4. CA + 4={C, A, B, D} {E} a C E 5. CA + 5={C, A, B, D, E} 6. CA + 5= CA + 6 1. CD + 1={C, D} a reflexivitás miatt 2. CD + 2={C, D} {A} az D A 3. CD + 3={C, D, A} {E} a C E 4. CD + 4={C, D, A, E} {D} a CA D 5. CD + 5={C, D, A, E, D} 6. CD + 5= CD + 6 Minimalitási feltétel ellenőrzése: C + ={C, E}, A + ={A, B}, D + ={D, A, B} önmagukban nem képesek a teljes R relációt meghatározni CA és CD valóban kulcsjelöltek! 7. Gyakorlás zh-ra: 7.1. Relációs algebra(akár átírást is lehet gyakorolni): Gyümölcsök (Azonosító, Név, Egységár); Termelők (Termelőazonosító, Név, Település, Utca, Összes földterület); Termel (Azonosító, Termelőazonosító, Éves mennyiség); Azonosító Név Név Utca Egységár Gyümölcsök Termelők T.Azonosító Település Termel Összföld. Éves mennyiség Kérdések és válaszok: 1. Mi a legdrágább gyümölcs azonosítója? (π(egységár, Egységár) (Hallgatók)) \ π(új.azonosító, Új. Egységár) (σ (Gyümölcs. Egységár > Új. Egységár) (π(azonosító, Egységár) (Gyümölcsök) ρ(új) (π(azonosító, Egységár) (Gyümölcsök))))) 2. Mi a legtöbb földdel bíró termelő neve? (π(név, Föld) (Hallgatók)) \ π(új.név, Új. Föld) (σ (Termelő. Föld > Új. Föld) (π(név, Föld) (Termelő) ρ(új) (π(név, Föld) (Termelő))))) 3. Azon termelők neve akik termelnek dinnyét. π (Termelők.név) (Termelők (σ (gyümölcsök.név> dinnye ) (Gyümölcsök Termel))) 7

4. Kik azok a termelők (név szerint), akik mindenféle gyümölcsöt termelnek? π (név) (Termelők (π (Termelőazonosító, Azonosító) (Termel) / π (Azonosító) (Gyümölcsök))) 7.2. Relációs algebra <-> SQL: Adott a következő séma. Írjuk át a relációs algebrai kifejezéseket SQL-re, és fordítva! Suppliers (sid int, sname str, address str) Parts (pid int, pname str, color str) Catalogue (sid int, pid int, cost real) Rel. alg. (piros cikkeket forgalmazó szolgáltatók listája): π suppliers.sname (Suppliers (σ parts.color= piros (Catalog Parts))) SQL? Megoldás: SELECT sname FROM SUPPLIERS s, CATALOG c, PARTS p WHERE s.sid=c.sid and c.pid=p.pid and p.color=`piros'; SQL (piros és sárga cikkeket is forgalmazók listája): SELECT sname FROM SUPPLIERS s WHERE sid IN ( ( SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='piros' ) INTERSECT ( SELECT c.sid FROM CATALOG c, PARTS p WHERE c.pid=p.pid AND p.color='sarga' ) ); Rel. alg.? Megoldás: π suppliers.sname (Suppliers (σ parts.color= piros (Catalog Parts))) π suppliers.sname (Suppliers (σ parts.color= sarga (Catalog Parts))) 7.3. Iskola határozzuk meg a kulcsot! Séma: Attribútumok: {Diák, Idő, Terem, Kurzus, Jegy} Függőségi halmaz = {Diák, Idő Terem; Diák, Kurzus Jegy} Megoldás: (Diák, Idő, Kurzus) lesz a kulcsjelölt (minimális, mindent meghatároz) 8

7.4. Jármű határozzuk meg a kulcsot! Séma: Attribútumok: {Autó, Benzin, Megtett út, Rendszám, Sofőr, Utas} Függőségi halmaz = {Autó Benzin, Utas; Benzin Megtett út; Rendszám Autó} Megoldás: (Rendszám, Sofőr) lesz a kulcsjelölt (minimális, mindent meghatároz) 9