Cvičení 2
Zápočet
Zápočet bude udělen za prezentování jednoho ze zápočtových témat ostatním studentům na cvičení (ve skupinách). Zápočtová témata a termíny prezentace budou vyvěšeny na stránkách předmětu 24.2.2022 ve 12:00.
Téma: Základy relačního modelu a relační algebry
Nejprve jsme prošli pár příkladů relací a řekli si, které jsou relací nad daným relačním schématem a které ne (a proč). Poté jsme si zkusili několik výrazů relační algebry (dotazů) vyhodnotit v dané instanci databáze.
Nakonec jsme si dokázali některé základní vztahy mezi operacemi relační algebry.
Předpokládáme, že každá Ri je relace nad schématem S (jinak by množinové operace nedávaly smysl). Pak mezi zajímavé základní vztahy patří:
- (*) 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′
(*) označuje vztahy podrobně probrané na cvičení.