A RELÁCIÓS ADATMODELL MŰVELETI RÉSZE (RELÁCIÓS ALGEBRA ÉS KALKULUS) Relációs algebra: A reláció struktúrájának felépítése után következhet az adatok felvitele, módosítása és lekérdezése. Az adatmodell műveleti része definiálja a rendelkezésre álló operátorokat (műveleteket). Műveletek típusai: • adatdefiniáló (DDL) • adatkezelő (DML) • lekérdező (DQL) • vezérlő (DCL) Célja: legyen rugalmasabb, egyszerűbb, hatékonyabb, mint a hálós modell műveleti része. Típusa: • •
- relációs algebra - relációs kalkulus
Relációs algebra operandusai a relációk
operátorai zártak a reláció halmazra
A műveletek operandusai és eredményük is relációk, azaz azonos típusú rekordok halmaza. Fő erőssége és különlegessége a lekérdezési rész. Egy és kétoperandusú operátorok léteznek, a lekérdezési műveletek láncolhatók. Descriptív, azaz az eredmény relációhoz vezető műveletsor lépéseit kell megadni a lekérdezés megfogalmazásánál. A relációs algebra műveletei:
•
• • • • •
szelekció projekció kiterjesztés aggregáció csoportképzés
• • • • •
join metszet különbség unió osztás
egy operandusú
kétoperandusú
Szelekció: a megadott feltételnek eleget tévő rekordok kerülnek át az eredmény relációba. jele: σfelt(r)
AUTÓ rsz tipus r1 Fiat r2 Opel r6 Mazda r4 Skoda r9 Suzuki
szín zöld kék piros kék piros
rsz r2 r4 r6
tipus Opel Skoda Mazda
szín kék kék piros
szelekció feltétel: szín = 'piros' VAGY tipus = 'Mazda'
σszin='piros' OR tipus=‘Mazda’ (AUTO)
•
Projekció: a kijelölt mezők kerülnek csak át az eredmény relációba jele: Πmlista(r) AUTÓ rsz tipus r1 Fiat r2 Opel r6 Mazda r4 Skoda r9 Suzuki
szín zöld kék piros kék piros
tipus Fiat Opel Mazda Skoda Suzuki
projekció kijelölt mezõk = tipus, rsz
szín zöld kék piros kék piros
Π tipus, rsz (AUTO)
Műveletek kombinálása: Példa szelekció és projekció kombinálására: AUTÓ szelekció rsz tipus szín feltétel: szín='piros' VAGY r1 Fiat zöld szín='kék' r2 Opel kék r6 Mazda piros r4 Skoda kék projekció r9 Suzuki piros kijelölt mezõk = rsz
rsz r2 r6 r4 r9
Π rsz (σszin='piros' OR tipus='Mazda' (AUTO) ) •
Join: a két reláció rekordjainak párosait adja eredményként jele: r1 >< r2 A join alapja a matematikában halmazműveletként használt Descartes-szorzat. (Két halmaz elemeinek összepárosítása, az összes lehetséges módon.) AUTÓ rsz tulaj r1 3 r4 1 r6
4
EMBER id név 1 2 3
Laci Ágota János
4
Zoltán
rsz r1 r4 r6 összekapcsolás
tulaj id 3 1 1 1 4 1
név Laci Laci Laci
r1 r4 r6
3 1 4
2 2 2
Ágota Ágota Ágota
r1
3
3
János
r4 r6
1 4
3 3
János János
r1 r4
3 1
4 4
Zoltán Zoltán
r6
4
4
Zoltán
Típusai: o Szelekciós Join: a két reláció rekordpárosaiból a feltételnek eleget tévő párosokat adja eredményként. jele: r1 >
< felt r2 = σfelt(r1 >< r2 )
o Natural Join: olyan szelekciós join, mely az azonos elnevezésű mezők értékegyezőségén alapszik. Ritkán használják. jele: r1 ><= r2 o Outer Join: olyan szelekciós join, melyben az illeszkedő pár nélküli rekordok is bekerülnek az eredményhalmazba (üres étékekkel kiegészítve). jele: r1 ><+felt r2 Típusai: - left outer join - right outer join - full outer join
T1
A 1
B C
A 3
C L
2 3
G U
1 5
T P
T2
A 1 2 3
T1 +T1.A = T2.A T2
B C
A 1
C T
G U
3
L
o Semi Join: olyan szelekciós join, melyben az illeszkedő párokból csak a megadott oldal mezői szerepelnek. jele: r1 >
T1
T2
A
B
A
C
1 2 3
C G U
3 1 5
L T P
T1
A
B
1 3
C U
o Kiterjesztés: a reláció kibővítése származtatott mezőkkel (más mezőkből számított). jele: εmlista(r) Az új mező értékének a többi mező értékéből kell meghatározódnia. AUTÓ rsz tipus r1 Fiat r2 Opel r6 Mazda r4 Skoda r9 Suzuki
ár 1200 930 870 1500 1400
kiterjesztés új mezõ: ár/100
εar/100(AUTO)
rsz r1 r2 r6 r4 r9
tipus Fiat Opel Mazda Skoda Suzuki
ár 1200 930 870 1500 1400
ár/100 12 9.3 8.7 15 14
o Unió: azonos sémájú relációk rekordhalmazának egyesítése. jele: r1 ∪ r2 o Metszet: azonos sémájú relációk rekordhalmazának metszete. jele: r1 ∩ r2 o Különbség: azonos sémájú relációk rekordhalmazának különbsége. jele: r1 \ r2 FIÚK id
név
1 2 3
Laci Tibor János
4
Zoltán
különbség id 1 3
VERSENYZÕK id név 21 2 4 3
név Laci János
Erika Tibor Zoltán Éva
o Osztás: a Descartes szorzat inverze: azon legnagyobb reláció, melynek Descartes szorzata r2-vel benne van r1-ben. jele: r1 ÷ r2 HOBBY hobby név foci Laci tenisz Tibor foci János futás Zoltán futás Laci foci Zoltán tenisz Gábor
SPORTÁG
osztás
HOBBY ÷ SPORTAG név Laci Zoltán
hobby foci futás
o Aggregáció: a relációból összesítő rekordot állít elő. jele: Γaggregációs-lista (r) aggregációs függvények: SUM(mező) – mező értékeinek összege AVG(mező) – mező elemeinek átlaga COUNT(mező) – mező elemeinek darabszáma MIN(mező) – mező elemei közül a legkisebb MAX(mező) – mező elemei közül a legnagyobb
AUTÓ rsz
tipus
ár
r1 r2 r6
Fiat Opel Mazda
1200 930 870
r4
Skoda
1500
r9 r7
Suzuki Opel
1400 2570
r11 r8
Fiat Opel
850 1000
csoportképzés kifejezés: Count() 8 kiírandó: COUNT()
Γcount(*) (AUTO)
o Csoportképzés és aggregáció: a reláció rekordjait csoportokba rendezi, és minden csoportra egy összesítő rekordot állít elő. jele: Γcsoport képzési kifejezésaggregációs-lista (r) Azon rekordok kerülnek egy csoportba, melyekre a csoportképzési kifejezés azonos értékű. AUTÓ rsz
tipus
ár
r1
Fiat
1200
r2
Opel
r6
csoportképzés kifejezés: tipus
tipus
AVG(ár)
930
Fiat
1025
Mazda
870
Opel
1500
r4
Skoda
1500
Mazda
870
r9
Suzuki
1400
Skoda
1500
r7
Opel
2570
Suzuki
1400
r11
Fiat
850
r8
Opel
1000
kiírandó: tipus, AVG(ár)
Γtipustipus, count(*) (AUTO)
Speciális szelekciós operátorok: ∈ – jelentése: tartalmaz ∉ – jelentése: nem tartalmaz ∀ – jelentése: minden (minden kvantornak is hívják) ∃ – jelentése: létezik (létezik kvantornak is hívják) A szelekciós feltételben is szerepelhet relációs algebrai kifejezés.