Adatbázisok I A relációs algebra
Relációs algebra Az adatmodell műveleti része definiálja a rendelkezésre álló operátorokat. Műveletek típusai: -adat definiáló(DDL) Data DefinitionLanguage -adatkezelő(DML) Data ManipulationLanguage -lekérdező(DQL) Data QueryLanguage -vezérlő(DCL) Data ControlLanguage 2
Mit nevezünk algebrának? • Egy algebra általában műveleteket és atomi operandusokat tartalmaz. • Az algebra lehetővé teszi kifejezések megfogalmazását az atomi operandusokon és az algebrai kifejezéseken végzett műveletek alkalmazásával kapott relációkon. • Fontos tehát, hogy minden művelet végeredménye reláció, amelyen további műveletek adhatók meg. • A relációs algebra atomi operandusai a következők: – A relációkhoz tartozó változók, – Konstansok, amelyek véges relációt fejeznek ki.
3
Relációs algebra jellemzői • A műveletek operandusai és eredményeik is relációk, azaz azonos típusú rekordok halmaza. • Az elsőből következik, hogy operátorai zártak a relációk halmazára. • Fő erőssége és különlegessége a lekérdezési rész. • Egy és két operandusú operátorok léteznek, a lekérdezési műveletek láncolhatók. • Deszkriptív(leíró), az eredmény relációhoz vezető műveletsor lépéseit kell megadni a lekérdezés megfogalmazásánál. 4
A relációs algebra A hagyományos relációs algebrai műveletek négy osztályba sorolhatók: – Halmazműveletek • Egyesítés (Unio) • Metszet • Különbség
– A reláció egyes részeit eltávolító műveletek • Kiválasztás (szelekció) • Vetítés
5
A relációs algebra A hagyományos relációs algebrai műveletek négy osztályba sorolhatók (folytatás): – Két reláció sorait kombináló műveletek • Descartes szorzat • Összekapcsolás
– Átnevezés : nem befolyásolja a reláció sorait, de megváltoztatja a reláció sémáját, azaz az attribútumok neveit és/vagy a reláció nevét
6
Relációkon értelmezett halmazműveletek • Egyesítés (Unió): R∪S R és S egyesítése azon elemek halmaza, amelyek vagy az R-ben vagy az S-ben vannak. Egy elem csak egyszer szerepel az egyesítésben, még akkor is, ha jelen van R-ben és S-ben is.
• Metszet: R∩S R és S metszete azon elemek halmaza, amelyek az R-ben és az S-ben is benne vannak.
• R-S különbség: R és S különbsége azon elemek halmaza, amelyek benne vannak R-ben, de nincsenek S-ben.
7
Relációkon értelmezett halmazműveletek • Feltételek: Az R és S relációk sémájának ugyanazt az attribútumhalmazt kell tartalmazniuk, illetve a típusoknak (értéktartományoknak) az összes megfelelő attribútumpárra meg kell egyezniük Rben és S-ben. A műveletek végrehajtása előtt az R és S oszlopait rendezni kell úgy, hogy az attribútumok sorrendje egyforma legyen mindkét reláció esetében.
8
UNIÓ: R∪S R : Lányok
Név Anna Judit Mária
R∪ S
Kód 1 3 5
S : Fiúk
Név Zsolt Gábor Józsi
Kód 11 21 17
Név
Kód
Anna
1
Judit
3
Mária
5
Zsolt
11
Gábor 21 Józsi
17 9
R∩ S R
S R
S
Származtatott művelet: r∩ s=r-(r-s) 10
R
S
vagy R - S
11
(Kiválasztás)
12
(Vetítés)
13
14
Descartes- szorzat • A Descartes-szorzat is értelmezhető (ezt nem tekintjük alapműveletnek, csak a természetes összekapcsolást). Itt természetesen nem fontos az attribútumok egyenlősége. A két vagy több reláció azonos nevű attribútumait azonban meg kell különböztetni egymástól. • r × s := { t | t[R] ∈ r es t[S] ∈ s } • Példa: r × s.
15
Természetes összekapcsolás • Természetes összekapcsolás: R(A1,…,An), S(B1,…,Bm) sémájú r és s táblák esetén r |X| s azon sorpárokat tartalmazza r-ből illetve s-ből, amelyek R és S azonos attribútumain megegyeznek. • r, s sémái R(A1,…,An,B1,…,Bk), illetve S(B1,…,Bk,C1,…,Cm) • R |X| s = ρP(A1,…,An,B1,…,Bk,C1,…,Cm)ΠA1,…,An,R.B1,…,R.Bk,C1,…,CmσR.B1=S.B1∧…∧R.Bk=S.Bk (r×s) B
C
A
B
0
0
0
0
0
2
2
1
1
3
1
2
4
3
=
A
B
C
0
0
0
0
0
2
2
1
3 16
Példa Felszolgál
Látogat
Kocsma
Sör
Szomjas tüzér
Dreher
Kispipa
Szalonbarna
Kispipa
Gössel
Név
kocsma
Jancsi
Szomjas tüzér
Józsi
Kispipa
A természetes összekapcsolás kifejezhető a többi alapművelettel:
R S ≡ ΠL (σC (R × S)) Kocsma
Sör
név
Szomjas tüzér
Dreher
Jancsi
Kispipa
Szalonbarna
Józsi
Kispipa
Gössel
Józsi
Ahol C: F.kocsma=L.kocsma, azaz a közös attribútumok egyenlőségét írja elő. L: mely attribútumokra vetítünk (kocsma, sör, név), csak egyszer veszi fel a közös attribútumokat. 17
Átnevezés
18
Théta összekapcsolás
Szelekciós join-nak is nevezik
19
Théta összekapcsolás
Egyen-összekapcsolás (equi join): ha a théta-összekapcsolásban a Θ helyen = szerepel.
20
(Félig-összekapcsolás)
21
Outer JOIN
Kivezet a modellből, nem relációs algebrai művelet
NULL
22
23
24
A relációs algebra kiterjesztése multihalmazokra
25
26
27
28
Feladatok
tkód
Tantárgy cím kredit
oktkód
oktató
Oktató név tanszék fizetés
29
Feladatok 1. 5 kreditnél többet érő tantárgyak kódja és címe: Πtkód,cím (σkredit > 5 (Tantárgy)) 2. Oktatók neve és tantárgyaik címe: Πnév, cím (Oktató>
4. A Matematika tanszéken oktatott, 5 kreditnél többet érő tantárgyak kódja: Πtkód(σtanszék=‘Matematika’AND kredit > 5 (Oktató >
Feladatok 5. Minden oktató neve és tantárgyaik címe: Πnév, cím (Oktató+>
6. Azoknak az oktatóknak a neve, akiknek nincs tantárgya: Πnév (Oktató) \Πnév (Oktató>
7. Azoknak az oktatóknak a neve, akiknek nincs 5 kreditnél többet érő tantárgya: Πnév (Oktató) \Πnév (Oktató> 5 (Tantárgy))) 31
Feladatok 8. Az átlagos kreditpontszám: Γavg(kredit)(Tantárgy)
9. A Matematika tanszéken oktatók létszáma: Γcount(*)(σtanszék=‘Matematika’ (Oktató))
10.A legnagyobb kreditpontszámú tantárgyak címe: Πcím (σkredit=Γmax(kredit) (Tantárgy) (Tantárgy)) 32
Feladatok 11. Az átlagnál alacsonyabb kreditpontú tantárgyak címe és oktatóik neve: Πcím, név (σkredit<Γavg(kredit) (Tantárgy) (Tantárgy) >
12.Tanszékenként az oktatók létszáma: Γtanszék tanszék, count(*) (Oktató)
13. Azon oktatók, akiknek 2-nél több tantárgyuk van: Πnév (σdb>2 (Γnév név, count(*) db (Oktató>
Feladatok 14. Az az oktató, akinek a legtöbb tantárgya van: X = Γnév név, count(*) db (Oktató>
15. Azon oktatók minden adata, akiknek van tantárgya: Oktató >
(semijoin)
16. Saját tanszékükre jellemző átlagnál kevesebbet kereső oktatók neve: Πo1.név (σo1.fizetés < Γavg(o2.fizetés) ( σo1.tanszék = o2.tanszék(Oktató2) ) (Oktató1))
34