101
Lek´ erdez˝onyelvek,rel´ aci´oalgebra, lek´ erdez´ es-optimaliz´ al´ as 1 Isp´ any M´ arton Debreceni Egyetem, Informatikai Kar 2019. szeptember 23. 1 Az el˝ oad´ as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj´ an k´ esz¨ ult. (Az ´ abr´ ak egy r´ esze szint´ en onnan sz´ armazik.) 1 / 87

Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezonyelvek, relacioalgebra,lekerdezes-optimalizalas1

Ispany Marton

Debreceni Egyetem, Informatikai Kar

2019. szeptember 23.

1Az eloadas Elmasry & Navathe: Fundamentals of Database Systems, 6thEdition alapjan keszult. (Az abrak egy resze szinten onnan szarmazik.)

1 / 87

Page 2: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Tartalom

Bevezeto

Absztrakt lekerdezo nyelvek

A relacioalgebraA relacioalgebra alapmuveleteiLekerdezes faTovabbi relacioalgebrai muveletek

Lekerdezes-feldolgozas es optimalizalasA lekerdezes feldolgozas lepeseiLekerdezes optimalizalas algoritmusaiHeurisztikus modszerekKoltseg-alapu modszerekSzemantikus lekerdezes optimalizalas

2 / 87

Page 3: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Bevezeto

Relacios adatbazissemaRelaciosemak egy halmaza es az integritasi megszorıtasokosszessege.

Mi hianyzik meg? Az adatbazisban nem csak adatokat akarunktarolni (input), hanem szeretnenk adatokat illetve informaciokat iskinyerni belole (output). Ehhez muveletek szuksegesek, amelyekkelmanipulaciokat hajthatunk vegre a relaciokon. Ezek revenelegıthetik ki a felhasznalok alapveto informacio kinyeresiigenyeiket olymodon, hogy kinyeresi (keresesi) kereseket(lekerdezeseket) specifikalnak.

Ezen muveletek eredmenye a relacios modellben minden esetbenegy ujabb relacio, amely egy vagy tobb input relaciobol johet letre.Ez a tulajdonsag zartta teszi az algebrat (kalkulust), mindeneredmenyul kapott objektum szinten relacio lesz.

3 / 87

Page 4: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Bevezeto

Absztrakt lekerdezo nyelvek

I relacioalgebraI relaciokalkulus

I rekordalapuI tartomanyalapu

I Az SQL mind a ketfele nyelvbol atvesz fogalmakat, magukataz absztrakt nyelveket az SQL elott fejlesztettek ki.

I A relacioalgebraban egy eljarast adunk meg (a hogyantmondjuk meg) a kinyerni kıvant informacio eloallıtasara.Proceduralis nyelv.

I A relaciokalkulusban deklaratıv kifejezessel adjuk meg (a mitmondjuk meg) a kinyerni kıvant informaciot. Nemproceduralisnyelv.

Megjegyzes

A harom nyelv kifejezoerejuk tekinteteben megegyezik.4 / 87

Page 5: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Absztrakt lekerdezo nyelvek (1)

Relacioalgebra

I A relacios modellen ertelmezett muveletek egy alaphalmaza.

I Matematikai halmazelmeleten alapulo lekerdezo nyelv.

I Formalis megalapozasat adja a relacios modell muveleteinek.

I A lekerdezes egy ralacios algebrabeli kifejezes, amelyben azoperatorok relacioalgebrai muveletek, az operandusok pedigrelaciok.

I A lekerdezes eredmenye szinten egy relacio.

I Alapjat kepezi a lekepezesek implementalasanak esoptimalizalasanak az RDBMS lekerdezes es optimalizaciosmoduljaiban.

I Nehany fogalma kozvetlenul megjelenik az SQL-ben.

Pelda: Adjuk meg a ferfi dolgozok atlagfizeteset! Ket lepes: 1) Aferfi dolgozok levalogatasa, 2) A fizetesek atlaganakmeghatarozasa. 5 / 87

Page 6: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Absztrakt lekerdezo nyelvek (2)

Relaciokalkulus

I Magas-szintu lekerdezo nyelv relacio lekerdezesekspecifikalasara.

I Az elsorendu predikatumkalkulusra (matematikai logika) epulolekerdezo nyelv.

I A lekerdezes egy specialis alaku kifejezes, amely egy halmaztdefinial (a Descartes szorzaton).

I A lekerdezesbeli muveleteknek nincs megadott sorrendje arra,hogy hogyan allıtsuk elo a lekerdezes eredmenyet, csak azjelenik meg, hogy ez az eredmeny mit tartalmazzon.

I A lekerdezes eredmenye az elobb emlıtett halmaz altalmeghatarozott relacio.

I Query-By-Example (QBE): grafikus felhasznalobarattartomany alapu relacios lekerdezo nyelv.

Pelda: minden olyan dolgozo, aki ferfi es 100 EFt-nal tobbet keres.6 / 87

Page 7: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacioalgebra alapmuveletei

I szelekcio (σ)

I projekcio (π)

I atnevezes (ρ)I halmazmuveletek

I unio (∪), metszet (∩), kulonbseg (− vagy \)I Descartes-szorzat (belso szorzat, ×)

I osszekapcsolas (join)I altalanos osszekapcsolas (theta join, on)I egyenlosegalapu osszekapcsolas (equijoin);I termeszetes osszekapcsolas (natural join, ∗)

I hanyados (÷)

A muveletek egy sorozata a relacios algebra egy kifejezese.

7 / 87

Page 8: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacioalgebra kiegeszıto muveletei

Szamos, gyakran hasznalt, adatbazis lekerdezes, melyek az uzleticelu RDBMS-ekben szuksegesek, nem valosıthato meg az eredetirelacio algebrai muveletek segıtsegevel. Ehhez tovabbi muveletekszuksegesek, amelyek novelik az eredeti relacio algebra kifejezoerejet.

I altalanosıtott projekcio

I csoportkepzo fuggvenyek

I rekurzıv lezart

I bal oldali/jobb oldali/teljes kulso osszekapcsolas(left/right/full outer join, on, on, on)

I kulso unio

8 / 87

Page 9: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Szelekcio

Altalanos alakja

σ〈szelekcios feltetel〉(R)

R azt a relaciot jeloli, amelybol a 〈szelekcios feltetel〉-nek elegettevo rekordokat valogatjuk ki.A 〈szelekcios feltetel〉 egy logikai kifejezes, amely logikaioperatorokkal osszekapcsolt reszkifejezesekbol epul fol. Areszkifejezesek alakja a kovetkezok valamelyike lehet:

I 〈attributum〉〈hasonlıto op.〉〈konstans〉 vagy

I 〈attributum〉〈hasonlıto op.〉〈attributum〉,ahol az 〈attributum〉 az R egy attributumanak neve, a〈hasonlıto op.〉 a {=, 6=, <,>,≤,≥} operatorok egyike, a〈konstans〉 pedig egy konstans ertek az attributum tartomanyabol.Egy altalanos szelekcios feltetelben a reszkifejezeseket az es, a vagyes a nem logikai operatorokkal kapcsolhatjuk ossze.

9 / 87

Page 10: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Szelekcio

Megjegyzes

I A {=, 6=, <,>,≤,≥} halmaz operatorait csak olyanattributumok eseten hasznalhatjuk, amelyek tartomanyaiegymassal osszehasonlıthato elemeket tartalmaznak (pl.szamok, datumok). Ha nem osszehasonlıthato ertekekalkotjak az attributum tartomanyat, akkor csak a {=, 6= }halmazbeli operatorok hasznalhatok (pl. szınek).

I Egyes tartomanyok eseten tovabbi hasonlıto operatorokat ishasznalhatunk (pl. RESZSZTRING operator).

10 / 87

Page 11: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A szelekcio tulajdonsagai

I A szelekcio unaris muvelet.

I Az eredmenyul kapott relacio foka es semaja megegyezik Rfokaval, illetve semajaval.

I Az eredmenyul kapott relacio szamossaga mindig kisebb vagyegyenlo R szamossaganal, azaz barmely f feltetel eseten

|σf (R)| ≤ |R|

I Ket egymasba agyazott szelekcios muvelet vegrehajtasisorrendje felcserelheto:

σfelt1(σfelt2(R)) = σfelt2(σfelt1(R))

I Minden tobbszorosen egymasba agyazott (kaszkadolt)szelekcio atırhato egyetlen szelekciova, amelynek a feltetele azeredeti feltetelek konjunkcioja:

σfelt1(σfelt2(. . . (σfeltn(R)) . . .)) = σfelt1 AND felt2 AND...AND feltn(R)

11 / 87

Page 12: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Valasszuk ki azokat a dolgozokat, akik vagy a 4-es osztalyondolgoznak, es tobbet keresnek 325 000 Ft-nal, vagy az 5-ososztalyon dolgoznak, es tobbet keresnek 390 000 Ft-nal!

12 / 87

Page 13: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Valasszuk ki azokat a dolgozokat, akik vagy a 4-es osztalyondolgoznak, es tobbet keresnek 325 000 Ft-nal, vagy az 5-ososztalyon dolgoznak, es tobbet keresnek 390 000 Ft-nal!

σ(Osz=4 AND Fizetes>325000) OR(Osz=5 AND Fizetes>390000)(DOLGOZO)

Vnév

Szabó

Takács

Horváth

Knév

Mária

József

Erzsébet

Szsz

2 551208 2219

1 410620 4902

2 620915 3134

Szdátum

1955. december 8.

1941. június 20.

1962. szeptember 15.

Lakcím

1097 Budapest

4027 Debrecen

1092 Budapest

Nem

N

F

N

Fizetés

520000

559000

494000

F®nök_szsz

1 371110 4519

1 371110 4519

2 551208 2219

Osz

5

4

5

12 / 87

Page 14: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Projekcio

Altalanos alakja

π〈attributumlista〉(R)

Az 〈attributumlista〉 az R relacio lekerdezni kıvant attributumainaklistaja. Az attributumlistaban szereplo oszlopokat kivalasztja atobbi oszlopot pedig elhagyja.

13 / 87

Page 15: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A projekcio tulajdonsagai

I A projekcio unaris muvelet.I Az eredmenyul kapott relacio fokat es semajat az

attributumlistaban szereplo attributumok hatarozzak meg:I az eredmeny semajaban az attributumok sorrendje megegyezik

a listaban megadott attributumok sorrendjevel,I a fokszam a listaban megadott attributumok darabszama lesz.

I Ha az attributumlista nem tartalmaz kulcs attributumot,akkor az eredmenyul kapott relacio szamossaga kisebb lehet Rszamossaganal, ugyanis az eredmenyben nem jelenhetnek megduplikalt rekordok. Ha az attributumlista R szuperkulcsa,akkor az eredmeny szamossaga megegyezik R szamossagaval.

I Ket egymasba agyazott projekcios muvelet eredmenyemegegyezik a kulso projekcio eredmenyevel:

πlista1(πlista2(R)) = πlista1(R)

ha lista2 k lista1, egyebkent a baloldal nem ertelmezheto.14 / 87

Page 16: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg a dolgozok vezeteknevet, keresztnevet es fizeteset!

15 / 87

Page 17: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg a dolgozok vezeteknevet, keresztnevet es fizeteset!

πVnev,Knev,Fizetes(DOLGOZO)

Vnév

Kovács

Szabó

Kiss

Takács

Horváth

Tóth

Fazekas

Nagy

Knév

László

Mária

István

József

Erzsébet

János

Ilona

Zoltán

Fizetés

390000

520000

325000

559000

494000

325000

325000

715000

15 / 87

Page 18: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg a dolgozok nemet es fizeteset!

16 / 87

Page 19: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg a dolgozok nemet es fizeteset!

πNem,Fizetes(DOLGOZO)

Nem

F

N

F

F

N

N

F

Fizetés

390000

520000

325000

559000

494000

325000

715000

16 / 87

Page 20: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg az 5-os osztalyon dolgozok vezeteknevet, keresztnevetes fizeteset!

17 / 87

Page 21: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg az 5-os osztalyon dolgozok vezeteknevet, keresztnevetes fizeteset!

πVnev,Knev,Fizetes(σOsz=5(DOLGOZO))

Vnév

Kovács

Szabó

Horváth

Tóth

Knév

László

Mária

Erzsébet

János

Fizetés

390000

520000

494000

325000

17 / 87

Page 22: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda

Adjuk meg az 5-os osztalyon dolgozok vezeteknevet, keresztnevetes fizeteset!

πVnev,Knev,Fizetes(σOsz=5(DOLGOZO))

Vnév

Kovács

Szabó

Horváth

Tóth

Knév

László

Mária

Erzsébet

János

Fizetés

390000

520000

494000

325000

OSZT5 DOLG← σOsz=5(DOLGOZO)

EREDMENY← πVnev,Knev,Fizetes(OSZT5 DOLG)

17 / 87

Page 23: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

AtnevezesMegvaltoztathatjuk a relacionk jeloleset es atnevezhetjuk azattributumait is ertekadas vegrehajtasakor:

TEMP← σOsz=5(DOLGOZO)

Vnév

Kovács

Szabó

Horváth

Tóth

Knév

László

Mária

Erzsébet

János

Szsz

1 650109 0812

2 551208 2219

2 620915 3134

1 720731 2985

Szdátum

1965. január 9.

1955. december 8.

1962. szeptember 15.

1972. július 31.

Lakcím

4033 Debrecen

1097 Budapest

1092 Budapest

6726 Szeged

Nem

F

N

N

F

Fizetés

390000

520000

494000

325000

F®nök_szsz

2 551208 2219

1 371110 4519

2 551208 2219

2 551208 2219

Osz

5

5

5

5

TEMP

R(Vezeteknev,Keresztnev,Fizetes)← πVnev,Knev,Fizetes(TEMP)

Vezetéknév

Kovács

Szabó

Horváth

Tóth

Keresztnév

László

Mária

Erzsébet

János

Fizetés

390000

520000

494000

325000

R

18 / 87

Page 24: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Az atnevezes tulajdonsagai

Altalanos alakja

ρS(B1,B2,...,Bn)(R) vagy ρS(R) vagy ρ(B1,B2,...,Bn)(R)

Az S a relacio jelolesere hasznalt uj szimbolum, B1,B2, . . . ,Bn azuj attributumnevek.

I Az atnevezes unaris muvelet.

I Az eredmenyul kapott relacio foka es szamossaga megegyezikR fokaval, illetve szamossagaval.

I Az eredmenyul kapott relacio semajaI a B1,B2, . . . ,Bn attributumokkal meghatarozott sema lesz, ha

megadtuk oket,I megegyezik az R semajaval, ha a B1,B2, . . . ,Bn

attributumokat nem soroltuk fel.

19 / 87

Page 25: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Halmazmuveletek es uniokompatibilitas

Halmazmuveletek: ket halmaz elemeit egyesıtik valamilyen modon

DefinıcioAz R(A1,A2, . . . ,An) es S(B1,B2, . . . ,Bn) relaciokat egymassaluniokompatibilisnek (tıpuskompatibilisnek) mondjuk, ha

I azonos a fokszamuk, es

I dom(Ai ) = dom(Bi ) minden 1 ≤ i ≤ n eseten.

Megjegyzes

Az uniokompatibilitas tehat azt jelenti, hogy a ket relacionakugyanannyi attributuma van, es attributumaik tartomanyaiparonkent megegyeznek egymassal.

20 / 87

Page 26: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Unio, metszet, kulonbseg

Definıcio

I unio: R ∪ S , a duplikatumokat megszunteti

I metszet: R ∩ S

I kulonbseg: R − S (R \ S)

A muveletek tulajdonsagai:I Az unio, a metszet es a kulonbseg binaris muveletek.I Az eredmenyul kapott relacio semaja – megallapodas szerint –

az elso (R) relacio semajaval egyezik meg.I Az unio es a metszet muveletek kommutatıvak:

R ∪ S = S ∪ R es R ∩ S = S ∩ R.

I Az unio es a metszet muveletek asszociatıvak:

R ∪ (S ∪T ) = (R ∪ S)∪T es R ∩ (S ∩T ) = (R ∩ S)∩T .I A kulonbseg muvelet altalaban nem kommutatıv:

R − S 6= S − R.21 / 87

Page 27: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Peldak

Vn

Kovács

Szabó

Kiss

Takács

Horváth

Tóth

Fazekas

Kn

László

Mária

István

József

Erzsébet

János

Ilona

HALLGATÓ(a)

Vnév

Nagy

Varga

Kovács

Dudás

Szabó

Knév

Zoltán

Gábor

László

Péter

Mária

OKTATÓ

Vn

Kovács

Szabó

Kiss

Takács

Horváth

Tóth

Fazekas

Nagy

Varga

Dudás

Kn

László

Mária

István

József

Erzsébet

János

Ilona

Zoltán

Gábor

Péter

(b)

Vn

Kovács

Szabó

Kn

László

Mária

(c) Vn

Kiss

Takács

Horváth

Tóth

Fazekas

Kn

Istán

József

Erzsébet

János

Ilona

(d) Vnév

Nagy

Varga

Dudás

Knév

Zoltán

Gábor

Péter

(e)

(b) HALLGATO ∪ OKTATO

(c) HALLGATO ∩ OKTATO

(d) HALLGATO − OKTATO

(e) OKTATO − HALLGATO22 / 87

Page 28: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Descartes-szorzatCARTESIAN PRODUCT vagy CROSS PRODUCT vagy CROSSJOIN

Altalanos alakja

R(A1,A2, . . . ,An)× S(B1,B2, . . . ,Bm)

I Ket tetszoleges semaju relacio kozott elvegezheto binarismuvelet.

I Az eredmenyul kapott Q relacio egy n + m fokszamu relacio,melynek semaja:

Q(A1,A2, . . . ,An,B1,B2, . . . ,Bm).

I |R|-rel es |S |-sel jelolve az eredeti ket relacio szamossagat, azeredmenyul kapott relacio szamossaga:

|R × S | = |R| · |S |.I Az eredmenyul kapott relacioban az eredeti ket relacio minden

rekordjanak osszes lehetseges kombinacioja szerepelni fog. 23 / 87

Page 29: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos osszekapcsolas

Altalanos alakja

R on〈osszekapcsolasi feltetel〉 S

I Binaris muvelet, operandusai R(A1,A2, . . . ,An) esS(B1,B2, . . . ,Bm) semaju relaciok.

I Az eredmenyul kapott Q egy n + m fokszamu relacio, melyneksemaja:

Q(A1,A2, . . . ,An,B1,B2, . . . ,Bm).

I Az eredmenyul kapott relacioban benne lesz az R es az Srelaciok rekordjainak minden olyan kombinacioja, amelykielegıti az osszekapcsolasi feltetelt.

I Megegyezik ket relacio Descartes-szorzatan vegrehajtottszelekcioval.

24 / 87

Page 30: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Az osszekapcsolasi feltetel

A join muvelet osszekapcsolasi feltetelenek altalanos alakja

〈feltetel〉AND〈feltetel〉AND . . .AND〈feltetel〉,

ahol

I mindegyik 〈feltetel〉 AiΘBj alaku,

I Ai az R attributuma,

I Bj az S attributuma,

I az Ai es Bj attributumok tartomanya megegyezik,

I Θ egyike a {=, 6=, <,>,≤,≥} halmaz osszehasonlıtomuveleteinek.

Az ilyen osszekapcsolasi feltetellel megadott altalanososszekapcsolasi muveletet theta join muveletnek is nevezzuk.

25 / 87

Page 31: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Egyenlosegen alapulo osszekapcsolas

DefinıcioAzt az altalanos osszekapcsolasi muveletet, amelynekosszekapcsolasi felteteleben csak az egyenlosegjel (=) szerepelosszehasonlıto muveleti jelkent, egyenlosegen alapuloosszekapcsolasnak vagy mas szoval equijoin muveletnek nevezzuk.

Az egyenlosegen alapulo osszekapcsolas eredmenyekent kapottrelacio minden rekordjaban van legalabb egy par azonos ertek.

26 / 87

Page 32: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Termeszetes osszekapcsolas

Az egyenlosegen alapulo osszekapcsolas eredmenyekent kapottrelacioban – a rekordokban felbukkano azonos ertekparok miatt –mindig talalhatok

”felesleges” ertekek.

I A termeszetes osszekapcsolas muveletet az egyenlosegenalapulo osszekapcsolas muveletebol szarmaztatjuk oly modon,hogy az ott kapott relaciobol eltavolıtjuk az osszekapcsolasalapjaul szolgalo, a hozzajuk tartozo ertekek egyenlosegemiatt felesleges attributumok egyiket.

I Az osszekapcsolando ket relacioban az osszekapcsolas alapjaulszolgalo attributumok nevenek meg kell egyezniuk.

Altalanos alakja

R ∗ S

27 / 87

Page 33: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Termeszetes osszekapcsolas

I Az eredmenyul kapott relacio semaja az eredeti ket relaciosemajanak az attributumait tartalmazza, am az osszekapcsolasalapjaul szolgalo attributumok kozul paronkent csak egyet.

I Az eredmenyul kapott relacio foka az eredeti ket relaciofokszamanak az osszegenel annyival kevesebb, ahany azonosnevu attributumot tartalmaznak.

I Az eredmenyul kapott relacio szamossaga 0-tol az eredetirelaciok szamossagainak szorzataig terjedhet.

28 / 87

Page 34: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacioalgebrai muveletek teljes halmazaBebizonyıthato, hogy a relacioalgebrai operatorok

{σ, π,∪,−,×}

halmaza teljes halmaz, azaz barmelyik masik relacioalgebraimuvelet kifejezheto ezen halmazbeli operatorokkal vegzettmuveletek sorozatakent. Azonban a lekerdezesek vegrehajtasa nemfeltetlen ıgy optimalis, pl. a Descartes-szorzat helyett erdemesebbaz osszekapcsolast hasznalni.

Pelda

R ∩ S ≡ (R ∪ S)− ((R − S) ∪ (S − R))

Pelda

R on〈feltetel〉 S ≡ σ〈feltetel〉(R × S)

29 / 87

Page 35: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osztas, hanyados

Altalanos alakjaR ÷ S

I Jeloljuk Z -vel az R semajat alkoto attributumok halmazat,X -szel az S semajat alkoto attributumok halmazat! Az osztasmuvelete akkor hajthato vegre, ha X ⊆ Z .

I Jeloljuk T -vel az eredmeny relaciot! Legyen Y = Z − X !Ekkor Y lesz a T semajat alkoto attributumok halmaza.

I A hanyados muvelet az alabbi muveletek sorozatakent foghatofel:

T1 ← πY (R)

T2 ← πY ((S × T1)− R)

T ← T1 − T2

I S attributumai az R attributumainak reszhalmaza.I Az eredmenyrelacio halmazaban R azon attributumai

szerepelnek, amelyek nem szerepelnek S-ben.30 / 87

Page 36: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda osztasra

Dszsz

1 650109 0812

1 650109 0812

2 620915 3134

1 720731 2985

1 720731 2985

2 551208 2219

2 551208 2219

2 551208 2219

2 551208 2219

1 680119 6749

1 680119 6749

2 690329 1099

2 690329 1099

1 410620 4902

1 410620 4902

1 371110 4519

Psz

1

2

3

1

2

2

3

10

20

30

10

10

30

30

20

20

SZSZ_PSZ

(a)

Psz

1

2

KOVÁCS_PSZ

Szsz

1 650109 0812

1 720731 2985

SZSZ

A

a1

a2

a3

a4

a1

a3

a2

a3

a4

a1

a2

a3

B

b1

b1

b1

b1

b2

b2

b3

b3

b3

b4

b4

b4

R

(b)

A

a1

a2

a3

S

B

b1

b4

T

(a) SZSZ(Szsz) ← SZSZ PSZ ÷ KOVACS PSZ(b) T ← R ÷ S

31 / 87

Page 37: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezes fa

I Hogyan dolgoz fel egy osszetett, bonyolult lekerdezest azRDBMS?

I Lekerdezes fa (query tree): egy olyan adatszerkezet, amelymegfelel egy relacios algebrabeli kifejezesnek. (Masikelnevezes: lekerdezes kiertekelesi fa)

I A lekerdezes belso reprezentalasara hasznaljak az RDBMS-ek.

I A fa leveleit a lekerdezes input relacioi alkotjak, a belsocsucsok pedig megfelelnek a lekerdezesbeli muveleteknek.

I A lekerdezes fa kiertekelese: alulrol felfele (levelektol agyokerig) haladva vegrehajtjuk a belso csucsokbelimuveleteket es az eredmenyul kapott relaciokkal helyettesıtjuka belso csucsokat. Ezt addig csinaljuk amıg a gyokerben elonem all a lekerdezes eredmenyet ado relacio.

I A lekerdezes fa egy hasznos eszkoz megjelenıtesre es alekerdezes megertesere.

32 / 87

Page 38: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda lekerdezes fara (1)

Minden Stafford i projektre listazzuk ki a projekt szamat, aprojektet ellenorzo iroda szamat es ennek az irodanak avezetojenek a nevet, lakcımet es szuletesi datumat.

πPnumber,Dnum,Lname,Address,Bdate(((σPlocation=Stafford’(PROJECT))

onDnum=Dnumber(DEPARTMENT))onMgr ssn=Ssn(EMPLOYEE))

33 / 87

Page 39: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda lekerdezes fara (2)

34 / 87

Page 40: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (1)

Adjuk meg az osszes olyan dolgozo nevet es lakcımet, aki a’Kutatas’ osztalyon dolgozik!

35 / 87

Page 41: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (1)

Adjuk meg az osszes olyan dolgozo nevet es lakcımet, aki a’Kutatas’ osztalyon dolgozik!

KUTATAS OSZT← σOnev=’Kutatas’(OSZTALY)

KUTATAS DOLG← (KUTATAS OSZTonOszam=Osz DOLGOZO)

EREDMENY← πVnev,Knev,Lakcım(KUTATAS DOLG)

35 / 87

Page 42: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (1)

Adjuk meg az osszes olyan dolgozo nevet es lakcımet, aki a’Kutatas’ osztalyon dolgozik!

KUTATAS OSZT← σOnev=’Kutatas’(OSZTALY)

KUTATAS DOLG← (KUTATAS OSZTonOszam=Osz DOLGOZO)

EREDMENY← πVnev,Knev,Lakcım(KUTATAS DOLG)

Egyetlen kifejezessel felırva:

πVnev,Knev,Lakcım(σOnev=′Kutatas′(OSZTALYonOszam=Osz DOLGOZO))

Ahogy a peldan lathato, az osszekapcsolas es a szelekcio muveleteksorrendje felcserelheto, de akar az altalanos osszekapcsolas helyetttermeszetes osszekapcsolast is hasznalhatnank egy atnevezestkovetoen.

35 / 87

Page 43: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (2)

Minden kecskemeti projekt eseten adjuk meg a projekt szamat, aprojektet iranyıto osztaly szamat, valamint az osztalyvezetovezeteknevet, lakcımet es szuletesi datumat!

36 / 87

Page 44: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (2)

Minden kecskemeti projekt eseten adjuk meg a projekt szamat, aprojektet iranyıto osztaly szamat, valamint az osztalyvezetovezeteknevet, lakcımet es szuletesi datumat!

KECSKEMETI PROJ← σPhelyszın=’Kecskemet’(PROJEKT)

IR OSZT← (KECSKEMETI PROJonOsz=Oszam OSZTALY)

PROJ OSZT VEZ← (IR OSZTonVez szsz=Szsz DOLGOZO)

EREDMENY← πPszam,Oszam,Vnev,Lakcım,Szdatum(PROJ OSZT VEZ)

36 / 87

Page 45: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (3)

Adjuk meg azon dolgozok vezetek- es keresztnevet, akik mindenolyan projekten dolgoznak, amit az 5-os osztaly iranyıt!

37 / 87

Page 46: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (3)

Adjuk meg azon dolgozok vezetek- es keresztnevet, akik mindenolyan projekten dolgoznak, amit az 5-os osztaly iranyıt!

OSZT5 PROJ(Psz)← πPszam(σOsz=5(PROJEKT))

DOLG PROJ(Szsz,Psz)← πDszsz,Psz(DOLGOZIK RAJTA)

E DOLG SZSZ← DOLG PROJ÷ OSZT5 PROJ

EREDMENY← πVnev,Knev(E DOLG SZSZ ∗ DOLGOZO)

37 / 87

Page 47: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (4)

Adjuk meg azon projektek projektszamait, amelyekhez koze van’Kovacs’ vezeteknevu dolgozonak, akar a projekten munkalkododolgozokent, akar a projektet iranyıto osztaly vezetojekent!

38 / 87

Page 48: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (4)

Adjuk meg azon projektek projektszamait, amelyekhez koze van’Kovacs’ vezeteknevu dolgozonak, akar a projekten munkalkododolgozokent, akar a projektet iranyıto osztaly vezetojekent!

KOVACSOK(Dszsz)← πSzsz(σVnev=’Kovacs’(DOLGOZO))

KOVACS MUNKAS PROJ← πPsz(DOLGOZIK RAJTA ∗ KOVACSOK)

VEZETOK← πVnev,Oszam(DOLGOZOonSzsz=Vez szsz OSZTALY)

KOVACS IR OSZT(Osz)← πOszam(σVnev=’Kovacs’(VEZETOK))

KOVACS IR PROJ← πPszam(KOVACS IR OSZT ∗ PROJEKT)

EREDMENY← (KOVACS MUNKAS PROJ ∪ KOVACS IR PROJ)

38 / 87

Page 49: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (4)

Adjuk meg azon projektek projektszamait, amelyekhez koze van’Kovacs’ vezeteknevu dolgozonak, akar a projekten munkalkododolgozokent, akar a projektet iranyıto osztaly vezetojekent!

KOVACSOK(Dszsz)← πSzsz(σVnev=’Kovacs’(DOLGOZO))

KOVACS MUNKAS PROJ← πPsz(DOLGOZIK RAJTA ∗ KOVACSOK)

VEZETOK← πVnev,Oszam(DOLGOZOonSzsz=Vez szsz OSZTALY)

KOVACS IR OSZT(Osz)← πOszam(σVnev=’Kovacs’(VEZETOK))

KOVACS IR PROJ← πPszam(KOVACS IR OSZT ∗ PROJEKT)

EREDMENY← (KOVACS MUNKAS PROJ ∪ KOVACS IR PROJ)

Egyetlen kifejezessel felırva:

πPsz(DOLGOZIK RAJTAonDszsz=Szsz(πSzsz(σVnev=’Kovacs’(DOLGOZO)))

∪ πPsz((πOszam(σVnev=’Kovacs’(πVnev,Oszam(DOLGOZO)))

onSzsz=Vez szsz OSZTALY))onOszam=Osz PROJEKT)

38 / 87

Page 50: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (5)

Adjuk meg azoknak a dolgozoknak a vezetek- es keresztnevet,akiknek nincs egyetlen hozzatartozojuk sem!

39 / 87

Page 51: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (5)

Adjuk meg azoknak a dolgozoknak a vezetek- es keresztnevet,akiknek nincs egyetlen hozzatartozojuk sem!

OSSZES DOLG← πSzsz(DOLGOZO)

DOLG HTVAL(Szsz)← πDszsz(HOZZATARTOZO)

DOLG HT NELKUL← (OSSZES DOLG− DOLG HTVAL)

EREDMENY← πVnev,Knev(DOLG HT NELKUL ∗ DOLGOZO)

39 / 87

Page 52: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (5)

Adjuk meg azoknak a dolgozoknak a vezetek- es keresztnevet,akiknek nincs egyetlen hozzatartozojuk sem!

OSSZES DOLG← πSzsz(DOLGOZO)

DOLG HTVAL(Szsz)← πDszsz(HOZZATARTOZO)

DOLG HT NELKUL← (OSSZES DOLG− DOLG HTVAL)

EREDMENY← πVnev,Knev(DOLG HT NELKUL ∗ DOLGOZO)

Egyetlen kifejezessel felırva:

πVnev,Knev((πSzsz(DOLGOZO) − ρSzsz(πDszsz(HOZZATARTOZO))) ∗ DOLGOZO)

A peldaban a Dszsz attributum Szsz-re torteno atnevezeseelhagyhato.

39 / 87

Page 53: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (6)

Adjuk meg azoknak az osztalyvezetoknek a nevet, akiknek legalabbegy hozzatartozojuk van!

40 / 87

Page 54: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Osszetett peldak (6)

Adjuk meg azoknak az osztalyvezetoknek a nevet, akiknek legalabbegy hozzatartozojuk van!

VEZETOK(Szsz)← πVez szsz(OSZTALY)

DOLG HTVAL(Szsz)← πDszsz(HOZZATARTOZO)

VEZETO HTVAL← (VEZETOK ∩ DOLG HTVAL)

EREDMENY← πVnev,Knev(VEZETO HTVAL ∗ DOLGOZO)

40 / 87

Page 55: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos projekcio

A projekcio muveletenek altalanosıtasa, amely megengediattributumok kulonbozo fuggvenyeinek szerepelteteset a projekcioattributumlistajaban.

Altalanos alakja

π〈attributumok feletti fuggvenylista〉(R)

Az 〈attributumok feletti fuggvenylista〉 az R relacio attributumaifelett definialt fuggvenyek egy listaja, amely tartalmazhataritmetikai, datum, konverzios es mas fuggvenyeket, tovabbakonstansokat. Akkor hasznos amikor szarmaztatott ertekeketakarunk a lekerdezes oszlopaiban megjelenıteni. A hasznalhatofuggvenyek listaja bovıtheto az RDBMS fejlodesevel.

41 / 87

Page 56: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda altalanos projekcio

Relacio:DOLGOZO(Szsz, Fizetes, Levonas, Dolgozott ev)

A report tartalmazza az alabbi oszlopokat:Netto fizetes = Fizetes - LevonasBonusz = 20000 * Dolgozott evAdo = 0.27 * Fizetes

REPORT←ρSzsz, Netto fizetes, Bonusz, Ado

(πSzsz,Fizetes−Levonas,20000∗Dolgozott ev,0.27∗Fizetes(DOLGOZO))

42 / 87

Page 57: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Csoportkepzo fuggvenyek es csoportosıtas

I A relacioalgebra alapmuveleteivel szinten nem lehet kifejezniaz alabbi tıpusu kereseket:I A relacio osszes rekordjan (matematikai) osszegzo fuggveny,

pl. osszeg vagy atlag, hasznalata egyes attributumokra. Ilyenaz osszes dolgozo atlagfizetese vagy darab szama.

I Az adatbazis rekordjainak csoportosıtasa egy (vagy tobb)attributum alapjan, majd osszegzo fuggveny hasznalata ezencsoportokon egyesevel. Peldaul, a dolgozok fizetesenek azatlaga irodankent.

I A legelterjedtebben hasznalt osszegzo (csoportkepzo)fuggvenyek: SUM, AVERAGE, MAXIMUM, MINIMUM,COUNT.

Altalanos alakja

〈csoportosıto attributumlista〉A〈fuggvenylista〉(R)

43 / 87

Page 58: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Csoportkepzo fuggvenyek es csoportosıtas

Funkcioja: csoportosıtja a rekordokat nehany attributum ertekeiszerint

I Az egyes csoportokon kulon-kulon alkalmazzuk az aggregalofuggvenyeket.

I Az eredmeny relacio attributumai a csoportosıtottattributumok es a fuggvenylista.

I A csoportosıto attributumokat nem kotelezo megadni.

I A muvelet eredmenye mindig relacio.

44 / 87

Page 59: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda csoportkepzo fuggvenyre

Listazzuk ki minden egyes irodara az iroda szamat, az ott dolgozokszamat es az atlagfizetesuket.

ρIroda, Dolg szama, Atlag fizetes(

〈Iroda〉A〈COUNT Szsz, AVERAGE Fizetes〉(DOLGOZO))

45 / 87

Page 60: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Rekurzıv (tranzitıv) lezart muveletI Gyakori feladat a tobbszoros kapcsolat feltarasa abban az

esetben, amikor ugyanazon egyedtıpus egyedei kerulnekegymassal kapcsolatba. Peldak:I a dolgozoknal a fonok-beosztott viszony, ahol adjuk meg egy

dolgozo osszes fonoket vagy egy fonok osszes beosztottjat azalacsonyabb szinteket is beleertve (nem-szimmetrikus);

I egy kapcsolati haloban a teljes barati kor meghatarozasa, azaza baratok, azok baratjai es ıgy tovabb (szimmetrikus).

I Ez adott szintig a relacioalgebra alapveto osszekapcsolasimuveleteivel megoldhato de tetszoleges szintig mar nem.

I A tranzitıv lezartja egy R relacionak a matematikaban: az aminimalis R+ relacio, amely tartalmazza R-et es tranzitıvanzart. (szimmetrikus vs. nem-szimmetrikus)

I Az SQL-ben ketfelekeppen implementalt: SQL1999 szabvanyszerint a common table expressionnal (CTE), az ORACLEaltal javasolt nem szabvanyos, de elterjedt CONNECT BYkonstrukcioval.

46 / 87

Page 61: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda tranzitıv lezartraListazzuk ki az osszes vezetot a beosztottjaival egyutt ahierarchianak megfeleloen.

SELECT LEVEL, LPAD (’ ’, 2 * (LEVEL - 1))

|| ename "employee", empno, mgr "manager"

FROM emp START WITH mgr IS NULL

CONNECT BY PRIOR empno = mgr;

A lekerdezes eredmenye:

level | employee | empno | manager

-------+-------------+-------+---------

1 | KING | 7839 |

2 | JONES | 7566 | 7839

3 | SCOTT | 7788 | 7566

4 | ADAMS | 7876 | 7788

3 | FORD | 7902 | 7566

4 | SMITH | 7369 | 7902

2 | BLAKE | 7698 | 7839

47 / 87

Page 62: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Kulso osszekapcsolas (OUTER JOIN)

I Problemak az alapveto osszekapcsolasi muveletekkel (belso,termeszetes):I Azok a rekordok, amelyeknek nincs parjuk a masik

osszekapcsolando relacioban, elvesznek.I Szinten elvesznek azok a rekordok, melyek az osszekapcsolo

attributum(ok) szerint NULL erteket vesznek fel.

I A kulso osszekapcsolast (outer join) ezen problemakkikuszobolesere terveztek, az SQL2-tol standard.

I A baloldali (jobb oldali, teljes) osszekapcsolas, LEFT (RIGHT,FULL) OUTER JOIN az egyezo rekordok mellett megtartja azelso vagy baloldali (masodik, mindket) relacio osszes rekordjatugy, hogy a par nelkul marado rekordoknal a masik relacioattributumait NULL ertekkel tolti fel.

A baloldali (jobboldali, teljes) kulso osszekapcsolas altalanos alakja:

R on (on,on)〈osszekapcsolasi feltetel〉S

48 / 87

Page 63: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda kulso osszekapcsolasra

Listazzuk ki az osszes dolgozot es az irodakat, amelyeket vezetnek.Ha egy dolgozo nem vezet egyetlen irodat sem akkor legyen ezNULL ertek, de ez a dolgozo is keruljon be a listaba.

RESULT←πNev, Iroda nev(DOLGOZO onSzsz=Vez szsz IRODA)

49 / 87

Page 64: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Kulso unio

I A kulso unio (outer union) muvelet arra szolgal, hogy olyanrelaciokat is egyesıteni tudjunk, amelyek csak reszlegesenuniokompatibilisek, azaz vannak kozos, de vannak kulonbozoattributumaik is.

I A muvelet egyesıti az R(X ,Y ) es az S(X ,Z ) relaciokatolymodon, hogy az eredmeny egy T (X ,Y ,Z ) relacio lesz,amely tartalmazza a ket relacio osszes rekordjat ugy, hogy azunio-kompatibilis attributumok csak egyszer szerepelnek es anem unio-kompatibilis attributumok is megmaradnak, aholezek ertelmezettek.

I Ugyanaz mint a FULL OUTER JOIN a kozos attributumokon.

I A standard SQL-nek nem resze de pl. a SAS PROC SQLeljarasa hasznalja OUTER UNION kulcsszoval hivatkozva ra.

50 / 87

Page 65: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacio algebra muveletei (1)

51 / 87

Page 66: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacio algebra muveletei (2)

52 / 87

Page 67: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezes-feldolgozas es optimalizalasI Hogyan dolgozza fel, optimalizalja es hajtja vegre egy DBMS

egy magas szintu, pl. SQL-ben megadott, lekerdezest?I A magas szintu nyelven megadott lekerdezes elofeldolgozasa:

I Szkenneles: a lekerdezes tokenizalasa, SQL kulcsszavak,attributum es relacio nevek azonosıtasa.

I Parszolas: a lekerdezes szintaktikus ellenorzese, a lekerdezonyelv szabalyainak valo megfeleles ellenorzese.

I Validalas: annak ellenorzese, hogy minden attributum esrelacio nev ervenyes es szemantikus jelentessel bıro nevek azadatbazis semajaban.

I A lekerdezes belso reprezentaciojanak letrehozasa: lekerdezesfa. Esetenkent graf adatszerkezetet hasznalnak: lekerdezesgraf.

I A DBMS ezutan vegrehajtasi vagy lekerdezesi tervet keszıt alekerdezes eredmenyenek kinyeresere az adatbazisbol.

I Egy elkerdezes eredmenye altalaban tobb vegrahajtasistrategiaval is eloallıthato, az a folyamat, amely ezek kozulegy alkalmasat (vagy a legalkamasabbat) kivalasztja alekerdezes optimalizalas. 53 / 87

Page 68: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes feldolgozas lepesei

Magas szintu nyelven megadott lekerdezes↓

Szkenneles, parszolas es validalas↓

A lekerdezes belso reprezentalasa↓

Lekerdezes optimalizalas↓

Vegrehajtasi terv↓

Lekerdezes kod-generalas↓

Kod a lekerdezes vegrehajtasara↓

Futtato adatbazis-processzor↓

Lekerdezes eredmenye54 / 87

Page 69: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezes optimalizalasI A lekerdezes optimalizalas modszereit az RDBMS-eken

keresztul vizsgaljuk mivel a mas paradigman alapulorendszerek is ezeknek a modszereknek a tobbseget adaptaltak.

I Az RDBMS szisztematikusan kiertekeli az alternatıvvegrehajtasi strategiakat es kivalaszt egy esszeruen hatasostvagy kozel optimalisat.

I Minden DBMS-nek tobb altalanos adatbazis eleresi algorit-musa van, amely olyan relacio algebrabeli muveleteket imple-mental mint a SELECT vagy a JOIN. Az optimalizacios modulezeket az eleresi algoritmusokat es a konkret fizikai adatbazistervezesi reszleteket veszi figyelembe a dontesei soran.

I Optimalizacios modszerek:I heurisztikus szabalyok: a muveletek sorrendjet hatarozzak meg

a lekerdezes vegrehajtasi strategiaban. A legtobb esetben jolmukodnek de nem mindig.

I szisztematikus becsles: a kulonbozo vegrehajtasi strategiakkoltsegenek meghatarozasa, majd azok kozul a legkisebbkivalasztasa.

I A gyakorlatban ezek a modszerek rendszerint kombinalodnak.55 / 87

Page 70: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

SQL lekerdezesek lefordıtasa a relacioalgebrara

I A legtobb gyakorlatban hasznalt RDBMS lekerdezo nyelve azSQL.

I Eloszor az SQL lekerdezest a kiterjesztett relacioalgebra egykifejezeseve fordıtjuk le, majd ezt a kifejezest optimalizaljuk.

I Az SQL lekerdezeseket altalaban lekerdezes blokkokka (queryblock) bontjuk fel, amelyek azokat az alapelemeket alkotjakamelyeket algebrai muveletekre fordıtunk le, majdoptimizalunk.

I Egy lekerdezes blokk egyszeru SELECT-FROM-WHEREkifejezeseket vagy GROUP BY es HAVING kulcsszavakattartalmaz.

I A beagyazott lekerdezesek kulonbozo lekerdezes blokkokkentazonosıtodnak be.

56 / 87

Page 71: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda blokkosıtasra (1)Listazzuk ki azon dolgozo fizeteset akik tobbet keresnek minden 5osztalyon dolgozonal.

SELECT Vnev, Knev

FROM DOLGOZO

WHERE Fizetes > ( SELECT MAX (Fizetes)

FROM DOLGOZO

WHERE Osztaly=5 );

Lekerdezes blokkokra valo dekompozıcio. Belso blokk:

SELECT MAX (Fizetes)

FROM DOLGOZO

WHERE Osztaly=5

Kulso blokk:

SELECT Vnev, Knev

FROM DOLGOZO

WHERE Fizetes > c

ahol c a belso lekerdezes blokk eredmenye.57 / 87

Page 72: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda blokkosıtasra (2)

A lekerdezes blokkok lefordıtasa a relacioalgebra egy kifejezesere.Belso blokk:

AMAX Fizetes(σIroda=5(DOLGOZO))

A kulso blokk:

πVnev, Knev(σFizetes>c(DOLGOZO))

A helyzet akkor egyszeru ha beagyazott (nested) lekerdezes van. Akorrelalt beagyazott lekerdezes bonyolultabb.

58 / 87

Page 73: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Rendezes

I A rendezes a lekerdezes feldolgozas egyik legfontosabbalgoritmusa, hasznaljuk pl. az ORDER BY, JOIN, UNION,INTERSECTION es PROJECT (duplikatum eltavolıtas)muveleteknel.

I Fajtai:I belso (internalis) rendezes: amikor a rendezendo adatszerkezet

elfer a memoriaban. Ezek az algoritmusok az Adatszerkezetekes algoritmusok tıpusu targyakban kerulnek ismertetesre.

I kulso (externalis) rendezes: amikor a rendezendo adatszerkezet(fajl, tabla) nem fer el a memoriaban.

I A legelterjedtebb kulso rendezo algoritmus a sort-merge,amely a rendezendo fajlt kisebb fajlokra, un. futamokra,osztja, amelyek mar elfernek a memoraban.I sort fazis: a futamok rendezese a memoriaban belso rendezesi

modszerrel.I merge fazis: a rendezett futamok osszefesulese, esetleg tobb

lepesben a teljes fajl meretetol fuggoen.

59 / 87

Page 74: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A SELECT muvelet algoritmusai (1)I Tobb algoritmus hasznalatos a SELECT muvelet

vegrehajtasara, amelyek alapvetoen keresest jelentenek egylemezfajl rekordjai kozott.

I Egyes keresesi algoritmusok fuggenek attol, hogy adott-e afajlon valamilyen specialis eleresi ut (pl. index, hash kulcs stb.)es csak bizonyos szelekcios feltetelek eseten alkalmazhatoak.

I Ketfele mod: fajl vagy index szkenneles.I Egyszeru szelekcios algoritmusok:

I Linearis kereses (nyers ero modszer): a fajl minden rekordjarateszteli a szelekcios feltetelt.

I Binaris kereses: szelekcios feltetelben egyenloseg alapuosszehasonlıtas a kulcs attributum alapjan, mely szerint a fajlrendezett.

I Elsodleges index: szelekcios feltetelben egyenloseg alapuosszehasonlıtas a kulcs attributum szerint, melyhez adott egyelsodleges index.

I Hash kulcs: szelekcios feltetelben egyenloseg alapuosszehasonlıtas a kulcs attributumon, melyhez adott egyhash-tabla.

60 / 87

Page 75: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A SELECT muvelet algoritmusai (2)I Egyszeru szelekcios algoritmusok:

I Elsodleges index tobb rekord kinyeresere: egyenlotlensegenalapulo osszehasonlıtasnal kulcs-attributumon, az egyenlosegmegtalalasa majd az osszes azt megelozo (<) vagy utanakovetkezo (>) rekord levalogatasa.

I Csoportosıto index tobb rekord kinyeresere: egyenloseg alapuosszehasonlıtas nem-kulcs attributumon ha van aszerinticsoportosıto index.

I Masodlagos (B+-fa) index egyenloseg alapu osszehasonlıtasraI Osszetett szelekcios algoritmusok konjunktıv (es) feltetel

eseten:I Individualis index: hasznaljuk az elozo algoritmusok

valamelyiket a reszfeltetelekre egyenkent majd ellenorizzuk,hogy a tovabbi feltetelek teljesulnek-e.

I Osszetett index: ha adott ilyen index az attributumok azoncsoportjan melyek az osszetett feltetelben szerepelnek.

I Record-mutatok metszete: reszfelteteleknek eleget tevo rekordmutatok kikeresese majd ezek metszetenek az eloallıtasa.

I Diszjunktıv (vagy) szelekcios feltetel: nehezebb kezelni.61 / 87

Page 76: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A JOIN muvelet implementalasaI A JOIN egyike a legidoigenyesebb muveleteknek a lekerdezes

feldolgozasnal.I Az EQUIJOIN (NATURAL JOIN) muveletet vizsgaljuk.I Ket- tobb-utas osszekapcsolas resztvevo relaciok szama

szerint.I Implementacios modszerek ket-utas osszekapcsolasra:

I Beagyazott ciklusu osszekapcsolas: default nyers eromegkozelıtes. Minden egyes rekordot az elso relaciobol (kulsociklus) osszehasonlıtunk a masik relacio minden rekordjaval(belso ciklus) a tesztfeltetel szerint.

I Egyciklusu osszekapcsolas: az osszekapcsolo attributumokegyikere adott egy index (vagy hash-kulcs). Ekkor a masikattributum minden elofordulo ertekehez kozvetlenul ki tudjuknyerni az egyezo rekordot.

I Sort-merge osszekapcsolas: ha mindket relacio rekordjaifizikailag rendezettek. A leghatekonyabb osszekapcsolasialgoritmus.

I Particionalo hash osszekapcsolas: mindket relacio ugyanazonhash fuggveny alapjan particionalva van.

62 / 87

Page 77: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A projekcio es a halmazmuveletek algoritmusaiI A projekcio vegrehajtasa, ha az attributumlista tartalmazza a

kulcsot, egyszeru hiszen minden rekord megmarad a listabeliattributumokhoz tartozo ertekekkel.

I Ha az attributumlista nem tartalmazza a kulcsot, akkor aduplikalt rekordokat el kell tavolıtani, amely vagy rendezesselvagy hashelessel megteheto.

I A halmazmuveleteket tobb esetben koltseges implementalni.Kulonosen igaz ez a Descartes szorzatra, amelynek eredmenyetartalmazza a ket relacio osszes kombinaciojat az osszesattributummal egyutt. Igy ha az egyik relacioban n rekord vanj attributumra, a masikban pedig m rekord k attributumra,akkor az eredmenyben n ×m rekord lesz j + k attributumra.Ezert ezt a muveletet keruljuk el.

I Az unio, metszet es kulonbseg muveletek leghatekonyabbvegrehajtasi modja a sort-merge algoritmus. A relaciokatrendezzuk a kozos attributumok menten, ez altalaban a kulcs,majd osszefesuljuk az adott halmazmuvelet szerint.

I Masik modszer a hasheles. 63 / 87

Page 78: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Csoportkepzo muveletek implementalasa

I Amikor a csoportkepzo fuggvenyt a teljes tablara alkalmazzuk,akkor a szamolast vagy a teljes tabla atfesulesevel vagy egyalkalmas index hasznalataval vegezhetjuk el.

I Ha pl. a MAX fuggveny eseten adott egy B+-fa index azosszegzendo attributumon, akkor a faban jobbra haladvatalaljuk meg a maximalis erteket.

I Az AVERAGE es SUM fuggvenyek meghatarozasahoz suruindex kell, amely minden rekordot indexel a fajlban.

I A GROUP BY feltetel hasznalata eseten az osszegzomuveletet a csoportosıto attributum ertekei szerint particionaltcsoportok mindegyiken elkulonıtve kell vegrehajtani. Aszokasos megkozelıtes: eloszor rendezessel (vagy hasheles) afajl particionalasa a csoportosıto attributumok alapjan majdaz osszegzo fuggveny kiszamolasa a csoportokon.

I Ha adott egy un. csoportosıto index a csoportosıtoattributum(ok)on, akkor a rekordok mar particionalva vannak.

64 / 87

Page 79: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Kulso osszekapcsolas implementalasa (1)

I A kulso (baloldali, jobboldali, teljes) osszekapcsolasimuveletek visszavezethetoek a belso osszekapcsolasi muveletrees bizonyos halmazmuveletekre illetve azok algoritmusaira.

Pelda:

SELECT Vnev, Knev, Irodanev

FROM (DOLGOZO LEFT OUTER JOIN IRODA

ON Dolg_iroda=Iroda_azon);

Relacio algebrabeli muveletekre valo felbontas:1. A ket tabla belso osszekapcsolasa:

TEMP1← πVnev, Knev, Irodanev(DOLGOZOonDolg iroda=Iroda azon IRODA)

2. Azon dolgozok levalogatasa melyek nem talalhatoak a belsoosszekapcsolasban:

TEMP2← πVnev, Knev(DOLGOZO)–π(TEMP1)

65 / 87

Page 80: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Kulso osszekapcsolas implementalasa (2)

3. A TEMP2 relacio Irodanev attributummal valo kiegeszıtese esNULL ertekkel valo feltoltese:

TEMP2← TEMP2× NULL

4. A ket ideiglenes relacio unionalasa adja a baloldali kulsoosszekapcsolast:

RESULT← TEMP1 ∪ TEMP2

66 / 87

Page 81: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Muveletek osszekotese (csovezetekek)

I Egy SQL lekerdezes relacioalgebrara valo lefordıtasakoraltalaban relacios muveletek egy sorozatat kapjuk.

I Egy elemi muvelet vegrehajtasakor ideiglenes fajl keletkezik alemezen, mely esetenkent jelentos tobbletterhelest (overhead)jelenthet.

I A szuksegtelen ideiglenes fajlok elkerulesere az optimalizalokepes a muveletek algoritmusait osszekombinalni es ugyfuttatni.

I Peldaul: egy osszekapcsolasi, ket szelekcios es egy projekciosmuveletet nem feltetlen egyenkent hajtja vegre az optimalizalohanem az algoritmusait osszekapcsolja. Ez az osszetettlekardezes ket input fajlbol hoz letre egy output fajlt. Aszetbontasnal keletkezo 4 ideiglenes fajl helyett a kombinaltalgoritmus az eredmenyt kozvetlenul hozza letre.

I A fenti megkozelıtest pipelinolasnak vagy stream alapufeldolgozasnak nevezzuk.

67 / 87

Page 82: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Heurisztika a lekerdezes optimalizalasbanI A szkenner es a parszer eloszor letrehozza a kezdeti lekerdezes

reprezentaciohoz tartozo adatszerkezetet, majd azoptimalizalo heurisztikus szabalyok alapjan optimalizalja azt.Ennek eredmenye az optimalizalt lekerdezes reprezentacio,amely mar megfelel a lekerdezes vegrehajtasi strategianak.Ezutan egy vegrehajtasi terv generalodik, amely mar alkalmasa muveletek egyuttesenek elvegzesere a felhasznalva alekerdezesben hivatkozott fajlokhoz tartozo eleresi utakat.

I Az egyik legfontosabb heurisztikus szabaly: a szelekcios esprojekcios muveleteket, amennyiben lehet, alkalmazzuk azosszekapcsolasi muveletek elott, mivel ez utobbi multiplikatıvfuggvenye az input fajlok meretenek.

I Lekerdezes fa: fa alaku adatszerkezet, lekerdezes graf: egyneutralisabb graf szekezet, a muveleteknek nincs kituntetettsorrendje. Minden lekerdezesnek csak egy lekerdezes grafjavan viszont lehet tobb (ez altalaban ıgy is van) lekerdezesfaja. Az optimalizalo altalaban a lekerdezes fat preferalja.

68 / 87

Page 83: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda lekerdezes fara es grafra (1)

Minden Stafford i projektre listazzuk ki a projekt szamat, aprojektet ellenorzo iroda szamat es ennek az irodanak avezetojenek a nevet, lakcımet es szuletesi datumat.

πPnumber,Dnum,Lname,Address,Bdate(((σPlocation=Stafford’(PROJECT))

onDnum=Dnumber(DEPARTMENT))onMgr ssn=Ssn(EMPLOYEE))

69 / 87

Page 84: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Pelda lekerdezes fara es grafra (2)

70 / 87

Page 85: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa

Listazzuk ki azoknak a vezeteknevet, akik 1957 utan szulettek esaz ‘Aquarius’ projekten dolgoznak.

Az SQL lekerdezes:

SELECT Lname

FROM EMPLOYEE, WORKS_ON, PROJECT

WHERE Pname=‘Aquarius’ AND Pnumber=Pno AND Essn=Ssn

AND Bdate > ‘1957-12-31’;

71 / 87

Page 86: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa (1)

72 / 87

Page 87: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa (2)

73 / 87

Page 88: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa (3)

74 / 87

Page 89: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa (4)

75 / 87

Page 90: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A lekerdezes fa optimalizalasa (5)

76 / 87

Page 91: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A relacio egy masik definıciojaI Szamos olyan transzformacios szabaly van relacioalgebrabeli

muveletekre, amelyek ekvivalensek egymassal.I Lekerdezes optimalizalas szempontjabol csak muveletek

jelentese es az eredmenyul kapott relacio az erdekes.I Ezert, ha ket relacio csak az attributumok sorrendjeben ter el

egymastol de ugyanazokat az adatokat reprezentaljak, akkorazokat ekvivalensnek tekintjuk egymassal.

I A relacio egy alternatıv definıcioja. Legyen R(A1,A2, . . . ,An)egy relaciosema. Ekkor egy t rekord alatt az r relacioban egyt : R → D lekepezest ertunk, aholD := dom(A1)× . . .× dom(An). Ebben a definıciobant[Aj ] ∈ dom(Aj) minden j-re. Valojaban t-t 〈attributum,ertek〉 parok egy halmaza alkotja, ahol az erteknek az adottattributum tartomanyabol kell kikerulnie (a NULL erteket isbeleertve). Ebben a modellben, mivel egy halmaz elemeitetszoleges sorrendben lehetnek, nem szamıt az attributumokkonkret sorrendje. Termeszetesen a fizikai tarolasnal ez marnincs ıgy. 77 / 87

Page 92: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos transzformacios szabalyok (1)1. σ kaszkadolasa: a konjunktıv szelekcio egyedi szelekciok egysorozatava alakıthato

σC1 AND C2 AND ... AND Cn(R) ≡ σC1(σC2(. . . (σCn(R)) . . .))

2. σ kommutativitasa: a szelekcio kommutatıv

σC1(σC2(R)) ≡ σC2(σC1(R))

3. π kaszkadolva: projekcio muveletek egy sorozataban az utolsokivetelevel mindegyik elhagyhato

πlista1(πlista2(. . . (πlistan(R)) . . .)) ≡ πlista1(R)

4. σ es π kommutativitasa: ha a C szelekcios feltetel csak aprojekciobeli attributumokat tartalmazza, akkor a ket muveletfelcserelheto

πA1,A2,...An(σC (R)) ≡ σC (πA1,A2,...An(R))

78 / 87

Page 93: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos transzformacios szabalyok (2)5. on (×) kommutativitasa: az osszekapcsolas (Descartes-szorzat)muvelete kommutatıv

R onC S ≡ S onC R (R × S ≡ S × R)

6. σ es on (×) kommutativitasa: a szelekcio es osszekapcsolas(Descartes-szorzat) muvelete felcserelheto amennyiben a szelekciosfeltetelben szereplo attributumok csak az egyik, pl. az R,relacioban szerepelnek

σC (R on S) ≡ (σC (R))on S

Ez a szabaly a kovetkezo modon altalanosıthato:

σC1 AND C2(R on S) ≡ (σC1(R))on(σC2(S))

ahol a C1 feltetelbeli attributumok csak az R relacioban, aC2-beliek pedig csak S-ben szerepelnek.

79 / 87

Page 94: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos transzformacios szabalyok (3)7. π es on (×) kommutativitasa: ha a projekcio attributumlistajaL = {A1, . . . ,An,B1, . . . ,Bm} ahol az A attributumok R-beliek, aB-k pedig S-beliek es a C feltetel csak L-beli attributumokattartalmaz, akkor

πL(R onC S) ≡ (πA1,...,An)onC (πB1,...,Bm)

Ha C -ben vannak meg tovabbi attributumok, akkor ezekkelbovıteni kell a megfelelo projekcios listakat. A szabaly aDescartes-szorzatra is ervenyes.8. A halmazmuveletek kommutativitasa: Az unio (∪) es a metszet(∩) halmazmuveletek kommutatıvak, a kulonbseg (\ vagy −) marnem.9. on, ×, ∪, ∩ asszociativitasa: ezen negy muvelet mindegyikeasszociatıv, azaz ha ◦ jeloli valamelyiket ezek kozul, akkor

(R ◦ S) ◦ T ≡ R ◦ (S ◦ T )

80 / 87

Page 95: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Altalanos transzformacios szabalyok (4)

10. σ es a halmazmuveletek kommutativitasa: a szelekciofelcserelheto a harom halmazmuvelet mindegyikevel. Ha ◦ jelolivalamelyik halmazmuveletet, akkor

σC (R ◦ S) ≡ (σC (R)) ◦ (σC (S))

11. π es ∪ kommutatıv:

πL(R ∪ S) ≡ (πL(R)) ∪ (πL(S))

12. (σ,×) sorozat on-na alakıtasa: ha a szelekcio feltetele egyosszekapcsolasi feltetel a Descartes-szorzat utan, akkor azatalakıthato osszekapcsolassa (inner join)

σC (R × S) ≡ (R onC S)

81 / 87

Page 96: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A heurisztikus algebrai optimizalo algoritmus vazlata (1)

I Hasznaljuk az 1. szabalyt az osszes SELECT-nel annakkaszkadolasara. Ez megnoveli szabadsagunkat ezen muveletekmozgatasara.

I Hasznaljuk a 2., 4., 6. es 10. szabalyokat a SELECT es masmuveletek felcsrelhetosegere. Ennek reven ha olyan szelekciosfeltetelunk van, amely csak egy relaciora vonatkozik, akkor aztmozgassuk a lekerdezes fa legaljara. Ha olyan szelekciosfeltetelunk van, amely ket tablara vonatkozik, akkor aztmozgassuk kozvetlen ezen tablak osszekapcsolasa fele a faban.

I Hasznaljuk az 5. es 9. szabalyokat, mint a binaris muveletekkommutatıv es asszociatıv szabalyait, arra, hogy atrendezzuka fa leveleit. Az atrendezes celja, hogy a legmegszorıtobbSELECT muvelet keruljon a fa baloldalara es ıgy hajtodjonvegre legeloszor. A legmegszorıtobb SELECT: a legkevesebbrekordot eredmenyezi abszolut vagy relatıv ertelemben. Masikszempont, hogy lehetoleg keruljuk el a Descartes szorzatot.

82 / 87

Page 97: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

A heurisztikus algebrai optimizalo algoritmus vazlata (2)

I Hasznaljuk a 12. szabalyt, hogy egy Descartes szorzatot esegy ra vonatkozo szelekcios feltetelt helyettesıtsunk egyosszekapcsolassal, amennyiben a feltetel osszekapcsolasifeltetel.

I Hasznaljuk a 3., 4., 7. es 11. szabalyokat a projekciosmuveletek kaszkadolasara es mas muveletekkel valofelcserelesere azert, hogy a projekcios attributum lista elemeitolyan melyre vigyuk a faban amennyire ez csak lehetseges.Csak azok az attributumok maradjanak meg egy projekcioutan, amelyekre valoban szukseg is van a kesobbiekben.

I Azonosıtsuk azokat a reszfakat, amelyek olyanmuveletcsoportot reprezentalnak, melyeket osszekotes utanegy egyszeru algoritmussal vegre tudunk hajtani.

Az egyik legalapvetobb elv, hogy azokat a muveleteketalkalmazzuk eloszor, amelyek a legjobban csokkentik a keletkezorekordok szamat, a kozbenso ideiglenes allomanyok meretet.

83 / 87

Page 98: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezes vegrehajtasi terv

I Egy relacioalgebrabeli lekerdezesre keszıtett vegrehajtasi tervaz alabbiakbol all:I az optimalizalt lekerdezes fa;I az erintett relaciokhoz tartozo eleresi modok;I azok a modszerek, amelyekkel a lekerdezes faban szereplo

relacios muveleteket vegre kell hajtani.

I Materializalt kiertekeles: a muveletek eredmenyei eltarolodnakideiglenes relaciok formajaban.

I Pipeline-osıtott kiertekeles: egy vegrehajtott muveleteredmenye rogton tovabb kuldodik a soron kovetkezomuvelethez.

84 / 87

Page 99: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Koltseg-alapu optimalizalasEgy lekerdezes vegrehajtasa koltsegeinek becslese es ossze-hasonlıtasa kulonbozo vegrehajtasi strategiak menten es alegkisebb koltsegu strategia kivalasztasa.

Koltsegtenyezok:

I A masodlagos tarolo eleresi koltsege: mindenfele fajl atvitelikoltseg a fo memoria es a masodlagos (hatter) tarolo kozott,lemez I/O koltseg.

I Tarolasi koltseg (a lemezen): a letrejovo ideiglenes fajloktarolasi koltsege.

I Szamıtasi koltsegek: a memoriabeli muveletek (pl. kereses,rendezes) koltsege, CPU koltseg.

I Memoria hasznalati koltseg: a memoria puffer hasznalatanakkoltsege.

I Kommunikacios koltsegek: tipikusan a lekerdezes helye(terminal) es az adatbazis-szerver kozotti kommunikacioskoltseg.

85 / 87

Page 100: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Lekerdezes optimalizalas az ORACLE-benI Szabaly-alapu lekerdezes optimalizalas: az optimalizalo a

vegrehajtasi tervek kozott a heurisztikusan rangsoroltmuveletek alapjan valaszt. Egy 15 foku skalan meri ahatekonysagot, ahol a ROWID a leghatekonyabb, amikor is arekord kozvetlen fizikai cıme adott. (Kivezetes alatt van arendszerbol.)

I Koltseg-alapu lekerdezes optimalizalas: az optimalizalomegvizsgalja az alternatıv eleresi utakat es muveleteialgoritmusokat, majd azt a vegrehajtasi tervet valasztja,amelyik a legalacsonyabb koltsegu. A koltsegek a korabbanleırt tıpusuak lehetnek.

I Az alkalmazasfejlesztok utmutatast (hint) adhatnak azoptimalizalonak. Az otlet emogott az, hogy azalkalmazasfejlesztok tobb informacioval rendelkeznek azadatokrol mint a semleges optimalizalo. Igy peldaul, ha egyszelekcios feltetelnek eleget tevo rekordok aranyaiban kevesenvannak, akkor ezt kozolni tudjuk az optimalizaloval (ferfi-noarany nem kiegyensulyozott). 86 / 87

Page 101: Lekérdezonyelvek, relációalgebra, lekérdezés-optimalizálásAz … · 1Az el}oad as Elmasry & Navathe: Fundamentals of Database Systems, 6th Edition alapj an k eszult. (Az abr

Szemantikus lekerdezes optimalizalas

I Ez a megkozelıtesi mod, mely kombinaltan is hasznalhato akorabbiakkal, figyelembe veszi az adatbazis semara adottmegszorıtasokat is, pl. egyedintegritasi vagy mas osszetettebbmegszorıtast, azert, hogy a lekerdezest ugy modosıtsa, hogyazt hatekonyabban lehessen vegrehajtani.

I Egy pelda erre azon dolgozok lekerdezese, akik tobbetkeresnek a fonokuknel azon szemantikus megszorıtas mellett,melyet pl. ASSERTION-kent tudunk definialni, hogy ilyennem lehet. Szemantikus optimalizalas eseten, ahelyett, hogyvegrehajtodna a lekerdezes es rekordonkent ellenoriznenk ezt afeltetelt, az optimalizalo, megallapıtja, hogy a lekerdezeseredmenye megsertene a megszorıtasokat ıgy az eredmeny azaz ures relacio.

I Az alkalmazott modszerek koze tartoznak formalis nyelvek estetelbizonyıtasi modszerek.

87 / 87