Title: Adatb
1Adatbázis rendszerek I
- A relációs adatmodell muveleti része
- (relációs algebra és kalkulus)
Általános Informatikai Tsz.
Dr. Kovács László
2Relációs algebra
A struktúra felépítése után következhet az adatok
felvitele, módosítása, lekérdezése. Az
adatmodell muveleti része definiálja a
rendelkezésre álló operátorokat. Muveletek
típusai - adatdefiniáló (DDL) - adatkezelo
(DML) - lekérdezo (DQL) - vezérlo (DCL) Cél
legyen rugalmasabb, egyszerubb, hatékonyabb mint
a hálós modell muveleti része. Típusai -
relációs algebra - relációs kalkulus
3Relációs algebra
Relációs algebra
operandusai a relációk
operátorai zártak a reláció halmazra
A muveletek operandusai és eredményük is
relációk, azaz azonos típusú rekordok halmaza. Fo
erossé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 muveletek láncolhatók. Descriptív,
az eredmény relációhoz vezeto muveletsor
lépéseit kell megadni a lekérdezés
megfogalmazásánál.
4Relációs algebra
A relációs algebra muveletei szelekció projek
ció kiterjesztés aggregáció csoportképzés joi
n metszet különbség unió osztás
egy operandusú
két operandusú
5Relációs algebra
Szelekció A szelekció eredmény halmazába csak
azok a rekord elofordulások kerülnek bele, melyek
kielégítik a megadott feltételt.
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
rsz típus szín
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
szelekciós feltétel szín kék VAGY típus
Mazda
6Relációs algebra
Projekció A projekció eredmény halmazába csak a
megadott mezok értékei kerülnek át az alapreláció
minden egyes rekord elofordulásából.
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
típus szín
Fiat zöld
Opel kék
Mazda piros
Skoda kék
Lada piros
projekciós mezolista típus, szín
7Relációs algebra
A szelekció és a projekció együttes alkalmazása
szelekciós feltétel szín kék VAGY szín
piros
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
rsz
r2
r6
r4
r9
projekciós mezolista rsz
8Relációs algebra
Alap join (összekapcsolás, Descartes-szorzat) Rek
ord elofordulások összes lehetséges párosítása
adja meg az eredményrelációt.
AUTÓ
rsz típus szín név kor
r1 Fiat zöld Pali 36
r2 Opel kék Pali 36
r5 Fiat kék Pali 36
r1 Fiat zöld Anna 29
r2 Opel zöld Anna 29
r5 Fiat kék Anna 29
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r5 Fiat kék
EMBER
név kor
Pali 36
Anna 29
9Relációs algebra
A szelekciós join és a projekció összekapcsolása
AUTÓ
rsz típus tulaj
r1 Fiat 1
r2 Opel 2
r5 Fiat 1
rsz típus tulaj név kód
r1 Fiat 1 Pali 1
r2 Opel 2 Anna 2
r5 Fiat 1 Pali 1
EMBER
feltétel tulaj kód
projekció rsz, név
név kód
Pali 1
Anna 2
Gabi 4
Tomi 3
rsz név
r1 Pali
r2 Anna
r5 Pali
10Relációs algebra
Natural join (természetes összekapcsolás) Az
illeszkedési feltétel az azonos elnevezésu mezok
értékegyezosége.
AUTÓ
rsz típus ekod
r1 Fiat 1
r2 Opel 3
r5 Fiat 1
rsz típus ekód név
r1 Fiat 1 Pali
r2 Opel 3 Gabi
r5 Fiat 1 Pali
EMBER
név ekod
Pali 1
Anna 2
Gabi 3
11Relációs algebra
Unió Rekord elofordulás halmazok egyesítése.
LÁNYOK
Név kod
Anna 1
Ilona 3
Mária 5
Pali 11
Zsolt 22
Gabi 31
Név kod
Anna 1
Ilona 3
Mária 5
FIÚK
név kod
Pali 11
Zsolt 22
Gabi 31
12Relációs algebra
Metszet Közös rekord elofordulások meghatározása.
LÁNYOK
Név kod
Anna 1
Ilona 3
Mária 5
Név kod
Anna 1
Mária 5
VERSENYZOK
név kod
Pali 11
Anna 1
Mária 5
13Relációs algebra
Osztás A Descartes-szorzat inverz muvelete.
HOBBY
név hobby
Laci foci
Tibor tenisz
János foci
Zoltán futás
Laci futás
Zoltán foci
Gábor tenisz
Név
Laci
Zoltán
SPORTÁG
hobby
foci
futás
14Relációs algebra
Kiterjesztés Új mezo hozzáadása a relációs
sémához.
AUTÓ
rsz típus ár Euro
r1 Fiat 250 1
r2 Opel 500 2
r5 Fiat 375 1.5
rsz típus ár
r1 Fiat 250
r2 Opel 500
r5 Fiat 375
új mezo Euro ár / 250
15Relációs algebra
Aggregáció Összesíto értékek képzése a teljes
relációhoz.
AUTÓ
rsz típus ár
r1 Fiat 1200
r2 Opel 930
r6 Mazda 870
r4 Skoda 1500
r9 Suzuki 1400
r7 Opel 2570
r5 Fiat 850
r8 Opel 1000
COUNT()
8
aggregáció COUNT()
16Relációs algebra
Szelekció a megadott feltételnek eleget tévo
rekordok kerülnek át az eredmény relációba.
jele ?felt(r)
?X ?Y(r) t ? r t(X) ? t(Y)
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
rsz típus szín
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
?színkék OR típusMazda (AUTO)
17Relációs algebra
Projekció csak a kijelölt mezok kerülnek át az
eredmény relációba.
jele ?mlista(r)
? X (r) t(X) ? r t ? r
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
típus szín
Fiat zöld
Opel kék
Mazda piros
Skoda kék
Lada piros
? típus, szín (AUTO)
KL
18Relációs algebra
Muveletek kombinálása
AUTÓ
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r6 Mazda piros
r4 Skoda kék
r9 Lada piros
rsz
r2
r6
r4
r9
? rsz (?színkék OR típusMazda (AUTO) )
19Relációs algebra
Join a két reláció rekordjainak párosait adja
eredményként.
jele r1 ?? r2
alap join (Descartes-szorzat) r1 ?? r2
(t,s) t ? r1 , s ? r2
AUTÓ
rsz típus szín név kor
r1 Fiat zöld Pali 36
r2 Opel kék Pali 36
r5 Fiat kék Pali 36
r1 Fiat zöld Anna 29
r2 Opel zöld Anna 29
r5 Fiat kék Anna 29
rsz típus szín
r1 Fiat zöld
r2 Opel kék
r5 Fiat kék
EMBER
név kor
Pali 36
Anna 29
AUTÓ ?? EMBER
20Relációs algebra
Szelekciós join a két reláció rekordpárosaiból a
feltételnek eleget tévo párosokat adja
eredményként.
jele r1 ??felt r2
r1 ?? felt r2 ?felt(r1 ?? r2 )
Natural join olyan szelekciós join, mely az
azonos elnevezésu mezok értékegyezoségén
alapszik.
jele r1 ?? r2
r1 ?? r2 ? (R1 U R2) \ X(?r1.X r2.X (r1
?? r2 ))
ritkán implementált
21Relációs algebra
Outer join olyan szelekciós join, melyben az
illeszkedo pár nélküli rekordok is bekerülnek az
eredmény halmazba (üres étékekkel kiegészítve).
jele r1 ??felt r2
típusai - left outer join - right outer
join - full outer join
T1 ??T1.A T2.A T2
T1
T2
A
B
A
C
A
C
A
B
1
C
3
L
1
T
1
C
2
G
1
T
2
G
3
U
5
P
3
L
3
U
22Relációs algebra
Semi join olyan szelekciós join, melyben az
illeszkedo párokból csak a megadott oldal mezoi
szerepelnek.
jele r1 ??felt r2
r1 ??felt r2 ? R2(r1 ??felt r2)
típusai - left semi join - right semi join
T1 ?ltT1.A T2.A T2
T1
T2
A
B
A
C
A
B
1
C
3
L
1
C
2
G
1
T
3
U
3
U
5
P
23Relációs algebra
Kiterjesztés a reláció kibovítése származtatott
mezokkel.
jele ?mlista(r)
Az új mezo értékének a többi mezo értékébol kell
meghatározódnia.
?ar/100(AUTO)
24Relációs algebra
Unió azonos sémájú relációk rekordhalmazának
egyesítése.
jele r1 ? r2
Metszet azonos sémájú relációk rekordhalmazának
metszete.
jele r1 ? r2
Különbség azonos sémájú relációk
rekordhalmazának különbsége.
jele r1 \ r2
25Relációs algebra
Osztás a Descartes szorzat inverze, azon
legnagyobb reláció, melynek Descartes szorzata
r2-vel benne van r1-ben.
jele r1 ? r2
HOBBY ? SPORTAG
26Relációs algebra
Osztás levezetése az alapmuveletekbol r1 / r2
t t ? ?R1\R2(r1) , t ?? r2 ? r1 r1 /
r2 ?R1\R2 (r1) \ ?R1\R2((?R1\R2(r1) ?? r2) \r1)
Megjegyzés - jelentése a minden kvantorhoz
kapcsolódik - ritkán implementált.
27Relációs algebra
Aggregáció a relációból összesíto rekordot állít
elo.
jele ?aggregációs-lista (r)
aggregációs függvények SUM(mez.kif)
AVG(mez.kif) COUNT(mez.kif) MAX(mez.kif)
MIN(mez.kif)
?count() (AUTO)
28Relációs algebra
Csoportképzés és aggregáció a reláció rekordjait
csoportokba rendezi, s minden csoportra egy
összesíto rekordot állít elo.
jele ?csoportképzési kifejezésaggregációs-lista
(r)
Azon rekordok kerülnek egy csoportba, melyekre a
csoport képzési kifejezése azonos értéku.
?típustípus, avg() (AUTO)
29Relációs algebra
Mintapélda BOROK(kod, nev, gyarto, fajta,
ar) VEVO(vkod, nev, cim) RENDELES(vevo, bor,
mennyiseg,datum)
1. Azon vevok, akik rendeltek Bikavért
?nev(?borok.kod rendeles.bor AND rendeles.vevo
vevo.vkod AND borok.nev Bikaver
(BOROK ?? RENDELES ?? VEVO))
2. Melyik gyártó termel 5-nél több 3-as típusú
bort
?gyarto(?count()gt5 (?gyartogyarto,count()(?
fajta3 (BOROK))))
30Relációs algebra
Speciális szelekciós operátorok ?
tartalmaz ? nem tartalmaz ? minden
kvantor ? létezik kvantor A szelekciós
feltételben is szerepelhet relációs algebrai
kifejezés. 3. Az átlagnál drágább borok
darabszáma ?count()(? argt (BOROK))
(?avg(ar)(BOROK))