• 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!
96
0
0

Teljes szövegt

(1)

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

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

2005

(2)

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

? unió: ∪

? különbség: \

? szorzat: ×

(3)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 1/19

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)

• 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)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 1/19

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)

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

(7)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 2/19

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

(8)

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.

(9)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 2/19

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

(10)

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

(11)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 2/19

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

(12)

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

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

(13)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 3/19

Az F formula:

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

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

(14)

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Ó)

(15)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 4/19

Relációs algebra

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

(16)

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

(17)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 4/19

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.

(18)

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: ∪, \, ×, π, σ

(19)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 4/19

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.

(20)

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ó.

(21)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 5/19

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.

(22)

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

(23)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 5/19

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

(24)

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

(25)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 6/19

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

(26)

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.

(27)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 6/19

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

(28)

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 sorokból csak egyet tartunk meg, a többit kidobjuk.

(29)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 6/19

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 sorokból csak egyet tartunk meg, a többit kidobjuk.

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

(30)

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 sorokból csak egyet tartunk meg, a többit 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.

(31)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 6/19

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 sorokból csak egyet tartunk meg, a többit 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

(32)

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 sorokból csak egyet tartunk meg, a többit 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

(33)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 6/19

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 sorokból csak egyet tartunk meg, a többit 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.

(34)

a b 2 a c 3 b a 4

a 2

b 3

x 2

(35)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 7/19

• 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

(36)

a b 2 a c 3 b a 4

a 2

b 3

x 2

a b 2 a

a b 2 x

a c 3 b

Miért „természetes”?

(37)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 8/19

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

(38)

• TNÉV → CÍM

• TNÉV, TERMÉK → ÁR

(39)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 8/19

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)

(40)

• 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:

(41)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 8/19

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)

(42)

• 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)

(43)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 9/19

Jó-e bármilyen felbontás?

(44)

= πTNÉV, CÍM, ÁR

S0 = πTNÉV, TERMÉK(TERMEL ˝O)

(45)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 9/19

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

(46)

= πTNÉV, CÍM, ÁR

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?

(47)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 10/19

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

(48)

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

(49)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 10/19

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

(50)

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

(51)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 11/19

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

(52)

θ -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)

(53)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 11/19

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

(54)

θ -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

(55)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 12/19

Példák relációs algebra alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

(56)

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

(57)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 12/19

Példák relációs algebra alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

A 2004. jan. 15-i befizetett összeg és bevétel:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTELZBEFIZ

(58)

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

A 2004. jan. 15-i befizetett összeg és bevétel:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTELZBEFIZ

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

(59)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 12/19

Példák relációs algebra alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

A 2004. jan. 15-i befizetett összeg és bevétel:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTELZBEFIZ

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

= σDÁTUM=’2004-01-15’

BEVÉTEL

Y BEFIZ

(60)

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

A 2004. jan. 15-i befizetett összeg és bevétel:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTELZBEFIZ

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

= σDÁTUM=’2004-01-15’

BEVÉTEL

Y BEFIZ

Hány darabot adtak el 2004. jan. 15-én az A123 kódú áruból, mi a neve és az ára?

(61)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 12/19

Példák relációs algebra alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

A 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

A 2004. jan. 15-i befizetett összeg és bevétel:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTELZBEFIZ

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

= σDÁTUM=’2004-01-15’

BEVÉTEL

Y BEFIZ

Hány darabot adtak el 2004. jan. 15-én az A123 kódú áruból, mi a neve és az ára?

πDB, ÁRUNÉV, EGYSÉGÁR

σÁRUKÓD=’A123’DÁTUM=’2004-01-15’

MENNYISÉG Z ÁRU

πDB, ÁRUNÉV, EGYSÉGÁR

σÁRUKÓD=’A123’DÁTUM=’2004-01-15’

MENNYISÉG

Z ÁRU

(62)
(63)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 13/19

Mely nev ˝u áruk azok, amelyekkel van azonos egységárú másik áru?

Az ÁRU reláció két sorát kell összevetni.

(64)

Átnevezés

• Technikai segítség, ha pl. két relációban ugyanolyan attribútum név van, és direkt

szorzatot akarunk. Nem változtatja meg a reláció sorait, csak az attribútumok és a reláció nevét, ezért nem igazi m ˝uvelet.

R( A1, . . . , An) egy reláció

=⇒ ρS(B1,...,Bn)(R) = sorai megegyeznek R soraival, a reláció neve S, attribútumai rendre

B1, . . . , Bn.

• Ha csak a relációt akarjuk átnevezni: ρS(R)

(65)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 14/19

Megoldás:

ÁRU1 = ρÁRU1(ÁRUKÓD1, ÁRUNÉV1, EGYSÉGÁR1)(ÁRU) ÁRU2 = ρÁRU2(ÁRUKÓD2, ÁRUNÉV2, EGYSÉGÁR2)(ÁRU)

ÁRU3 = ÁRU1 Z

EGYSÉGÁR1 = EGYSÉGÁR2 ÁRUKÓD1,ÁRUKÓD2

ÁRU2 ÁRU4 = πÁRUNÉV1

ÁRU3

(66)

• relációs algebra (LEAP, letölthet ˝o, SIGMOD-ról link), ISBL

(67)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 15/19

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• 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 adni relációkat

(68)

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve),

(69)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 15/19

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

(70)

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

(71)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 15/19

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

(72)

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg

(73)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 15/19

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

(74)

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

t(k)[i]: A t sorváltozó i-edik komponense.

(75)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 15/19

Sorkalkulus (Tuple calculus)

Lekérdez ˝onyelvek típusai:

• 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 adni relációkat

• sorkalkulus (SQL egy kicsit, QUEL, INGRES nyelve), könnyebben emészthet ˝o, logikai alapú

• oszlopkalkulus (QBE, SQL) nagyon hasonló

Sorkalkulus (Tuple calculus)

Formális modell, de már hasonlít az igazihoz.

Els ˝orend ˝u nyelv relációk kifejezésére.

Változók: t, r, s sorváltozók, a reláció sorainak felel meg t(k): k oszlopos reláció sorainak felel meg

t(k)[i]: A t sorváltozó i-edik komponense.

Pl. egy sor =⇒ (R. M., Budapest, hamburger, 180), akkor t(4)[3] =’hamburger’ és t(4)[ÁR] = 180

(76)

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával

(77)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 16/19

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

(78)

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

(79)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 16/19

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

(80)

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

(81)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 16/19

Sorkalkulus

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

? c θ t(k)[i]

(82)

Cél: sorkalkulussal relációkat megadni, úgy, mint relációs algebrával A sorkalkulus által kifejezett reláció:

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon t-kb ˝ol áll, amikre φ(t) igaz, ahol φ egy megengedett formula + valami még.

Megengedett formulák (amik a φ(t) helyén állhatnak):

atomok :

R(k)(t(k)): (ahol R alapreláció), akkor igaz, ha tR, azaz a sor benne van a relációban.

• ? t(k)[i] θ s(l)[ j]

? t(k)[i] θ c

? c θ t(k)[i]

ahol θ∈ {<, >,=,,,≤,≥}, t, s sorváltozók, c konstans érték.

Világos, mikor igaz.

(83)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 17/19

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

(84)

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

(85)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 17/19

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

Kötött változó: ha vonatkozik rá kvantor,

(86)

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

Kötött változó: ha vonatkozik rá kvantor, Szabad változó: ha nem,

(87)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 17/19

építkezési szabályok :

• φ, ψ formulák, akkor φ ∨ ψ, φ ∧ ψ,¬φ is formulák.

Világos, hogy mikor igaz.

• φ formula, s sorváltozó, akkor ∀sφ,∃sφ is formula.

Világos, hogy mikor igaz.

Kötött változó: ha vonatkozik rá kvantor, Szabad változó: ha nem,

Sorkalkulus által kifejezett reláció (pontosan):

{t(k) | φ(t)}

=⇒ a kifejezett reláció azon k hosszú t vektorokból áll, amikre φ(t) igaz, ahol φ egy megengedett formula és φ-ben t az egyetlen szabad változó.

(88)

MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000

(89)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 18/19

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

(90)

MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

(91)

ADATBÁZISOK ELMÉLETE 5. EL ˝OADÁS 18/19

Példák sorkalkulus alkalmazására

ÁRU(ÁRUKÓD, ÁRUNÉV, EGYSÉGÁR) MENNYISÉG(DÁTUM, ÁRUKÓD, DB) BEVÉTEL(DÁTUM, ÖSSZEG)

BEFIZ(ÖSSZEG, BEFIZ) BEFIZ=ÖSSZEG−4000 Az 2004. jan. 1. utáni napok bevételei a dátummal együtt:

σDÁTUM>’2004-01-01’

BEVÉTEL

nt(2) | BEVÉTEL(t) ∧ t[1] ≥ 2004-01-01o

Az 2004. jan. 15-i bevétel és a befizetett összeg:

πÖSSZEG, BEFIZ

σDÁTUM=’2004-01-15’

BEVÉTEL

Z BEFIZ

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A (legtöbbször) deklaratív kérdésb ˝ol (ahol nem mondjuk meg, hogy milyen úton akarom megkapni az eredményt, csak azt, hogy mit akarok, pl. SQL) procedurális kérdést

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ó

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

Bizonyítás Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is?. Ehhez azt elég