Relációs algebra 1.rész alapok

Hasonló dokumentumok
Relációs algebra 1.rész

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

4.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

2.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Relációs algebra 2.rész példák

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Adatbázisok-I. előadás dr. Hajas Csilla (ELTE IK)

Relációs adatmodell. Adatbázisok használata

Tankönyv példák kidolgozása

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

Lekérdezések az SQL-ben 2.rész

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Lekérdezések az SQL-ben 1.rész

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

Relációs algebra lekérdezések optimalizációja. Adatbázisok használata

Databases 1. Relációs algebra és nemrekurzív Datalog

Adatbázisok elmélete

Lekérdezések az SQL-ben 1.rész

Bevezetés: az SQL-be

Csima Judit szeptember 6.

Adatbázis rendszerek 7. Matematikai rendszer amely foglal magában:

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

5.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

Relációs algebra 2.rész

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)

Adatbázis Rendszerek

Bevezetés: Relációs adatmodell

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

Relációs adatbázisok tervezése ---2

2.4. Egy algebrai lekérdező nyelv

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Adatbázis rendszerek 2. előadás. Relációs algebra

Lekérdezések optimalizálása

Adatbázisok 1. Kósa Balázs gyakorlata alapján Készítette: Nagy Krisztián. 1. gyakorlat

Bevezetés: Relációs adatmodell

Marton József BME-TMIT. Adatbázisok VITMAB november 11.

Mveletek a relációs modellben. A felhasználónak szinte állandó jelleggel szüksége van az adatbázisban eltárolt adatok egy részére.

Adatbázis rendszerek 2. előadás. Relációs algebra

Adatbázisok I A relációs algebra

SQL DDL-1: táblák és megszorítások

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

3.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Marton József november BME TMIT

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

Sor és oszlopkalkulus

Az adatbázisrendszerek világa

SQL DDL-2 (aktív elemek) triggerek

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

RELÁCIÓS LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT

Adatbázisok elmélete 6. előadás

Adatbázis-kezelés. alapfogalmak

Adatbázisok elmélete 6. előadás

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Adatbázisok elmélete 6. előadás

Adatbázisok-1 előadás

Relációs adatbázisok tervezése ---1

Bevezetés: Relációs adatmodell

5.3. Logika a relációkhoz

Adatbázis tartalmának módosítása

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Adatbázisok tavaszi félév Vizsgatételsor

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Adatbázis rendszerek Ea: Viszonyított betűszámtan. Relációs algebra alapok

Adatbázisok elmélete 4. előadás

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Datalog: logikai alapú lekérdezı nyelv

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

7. Gyakorlat A relációs adatmodell műveleti része

AZ ADATBÁZISOK HATÁSA A RELÁCIÓS ALGEBRÁRA

Adatbázis-kezelés. 3. Ea: Viszonyított betűszámtan (2013) Relációs algebra alapok (átgondolt verzió) v: Szűcs Miklós - ME, ÁIT. 1.

Adatbázisok elmélete 9. előadás

2.4. Egy algebrai lekérdezo nyelv

Információs rendszerek Adatbázis-kezelés

Az SQL adatbázisnyelv: DML

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

Adatbázisok elmélete 6. előadás

Adatbázisok gyakorlat

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé. (Albert Einstein) Halmazok 1

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

ADATBÁZISOK I. ELŐADÁS ÉS GYAKORLAT JEGYZET

ADATBÁZIS-KEZELÉS. Relációs modell

Nézetek és indexek. AB1_06C_Nézetek_Indexek - Adatbázisok-1 EA (Hajas Csilla, ELTE IK) - J.D. Ullman elıadásai alapján

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Adatbázisok elmélete

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

SQL DDL: Táblák, megszorítások (constraints), triggerek, nézettáblák

~i 6.2. Több relációra vonatkozó lekérdezések

5. A kiterjesztési elv, nyelvi változók

ADATBÁZIS RENDSZEREK. Attributum típusok, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 4. előadás

Hatványozás. A hatványozás azonosságai

Tervezés: Funkcionális függıségek

Átírás:

Relációs algebra 1.rész alapok Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Lekérdezések a relációs modellben 2.4. Egy algebrai lekérdező nyelv, relációs algebrai műveletek Jön: Relációs algebra 2.részben: a kezdetekhez való példák: Tk.2.4.1.Termék lekérdezések, 4.részben haladó példák: pl.tk.2.4.8. és Tk.2.4.10.feladatai 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Milyen típusú feladatokat fogalmazhatunk meg? Legyen adott az alábbi relációs sémák feletti relációk: Termék (gyártó, modell, típus) PC (modell, sebesség, memória, merevlemez, ár) Laptop (modell, sebesség, memória, merevlemez, képernyő, ár) Nyomtató (modell, színes, típus, ár) Feladatok Tk.2.4.1.feladat (ezeket a kérdéseket konkrét táblák alapján természetes módon meg lehet válaszolni, majd felírjuk relációs algebrában) a) Melyek azok a PC modellek, amelyek sebessége legalább 3.00 b) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? c) Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát! stb!! i) Melyik gyártó gyártja a leggyorsabb számítógépet (laptopot vagy PC-t)?!! k) Melyek azok a gyártók, akik pontosan három típusú PC-t forgalmaznak? 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

Mit nevezünk algebrának? Nyelv: a kérdés szintaktikai alakja és a kérdés kiértékelése (algoritmus) kiértékelési szemantika Algebra műveleteket és atomi operandusokat tartalmaz. Relációs algebra: az atomi operandusokon és az algebrai kifejezéseken végzett műveletek alkalmazásával kapott relációkon műveleteket adunk meg, kifejezéseket építünk (a kifejezés felel meg a kérdés szintaktikai alakjának). 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. 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Relációs algebrai lekérdezı nyelv ---1 Relációs algebrai kifejezés, mint lekérdező nyelv Lekérdező nyelv: L -nyelv Adott az adatbázis sémája: R = {R 1,, R k } q L q: R 1,, R k V (eredmény-reláció) E - relációs algebrai kifejezés: E(R 1,, R k ) = V (output) Relációs algebrai kifejezések formális felépítése Elemi kifejezések (alapkifejezések) (i) R i R(az adatbázis-sémában levő relációnevek) R i kiértékelése: az aktuális előfordulása (ii) konstans reláció (véges sok, konstansból álló sor) Összetett kifejezések (folyt. köv.oldalon) 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Relációs algebrai lekérdezı nyelv ---2 (folyt.) Relációs algebrai kifejezések felépítése Összetett kifejezések Ha E 1, E 2 kifejezések, akkor a következő E is kifejezés E:=E 1 U E 2 unió, ha azonos típusúak (és ez a típusa) E:= E 1 E 2 különbség, ha E 1, E 2 azonos típusúak (típus) E:= Π lista ( E 1 ) vetítés (típus a lista szerint) E:= σ Feltétel ( E 1 ) kiválasztás (típus nem változik) E:= E 1 E 2 term. összekapcsolás (típus attr-ok uniója) E:= ρ S(B 1,, Bk) (E 1 (A 1, A k )) átnevezés (típ.új attr.nevek) E:=( E 1 ) kifejezést zárójelezve is kifejezést kapunk Ezek és csak ezek a kifejezések, amit így meg tudunk adni 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Halmazmőveletek (jelölése a szokásos) Reláció előfordulás véges sok sorból álló halmaz. Így értelmezhetők a szokásos halmazműveletek: az unió (az eredmény halmaz, csak egyszer szerepel egy sor) értelmezhető a metszet és a különbség. Milyen művelet van még halmazokon? Értelmezhető-e relációkon? R, S és azonos típusú, R S és R S típusa ugyanez R S := {t t R t S}, R S := { t t R t S} Az alapműveletekhez az unió és különbség tartozik, metszet műveletet származtatjuk R S = R (R S) A B C a b c c d e g a d A B C a b c c d e g d f Példa: különbségre R S A B C g a d 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Vetítés (project, jelölése pí: ) Vetítés (projekció). Adott relációt vetít le az alsó indexben szereplő attribútumokra (attribútumok számát csökkentik) lista (R) ahol lista: {A,, A i } R-sémájában levő 1 ik attribútumok egy részhalmazának felsorolása eredmény típusa <A i 1 : értéktípus i1,, A ik :értéktípus ik > lista (R) := { t.a i 1, t.a i2,, t.a ik t R} = { t[lista] t R} Reláció soraiból kiválasztja az attribútumoknak megfelelő A,, A i -n előforduló értékeket, ha többször előfordul 1 ik akkor a duplikátumokat kiszűrjük (hogy halmazt kapjunk) Példa: A B C a b c c d e c d d Π A, B (R) A a c B b d 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Kiválasztás (select, jelölése szigma: σ) Kiválasztás (szűrés). Kiválasztja az argumentumban szereplő reláció azon sorait, amelyek eleget tesznek az alsó indexben szereplő feltételnek. σ Feltétel (R) és R sémája megegyezik σ Feltétel (R) := { t t R és t kielégíti az F feltételt} R(A 1,, A n ) séma feletti reláció esetén a σ F kiválasztás F feltétele a következőképpen épül fel: elemi feltétel: A i θ A j, A i θ c, ahol c konstans, θ pedig =,,<, >,, összetett feltétel: ha B 1, B 2 feltételek, akkor B 1, B 1 B 2, B 1 B 2 és zárójelezésekkel is feltételek Példa: A B C a b c σ A=a C=d (R) A B C a b c c d e g a d g a d 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Természetes összekapcsolás ---1 Szorzás jellegű műveletek (attribútumok számát növeli) többféle lehetőség, amelyekből csak egyik alapművelet: Angolul: Natural Join (jelölése: csokornyakkendő ) Természetes összekapcsolás: közös attribútum-nevekre épül. R S azon sorpárokat tartalmazza R-ből illetve S-ből, amelyek R és S azonos attribútumain megegyeznek. A a c b B a b c B a a b e C a c d d A B C a a a a a c c b d 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Természetes összekapcsolás ---2 Természetes összekapcsolás: Legyen R(A 1,,A k,b 1,,B n ), illetve S(B 1,,B n,c 1,,C m ) R S típusa (A 1,,A k,b 1,,B n,c 1,,C m ) vagyis a két attribútum-halmaz uniója R S = { <A 1 : t(a 1 ),, A k : t(a k ), B 1 : t(b 1 ),, B n : t(b n ), R S elemei v R S C 1 : s(c 1 ),, C m : s(c m )> t R, s S, t(b i ) = s(b i ) i=1,, n } R S = { v t R, s S: t[b 1,,B n ] = s[b 1,,B n ] v[a 1,,A k ] = t[a 1,,A k ] v[b 1,,B n ] = t[b 1,,B n ] v[c 1,,C m ] = s[c 1,,C m ] } 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Természetes összekapcsolás ---3 Példákban: két azonos nevű attribútumot úgy tekintünk, hogy ugyanazt jelenti és a közös érték alapján fűzzük össze a sorokat. Milyen problémák lehetnek? Filmek adatbázisban ugyanarra a tulajdonságra más névvel hivatkozunk: Filmek.év és SzerepelBenne.filmÉv, illetve FilmSzínész.név és SzerepelBenne.színészNév Termékek adatbázisban pedig ugyanaz az azonosító mást jelent: Termék.típus más, mint Nyomtató.típus Emiatt a Filmek és a Termékek adatbázisokban ahhoz, hogy jól működjön az összekapcsolás szükségünk van egy technikai műveletre, és ez: az átnevezés (rename) 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Átnevezés (rename, jelölése ró: ρ) Miért van erre szükség? Nem tudjuk a reláció saját magával való szorzatát kifejezni, R R = R lesz. Láttuk, hogy egyes esetekben szükség lehet relációnak vagy a reláció attribútumainak átnevezésére: ρ T(B 1,, Bk) (R(A 1, A k )) Ha az attribútumokat nem szeretnénk átnevezni, csak a relációt, ezt ρ T (R)-rel jelöljük. Ha ugyanazt a táblát használjuk többször, akkor a táblának adunk másik hivatkozási (alias) nevet. Az attribútumok átnevezése helyett alternatíva: R.A (vagyis relációnév.attribútumnév hivatkozás) amivel meg tudjuk különböztetni a különböző táblákból származó azonos nevű attribútumokat. 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Szorzás jellegő mőveletek ---1 Szorzás jellegű műveletek többféle lehetősége közül csak az egyiket vesszük alapműveletnek: join vagy természetes összekapcsolást, amely közös attribútumnevekre épül. R S azon sorpárokat tartalmazza R-ből illetve S-ből, amelyek R és S azonos attribútumain megegyeznek. Egy másik lehetőség: direkt-szorzat (Descartes-szorzat) Ez is tekinthető alapműveletnek (és bizonyos esetekben egyszerűbb ezt venni alapműveletnek) az ennél sokkal gyakrabban használt természetes összekapcsolás helyett. R S: az R és S minden sora párban összefűződik, az első tábla minden sorához hozzáfűzzük a második tábla minden sorát R S := { t t[r] R és t[s] S } 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Szorzás jellegő mőveletek ---2 A direkt-szorzat (vagy szorzat, Descartes-szorzat) esetén 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. Hivatkozás séma: oszlopok átnevezése illetve azonos nevű oszlop esetén: R.A 1,, R.A k, S.A 1,, S.A k Példa: A B C a b c c d e g a d B b q D r s R S A R.B C S.B D a b c b r a b c q s c d e b r c d e q s g a d b r g a d q s 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Szorzás jellegő mőveletek ---3 Ha R, S sémái megegyeznek, akkor R S = R S. Ha R, S sémáiban nincs közös attribútum, akkor R S = R S. Később nézünk még további szorzás jellegű műveletet: Théta összekapcsolás, θ félig összekapcsolás, és a rel.algebra kiterjesztésénél külső összekapcsolásokat. Hogyan fejezhető ki az R x S direkt szorzat relációs algebrában? (ha a természetes összekapcsolást tekintjük alapműveletnek, ebből és az átnevezés segítségével felírható a direkt szorzat). Hogyan fejezhető ki a természetes összekapcsolás, ha a direkt szorzatot soroljuk az alapműveletek közé? 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Szorzás jellegő mőveletek ---4 További szorzás jellegű műveletek: Théta összekapcsolás θ Félig összekapcsolás ( lógó sorok kifejezése) Tankönyv!2.4.8. feladata: Az R és S relációk féligösszekapcsolása, R S az R azon sorainak halmaza, amely sorok megegyeznek az S legalább egy sorával az R és S összes közös attribútumán. Adjunk meg olyan három különböző relációs algebrai kifejezést, amelyek ekvivalensek az R S kifejezéssel. 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

Lekérdezések kifejezése algebrában ---1 Kifejezés kiértékelése: összetett kifejezést kívülről befelé haladva átírjuk kiértékelő fává, levelek: elemi kifejezések. A relációs algebra procedurális nyelv, vagyis nemcsak azt adjuk meg, hogy mit csináljunk, hanem azt is hogyan. Legyen R, S az R(A, B, C), S(C, D, E) séma feletti reláció Π B,D σ A = 'c and E = 2 (R S) Ehhez a kiértékelő fa: (kiértékelése alulról felfelé történik) Π B,D σ A = 'c and E = 2 R S Tudunk-e ennél jobb, hatékonyabb megoldást találni? 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

Lekérdezések kifejezése algebrában ---2 Ekvivalens átalakítási lehetőségekkel, relációs algebrai azonosságokkal át tudjuk alakítani a fentivel ekvivalens másik relációs algebrai kifejezésre. Hatékonyabb-e? Π B,D (σ A = 'c (R) σ E = 2 (S)) Ehhez is felrajzolva a kiértékelő fát: Π B,D σ A = 'c' σ E = 2 R S 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

Lekérdezések kifejezése algebrában ---3 Ekvivalens átalakítás: oly módon alakítjuk át a kifejezést, hogy az adatbázis minden lehetséges előfordulására (vagyis ugyanazokra a táblákra) minden esetben ugyanazt az eredményt (ugyanazt a táblát) adja a két kiértékelő fa. Adatbázisok-2 tárgyból lesznek az ekvivalens átalakítási szabályok, a szabály alapú optimalizálás első szabálya például, hogy a kiválasztási műveletet minél előbb kell végrehajtani (közbülső táblák lehetőleg kicsik legyenek) Egy-egy részkifejezést, ha gyakran használjuk, akkor új változóval láthatjuk el, segédváltozót vezethetünk be: T(C 1, C n ) := E(A 1, A n ), de a legvégén a bevezetett változók helyére be kell másolni a részkifejezést. 01B_RelAlg1alap // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19