Adatbázis rendszerek. 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 Lakcím Holnap Péter Telefonszá m Végzettség Munkahely Budapest 999-9999 Gépészmérnök Szerszámgyártó Zrt. Tóth István Cegléd Építőmérnök Út kivitelező Nyrt. Nagy Ferenc Budapest 999-9954 Közgazdász Elszámolok Kft. Budapest 999-5864 Érettségi Út kivitelező Nyrt. 999-998 Sor=Rekord Cella=Mező vagy Komponens
Relációs séma
Relációs séma Adott a következő táblázat: ek reláció Azonosító 1 3 Nagy Péter 4 3 Varga Ferenc 5 4 1 Reláció sémája: ek(azonosító,, ) Miért nevezzük relációnak? Kétdimenziós táblázatos adathalmaz
Relációs séma - elnevezések A táblázat a reláció egy előfordulása! ek reláció Azonosító 1 Nagy Péter 3 Varga Ferenc 4 Reláció sémája: ek(azonosító,, ) Reláció neve Attribútumok, együtt attribútumok halmaza 3 4 5 1
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 (műveletek esetén számít az attribútumok sorrendje) A rekordok sorrendje 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) nem számít, tetszőlegesen
Néhány séma példa Idom(Azonosító, Elnevezés, Keresztmetszet, Inercia, Ár) Gömb(Azonosító, Közút(Azonosító, X, Y, Z, R) 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 leírásába: ek(azonosító : Számláló, : Szöveg, : Egész szám) séma
Attribútum típus választás Tárhely igény Mint a papírlapon: a megfelelő hely szükséges leghosszabb értéknek Értékek készlet számossága (1-9, a-z, a-z...) Műveleti lehetőségek Matematikai műveletek Sorba rendezés Azonosság különbözőség vizsgálat (redundancia) Hivatkozások Kódolás fix választási lehetőségek esetén Más halmaz attribútumaira
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, Valós, Z : Valós, R : Valós) Közút(Azonosító, Y : 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 Szemig 13 Kor 18 14 18 SzK=SzK1 U {{kor}, {kor, név}} SzK1={{szemig}, {szemig, név}, {szemig, kor}, {szemig, név, kor}} Szemig 13 14 Kor 18 19
Kulcs Kulcs: a szuperkulcsok közül a minimális Szemig Életkor 13 18 14 18 K={{szemig}, {életkor}} K1={{szemig}} Szemig Életkor 13 18 14 19
Kulcs még egy példa Szemig Tantárgy 13 13 14 5 5 5 Matek Biosz Matek 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 vizsgálatát egy vagy esetén vizsgáltuk. illetve a kulcs több előfordulás De ezt elő is írhatjuk, így biztosítjuk, hogy egy adott attribútumra a kulcs tulajdonság mindig igaz legyen! Ezt a következő relációs sémában módon jelölhetjük ek(azonosító,, ) a
További példák Idom(Elnevezés:Szöveg, Keresztmetszet : Valós, Ár : Egész) Valós, Inercia : 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, Terület, AK_érték) Az Tulajdonos, utolsó két séma esetén határozza meg a szuperkulcs és kulcs halmazokat! Miért nincs azonosító?
Műveletek
Műveletek két változós halmaz műveletekhez a következőeknek kell teljesülni mindkét (R, és S) relációra A Az R és S relációknak ugyanazt attribútumhalmazt kell tárolnia az 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 Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 U Kiss Lajos Nagy Lajos 3 = Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 Kiss Lajos Nagy Lajos 3
Halmazművelet - Metszet Jele: S R Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 S R \ = Nagy Lajos 3
Halmazművelet 3 - Különbség Jele: S\R Nagy Péter 3 Vál Péter 5 Nagy Ákos 3 \ Nagy Lajos 3 = Nagy Péter 3 Vál Péter 5 Nagy Ákos 3
Vetítés (Projekció) Jele: π név ( π név, jegy( π attr1, attr,... (S ) )= Nagy Péter 3 Nagy Péter Vál Péter 5 Vál Péter Nagy Ákos 3 Nagy Ákos Jelenlét 14 Nagy Péter 3 14 Nagy Péter 3 Vál Péter 5 13 Vál Péter 5 Nagy Ákos 3 10 Nagy Ákos 3 )=
Kiválasztás (Szelekció) Jele: σ attr1 R value R attr R value R... (S ) R ('=',' <',' >',' ',' ',' ',' ',' ') σ jegy=3 ( ) = Nagy Péter Nagy Péter 3 Vál Péter 5 3 σ jegy>1 jelenlét >10 ( Jelenlét 1 14 Nagy Péter 3 14 Vál Péter 5 13 Nagy Ákos 3 10 3 3 ) = Táblán
Descartes-szorzat Jele: A B Nagy Péter 3 Jelenlét 10 A B Nagy Péter 14 = A. B. Jelenlét 10 Nagy Péter 14 Nagy Péter 3 10 Nagy Péter 3 Nagy Péter 14
Természetes összekapcsolás Jele: A B Jelenlét 10 Nagy Péter 3 Nagy Péter 14 = Nagy Lajos 5 Jelenlét 10 Nagy Péter 3 14 Kizárólag akkor alkalmazható, ha az összekapcsolás azonos mezőnevek segítségével történik
Théta összekapcsolás Jele: A B attr1 R attr R... R ('=','<',' >',' ',' ',' ',' ',' ') Jelenlét 10 A. = B. Jelenlét >10 Nagy Péter 14 Nagy Péter 3 = Nagy Lajos 5 Nagy Péter 3 Jelenlét 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
Példa 1 S Jelenlét 3 8 Kiss István 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 A Nev Tantargy Matek 50 8 Rajz 60 14 Nagy Iván Statika 45 10 15 14 Nagy Péter Matek Pontszam Jelenlet B Nev Evfolyam 1 C Tantárgy MinPont Kiss István Matek 40 Nagy Iván Rajz 60 Statika 50 1 Nagy Péter 1
Példa 1) Adjuk meg, azon hallgatókat, akik Rajzra járnak! ) 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 1) π nev (σ Tantargy=' Rajz ' ( A)) ) π nev (σ Evfolyam=1 ( B)) 3) π tantargy (σ MinPont >45 (C )) 4) π nev, evfolyam (σ A. Tantargy=' Matek ' ( A) 5) π nev, tantárgy ( A 6) B) C ) A. PontSzam>C. MinPont A. Tantargy=C.Tantargy π nev, tantargy (σ Evfolyam=1 ( B) (A A. PontSzam>C. MinPont A.Tantargy=C.Tantargy Szintaktika!!! C ))
Szintaktika A szelekciónál, természetes összekapcsolásnál, amennyiben több attribútumra végzünk lekérdezést, azokat AND/OR jellel válasszuk el egymástól! A projekció által megjelenítendő oszlopneveket viszont elegendő vesszővel elválasztani! Amennyiben valamilyen szöveges értékre végzünk szűrést, vagy Théta összekapcsolást, a szöveges érték kerüljön idézőjelbe. Amennyiben a lekérdezésben több tábla is szerepel, a mezőnevek előtt jelenjen meg a tartalmazó tábla neve (tablanev.mezonev). Ha összekapcsolásnál különböző nevűek a kapcsolat alapjául szolgáló oszlopok nevei, akkor Théta összekapcsolást kell használni Théta összekapcsolás esetén a feltételek közt szerepelnie kell az összekapcsolás alapját jelentő két mező egyenlőségének.
Köszönöm a figyelmet!