Csima Judit szeptember 6.

Hasonló dokumentumok
Adatbázisok elmélete

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

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

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

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

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

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

Sor és oszlopkalkulus

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

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

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

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

Relációs algebra 1.rész

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

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

Adatbázisok I A relációs algebra

Tankönyv példák kidolgozása

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

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

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

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

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

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

Csima Judit október 24.

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

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

Adatbázis Rendszerek

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

Csima Judit BME, VIK, november 9. és 16.

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

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

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

Adatbázis-kezelés. alapfogalmak

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

Adatbázisok elmélete

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.

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

Csima Judit november 15.

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

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

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

2.4. Egy algebrai lekérdező nyelv

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 12. előadás

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

A relációs adatmodell

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

Egyed-kapcsolat modell

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

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

4. Előadás Az SQL adatbázisnyelv

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

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

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

Relációs adatmodellezés

Adatbázisok - 1. előadás

ADATBÁZISKEZELÉS ADATBÁZIS

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

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


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

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

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

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

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

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

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

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

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

Adatbázisok gyakorlat

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

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Normálformák Normalizálás ADATBÁZISKEZELÉS ÉS KÖNYVTÁRI RENDSZERSZERVEZÉS 1 / 2

GEIAL Kovács László. GEIAL Kovács László

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

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

Adatbázisok elmélete

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

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

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

Adatbázisok gyakorlat

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

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

Adatbázis rendszerek. dr. Siki Zoltán

Csima Judit szeptember 6.

Adatbázis, adatbázis-kezelő

5.3. Logika a relációkhoz

Adatbázismodellek. 1. ábra Hierarchikus modell

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

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 LEKÉRDEZÉSEK OPTIMALIZÁLÁSA. Dr. Gajdos Sándor november BME TMIT

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

1. előadás: Halmazelmélet, számfogalom, teljes

A RELÁCIÓS ADATMODELL MŰVELETI RÉSZE (RELÁCIÓS ALGEBRA ÉS KALKULUS)

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

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

Adatbázisok. 1. gyakorlat. Adatmodellezés október október 1. Adatbázisok 1 / 42

Egyed-kapcsolat modell

Átírás:

Adatbáziskezelés Relációs algebra Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. szeptember 6. Csima Judit Adatbáziskezelés Relációs algebra 1 / 44

Relációs adatmodell Ahogy már szó volt róla: Legfontosabb és leggyakoribb a létezõ adatmodellek közül. Eddig: intuitív kép arról, hogy mi egy reláció hogyan kell E/K modellből relációkat előálĺıtani Csima Judit Adatbáziskezelés Relációs algebra 2 / 44

Mit tanulunk a relációs adatmodellről? 1 elvi keret: alapfogalmak, alapmûveletek 2 konkrét nyelv: SQL (sémadefinícióra, adatmódosításra és lekérdezésre) 3 tervezés: minél jobb séma kialakítása, séma átalakítása, matematikai elmélet Csima Judit Adatbáziskezelés Relációs algebra 3 / 44

Relációs adatmodell Leginkább úgy gondolunk a relációra, mint egy síkbeli táblázatra: R 1 A 1 A 2 1 y 1 z 3 y R 2 A 1 A 3 2 y 1 z Igazából a sorok sorrendje nem számít és az oszlopoké (attribútumoké) sem. Egyelőre feltesszük, hogy egy sor csak egyszer szerepel (a multihalmazos lehetőségről majd az SQL-nél beszélünk). Csima Judit Adatbáziskezelés Relációs algebra 4 / 44

Relációs séma vs. reláció Relációs séma: amikor megadjuk, hogy mi a neve a táblázatnak és mik az oszlopai általánosan: R(A 1,..., A n ), ahol R a reláció neve, az A i -k pedig az attribútumok nevei. Például: Személy(Vezetéknév, Keresztnév, Neme, Végzettsége) Reláció: a konkrét, kitöltött, a sémára illeszkedő táblázat (a sorok összessége) A sémának további részei is lesznek még (a függések), a sémára illeszkedő relációnak ezeket is be kell tartania. Csima Judit Adatbáziskezelés Relációs algebra 5 / 44

Relációs modell Edgar F. Codd, (1932 2003 ) 1970-es cikk: A Relational Model of Data for Large Shared Data Banks Teljes adatmodell: nem csak azt mondja meg hogyan írok le az adatot, hanem vannak mûveletek is. Ezeket a mûveleteket relációkra alkalmazhatom és így újabb relációkat kapok majd. Csima Judit Adatbáziskezelés Relációs algebra 6 / 44

A relációs algebra alapmûveletei Halmazmûveletek (bármilyen halmazra mennének) unió: különbség: \ szorzat: Relációs mûveletek (ezek már kihasználják, hogy itt relációkról van szó) vetítés, projekció: π kiválasztás, szelekció: σ Ezek mind tiszta mûveletek: reláció reláció = gond nélkül egymásba ágyazhatók Csima Judit Adatbáziskezelés Relációs algebra 7 / 44

Unió R, S relációk = R S : R és S sorai együtt Azonos sorok csak egyszer szerepelnek. (Gyakorlatban néha lehetnek azonos sorok.) csak akkor alkalmazható, ha R és S oszlopszáma egyenlõ nem feltétlenül örököl típusokat vagy attribútum neveket Példa: R A B a a a c b a S A C a a a d a c b b R S A (R S) 2 a a a c b a a d b b Csima Judit Adatbáziskezelés Relációs algebra 8 / 44

Különbség R, S relációk = R \ S: R azon sorai, amelyek S-ben nem szerepelnek nincs kompatibilitási követelmény (Ha pl. különbözõ az oszlopszám: nem szerepelhetnek azonos sorok úgysem, ekkor R \ S = R). Az eredmény örökli R típusait és attribútum neveit (mert R \ S R) Példa: R A B a a a c b a S A C a a a d a c b b R \ S A B b a Csima Judit Adatbáziskezelés Relációs algebra 9 / 44

Szorzat (direkt szorzat, Descartes szorzat) R(A 1,..., A k ), S(B 1,..., B l ) k ill. l attribútumos relációk = R S : k + l attribútumos reláció, R minden sora mögé odatesszük S minden sorát, minden lehetséges módon. Ha R-nek n sora van S-nek m sora = R S-nek nm sora van nincs kompatibilitási követelmény Az eredmény lényegében örökli R és S típusait és attribútum neveit, esetleg át kell nevezni. Az unió és különbség könnyû mûvelet, a szorzat nehezebb. Vigyázni kell mennyit használjuk. Csima Judit Adatbáziskezelés Relációs algebra 10 / 44

Szorzat, példa R A B a a a c b a S A C a a a d a c b b R S A B A C a a a a a a a d a a a c a a b b a c a a a c a d a c a c a c b b b a a a b a a d b a a c b a b b Csima Judit Adatbáziskezelés Relációs algebra 11 / 44

Vetítés R(A 1,..., A l ) alakú reláció = π Ai1,...,A in (R): R vetítése A i1,..., A in -re (fontos a sorrend) = Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom. Egy oszlop akár többször is szerepelhet. = átnevezés nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen) Az eredmény örökli R típusait és attribútum neveit Csima Judit Adatbáziskezelés Relációs algebra 12 / 44

Példa: R A B C π A (R) A π C,B,B (R) C B B a b 2 a c 3 b c 4 a b 2 b b 3 c c 4 c c Csima Judit Adatbáziskezelés Relációs algebra 13 / 44

Kiválasztás, szelekció R egy reláció = σ F (R) = a reláció azon sorai, amelyekre az F formula teljesül. Teljesülni fog, hogy σ F (R) R Nincs más megszorítás, csak hogy F értelmes legyen (erről mindjárt). Az eredmény örökli R típusait és attribútum neveit Csima Judit Adatbáziskezelés Relációs algebra 14 / 44

Példa: R A B C a b 2 a c 3 b c 4 σ A B C>2 (R) A B C a c 3 b c 4 Csima Judit Adatbáziskezelés Relációs algebra 15 / 44

Az F formula: Atomok: A θ B, A θ c, c θ B, ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Építkezés:,, Példa: DOLGOZÓ(NÉV,CÍM,FIZETÉS) Kvantorok, nincsenek! σ CÍM= BP., Várna u. FIZETÉS> 50000 (DOLGOZÓ) Csima Judit Adatbáziskezelés Relációs algebra 16 / 44

Relációs algebra, fogalmak Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva. A relációs algebra relációi: amik kifejezhetõk az alaprelációkból, \,, π, σ segítségével. Származtatott reláció: nem alapreláció, de kifejezhetõ. Fontos fogalom: egy lekérdezõ nyelv (igazi vagy modell) relációsan teljes, ha benne megvalósíthatók a relációs algebra alapmûveletei:, \,, π, σ Ez utóbbi fontos követelmény, általában tudja is mindegyik. Inkább az a baj, hogy néha túl sokat tudnak, de nincs hatékony implementáció. Csima Judit Adatbáziskezelés Relációs algebra 17 / 44

Származtatott mûveletek Hasznosak, de mivel kifejezhetõk az öt alapmûvelettel, ezért lényegében csak rövidítések. Metszet R, S relációk = R S : R \ (R \ S) azok a sorok, amelyek mindkettõben benne vannak. nincs kompatibilitási követelmény (\ tulajdonságai miatt) Az eredmény örökli R típusait és attribútum neveit (\ tulajdonságai miatt) Csima Judit Adatbáziskezelés Relációs algebra 18 / 44

Példa: R A B a a a c b a S A C a a a d a c b b R S A B C a a a c Csima Judit Adatbáziskezelés Relációs algebra 19 / 44

Természetes illesztés (natural join) R(A 1,..., A k, B 1,..., B r ), S(A 1,..., A k, C 1,..., C s ) relációk = R S : Vegyük R S-t Vesszük azokat a sorokat, ahol R.A 1 = S.A 1,..., R.A k = S.A k, a többit kidobjuk. A i -ból az egyik példányt eldobjuk, azaz vetítünk R.A 1,..., R.A k, R.B 1,..., R.B r, S.C 1,..., S.C s -re Azonos sorokat kidobjuk. R S = π R.A1,...(σ R.A1 =S.A 1,...(R S)) Csima Judit Adatbáziskezelés Relációs algebra 20 / 44

Természetes illesztés (natural join) R S = π R.A1,...(σ R.A1 =S.A 1,...(R S)) R S-nek k + r + s oszlopa lesz. Ha nincs közös attribútum. = R S = R S. nincs kompatibilitási követelmény Az eredmény örökli R és S típusait és attribútum neveit Gyakorlatban ennél hatékonyabban számítjuk ki. Az oszlopok sorrendje nem definiált, de általában: R oszlopai, aztán S saját oszlopai. Csima Judit Adatbáziskezelés Relációs algebra 21 / 44

Példa R A B C a b 2 a c 3 b a 4 S D C a 2 b 3 x 2 R S A B C D a b 2 a a b 2 x a c 3 b Csima Judit Adatbáziskezelés Relációs algebra 22 / 44

Miért,,természetes? Példa: TERMELÕ(TermelőNév,Termék,Ár,Cím) TermelőNév Cím TermelőNév, Termék Ár Gond: ha TERMELÕ címét minden terméknél tároljuk = redundancia + veszélyek : cím mindig kell, minden módosításhoz; akkor is kell tudnom a címet, ha csak új árut akarok felvenni) Megoldás: Inkább tároljuk két táblában: R = π TermelőNév, Cím (TERMELÕ) és S = π TermelőNév, Termék, Ár (TERMELÕ) = TERMELÕ=R S (ha kell egyben a tábla, vissza lehet álĺıtani természetes módon) Csima Judit Adatbáziskezelés Relációs algebra 23 / 44

Kitérő: Jó-e bármilyen felbontás? R = π TermelőNév, Cím, Ár (TERMELÕ) és S = π TermelőNév, Termék (TERMELÕ) = minden terméknek ugyanolyan árai lesznek (sok ár lesz) = TERMELÕ R S Az lesz majd a kérdés, hogy mik lesznek a jó felbontások? Csima Judit Adatbáziskezelés Relációs algebra 24 / 44

Származtatott mûveletek, bal (jobb) félillesztés R(A 1,..., A k, B 1,..., B r ), S(A 1,..., A k, C 1,..., C s ) relációk = R S = R azon sorai, amelyhez vannak passzoló sorok S-ben R S = π R (R S) R S R R S = ugyanez jobbról R S A B C a b 2 a c 3 R S D C a 2 b 3 x 2 Csima Judit Adatbáziskezelés Relációs algebra 25 / 44

Származtatott mûveletek: θ-illesztés R, S relációk = R S = R S azon sorai, amelyben az adott oszlopok θ R.A i θs.b j relációban vannak R S = σ R.Ai θs.b j (R S) R.A i θs.b j Példa: R A B C a b 2 a c 3 b a 4 S D E a 2 b 3 x 2 R S A B C D E C E a b 2 a 2 a b 2 b 3 a b 2 x 2 a c 3 b 3 Csima Judit Adatbáziskezelés Relációs algebra 26 / 44

Példák relációs algebra alkalmazására ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) ELADVA(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG) BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG 4000 A 2017. jan. 1. utáni napok bevételei a dátummal együtt: ( ) BEVÉTEL σ D ÁTUM > 2017-01-01 A 2017. jan. 15-i befizetett összeg és bevétel: (BEVÉTEL BEFIZ )) πösszeg, BEFIZ (σ DÁTUM= 2017-01-15 πösszeg, BEFIZ (σ DÁTUM= 2017-01-15 (BEVÉTEL ) ) BEFIZ Csima Judit Adatbáziskezelés Relációs algebra 27 / 44

Példa még Hány darabot adtak el 2017. jan. 15-én az A123 kódú áruból, mi a neve és az ára? ( )) π DB, ÁRUNÉV, EGYSÉGÁR σák (ELADVA ÓD= A123 D= 2002-01-15 ÁRU π DB, ÁRUNÉV, EGYSÉGÁR (σákód= A123 D= 2002-01-15 (ELADVA) ÁRU ) ÁKÓD ÁRUKÓD-ot, D pedig DÁTUM-ot jelenti, csak rövidítenem kellett, különben nem fért volna ki :) Csima Judit Adatbáziskezelés Relációs algebra 28 / 44

Példa még Mely nevû áruk azok, amelyekkel van azonos egységárú másik áru? Itt az ÁRU reláció két sorát kell összevetni. Átnevezés: Technikai segítség, ha pl. két relációban ugyanolyan attribútumnév van, és direkt szorzatot akarunk. Nem változtatja meg a reláció sorait, csak az attribútumok és a reláció nevét, ezért nem igazi mûvelet. R(A 1,..., A n ) egy reláció = ρ S(B1,...,B n)(r) = sorai megegyeznek R soraival, a reláció neve S, attribútumai rendre B 1,..., B n. Ha csak a relációt akarjuk átnevezni: ρ S (R) Csima Judit Adatbáziskezelés Relációs algebra 29 / 44

Megoldás az előbbi kérdésre ÁRU1 = ρáru1( ÁRUKÓD1, ÁRUNÉV1, EGYSÉGÁR1)(ÁRU) ÁRU2 = ρáru2( ÁRUKÓD2, ÁRUNÉV2, EGYSÉGÁR2)(ÁRU) ÁRU3 = ÁRU1 ÁRU4 = πárun ÉV1 ÁRU2 EGYSÉGÁR1 = EGYSÉGÁR2 ÁRUKÓD1 ÁRUKÓD2 (ÁRU3 ) Csima Judit Adatbáziskezelés Relációs algebra 30 / 44

További példák TERMÉK(GYÁRTÓ, MODELL, TÍPUS) PC(MODELL, SEBESSÉG, MEMÓRIA, MEREVLEMEZ, CD, ÁR) LAPTOP(MODELL, SEBESSÉG, MEMÓRIA, MEREVLEMEZ, KÉPERNYÕ, ÁR) NYOMTATÓ(MODELL, SZÍNES, TÍPUS, ÁR) Csima Judit Adatbáziskezelés Relációs algebra 31 / 44

A relációk jelentése TERMÉK: az adott nevû gyártó gyártja az adott modellszámú és adott típusú (PC, Laptop vagy nyomtató) terméket PC: modellszám, sebesség megahz-ben, memória gigabájtban, merevlemez gigabájtban, a CD sebessége (pl. 4x), az ár LAPTOP: mint PC-nél, plusz a képernyõ mérete hüvelykben NYOMTATÓ: modellszám, színes-e (i/n), típusa (tintasugaras, lézer, mátrix), ára A modellszámokról feltesszük, hogy egyediek. Csima Judit Adatbáziskezelés Relációs algebra 32 / 44

Kérdések Melyek azok a PC modellek, amelynek sebessége legalább 150? π MODELL ( σsebesség >= 150 (PC)) Mely gyártók készítenek legalább egy gigás merevlemezû laptopot? ( ) TERMÉK σ MEREVLEMEZ>= 1 (LAPTOP) π GYÁRTÓ Csima Judit Adatbáziskezelés Relációs algebra 33 / 44

Kérdés még Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát típustól függetlenül! ( ( ) ) π MODELL, ÁR σ GYÁRTÓ= B TÍPUS = PC TERMÉK PC ( ) ) π MODELL, ÁR (σ GY ÁRTÓ= B TíPUS = LAPTOP TERMÉK LAPTOP ( ) ) (σ GY ÁRTÓ= B TíPUS = NY TERMÉK NYOMTATÓ π MODELL, ÁR Csima Judit Adatbáziskezelés Relációs algebra 34 / 44

Kérdés még Melyek azok a gyártók, akik laptopot gyártanak, de PC-t nem? ) TERMÉK1 = ρ (TERMÉK (π TERMÉK1 GYÁRTÓ, TÍPUS ) π GY ÁRTÓ π GY ÁRTÓ ( σ T ÍPUS= LAPTOP ( σ T ÍPUS= PC ( )) TERMÉK1 \ )) ( TERMÉK1 Csima Judit Adatbáziskezelés Relációs algebra 35 / 44

Utolsó kérdés Melyek azok a gyártók, amelyek gyártanak legalább két, egymástól különbözõ, legalább 133 Mhz-en mûködõ PC-t vagy Laptopot? (Nincs két azonos modellszám!) R1 = π (PC) π MODELL, SEBESSÉG MODELL, SEBESSÉG (LAPTOP) ) R2 = π GY (σ ÁRTÓ, MODELL SEBESS ÉG =133 (R1) TERMÉK R3 = ρ R3(GY ÁRTÓ2, MODELL2)(R2) R4 = R2 R3 GYÁRTÓ = GYÁRTÓ2 MODELL MODELL2 R5 = π GYÁRTÓ (R4) Csima Judit Adatbáziskezelés Relációs algebra 36 / 44

További mûveletek Az eddigi műveletek kifejezhetők voltak a relácis algebra alapműveleteivel. Amiket most mutatok, azok nem, de fontosak (SQL folyton használ ilyeneket, ott majd részletesen is nézzük). aggregátumok: MIN, MAX, AVG, SUM, CNT (darabszám) Pl. leggyorsabb gép, átlagár, hányféle printer eredmény mindig egy szám aggregátum csoportosítva: Bizonyos feltételek szerinti partíciókban aggregátumok. Pl. átlagos ár tintasugaras nyomtatók között, egy gyártónak hány terméke van = eredmény egy reláció pl. (gyártó, szám) párokból. Csima Judit Adatbáziskezelés Relációs algebra 37 / 44

További mûveletek még:rekurzív lezárás hagyományos adatkezelésben ritka, intelligensebb rendszerekben inkább előfordul) Pl. reláció: ki fõnöke kinek = lezárás: ki felettese kinek Pl. reláció: melyik városból melyikbe van repülõ járat = lezárás: átszállással el lehet-e jutni Ezt a relációs algebra nem tudja, csak fix mélységre: pl. max 4 átszállás, Csima Judit Adatbáziskezelés Relációs algebra 38 / 44

A NULL érték, emlékeztető Lehet, hogy vannak kitöltetlen mezõk, ezt meg akarjuk engedni: NULL érték. 2 alapvetõ értelmezés (majd SQL-nél lesz, hogy hogyan kell megmondani, hogy melyik van éppen, illetve, hogy lehet-e egyáltalán NULL valahol):, de nem ismerjük. Attól függõen, hogy hogyan értelmezzük a NULL-t: Mi legyen egy( ilyen kérdéssel?: ) Pl. π C ÍM= BP TERMELÕ Ilyenkor belevegyük-e ha a cím NULL? Csima Judit Adatbáziskezelés Relációs algebra 39 / 44

Külsõ illesztés (outer join) R, S relációk = R S bal külsõ illesztés: R S-hez azokat az R-beli sorokat is hozzáveszük, amihez nem illeszkedik S-beli. Hiányzó helyekre NULL kerül. Pl. SZEMÉLY(NÉV, KÓD), CÍM(KÓD, CÍM) SZEMÉLY CÍM = akinek nincs címe nem lesz rajta SZEMÉLY CÍM = kiderül, kinek nincs meg a címe Csima Judit Adatbáziskezelés Relációs algebra 40 / 44

Külső illesztés SQL-ben van, relációs algebrával elvileg nem fejezhetõ ki (NULL miatt), de elkerülhetõ. Lényegében: (R S) (R \ (R S)) Van jobb külsõ illesztés is: R S Teljes külsõ illesztés: R S := (R S) (R S) Csima Judit Adatbáziskezelés Relációs algebra 41 / 44

Példa R A B C a b 2 a c 3 b a 4 S D C a 2 b 3 x 2 y 1 R S A B C D a b 2 a a b 2 x a c 3 b b a 4 NULL R S A B C D a b 2 a a b 2 x a c 3 b NULL NULL 1 y R S A B C D a b 2 a a b 2 x a c 3 b b a 4 NULL NULL NULL 1 y Csima Judit Adatbáziskezelés Relációs algebra 42 / 44

Külsõ unió Részben kompatibilis relációk egyesítésére: DIÁK(NÉV, TÉMAVEZ, TSZK) TANÁR(NÉV, TSZK, BEOSZT) diák tanár DIÁK k TANÁR NÉV TSZK TÉMAVEZ BEOSZT NULL NULL Csima Judit Adatbáziskezelés Relációs algebra 43 / 44

Multihalmazos szemantika A relációs algebrában ugyan minden reláció halmaz, ezért nincsenek többszörös sorok, de pl. SQL-nél lesznek. A multihalmazokkal kicsit máshogy vannak a halmazmûveletek: Ha a t sor m R (t) példányban van meg R-ben és m S (t) példányban van meg S-ben, akkor m (R S) (t) := m R (t) + m S (t) példányban lesz meg R és S úniójában m (R S) (t) := min{m R (t), m S (t)} példányban lesz meg R és S metszetében m (R\S) (t) := max{m R (t) m S (t), 0}) példányban lesz meg R \ S-ben Csima Judit Adatbáziskezelés Relációs algebra 44 / 44