Adatbázis rendszerek 2. előadás Relációs algebra Molnár Bence Szerkesztette: Koppányi Zoltán
Bevezetés
Relációs algebra általában A relációs algebra néhány tulajdonsága: Matematikailag jól definiált Halmazelméletből építkezik Bevezethető az Armstrong axiómákon keresztül Gyakorlati jelentősége: RDBMSek lekérdező nyelvének alapja Adatbázis tervezés Didaktikai jelentősége: sokkal könnyebb lesz megérteni az SQL nyelvet
Ismétlés Oszlop=Attribútum Név Lakcím Telefonszám Végzettség Munkahely Holnap Péter Budapest 999-9999 Gépészmérnök Szerszámgyártó Zrt. Tóth István Cegléd 999-9928 Építőmérnök Út kivitelező Nyrt. Nagy Ferenc Budapest 999-9954 Közgazdász Elszámolok Kft. Kiss Pista Budapest 999-5864 Érettségi Út kivitelező Nyrt. Sor=Rekord Cella=Mező vagy Komponens
Relációs séma
Relációs séma Adott a következő táblázat: Reláció sémája: Jegyek reláció Azonosító Név Jegy 1 Kiss Pista 3 2 Nagy Péter 4 3 Varga Ferenc 5 4 Kiss Pista 1 Jegyek(Azonosító, Név, Jegy) Miért nevezzük relációnak?
Relációs séma - elnevezések A táblázat a reláció egy előfordulása! Reláció sémája: Jegyek reláció Azonosító Név Jegy 1 Kiss Pista 3 2 Nagy Péter 4 3 Varga Ferenc 5 4 Kiss Pista 1 Jegyek(Azonosító, Név, Jegy) Reláció neve Attribútumok, együtt attribútumok halmaza
Relációs séma - tulajdonságok A reláció és előfordulásának tulajdonságai Az attribútumok (oszlopok) sorrendje nem számít, tetszőlegesen felcserélhetőek A rekordok sorrendje nem számít, tetszőlegesen felcserélhetőek Egy attribútumhoz, és egy adott sorhoz egy és csak egy komponens tartozhat A mi esetünkben megengedjük, hogy egy adott sor ugyanazon attribútum értékekkel többször is előforduljon (halmaz vs. multihalmaz)
Néhány séma példa Idom(Azonosító, Elnevezés, Keresztmetszet, Inercia, Ár) Gömb(Azonosító, X, Y, Z, R) Közút(Azonosító, Elnevezés, Rendűség) Földrészlet(Azonosító, Helyrajziszám, Tulajdonos, Terület, AK_érték) Adjunk meg hozzájuk előfordulásokat (azaz készítsünk hozzá táblázatot)
Attribútumok típusa
Attribútumok típusa Az attribútumok esetén meghatározhatjuk, hogy azok milyen halmazból vehetnek fel értékeket, azaz megadhatjuk azok típusát Egyszerű típusok (példák): Szám Egész Valós Szöveg Logikai Számláló
Attribútumok típusa Összetett típusok (példák): Maszk: 000-000-000, XXXXX Vonallánc, gömb, geometriai elemek Binary Large Object (BLOB) Kép, MP3, stb... Ezeket beépíthetjük a relációs séma leírásába: Jegyek(Azonosító : Felsoroló, Név : Szöveg, Jegy: Egész szám)
További példák Idom(Azonosító : Számláló, Elnevezés: Szöveg, Keresztmetszet : Valós, Inercia : Valós, Ár : Egész) Gömb(ID : Számláló, X : Valós, Y : Valós, Z : Valós, R : Valós) Közút(Azonosító, Elnevezés, Rendűség) Földrészlet(Azonosító, Helyrajziszám, Tulajdonos, Terület, AK_érték) Az utolsó két séma esetén is adjuk meg az attribútumok típusát! Több fajta jó megoldás is létezhet!
Kulcs, szuperkulcs
Szuperkulcs Szuperkulcs: azon attribútumok halmaza, mely egyértelműen meghatároz egy rekordot Név Szemig Kor Kiss Pista 123 18 Kiss Pista 124 18 SzK2=SzK1 U {{kor}, {kor, név}} SzK1={{szemig}, {szemig, név}, {szemig, kor}, {szemig, név, kor}} Név Szemig Kor Kiss Pista 123 18 Kiss Pista 124 19
Kulcs Kulcs: a szuperkulcsok közül a minimális Név Szemig Életkor Kiss Pista 123 18 K1={{szemig}} Kiss Pista 124 18 K2={{szemig}, {életkor}} Név Szemig Életkor Kiss Pista 123 18 Kiss Pista 124 19
Kulcs még egy példa Név Szemig Tantárgy Jegy Kiss Pista 123 Matek 5 Kiss Pista 123 Biosz 5 Kiss Pista 124 Matek 5 SzK={{szemig, tantárgy}, {név, szemig, tantárgy}, } K={szemig, tantárgy} Összetett kulcs
Kulcsok a relációs sémában Eddig a szuperkulcs illetve a kulcs vizsgálatát egy vagy több előfordulás esetén vizsgáltuk. De ezt elő is írhatjuk, így biztosítjuk, hogy egy adott attribútumra a kulcs tulajdonság mindig igaz legyen! Ezt a következő módon jelölhetjük a relációs sémában Jegyek(Azonosító, Név, Jegy)
További példák Idom(Elnevezés:Szöveg, Keresztmetszet : Valós, Inercia : Valós, Ár : Egész) Gömb(X : Valós, Y : Valós, Z : Valós, R : Valós) Közút(Elnevezés, Rendűség) Földrészlet(Helyrajziszám, Tulajdonos, Terület, AK_érték) Az utolsó két séma esetén határozza meg a szuperkulcs és kulcs halmazokat! Miért nincs azonosító?
Műveletek
Műveletek A két változós halmaz műveletekhez a következőeknek kell teljesülni mindkét (R, és S) relációra Az R és S relációknak ugyanazt az attribútumhalmazt kell tárolnia Az attribútumokat rendezni kell úgy, hogy az R i-ik oszlopa megegyezzen S i-ik oszlopával
Halmazművelet 1 - Unió Jele: S R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 U Név Jegy Kiss Lajos 2 = Nagy Lajos 3 Név Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 Kiss Lajos 2 Nagy Lajos 3 Jegy
Halmazművelet 2 - Metszet Jele: S R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 S R \ Név Jegy Kiss Pista 2 Nagy Lajos 3 = Név Jegy Kiss Pista 2
Halmazművelet 3 - Különbség Jele: S \ R Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 \ Név Jegy Kiss Pista 2 = Nagy Lajos 3 Név Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 Jegy
Vetítés (Projekció) Jele: π attr1,attr2,... (S) Név Jegy Kiss Pista 2 π név ( ) Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 = Név Kiss Pista Nagy Péter Vál Péter Nagy Ákos Név Jegy Jelenlét Kiss Pista 2 14 π ( )= Nagy Péter 3 14 név, jegy Vál Péter 5 13 Nagy Ákos 3 10 Név Jegy Kiss Pista 2 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3
Kiválasztás (Szelekció) Jele: σ attr1 R value R attr2 R value R... (S) R (' =',' <',' >',' ',' ',' ',' ',' ' ) Név Jegy Kiss Pista 2 σ ( ) Nagy Péter 3 jegy=3 Vál Péter 5 Kiss Pista 3 = Név Jegy Nagy Péter 3 Kiss Pista 3 Név Jegy Jelenlét Kiss Pista 1 14 σ jegy>1 jelenlét >10 ( Nagy Péter 3 14 Vál Péter 5 13 ) Nagy Ákos 3 10 = Táblán
Descartes-szorzat Jele: A B Név Jegy Kiss Pista 2 Név A B Kiss Pista 10 Jelenlét Nagy Péter 3 Nagy Péter 14 = R.Név Jegy S.Név Jelenlét Kiss Pista 2 Kiss Pista 10 Kiss Pista 2 Nagy Péter 14 Nagy Péter 3 Kiss Pista 10 Nagy Péter 3 Nagy Péter 14
Kizárólag akkor alkalmazható, ha az összekapcsolás azonos mezőnevek segítségével történik Természetes összekapcsolás Jele: A B Név Jegy Kiss Pista 2 Nagy Péter 3 Név Jelenlét Kiss Pista 10 Nagy Péter 14 Nagy Lajos 5 = Név Jegy Jelenlét Kiss Pista 2 10 Nagy Péter 3 14
Mivel a Descartes szorzat műveletéből indul ki, az összekapcsolás mezőneveinek egyenlőségét is feltételül kell szabni Théta összekapcsolás Jele: A attr1 R attr2 R... B R (' =',' <',' >',' ',' ',' ',' ',' ' ) Név Jegy Kiss Pista 2 Nagy Péter 3 Jelenlét> 10 Név Jelenlét Kiss Pista 10 Nagy Péter 14 Nagy Lajos 5 = Név Jegy Jelenlét Nagy Péter 3 14
Példa 1 S Név Jegy Jelenlét Kiss Pista 3 8 Kiss István 2 14 Nagy Irán 5 10 Nagy Péter 1 14 Adjuk meg relációs algebrai műveletekkel, azon hallgatók neveit, akik átmentek a tárgyból. π név (σ jegy>1 jelenlét >10 (S))
Példa 2 A Név Tantárgy Pontszám Jelenlét Kiss Pista Matek 50 8 Kiss Pista Rajz 60 14 Nagy Iván Statika 45 10 Nagy Péter Matek 15 14 B Név Évfolyam Kiss Pista 1 Kiss István 2 Nagy Iván 1 Nagy Péter 1 C Tantárgy MinPont Matek 40 Rajz 60 Statika 50
Példa 2 1) Adjuk meg, azon hallgatókat, akik Rajzra járnak! 2) Adjuk meg az elsős hallgatók neveit! 3) Adjuk meg azon tárgyakat, amelyek teljesítéséhez több mint 45 pont kell! 4) Adjuk meg azon hallgatókat, és évfolyamukat, akik Matekra járnak! 5) Adjuk meg, hogy mely hallgatóknak milyen tantárgyuk sikerült! 6) Adjuk meg, hogy az elsős hallgatóknak milyen tantárgyak sikerültek!
Példa 2 1) 2) 3) 4) 5) 6) π név (σ Tantárgy=' Rajz ' ( A)) π név (σ Évfolyam=1 (B)) π tantárgy (σ MinPont >45 (C )) π név,évfolyam (σ A.Tantárgy=' Matek ' (B) A) π név,tantárgy ( A C ) A.PontSzám>C.MinPont A.Tantárgy=C.Tantárgy π név,tantárgy (σ Évfolyam=1 (B) ( A C )) A.PontSzám>C.MinPont A.Tantárgy=C.Tantárgy
Köszönöm a figyelmet!