• Nem Talált Eredményt

Adatbázisok elmélete 15. el ˝oadás

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Adatbázisok elmélete 15. el ˝oadás"

Copied!
80
0
0

Teljes szövegt

(1)

I. B. 137/b

kiskat@cs.bme.hu

http://www.cs.bme.hu/˜kiskat

2004

(2)

Többérték ˝ u függés

A legfontosabb a funkcionális függés, de vannak másféle függések is.

(3)

Motiváló példa: R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

(4)

Többérték ˝ u függés

A legfontosabb a funkcionális függés, de vannak másféle függések is.

Motiváló példa: R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. (Pl. beszúrni nehéz, mert amikor egy sort beszúrok,

figyelni kell arra, hogy egy másikat is beszúrjak.)

(5)

Motiváló példa: R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. (Pl. beszúrni nehéz, mert amikor egy sort beszúrok,

figyelni kell arra, hogy egy másikat is beszúrjak.)

Jobb lenne tárolni (Név, Tantárgy) és (Név, Gyereknév) felbontásban.

(6)

Többérték ˝ u függés

A legfontosabb a funkcionális függés, de vannak másféle függések is.

Motiváló példa: R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. (Pl. beszúrni nehéz, mert amikor egy sort beszúrok,

figyelni kell arra, hogy egy másikat is beszúrjak.)

Jobb lenne tárolni (Név, Tantárgy) és (Név, Gyereknév) felbontásban.

Ok: a Tantárgy és a Gyereknév független (minden kombinációban el ˝ofordulnak)

(7)

Motiváló példa: R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. (Pl. beszúrni nehéz, mert amikor egy sort beszúrok,

figyelni kell arra, hogy egy másikat is beszúrjak.)

Jobb lenne tárolni (Név, Tantárgy) és (Név, Gyereknév) felbontásban.

Ok: a Tantárgy és a Gyereknév független (minden kombinációban el ˝ofordulnak) =⇒ ha látjuk az els ˝o két sort, tudjuk, hogy a másik kett ˝o is ott van.

(8)

Többérték ˝ u függés

Definíció. Az X attribútumhalmaztól többérték ˝uen függ az Y attribútumhalmaz az r

relációban (jele: X Y), ha tetsz ˝oleges t1, t2r sorokra, melyekre t1[X] = t2[X], létezik t3, t4r, melyekre

t3[XY] = t1[XY]

t3[R \ XY] = t2[R \ XY]

t4[XY] = t2[XY]

t4[R \ XY] = t1[R \ XY]

(9)

t3, t4r, melyekre

t3[XY] = t1[XY]

t3[R \ XY] = t2[R \ XY]

t4[XY] = t2[XY]

t4[R \ XY] = t1[R \ XY]

X

z }| { . . . .

Y

z }| { . . . .

R \ XY z }| {

. . . . t1 A A A A A A A BBBBBBB CCCCCCC t2 A A A A A A A D D D D D D D EEEEEEE

(10)

Többérték ˝ u függés

Definíció. Az X attribútumhalmaztól többérték ˝uen függ az Y attribútumhalmaz az r

relációban (jele: X Y), ha tetsz ˝oleges t1, t2r sorokra, melyekre t1[X] = t2[X], létezik t3, t4r, melyekre

t3[XY] = t1[XY]

t3[R \ XY] = t2[R \ XY]

t4[XY] = t2[XY]

t4[R \ XY] = t1[R \ XY]

X

z }| { . . . .

Y

z }| { . . . .

R \ XY z }| {

. . . . t1 A A A A A A A BBBBBBB CCCCCCC t2 A A A A A A A D D D D D D D EEEEEEE

... ... ...

t3 A A A A A A A BBBBBBB EEEEEEE t4 A A A A A A A D D D D D D D CCCCCCC

(11)

t3, t4r, melyekre

t3[XY] = t1[XY]

t3[R \ XY] = t2[R \ XY]

t4[XY] = t2[XY]

t4[R \ XY] = t1[R \ XY]

X

z }| { . . . .

Y

z }| { . . . .

R \ XY z }| {

. . . . t1 A A A A A A A BBBBBBB CCCCCCC t2 A A A A A A A D D D D D D D EEEEEEE

... ... ...

t3 A A A A A A A BBBBBBB EEEEEEE t4 A A A A A A A D D D D D D D CCCCCCC

Megjegyzés: A funkcionális függ ˝oség egyenl ˝oséggeneráló. Ha két dolog egyenl ˝o, akkor másik két dolog is egyenl ˝o lesz. A többérték ˝u függ ˝oség sorgeneráló. Ha van két sor ami valahol egyenl ˝o, akkor vannak más sorok is.

(12)

Többérték ˝ u függés

Definíció. Az X attribútumhalmaztól többérték ˝uen függ az Y attribútumhalmaz az r

relációban (jele: X Y), ha tetsz ˝oleges t1, t2r sorokra, melyekre t1[X] = t2[X], létezik t3, t4r, melyekre

t3[XY] = t1[XY]

t3[R \ XY] = t2[R \ XY]

t4[XY] = t2[XY]

t4[R \ XY] = t1[R \ XY]

X

z }| { . . . .

Y

z }| { . . . .

R \ XY z }| {

. . . . t1 A A A A A A A BBBBBBB CCCCCCC t2 A A A A A A A D D D D D D D EEEEEEE

... ... ...

t3 A A A A A A A BBBBBBB EEEEEEE t4 A A A A A A A D D D D D D D CCCCCCC

Megjegyzés: A funkcionális függ ˝oség egyenl ˝oséggeneráló. Ha két dolog egyenl ˝o, akkor másik két dolog is egyenl ˝o lesz. A többérték ˝u függ ˝oség sorgeneráló. Ha van két sor ami valahol egyenl ˝o, akkor vannak más sorok is.

Az el ˝obbi példában: Név Tantárgy, Név Gyereknév

(13)
(14)

Többérték ˝ u függések levezetése

Definíció. Triviális többérték ˝u függések (amik mindig igazak):

YX =⇒ X Y, mert t3 = t2 és t4 = t1 jó lesz.

(15)

XY = R =⇒ X Y,

(16)

Többérték ˝ u függések levezetése

Definíció. Triviális többérték ˝u függések (amik mindig igazak):

YX =⇒ X Y, mert t3 = t2 és t4 = t1 jó lesz.

XY = R =⇒ X Y, mert t3 = t1 és t4 = t2 jó lesz.

(17)

XY = R =⇒ X Y, mert t3 = t1 és t4 = t2 jó lesz.

Ezentúl a többérték ˝u függések is a séma részei lesznek és definiálhatjuk a levezethet ˝oséget (`) és a logikai következményt (|=) úgy, hogy funkcionális függ ˝oségek és többérték ˝u

függ ˝oségek is vannak F-ben.

(18)

Többérték ˝ u függések levezetése

Definíció. Triviális többérték ˝u függések (amik mindig igazak):

YX =⇒ X Y, mert t3 = t2 és t4 = t1 jó lesz.

XY = R =⇒ X Y, mert t3 = t1 és t4 = t2 jó lesz.

Ezentúl a többérték ˝u függések is a séma részei lesznek és definiálhatjuk a levezethet ˝oséget (`) és a logikai következményt (|=) úgy, hogy funkcionális függ ˝oségek és többérték ˝u

függ ˝oségek is vannak F-ben.

Logikai következmény: egy F (funkcionális és többérték ˝u függéseket is tartalmazó) függéshalmaznak logikai következménye egy (funkcionális vagy többérték ˝u) függés, ha minden olyan relációban, amiben F minden függése fennáll, fenn kell hogy álljon a mondott függés is.

(19)

XY = R =⇒ X Y, mert t3 = t1 és t4 = t2 jó lesz.

Ezentúl a többérték ˝u függések is a séma részei lesznek és definiálhatjuk a levezethet ˝oséget (`) és a logikai következményt (|=) úgy, hogy funkcionális függ ˝oségek és többérték ˝u

függ ˝oségek is vannak F-ben.

Logikai következmény: egy F (funkcionális és többérték ˝u függéseket is tartalmazó) függéshalmaznak logikai következménye egy (funkcionális vagy többérték ˝u) függés, ha minden olyan relációban, amiben F minden függése fennáll, fenn kell hogy álljon a mondott függés is.

Levezetés: Armstrong-axiómák (a funkcionális függésekre) és 5 új axióma, amiben → és is van. Amilyen függés ezekkel el ˝oáll F-b ˝ol, arra mondjuk, hogy levezethet ˝o.

(20)

Többérték ˝ u függések levezetése

Definíció. Triviális többérték ˝u függések (amik mindig igazak):

YX =⇒ X Y, mert t3 = t2 és t4 = t1 jó lesz.

XY = R =⇒ X Y, mert t3 = t1 és t4 = t2 jó lesz.

Ezentúl a többérték ˝u függések is a séma részei lesznek és definiálhatjuk a levezethet ˝oséget (`) és a logikai következményt (|=) úgy, hogy funkcionális függ ˝oségek és többérték ˝u

függ ˝oségek is vannak F-ben.

Logikai következmény: egy F (funkcionális és többérték ˝u függéseket is tartalmazó) függéshalmaznak logikai következménye egy (funkcionális vagy többérték ˝u) függés, ha minden olyan relációban, amiben F minden függése fennáll, fenn kell hogy álljon a mondott függés is.

Levezetés: Armstrong-axiómák (a funkcionális függésekre) és 5 új axióma, amiben → és is van. Amilyen függés ezekkel el ˝oáll F-b ˝ol, arra mondjuk, hogy levezethet ˝o.

Hasonló elmélet, mint →-nél =⇒ belátható, hogy `∼|= itt is igaz lesz.

(21)

XY ` X Y,

(22)

Többérték ˝ u levezetési szabályok

Két fontos új szabály

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

(23)

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY,

(24)

Többérték ˝ u levezetési szabályok

Két fontos új szabály

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY, mert t0

3 = t4 és t0

4 = t3 jó lesz.

(25)

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY, mert t0

3 = t4 és t0

4 = t3 jó lesz.

• De pl. X AB 0 X A, nem szétvágható. (Sok minden máshogy van a többérték ˝u függéseknél.)

(26)

Többérték ˝ u levezetési szabályok

Két fontos új szabály

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY, mert t0

3 = t4 és t0

4 = t3 jó lesz.

• De pl. X AB 0 X A, nem szétvágható. (Sok minden máshogy van a többérték ˝u függéseknél.)

Tétel. Legyen ρ = (R1, R2) az (R, F) séma felbontása, ahol F most funkcionális és többérték ˝u függéseket is tartalmaz. ρ akkor és csak akkor h ˝uséges felbontás, ha R1R2 R2 \ R1.

(27)

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY, mert t0

3 = t4 és t0

4 = t3 jó lesz.

• De pl. X AB 0 X A, nem szétvágható. (Sok minden máshogy van a többérték ˝u függéseknél.)

Tétel. Legyen ρ = (R1, R2) az (R, F) séma felbontása, ahol F most funkcionális és többérték ˝u függéseket is tartalmaz. ρ akkor és csak akkor h ˝uséges felbontás, ha R1R2 R2 \ R1.

Megjegyzés: Nem kell a „vagy R1R2 R1 \ R2” a fenti 2. szabály miatt, mert ha

R1R2 R1 \ R2 igaz, akkor R1R2 R \ (R1 \ R2) is igaz, ebb ˝ol meg már következik R1R2 R2 \ R1.

(28)

Többérték ˝ u levezetési szabályok

Két fontos új szabály

XY ` X Y, mert t3 = t2 és t4 = t1 jó lesz.

X Y ` X R \ XY, mert t0

3 = t4 és t0

4 = t3 jó lesz.

• De pl. X AB 0 X A, nem szétvágható. (Sok minden máshogy van a többérték ˝u függéseknél.)

Tétel. Legyen ρ = (R1, R2) az (R, F) séma felbontása, ahol F most funkcionális és többérték ˝u függéseket is tartalmaz. ρ akkor és csak akkor h ˝uséges felbontás, ha R1R2 R2 \ R1.

Megjegyzés: Nem kell a „vagy R1R2 R1 \ R2” a fenti 2. szabály miatt, mert ha

R1R2 R1 \ R2 igaz, akkor R1R2 R \ (R1 \ R2) is igaz, ebb ˝ol meg már következik R1R2 R2 \ R1.

a tétel bizonyítása hasonló, mint a funkcionális függésnél, de nem bizonyítjuk.

(29)
(30)

4NF

Cél: olyan normálforma, amiben többérték ˝u függés miatt sincs redundancia.

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

(31)

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

(32)

4NF

Cél: olyan normálforma, amiben többérték ˝u függés miatt sincs redundancia.

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

Bizonyítás: Indirekt tegyük fel, hogy létezik olyan XAF+ nemtriviális függés, ahol X nem szuperkulcs.

(33)

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

Bizonyítás: Indirekt tegyük fel, hogy létezik olyan XAF+ nemtriviális függés, ahol X nem szuperkulcs. =⇒ Ekkor , amiatt, hogy XA-ból következik, hogy X A.

(34)

4NF

Cél: olyan normálforma, amiben többérték ˝u függés miatt sincs redundancia.

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

Bizonyítás: Indirekt tegyük fel, hogy létezik olyan XAF+ nemtriviális függés, ahol X nem szuperkulcs. =⇒ Ekkor , amiatt, hogy XA-ból következik, hogy X A.

Megjegyzések:

• Ha F-ben csak funkcionális függ ˝oségek vannak, akkor 4NF=BCNF

(35)

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

Bizonyítás: Indirekt tegyük fel, hogy létezik olyan XAF+ nemtriviális függés, ahol X nem szuperkulcs. =⇒ Ekkor , amiatt, hogy XA-ból következik, hogy X A.

Megjegyzések:

• Ha F-ben csak funkcionális függ ˝oségek vannak, akkor 4NF=BCNF

• 2 attribútumos reláció mindig 4NF, hiszen nincs nemtriviális többérték ˝u függés, azt meg már láttuk, hogy ha csak funkcionális függések vannak, akkor a BCNF-ség rendben van kétattribútumos relációnál.

(36)

4NF

Cél: olyan normálforma, amiben többérték ˝u függés miatt sincs redundancia.

BCNF mintájára:

Definíció. Az (R, F) séma 4NF (negyedik normálformájú), ha tetsz ˝oleges nemtriviális X YF+ esetén X szuperkulcs (a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

Következmény. Ha egy séma 4NF, akkor BCNF is.

Bizonyítás: Indirekt tegyük fel, hogy létezik olyan XAF+ nemtriviális függés, ahol X nem szuperkulcs. =⇒ Ekkor , amiatt, hogy XA-ból következik, hogy X A.

Megjegyzések:

• Ha F-ben csak funkcionális függ ˝oségek vannak, akkor 4NF=BCNF

• 2 attribútumos reláció mindig 4NF, hiszen nincs nemtriviális többérték ˝u függés, azt meg már láttuk, hogy ha csak funkcionális függések vannak, akkor a BCNF-ség rendben van kétattribútumos relációnál.

• Van olyan reláció, ami BCNF, de nem 4NF (a korábbi gyerekes példa, mert ott a Név nem szuperkulcs)

(37)
(38)

Tétel. Legyen (R, F) egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R, F) felbontható h ˝uségesen 4NF relációkra.

Algoritmus: Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

(39)

mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(40)

Tétel. Legyen (R, F) egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R, F) felbontható h ˝uségesen 4NF relációkra.

Algoritmus: Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

(41)

mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

(42)

Tétel. Legyen (R, F) egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R, F) felbontható h ˝uségesen 4NF relációkra.

Algoritmus: Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y) X Y X

(43)

mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y)

X Y X R1

X Y

(44)

Tétel. Legyen (R, F) egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R, F) felbontható h ˝uségesen 4NF relációkra.

Algoritmus: Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y)

X Y X R1

X Y

R2 R\ (X Y)

X Y

(45)

mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y)

X Y X R1

X Y

R2 R\ (X Y)

X Y

Ez valódi felbontás:

Ha R1 = R =⇒ X Y triviális függés lenne, .

(46)

Tétel. Legyen (R, F) egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R, F) felbontható h ˝uségesen 4NF relációkra.

Algoritmus: Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y)

X Y X R1

X Y

R2 R\ (X Y)

X Y

Ez valódi felbontás:

Ha R1 = R =⇒ X Y triviális függés lenne, .

Ha R2 = R =⇒ YX =⇒ X Y triviális függés lenne, .

(47)

mindegyik rész 4NF nem lesz.

Keresünk egy X Y függést, ami megsérti a 4NF feltételt.

(Ha van →, ami megsérti, akkor van is.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni (ezt tudni kell majd ZH-n, vizsgán)

R1 = XY R2 = R \ (Y \ X) (= X(R \ Y))

Y

R\ (X Y)

X Y X R1

X Y

R2 R\ (X Y)

X Y

Ez valódi felbontás:

Ha R1 = R =⇒ X Y triviális függés lenne, .

Ha R2 = R =⇒ YX =⇒ X Y triviális függés lenne, . Ez h ˝uséges felbontás:

R1R2 = X; R2 \ R1 = R \ XY és X R \ XY fennáll X Y miatt.

(48)

Példa

R(Színész, Város, Utca, Filmcím, Filmév) F = {Színész Város, Utca}

(49)

F = {Színész Város, Utca}

Ez megsérti a 4NF tulajdonságot, ha Színész nem szuperkulcs.

(50)

Példa

R(Színész, Város, Utca, Filmcím, Filmév) F = {Színész Város, Utca}

Ez megsérti a 4NF tulajdonságot, ha Színész nem szuperkulcs.

4NF felbontás: R1 =(Színész, Város, Utca) R2 =(Színész, Filmcím, Filmév)

(51)

BCNF 3NF

Jellemz ˝ok 3NF BCNF 4NF

Megszünteti a funkcionális

függ ˝oségekb ˝ol ered ˝o redundanciát Gyakran Igen Igen Megszünteti a többérték ˝u

függ ˝oségekb ˝ol ered ˝o redundanciát Nem Nem Igen Az ilyen felbontás

meg ˝orzi a funkcionális függ ˝oségeket Igen Lehet Lehet Az ilyen felbontás

meg ˝orzi a többérték ˝u függ ˝oségeket Lehet Lehet Lehet

(52)

Normálformák összefoglalása

BCNF 3NF 4NF

Jellemz ˝ok 3NF BCNF 4NF

Megszünteti a funkcionális

függ ˝oségekb ˝ol ered ˝o redundanciát Gyakran Igen Igen Megszünteti a többérték ˝u

függ ˝oségekb ˝ol ered ˝o redundanciát Nem Nem Igen Az ilyen felbontás

meg ˝orzi a funkcionális függ ˝oségeket Igen Lehet Lehet Az ilyen felbontás

meg ˝orzi a többérték ˝u függ ˝oségeket Lehet Lehet Lehet

Fontos elv: Ne bontsuk tovább, amit már nem muszáj.

(53)

BCNF 3NF

Jellemz ˝ok 3NF BCNF 4NF

Megszünteti a funkcionális

függ ˝oségekb ˝ol ered ˝o redundanciát Gyakran Igen Igen Megszünteti a többérték ˝u

függ ˝oségekb ˝ol ered ˝o redundanciát Nem Nem Igen Az ilyen felbontás

meg ˝orzi a funkcionális függ ˝oségeket Igen Lehet Lehet Az ilyen felbontás

meg ˝orzi a többérték ˝u függ ˝oségeket Lehet Lehet Lehet

Fontos elv: Ne bontsuk tovább, amit már nem muszáj.

A normalizálás azért fontos, mert . . .

(54)

Adatbázisrendszerek megvalósítása

Eddig az adatbáziskezel ˝ok m ˝uködésér ˝ol tanultunk. Az év hátralev ˝o részében az ilyen rendszerek bels ˝o m ˝uködését tanulmányozzuk egy kicsit.

(55)

rendszerek bels ˝o m ˝uködését tanulmányozzuk egy kicsit.

Három nagyobb témakör:

1. Lekérdezésfeldolgozás: hogyan értékel ˝odnek ki a lekérdezések, milyen módszerek vannak a lekérdezések végrehajtására?

(56)

Adatbázisrendszerek megvalósítása

Eddig az adatbáziskezel ˝ok m ˝uködésér ˝ol tanultunk. Az év hátralev ˝o részében az ilyen rendszerek bels ˝o m ˝uködését tanulmányozzuk egy kicsit.

Három nagyobb témakör:

1. Lekérdezésfeldolgozás: hogyan értékel ˝odnek ki a lekérdezések, milyen módszerek vannak a lekérdezések végrehajtására?

2. Fizikai szervezés, tárkezelés: hogyan tároljuk a relációkat oly módon, hogy gyorsan lehessen keresni, illetve módosítani?

(57)

rendszerek bels ˝o m ˝uködését tanulmányozzuk egy kicsit.

Három nagyobb témakör:

1. Lekérdezésfeldolgozás: hogyan értékel ˝odnek ki a lekérdezések, milyen módszerek vannak a lekérdezések végrehajtására?

2. Fizikai szervezés, tárkezelés: hogyan tároljuk a relációkat oly módon, hogy gyorsan lehessen keresni, illetve módosítani?

3. Tranzakciókezelés: többfelhasználós m ˝uködés biztosítása, illetve rendszerhibák elleni védelem.

(58)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

(59)
(60)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

• átírás elemz ˝ofa alakra El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

(61)

El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

(62)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

• átírás elemz ˝ofa alakra El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet

(63)

El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

(64)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

• átírás elemz ˝ofa alakra El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

• Transzformációk =⇒ több terv, gyorsítás

(65)

El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

• Transzformációk =⇒ több terv, gyorsítás

• Legjobb terv kiválasztása költségbecsléssel

(66)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

• átírás elemz ˝ofa alakra El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

• Transzformációk =⇒ több terv, gyorsítás

• Legjobb terv kiválasztása költségbecsléssel Fizikai terv kiválasztása:

• Algoritmusok a m ˝uveletekhez

(67)

El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

• Transzformációk =⇒ több terv, gyorsítás

• Legjobb terv kiválasztása költségbecsléssel Fizikai terv kiválasztása:

• Algoritmusok a m ˝uveletekhez

• Pufferkezelés

(68)

Lekérdezések végrehajtása, „optimalizálása”

Elemzés (parsing):

• szintaktikai ellen ˝orzés =⇒ megfelel ˝o parancsok, megfelel ˝o sorrendben

• átírás elemz ˝ofa alakra El ˝ofeldolgozó:

• Relációk használatának ellen ˝orzése =⇒ van-e ilyen

• Attribútumnevek használatának ellen ˝orzése =⇒ pl. egyértelm ˝u-e, melyik attribútum melyik relációban van, benne van-e egyáltalán

• típusellen ˝orzések =⇒ pl. LIKE használatakor csak karakterlánc lehet Logikai lekérdezési terv:

• Átírás (kib ˝ovített) relációs algebrai alakra

• Transzformációk =⇒ több terv, gyorsítás

• Legjobb terv kiválasztása költségbecsléssel Fizikai terv kiválasztása:

• Algoritmusok a m ˝uveletekhez

• Pufferkezelés

• Közbüls ˝o relációk eltárolása

(69)

formába. Néhány különbség:

• Multihalmazok =⇒ ∩H, ∩M

(70)

A relációs algebra kib ˝ ovítése

Az SQL többet tud, mint a relációs algebra, de az extra dolgokat is át akarjuk írni relációs formába. Néhány különbség:

• Multihalmazok =⇒ ∩H, ∩M

• Kiválasztásnál, Z

θ-nál a feltételben használhatunk aritmetikai m ˝uveleteket

=⇒ σA+ B < 5(R), R Z

A+R.B<C+S.B S

(71)

formába. Néhány különbség:

• Multihalmazok =⇒ ∩H, ∩M

• Kiválasztásnál, Z

θ-nál a feltételben használhatunk aritmetikai m ˝uveleteket

=⇒ σA+ B < 5(R), R Z

A+R.B<C+S.B S

• Vetítés aritmetikai m ˝uveletekkel és átnevezéssel =⇒ πA,B+C X (R)

(72)

A relációs algebra kib ˝ ovítése

Az SQL többet tud, mint a relációs algebra, de az extra dolgokat is át akarjuk írni relációs formába. Néhány különbség:

• Multihalmazok =⇒ ∩H, ∩M

• Kiválasztásnál, Z

θ-nál a feltételben használhatunk aritmetikai m ˝uveleteket

=⇒ σA+ B < 5(R), R Z

A+R.B<C+S.B S

• Vetítés aritmetikai m ˝uveletekkel és átnevezéssel =⇒ πA,B+C X (R)

• Ismétl ˝odések kisz ˝urése =⇒ δ(R)

(73)

formába. Néhány különbség:

• Multihalmazok =⇒ ∩H, ∩M

• Kiválasztásnál, Z

θ-nál a feltételben használhatunk aritmetikai m ˝uveleteket

=⇒ σA+ B < 5(R), R Z

A+R.B<C+S.B S

• Vetítés aritmetikai m ˝uveletekkel és átnevezéssel =⇒ πA,B+C X (R)

• Ismétl ˝odések kisz ˝urése =⇒ δ(R)

• Csoportosítások, aggregátumok

=⇒ SELECT A, MIN(B) AS minB FROM R GROUP BY A =⇒ γA,MIN(B)minB(R)

(74)

Fizikai végrehajtás

Leginkább az I/O m ˝uveletigény érdekes. Ha „túl nagy” a számítási igény az is baj lehet.

(75)

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

(76)

Fizikai végrehajtás

Leginkább az I/O m ˝uveletigény érdekes. Ha „túl nagy” a számítási igény az is baj lehet.

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

Unáris, teljes relációs m ˝uveletek: Pl. δ(R), γ(R). Ha nem fér el a reláció a memóriában, akkor mást kell csinálni.

(77)

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

Unáris, teljes relációs m ˝uveletek: Pl. δ(R), γ(R). Ha nem fér el a reláció a memóriában, akkor mást kell csinálni.

Bináris, teljes relációs m ˝uveletek: ∪, ∩,\,×,Z. Sok minden függ a méretekt ˝ol.

(78)

Fizikai végrehajtás

Leginkább az I/O m ˝uveletigény érdekes. Ha „túl nagy” a számítási igény az is baj lehet.

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

Unáris, teljes relációs m ˝uveletek: Pl. δ(R), γ(R). Ha nem fér el a reláció a memóriában, akkor mást kell csinálni.

Bináris, teljes relációs m ˝uveletek: ∪, ∩,\,×,Z. Sok minden függ a méretekt ˝ol.

σC (R) végrehajtása: Blokkonként beolvassuk R-et. Soronként megnézzük teljesül-e C. Ha igen, kiírjuk.

(79)

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

Unáris, teljes relációs m ˝uveletek: Pl. δ(R), γ(R). Ha nem fér el a reláció a memóriában, akkor mást kell csinálni.

Bináris, teljes relációs m ˝uveletek: ∪, ∩,\,×,Z. Sok minden függ a méretekt ˝ol.

σC (R) végrehajtása: Blokkonként beolvassuk R-et. Soronként megnézzük teljesül-e C. Ha igen, kiírjuk.

I/O m ˝uveletigény: B(R), blokkszám

(80)

Fizikai végrehajtás

Leginkább az I/O m ˝uveletigény érdekes. Ha „túl nagy” a számítási igény az is baj lehet.

Soronkénti, unáris m ˝uveletek: Kiválasztás és vetítés. Egyszerre csak egy sort kell vizsgálni, az algoritmus nem függ a memória nagyságától.

Unáris, teljes relációs m ˝uveletek: Pl. δ(R), γ(R). Ha nem fér el a reláció a memóriában, akkor mást kell csinálni.

Bináris, teljes relációs m ˝uveletek: ∪, ∩,\,×,Z. Sok minden függ a méretekt ˝ol.

σC (R) végrehajtása: Blokkonként beolvassuk R-et. Soronként megnézzük teljesül-e C. Ha igen, kiírjuk.

I/O m ˝uveletigény: B(R), blokkszám

Ha σA=’c’(R)-t akarjuk, és van index A-ra: sokkal gyorsabb lehet.

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Amikor a többágú kapcsolatot binárissá írtuk át, akkor olyan egyedhalmaz keletkezik (a kapcsolatból), aminek általában nincs is attribútuma, ezért ennek az egyedhalmaznak

Az adatbázis fogalmi keretének megadására jók, tervet lehet velük készíteni, amit aztán majd át kell alakítani az adatbáziskezel ˝o által használt formális megadási

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL nehezen emészthet ˝obb, algebrai alapú; ez volt: láttuk, hogy relációs algebrával jól meg lehet

Mert ő mondta ki először – még valamikor a hatvanas és a hetvenes évek fordu- lója táján –, hogy egy szó sem igaz abból, amit Révai állított, hogy tudniillik

A hórihorgas, aki elöl lépdelt, papírcsákóval a fején, már az udvaron fütyörészni kezdett, mögötte a zömök cigánylegény szép tenorját próbálgatta, amelyet a sivár

Én soha nem vagyok ellene, de arról van szó, nem ő, hanem én találtam rá, hogy a népművészetből kell kiindulni.. Nem is Magyarországon,

S az irodalom némely jelenségei is élet jelenségek ebben az összetételben: „S hiába tudja az ember, hogy a kritikus ab- szolút kívül áll a varázskörön, s hiába tudja,