Cvičení 5
Témata cvičení
- Relační algebra
- Relační dělení jako odvozená operace
- Úkol z minula
Průběh cvičení
- Příští týden nás čeká první písemka. Vše až po relační algebru (včetně). Podobné příklady jako na cvičení.
- Zopakovali jsme si základní poznatky k relační algebře.
- Dokázali jsme si pár jednoduchých vztahů mezi operacemi relační algebry.
- Ukázali jsme si příklad na relační dělení a pak jste si jej zkusili modelovat v SQL.
Dobrovolný úkol z minula
Někteří z vás ukázali své návrhy řešení úkolu minula. Prošli jsme si jejich výhody a nevýhody.
Úkoly
- Máte k dispozici tabulky pet_owner a animal. Napište dotaz, který modeluje relační dělení relace pet_owner relace animal. Co bude obsahovat výsledek?
- Zkuste dokázat následující (* označuje vztahy probané na cvičení):
- (*) Asociativita ∩ a ∪
- Komutativita ∩ a ∪
- (*) Distributivita ∩ přes ∪ (a duální)
- Absorpce ∪ a ∩
- (R1\R2) ∩ (R2\R1) = ∅
- R1 ∩ R2 = R2 \ (R2\R1)
- pro R1 ⊆ R2 platí R1 = R2 \ (R2\R1)
- ΠS(R) = R pro R nad schématem S
- Π∅(∅) = ∅ a Π∅(R) = {∅} pro R ≠ ∅.
- ΠS′(R1∪R2) = ΠS′(R1) ∪ ΠS′(R2)
- σΘ1(σΘ2(R)) = σΘ2(σΘ1(R))
- σΘ(σΘ(R)) = σΘ(R)
- (*) σΘ(R1∪R2) = σΘ(R1) ∪ σΘ(R2)
- σΘ(R1∩R2) = σΘ(R1) ∩ σΘ(R2) = σΘ(R1) ∩ R2 = R1 ∩ σΘ(R2)
- σΘ(R1\R2) = σΘ(R1) \ R2 = σΘ(R1) \ σΘ(R2)
- R ⋈ R = R
- R ⋈ R′ = R′ ⋈ R
- (R⋈R′) ⋈ R″ = R ⋈ (R′⋈R″)
- R ⋈ ∅ = ∅
- Pokud y ∈ S ∩ S′, pak σy = d(R⋈R′) = σy = d(R) ⋈ σy = d(R′)
- Pokud y ∈ S a y ∉ S′, pak σy = d(R⋈R′) = σy = d(R) ⋈ R′
- R ⋈ (R′∪R″) = (R⋈R′) ∪ (R⋈R″) pro R nad S a R′, R″ nad S′
- R ⋈ (R′∩R″) = (R⋈R′) ∩ (R⋈R″) = R ⋈ R′ ⋈ R″ pro R nad S a R′, R″ nad S′
- R ⋈ (R′\R″) = (R⋈R′) \ (R⋈R″) pro R nad S a R′, R″ nad S′