• Nem Talált Eredményt

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

N/A
N/A
Protected

Academic year: 2022

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

Copied!
81
0
0

Teljes szövegt

(1)

Katona Gyula Y.

Budapesti M ˝uszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz.

I. B. 137/b

kiskat@cs.bme.hu

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

2004

(2)

A relációs algebra alapm ˝ uveletei (emlékeztet ˝ o)

• Halmazm ˝uveletek (bármilyen halmazra mennének)

? unió: ∪

? különbség: \

? szorzat: ×

(3)

A relációs algebra alapm ˝ uveletei (emlékeztet ˝ o)

• Halmazm ˝uveletek (bármilyen halmazra mennének)

? unió: ∪

? különbség: \

? szorzat: ×

• Relációs m ˝uveletek (ezek már kihasználják, hogy itt relációkról van szó)

? vetítés, projekció: π

? kiválasztás, szelekció: σ

(4)

A relációs algebra alapm ˝ uveletei (emlékeztet ˝ o)

• Halmazm ˝uveletek (bármilyen halmazra mennének)

? unió: ∪

? különbség: \

? szorzat: ×

• Relációs m ˝uveletek (ezek már kihasználják, hogy itt relációkról van szó)

? vetítés, projekció: π

? kiválasztás, szelekció: σ

Ezek mind tiszta m ˝uveletek: reláció → reláció

(5)

A relációs algebra alapm ˝ uveletei (emlékeztet ˝ o)

• Halmazm ˝uveletek (bármilyen halmazra mennének)

? unió: ∪

? különbség: \

? szorzat: ×

• Relációs m ˝uveletek (ezek már kihasználják, hogy itt relációkról van szó)

? vetítés, projekció: π

? kiválasztás, szelekció: σ

Ezek mind tiszta m ˝uveletek: reláció → reláció

=⇒ gond nélkül egymásba ágyazhatók

(6)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

(7)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai Azonos sorok csak egyszer szerepeljenek.

(8)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

Azonos sorok csak egyszer szerepeljenek. (Gyakorlatban néha lehetnek azonos sorok.)

(9)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

Azonos sorok csak egyszer szerepeljenek. (Gyakorlatban néha lehetnek azonos sorok.)

• csak akkor alkalmazható, ha R és S oszlopszáma egyenl ˝o

(10)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

Azonos sorok csak egyszer szerepeljenek. (Gyakorlatban néha lehetnek azonos sorok.)

• csak akkor alkalmazható, ha R és S oszlopszáma egyenl ˝o

• nem feltétlenül örököl típusokat vagy attribútum neveket

(11)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

Azonos sorok csak egyszer szerepeljenek. (Gyakorlatban néha lehetnek azonos sorok.)

• csak akkor alkalmazható, ha R és S oszlopszáma egyenl ˝o

• nem feltétlenül örököl típusokat vagy attribútum neveket

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

(12)

M ˝ uveletek Unió (emlékeztet ˝o)

R, S relációk =⇒ RS = sorai vagy R vagy S sorai

Azonos sorok csak egyszer szerepeljenek. (Gyakorlatban néha lehetnek azonos sorok.)

• csak akkor alkalmazható, ha R és S oszlopszáma egyenl ˝o

• nem feltétlenül örököl típusokat vagy attribútum neveket

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

RS A (RS)2

a a

a c

b a

a d

b b

(13)

M ˝ uveletek Különbség

R, S relációk =⇒ R \ S = R azon sorai, amelyek S-ben nem szerepelnek

(14)

M ˝ uveletek Különbség

R, S relációk =⇒ R \ S = R azon sorai, amelyek S-ben nem szerepelnek

• nincs kompatibilitási követelmény (Ha pl. különböz ˝o az oszlopszám, nem szerepelhetnek azonos sorok úgysem. Ekkor R \ S = R)

(15)

M ˝ uveletek Különbség

R, S relációk =⇒ R \ S = R azon sorai, amelyek S-ben nem szerepelnek

• nincs kompatibilitási követelmény (Ha pl. különböz ˝o az oszlopszám, nem szerepelhetnek azonos sorok úgysem. Ekkor R \ S = R)

• Az eredmény örökli R típusait és attribútum neveit (mert R \ SR)

(16)

M ˝ uveletek Különbség

R, S relációk =⇒ R \ S = R azon sorai, amelyek S-ben nem szerepelnek

• nincs kompatibilitási követelmény (Ha pl. különböz ˝o az oszlopszám, nem szerepelhetnek azonos sorok úgysem. Ekkor R \ S = R)

• Az eredmény örökli R típusait és attribútum neveit (mert R \ SR)

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

(17)

M ˝ uveletek Különbség

R, S relációk =⇒ R \ S = R azon sorai, amelyek S-ben nem szerepelnek

• nincs kompatibilitási követelmény (Ha pl. különböz ˝o az oszlopszám, nem szerepelhetnek azonos sorok úgysem. Ekkor R \ S = R)

• Az eredmény örökli R típusait és attribútum neveit (mert R \ SR)

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

R \ S A B b a

(18)

M ˝ uveletek Szorzat (direkt szorzat, Descartes szorzat)

R( A1, . . . , Ak),S(B1, . . . , Bl) k ill. l attribútumos relációk =⇒ R × S = egy k + l attribútumos reláció, R minden sora mögé odatesszük S minden sorát, minden lehetséges módon.

(19)

M ˝ uveletek Szorzat (direkt szorzat, Descartes szorzat)

R( A1, . . . , Ak),S(B1, . . . , Bl) k ill. l attribútumos relációk =⇒ R × S = egy k + l attribútumos reláció, R minden sora mögé odatesszük S minden sorát, minden lehetséges módon.

Ha R-nek n sora van S-nek m sora =⇒ R × S-nek nmsora van

(20)

M ˝ uveletek Szorzat (direkt szorzat, Descartes szorzat)

R( A1, . . . , Ak),S(B1, . . . , Bl) k ill. l attribútumos relációk =⇒ R × S = egy k + l attribútumos reláció, R minden sora mögé odatesszük S minden sorát, minden lehetséges módon.

Ha R-nek n sora van S-nek m sora =⇒ R × S-nek nmsora van

• nincs kompatibilitási követelmény

(21)

M ˝ uveletek Szorzat (direkt szorzat, Descartes szorzat)

R( A1, . . . , Ak),S(B1, . . . , Bl) k ill. l attribútumos relációk =⇒ R × S = egy k + l attribútumos reláció, R minden sora mögé odatesszük S minden sorát, minden lehetséges módon.

Ha R-nek n sora van S-nek m sora =⇒ R × S-nek nmsora van

• nincs kompatibilitási követelmény

• Az eredmény lényegében örökli R és S típusait és attribútum neveit, esetleg át kell nevezni.

(22)

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

(23)

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

R × S A B A0 C

a a a a

a a a d

a a a c

a a b b

a c a a

a c a d

a c a c

a c b b

b a a a

b a a d

b a a c

b a b b

(24)

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

R × S A B A0 C

a a a a

a a a d

a a a c

a a b b

a c a a

a c a d

a c a c

a c b b

b a a a

b a a d

b a a c

b a b b

Az unió és különbség könny ˝u m ˝uvelet, a szorzat nehezebb. Vigyázni kell mennyit használjuk.

(25)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend)

(26)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

(27)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

Egy oszlop akár többször is szerepelhet. =⇒ átnevezés

• nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen)

(28)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

Egy oszlop akár többször is szerepelhet. =⇒ átnevezés

• nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen)

• Az eredmény örökli R típusait és attribútum neveit

(29)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

Egy oszlop akár többször is szerepelhet. =⇒ átnevezés

• nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen)

• Az eredmény örökli R típusait és attribútum neveit

• Példa:

R A B C

a b 2

a c 3

b c 4

(30)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

Egy oszlop akár többször is szerepelhet. =⇒ átnevezés

• nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen)

• Az eredmény örökli R típusait és attribútum neveit

• Példa:

R A B C

a b 2

a c 3

b c 4

πA(R) A a b

(31)

M ˝ uveletek Vetítés

R( A1, . . . , Al) alakú reláció =⇒ πAi

1,...,Ain(R) R vetítése Ai1, . . . , Ain-re (fontos a sorrend) =⇒

Veszem az oszlopokat ebben a sorrendben, a többit eldobom és a többszörös sorokat is eldobom.

Egy oszlop akár többször is szerepelhet. =⇒ átnevezés

• nincs kompatibilitási követelmény (persze amire vetítünk az R-nek attribútuma kell, hogy legyen)

• Az eredmény örökli R típusait és attribútum neveit

• Példa:

R A B C

a b 2

a c 3

b c 4

πA(R) A a b

πC,B,B(R) C B B

2 b b

3 c c

4 c c

(32)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

(33)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

• Teljesülni fog, hogy σF(R)R

(34)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

• Teljesülni fog, hogy σF(R)R

• Nincs megszorítás, csak hogy F értelmes legyen.

(35)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

• Teljesülni fog, hogy σF(R)R

• Nincs megszorítás, csak hogy F értelmes legyen.

• Az eredmény örökli R típusait és attribútum neveit

(36)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

• Teljesülni fog, hogy σF(R)R

• Nincs megszorítás, csak hogy F értelmes legyen.

• Az eredmény örökli R típusait és attribútum neveit

• Példa:

R A B C

a b 2

a c 3

b c 4

(37)

M ˝ uveletek Kiválasztás, szelekció

R egy reláció =⇒ σF(R) = a reláció azon sorai, amelyekre az F formula teljesül.

• Teljesülni fog, hogy σF(R)R

• Nincs megszorítás, csak hogy F értelmes legyen.

• Az eredmény örökli R típusait és attribútum neveit

• Példa:

R A B C

a b 2

a c 3

b c 4

σA,BC>2(R) A B C a c 3 b c 4

(38)

Az F formula:

Atomok: A θ B, A θ c, c θ B,

ahol A, B attribútumok, c érték (konstans), θ∈ {<, >, =, ≤,≥,, }

(39)

Az F formula:

Atomok: A θ B, A θ c, c θ B,

ahol A, B attribútumok, c érték (konstans), θ∈ {<, >, =, ≤,≥,, } Építkezés: ∧, ∨,¬,(,) Kvantorok, nincsenek!

(40)

Az F formula:

Atomok: A θ B, A θ c, c θ B,

ahol A, B attribútumok, c érték (konstans), θ∈ {<, >, =, ≤,≥,, } Építkezés: ∧, ∨,¬,(,) Kvantorok, nincsenek!

• Példa:

DOLGOZÓ(NÉV,CÍM,FIZETÉS)

σ CÍM = ’BP., Várna u.’ ∧ FIZETÉS > ’50000’ (DOLGOZÓ)

(41)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

(42)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

A relációs algebra relációi: amik kifejezhet ˝ok az alaprelációkból ∪, \, ×, π, σ segítségével.

(43)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

A relációs algebra relációi: amik kifejezhet ˝ok az alaprelációkból ∪, \, ×, π, σ segítségével.

Származtatott reláció: nem alapreláció, de kifejezhet ˝o.

(44)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

A relációs algebra relációi: amik kifejezhet ˝ok az alaprelációkból ∪, \, ×, π, σ segítségével.

Származtatott reláció: nem alapreláció, de kifejezhet ˝o.

Definíció. Egy lekérdez ˝o nyelv (igazi vagy modell) relációsan teljes, ha benne megvalósíthatók a relációs algebra alapm ˝uveletei: ∪, \, ×, π, σ

(45)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

A relációs algebra relációi: amik kifejezhet ˝ok az alaprelációkból ∪, \, ×, π, σ segítségével.

Származtatott reláció: nem alapreláció, de kifejezhet ˝o.

Definíció. Egy lekérdez ˝o nyelv (igazi vagy modell) relációsan teljes, ha benne megvalósíthatók a relációs algebra alapm ˝uveletei: ∪, \, ×, π, σ

Ez fontos követelmény, általában tudja is mindegyik.

(46)

Relációs algebra

Definíció. Alapreláció: A bevezetés, tervezés során definiált tábla, ami meg van adva.

A relációs algebra relációi: amik kifejezhet ˝ok az alaprelációkból ∪, \, ×, π, σ segítségével.

Származtatott reláció: nem alapreláció, de kifejezhet ˝o.

Definíció. Egy lekérdez ˝o nyelv (igazi vagy modell) relációsan teljes, ha benne megvalósíthatók a relációs algebra alapm ˝uveletei: ∪, \, ×, π, σ

Ez fontos követelmény, általában tudja is mindegyik.

Inkább az a baj, hogy néha túl sokat tudnak, de nincs hatékony implementáció.

(47)

Származtatott m ˝ uveletek

Hasznosak, de mivel kifejezhet ˝ok az 5 alapm ˝uvelettel, ezért lényegében csak rövidítések.

Metszet

R, S relációk =⇒ RS = R \ (R \ S) azok a sorok, amelyek mindkett ˝oben benne vannak.

(48)

Származtatott m ˝ uveletek

Hasznosak, de mivel kifejezhet ˝ok az 5 alapm ˝uvelettel, ezért lényegében csak rövidítések.

Metszet

R, S relációk =⇒ RS = R \ (R \ S) azok a sorok, amelyek mindkett ˝oben benne vannak.

• nincs kompatibilitási követelmény ⇐= \ tulajdonságából

(49)

Származtatott m ˝ uveletek

Hasznosak, de mivel kifejezhet ˝ok az 5 alapm ˝uvelettel, ezért lényegében csak rövidítések.

Metszet

R, S relációk =⇒ RS = R \ (R \ S) azok a sorok, amelyek mindkett ˝oben benne vannak.

• nincs kompatibilitási követelmény ⇐= \ tulajdonságából

• Az eredmény örökli R típusait és attribútum neveit

⇐= \ tulajdonságából

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

(50)

Származtatott m ˝ uveletek

Hasznosak, de mivel kifejezhet ˝ok az 5 alapm ˝uvelettel, ezért lényegében csak rövidítések.

Metszet

R, S relációk =⇒ RS = R \ (R \ S) azok a sorok, amelyek mindkett ˝oben benne vannak.

• nincs kompatibilitási követelmény ⇐= \ tulajdonságából

• Az eredmény örökli R típusait és attribútum neveit

⇐= \ tulajdonságából

• Példa:

R A B

a a a c b a

S A C

a a a d a c b b

RS A BC

a a

a c

(51)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

(52)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

(53)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

(54)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

(55)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

R Z S = πR.A1,...(σR.A1=S.A1,...(R × S)) R Z S-nek k + r + s oszlopa lesz.

(56)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

R Z S = πR.A1,...(σR.A1=S.A1,...(R × S)) R Z S-nek k + r + s oszlopa lesz.

Ha nincs közös attribútum. =⇒ R Z S = R × S.

(57)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

R Z S = πR.A1,...(σR.A1=S.A1,...(R × S))

R Z S-nek k + r + s oszlopa lesz.

Ha nincs közös attribútum. =⇒ R Z S = R × S.

• nincs kompatibilitási követelmény

(58)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

R Z S = πR.A1,...(σR.A1=S.A1,...(R × S))

R Z S-nek k + r + s oszlopa lesz.

Ha nincs közös attribútum. =⇒ R Z S = R × S.

• nincs kompatibilitási követelmény

• Az eredmény örökli R és S típusait és attribútum neveit

(59)

Származtatott m ˝ uveletek Természetes illesztés (natural join)

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R Z S =

? Vegyük R × S-t

? Vesszük azokat a sorokat, ahol R.A1 = S.A1, . . . , R.Ak = S.Ak, a többit kidobjuk.

? ∀Ai-ból az egyik példányt eldobjuk, azaz vetítünk R.A1, . . . , R.Ak, R.B1, . . . , R.Br,S.C1, . . . ,S.Cs-re

? Azonos sorokat kidobjuk.

R Z S = πR.A1,...(σR.A1=S.A1,...(R × S))

R Z S-nek k + r + s oszlopa lesz.

Ha nincs közös attribútum. =⇒ R Z S = R × S.

• nincs kompatibilitási követelmény

• Az eredmény örökli R és S típusait és attribútum neveit

• Gyakorlatban ennél hatékonyabban számítjuk ki.

• Az oszlopok sorrendje nem definiált, de általában: R oszlopai, aztán S saját oszlopai.

(60)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

(61)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

R Z S A B C D

a b 2 a

a b 2 x

a c 3 b

(62)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

R Z S A B C D

a b 2 a

a b 2 x

a c 3 b

Miért „természetes”?

(63)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

(64)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

(65)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

Gond: TERMEL ˝O címét minden terméknél tároljuk

=⇒ redundancia + veszélyek : cím mindig kell, minden módosításhoz; könnyen sérülhet a fent megadott függés, ha elírom a címet; akkor is kell a cím, ha csak új árut akarok felvenni)

(66)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

Gond: TERMEL ˝O címét minden terméknél tároljuk

=⇒ redundancia + veszélyek : cím mindig kell, minden módosításhoz; könnyen sérülhet a fent megadott függés, ha elírom a címet; akkor is kell a cím, ha csak új árut akarok felvenni) Megoldás: Inkább tároljuk két táblában:

(67)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

Gond: TERMEL ˝O címét minden terméknél tároljuk

=⇒ redundancia + veszélyek : cím mindig kell, minden módosításhoz; könnyen sérülhet a fent megadott függés, ha elírom a címet; akkor is kell a cím, ha csak új árut akarok felvenni) Megoldás: Inkább tároljuk két táblában:

R = πTNÉV, CÍM(TERMEL ˝O) és S = πTNÉV, TERMÉK, ÁR(TERMEL ˝O)

(68)

Példa: TERMEL ˝O(TNÉV,TERMÉK,ÁR,CÍM)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

Gond: TERMEL ˝O címét minden terméknél tároljuk

=⇒ redundancia + veszélyek : cím mindig kell, minden módosításhoz; könnyen sérülhet a fent megadott függés, ha elírom a címet; akkor is kell a cím, ha csak új árut akarok felvenni) Megoldás: Inkább tároljuk két táblában:

R = πTNÉV, CÍM(TERMEL ˝O) és S = πTNÉV, TERMÉK, ÁR(TERMEL ˝O)

=⇒ TERMEL ˝O=R Z S (ha kell egyben a tábla, vissza lehet állítani)

(69)

Jó-e bármilyen felbontás?

(70)

Jó-e bármilyen felbontás?

R0 = πTNÉV, CÍM, ÁR(TERMEL ˝O) és S0 = πTNÉV, TERMÉK(TERMEL ˝O)

(71)

Jó-e bármilyen felbontás?

R0 = πTNÉV, CÍM, ÁR(TERMEL ˝O) és S0 = πTNÉV, TERMÉK(TERMEL ˝O)

=⇒ minden terméknek ugyanannyi lesz az ára (sok ára lesz)

=⇒ TERMEL ˝O( R0 Z S0

(72)

Jó-e bármilyen felbontás?

R0 = πTNÉV, CÍM, ÁR(TERMEL ˝O) és S0 = πTNÉV, TERMÉK(TERMEL ˝O)

=⇒ minden terméknek ugyanannyi lesz az ára (sok ára lesz)

=⇒ TERMEL ˝O( R0 Z S0

Az lesz majd a kérdés, hogy mik lesznek a jó felbontások?

(73)

Származtatott m ˝ uveletek Bal (jobb) félillesztés

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R X S = R azon sorai, amelyhez vannak passzoló sorok S-ben

(74)

Származtatott m ˝ uveletek Bal (jobb) félillesztés

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R X S = R azon sorai, amelyhez vannak passzoló sorok S-ben R X S = πR(R Z S)

R X SR

R Y S = ugyanez jobbról

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

(75)

Származtatott m ˝ uveletek Bal (jobb) félillesztés

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R X S = R azon sorai, amelyhez vannak passzoló sorok S-ben R X S = πR(R Z S)

R X SR

R Y S = ugyanez jobbról

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

R X S A B C a b 2 a c 3

(76)

Származtatott m ˝ uveletek Bal (jobb) félillesztés

R( A1, . . . , Ak, B1, . . . , Br), S( A1, . . . , Ak, C1, . . . ,Cs) relációk

=⇒ R X S = R azon sorai, amelyhez vannak passzoló sorok S-ben R X S = πR(R Z S)

R X SR

R Y S = ugyanez jobbról

R A B C

a b 2 a c 3 b a 4

S D C

a 2 b 3 x 2

R X S A B C a b 2 a c 3

R Y S D C a 2 b 3 x 2

(77)

Származtatott m ˝ uveletek θ -illesztés

R, S relációk

=⇒ R Z

R.AiθS.B j S = R × S azon sorai, amelyben az adott oszlopok θ relációban vannak

(78)

Származtatott m ˝ uveletek θ -illesztés

R, S relációk

=⇒ R Z

R.AiθS.B j S = R × S azon sorai, amelyben az adott oszlopok θ relációban vannak

R Z

R.AiθS.B j S = σR.AiθS.B j(R × S)

(79)

Származtatott m ˝ uveletek θ -illesztés

R, S relációk

=⇒ R Z

R.AiθS.B j S = R × S azon sorai, amelyben az adott oszlopok θ relációban vannak

R Z

R.AiθS.B j S = σR.AiθS.B j(R × S)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D E

a 2 b 3 x 2

(80)

Származtatott m ˝ uveletek θ -illesztés

R, S relációk

=⇒ R Z

R.AiθS.B j S = R × S azon sorai, amelyben az adott oszlopok θ relációban vannak

R Z

R.AiθS.B j S = σR.AiθS.B j(R × S)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D E

a 2 b 3 x 2

R Z

CE S A B C D E

a b 2 a 2

a b 2 b 3

a b 2 x 2

a c 3 b 3

(81)

Származtatott m ˝ uveletek θ -illesztés

R, S relációk

=⇒ R Z

R.AiθS.B j S = R × S azon sorai, amelyben az adott oszlopok θ relációban vannak

R Z

R.AiθS.B j S = σR.AiθS.B j(R × S)

• Példa:

R A B C

a b 2 a c 3 b a 4

S D E

a 2 b 3 x 2

R Z

CE S A B C D E

a b 2 a 2

a b 2 b 3

a b 2 x 2

a c 3 b 3

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Kulcs: mivel a kapcsolat “egy” jelleg ˝u volt, ezért az osztály kulcsa jó lesz kulcsnak a relációsémában is.. Mindkét irányban többérték ˝u kapcsolat: Ugyanaz a

oszlopkalkulus jelleg ˝u, de némi sorkalkulusos beütéssel Termékek, (amik szükségszer ˝uen relációs nyelvet is tartalmaztak):.

1.) Adott R relációs séma és F funkcionális függőségek halmaza. Attribútum halmaz lezártjának kiszámolására tanult. algoritmus felhasználásával

Melyek azok a gyártók, amelyek gyártanak legalább két egymástól különböző, legalább 1,2 gigaherzen működő számítógépet (PC-t vagy laptopot)5. Melyik gyártó

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

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. beszúrni nehéz, mert amikor egy sort

• 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