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
Építőmérnök
Út kivitelező Nyrt.
Nagy Ferenc Budapest 999-9954
Közgazdász
Elszámolok Kft.
Kiss Pista
Érettségi
Út kivitelező Nyrt.
Cegléd
999-9928
Budapest 999-5864
Sor=Rekord
Cella=Mező vagy Komponens
Relációs séma
Relációs séma Adott a következő táblázat: 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
Reláció sémája: 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! Jegyek reláció Azonosító Név 1 Kiss Pista 2 Nagy Péter 3 Varga Ferenc 4 Kiss Pista
Reláció sémája: Jegyek(Azonosító, Név, Jegy) Reláció neve
Attribútumok, együtt attribútumok halmaza
Jegy 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
—
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ó, — 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 leírásába: —
a
relációs
Jegyek(Azonosító : Felsoroló, Név : Szöveg, Jegy: Egész szám)
séma
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
Név Szemig Kiss Pista 123 Kiss Pista 124
Kor 18 18
SzK2=SzK1 U {{kor}, {kor, név}}
SzK1={{szemig}, {szemig, név}, {szemig, kor}, {szemig, név, kor}} Név Szemig Kiss Pista 123 Kiss Pista 124
Kor 18 19
Kulcs — Kulcs:
a szuperkulcsok közül a minimális
Név
Szemig
Életkor
Kiss Pista
123
18
Kiss Pista
124
18
K2={{szemig}, {életkor}}
K1={{szemig}}
Név
Szemig
Életkor
Kiss Pista Kiss Pista
123 124
18 19
Kulcs – még egy példa Név
Szemig Tantárgy
Jegy
Kiss Pista Kiss Pista Kiss Pista
123 123 124
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
Jegyek(Azonosító, Név, Jegy)
jelölhetjük
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 attribútumhalmazt kell tárolnia
ugyanazt
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
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
Jegy
Kiss Pista
2
Nagy Péter 3 Vál Péter
5
Nagy Ákos
3
Kiss Lajos
2
Nagy Lajos 3
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
Név
S ∩R
Kiss Pista
\
Jegy
=
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
Jegy
Nagy Péter 3 Vál Péter
5
Nagy Ákos
3
Vetítés (Projekció) — Jele:
π név (
π attr1 , attr2 , ... (S ) Név
Jegy
Név
Kiss Pista
2
Kiss Pista
)=
Nagy Péter 3
Nagy Péter
Vál Péter
5
Vál Péter
Nagy Ákos
3
Nagy Ákos
Név
Jegy Jelenlét
Név
Jegy
Kiss Pista
2
14
Kiss Pista
2
3
14
Nagy Péter
3
Vál Péter
5
13
Vál Péter
5
Nagy Ákos
3
10
Nagy Ákos
3
π név , jegy( Nagy Péter
)=
Kiválasztás (Szelekció) — Jele:
σ attr1 R value R attr2 R value R ... (S )
R∈('=' ,' <' ,' >' ,'≠' ,'≤' ,'≥' ,'∧' ,'∨')
σ jegy=3
Név
Jegy
Kiss Pista
2
( Nagy Péter
) = Nagy Péter
3
Vál Péter
5
Kiss Pista
3
σ jegy>1∧ jelenlét >10 (
Név
Kiss Pista
Név
Jegy Jelenlét
Kiss Pista
1
14
Nagy Péter 3
14
Vál Péter
5
13
Nagy Ákos
3
10
Jegy 3 3
) = Táblán
Descartes-szorzat — Jele:
A×B
Név
Jegy
Kiss Pista
2
Nagy Péter 3
Név
Jelenlét
Kiss Pista
10
A×B
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
Nagy Péter 3
Nagy Péter 14
10
Természetes összekapcsolás — Jele:
A
B
Név
Jegy
Név
Jelenlét
Kiss Pista
2
Kiss Pista
10
Nagy Péter 3
Nagy Péter 14
=
Nagy Lajos 5
Név
Jegy
Jelenlét
Kiss Pista
2
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 attr2 R ...
R∈('=' ,'<' ,' >' ,'≠' ,'≤' ,'≥' ,'∧' ,'∨') Név
Jegy
Kiss Pista
2
Név
Jelenlét
Kiss Pista
10
Jelenlét> 10 Nagy Péter 14
Nagy Péter 3
=
Nagy Lajos 5 Név
Jegy
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 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
Kiss Pista
Matek
50
8
Kiss Pista
Rajz
60
14
Nagy Iván
Statika
45
10
15
14
Nagy Péter Matek
Pontszám
Jelenlét
B Név
Évfolyam
Kiss Pista
1
C Tantárgy
MinPont
Kiss István 2
Matek
40
Nagy Iván
Rajz
60
Statika
50
1
Nagy Péter 1
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) π név (σ Tantárgy=' Rajz ' ( A)) 2) π név (σ Évfolyam=1 ( B)) 3) πtantárgy (σ MinPont >45 (C )) 4) π név , évfolyam (σ A.Tantárgy=' Matek ' ( B) 5) π név , tantárgy ( A
A)
C ) A.PontSzám>C.MinPont ∧ A.Tantárgy=C.Tantárgy
6)
π 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!