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ří:

  1. (*) Asociativita a
  2. Komutativita a
  3. (*) Distributivita přes (a duální)
  4. Absorpce a
  5. (R1\R2) ∩ (R2\R1) = ∅
  6. R1 ∩ R2 = R2 \ (R2\R1)
  7. pro R1 ⊆ R2 platí R1 = R2 \ (R2\R1)
  8. ΠS(R) = R pro R nad schématem S
  9. Π(∅) = ∅ a Π(R) = {∅} pro R ≠ ∅.
  10. ΠS(R1R2) = ΠS(R1) ∪ ΠS(R2)
  11. σΘ1(σΘ2(R)) = σΘ2(σΘ1(R))
  12. σΘ(σΘ(R)) = σΘ(R)
  13. (*) σΘ(R1R2) = σΘ(R1) ∪ σΘ(R2)
  14. σΘ(R1R2) = σΘ(R1) ∩ σΘ(R2) = σΘ(R1) ∩ R2 = R1 ∩ σΘ(R2)
  15. σΘ(R1\R2) = σΘ(R1) \ R2 = σΘ(R1) \ σΘ(R2)
  16. R ⋈ R = R
  17. R ⋈ R′ = R′ ⋈ R
  18. (RR′) ⋈ R″ = R ⋈ (R′⋈R″)
  19. R ⋈ ∅ = ∅
  20. Pokud y ∈ S ∩ S, pak σy = d(RR′) = σy = d(R) ⋈ σy = d(R′)
  21. Pokud y ∈ S a y ∉ S, pak σy = d(RR′) = σy = d(R) ⋈ R
  22. R ⋈ (R′∪R″) = (RR′) ∪ (RR″) pro R nad S a R′, R nad S
  23. R ⋈ (R′∩R″) = (RR′) ∩ (RR″) = R ⋈ R′ ⋈ R pro R nad S a R′, R nad S
  24. R ⋈ (R′\R″) = (RR′) \ (RR″) pro R nad S a R′, R nad S

(*) označuje vztahy podrobně probrané na cvičení.