Adatbzis rendszerek I A relcis adatmodell mveleti rsze
Adatbázis rendszerek I A relációs adatmodell műveleti része (relációs algebra és kalkulus) Általános Informatikai Tsz. Dr. Kovács László
Relá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 műveleti része definiálja a rendelkezésre álló operátorokat. Műveletek típusai: - adatdefiniáló (DDL) - adatkezelő (DML) - lekérdező (DQL) - vezérlő (DCL) Cél: legyen rugalmasabb, egyszerűbb, hatékonyabb mint a hálós modell műveleti része. Típusai: - 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ét operandusú operátorok léteznek, a lekérdezési műveletek láncolhatók. Descriptív, az eredmény relációhoz vezető műveletsor lépéseit kell megadni a lekérdezés megfogalmazásánál.
Relációs algebra A relációs algebra műveletei: szelekció projekció kiterjesztés aggregáció csoportképzés } egy operandusú join metszet különbség unió osztás } két operandusú
Relációs algebra Szelekció A szelekció eredmény halmazába csak azok a rekord előfordulások kerülnek bele, melyek kielégítik a megadott feltételt. AUTÓ rsz típus szín r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros kék szelekciós feltétel: szín = ‘kék’ VAGY típus = ‘Mazda’
Relációs algebra Projekció A projekció eredmény halmazába csak a megadott mezők értékei kerülnek át az alapreláció minden egyes rekord előfordulásából. AUTÓ rsz típus szín r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros projekciós mezőlista: típus, szín
Relá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 rsz r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros projekciós mezőlista: rsz
Relációs algebra Alap join (összekapcsolás, Descartes-szorzat) Rekord előfordulások összes lehetséges párosítása adja meg az eredményrelációt. AUTÓ rsz típus szín név kor r 1 Fiat zöld Pali 36 r 2 Opel kék Pali 36 r 5 Fiat kék Pali 36 r 1 Fiat zöld Anna 29 r 2 Opel zöld Anna 29 r 5 Fiat kék Anna 29 EMBER név kor Pali 36 Anna 29
Relációs algebra A szelekciós join és a projekció összekapcsolása: AUTÓ rsz típus tulaj r 1 Fiat 1 r 2 Opel 2 r 5 Fiat 1 EMBER név kód Pali 1 rsz típus tulaj név kód r 1 Fiat 1 Pali 1 r 2 Opel 2 Anna 2 r 5 Fiat 1 Pali 1 feltétel: tulaj = kód projekció: rsz, név Anna 2 rsz név Gabi 4 r 1 Pali Tomi 3 r 2 Anna r 5 Pali
Relációs algebra Natural join (természetes összekapcsolás) Az illeszkedési feltétel az azonos elnevezésű mezők értékegyezősége. AUTÓ rsz típus ekod r 1 Fiat 1 r 2 Opel 3 rsz típus ekód név r 5 Fiat 1 r 1 Fiat 1 Pali r 2 Opel 3 Gabi r 5 Fiat 1 Pali EMBER név ekod Pali 1 Anna 2 Gabi 3
Relációs algebra Unió Rekord előfordulás halmazok egyesítése. LÁNYOK Név kod Anna 1 Ilona 3 Mária 5 Pali 11 Zsolt 22 Gabi 31 FIÚK név kod Pali 11 Zsolt 22 Gabi 31
Relációs algebra Metszet Közös rekord előfordulások meghatározása. LÁNYOK Név kod Anna 1 Ilona 3 Mária 5 VERSENYZŐK név kod Pali 11 Anna 1 Mária 5 Név kod Anna 1 Mária 5
Relációs algebra Osztás A Descartes-szorzat inverz művelete. HOBBY név hobby Laci foci Tibor tenisz János foci Zoltán futás Laci futás Zoltán foci Gábor tenisz SPORTÁG hobby foci futás Név Laci Zoltán
Relációs algebra Kiterjesztés Új mező hozzáadása a relációs sémához. AUTÓ rsz típus ár Euro r 1 Fiat 250 1 r 2 Opel 500 2 r 5 Fiat 375 1. 5 új mező: Euro = ár / 250
Relációs algebra Aggregáció Összesítő értékek képzése a teljes relációhoz. AUTÓ rsz típus ár r 1 Fiat 1200 r 2 Opel 930 r 6 Mazda 870 r 4 Skoda r 9 Suzuki 1400 r 7 Opel 2570 r 5 Fiat 850 r 8 Opel 1000 1500 COUNT(*) 8 aggregáció: COUNT(*)
Relációs algebra Szelekció: a megadott feltételnek eleget tévő 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 r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros kék szín=‘kék’ OR típus=‘Mazda’ (AUTO)
Relációs algebra Projekció: csak a kijelölt mezők 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 r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros típus, szín (AUTO) KL
Relációs algebra Műveletek kombinálása: AUTÓ rsz típus szín rsz r 1 Fiat zöld r 2 Opel kék r 6 Mazda piros r 4 Skoda kék r 9 Lada piros rsz ( szín=‘kék’ OR típus=‘Mazda’ (AUTO) )
Relációs algebra Join: a két reláció rekordjainak párosait adja eredményként. jele: r 1 r 2 alap join (Descartes-szorzat): r 1 r 2 = {(t, s) | t r 1 , s r 2} AUTÓ rsz típus szín név kor r 1 Fiat zöld Pali 36 r 2 Opel kék Pali 36 r 5 Fiat kék Pali 36 r 1 Fiat zöld Anna 29 r 2 Opel zöld Anna 29 r 5 Fiat kék Anna 29 EMBER név kor Pali 36 Anna 29 AUTÓ EMBER
Relációs algebra Szelekciós join: a két reláció rekordpárosaiból a feltételnek eleget tévő párosokat adja eredményként. jele: r 1 felt r 2 = felt(r 1 r 2 ) Natural join: olyan szelekciós join, mely az azonos elnevezésű mezők értékegyezőségén alapszik. jele: r 1 = r 2 = (R 1 U R 2) X( r 1. X = r 2. X (r 1 r 2 )) ritkán implementált
Relációs algebra Outer join: olyan szelekciós join, melyben az illeszkedő pár nélküli rekordok is bekerülnek az eredmény halmazba (üres étékekkel kiegészítve). jele: r 1 +felt r 2 típusai: T 1 A 1 2 3 - left outer join - right outer join - full outer join B C G U A 3 1 5 T 1 T 2 C L T P A 1 2 3 + T 1. A = T 2. A T 2 B C G U A 1 C T 3 L
Relációs algebra Semi join: olyan szelekciós join, melyben az illeszkedő párokból csak a megadott oldal mezői szerepelnek. jele: r 1 felt r 2 = R 2(r 1 felt r 2) típusai: - left semi join - right semi join T 1 A 1 2 3 T 2 B C G U A 3 1 5 C L T P T 1 <T 1. A = T 2. A T 2 A 1 3 B C U
Relációs algebra Kiterjesztés: a reláció kibővítése származtatott mezőkkel. jele: mlista(r) Az új mező értékének a többi mező értékéből kell meghatározódnia. ar/100(AUTO)
Relációs algebra Unió: azonos sémájú relációk rekordhalmazának egyesítése. jele: r 1 r 2 Metszet: azonos sémájú relációk rekordhalmazának metszete. jele: r 1 r 2 Különbség: azonos sémájú relációk rekordhalmazának különbsége. jele: r 1 r 2
Relációs algebra Osztás: a Descartes szorzat inverze, azon legnagyobb reláció, melynek Descartes szorzata r 2 -vel benne van r 1 -ben. jele: r 1 r 2 HOBBY SPORTAG
Relációs algebra Osztás levezetése az alapműveletekből: r 1 / r 2 = {t | t R 1R 2(r 1) , t r 2 r 1} r 1 / r 2 = R 1R 2 (r 1) R 1R 2(( R 1R 2(r 1) r 2) r 1) Megjegyzés: - jelentése a ‘minden’ kvantorhoz kapcsolódik; - ritkán implementált.
Relációs algebra 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. kif) COUNT(mez. kif) MIN(mez. kif) AVG(mez. kif) MAX(mez. kif) count(*) (AUTO)
Relációs algebra Csoportképzés és aggregáció: a reláció rekordjait csoportokba rendezi, s minden csoportra egy összesítő rekordot állít elő. 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ékű. típus, avg(*) (AUTO)
Relációs algebra Mintapélda: BOROK(kod, nev, gyarto, fajta, ar) VEVO(vkod, nev, cim) RENDELES(vevo, bor, mennyiseg, datum) 1. Azon vevők, 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(*)>5 ( gyarto, count(*)( fajta=3 (BOROK))))
Relá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(*)( ar> ( avg(ar)(BOROK))
- Slides: 30