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(R1 ∪ R2) = ΠS(R1) ∪ ΠS(R2)
  11. σΘ1(σΘ2(R)) = σΘ2(σΘ1(R))
  12. σΘ(σΘ(R)) = σΘ(R)
  13. (*) σΘ(R1 ∪ R2) = σΘ(R1) ∪ σΘ(R2)
  14. σΘ(R1 ∩ R2) = σΘ(R1) ∩ σΘ(R2) = σΘ(R1) ∩ R2 = R1 ∩ σΘ(R2)
  15. σΘ(R1 \ R2) = σΘ(R1) \ R2 = σΘ(R1) \ σΘ(R2)
  16. R ⋈ R = R
  17. R ⋈ R = R ⋈ R
  18. (R ⋈ R) ⋈ R = R ⋈ (R ⋈ R)
  19. R ⋈ ∅ = ∅
  20. Pokud y ∈ S ∩ S, pak σy = d(R ⋈ R) = σy = d(R) ⋈ σy = d(R)
  21. Pokud y ∈ S a y ∉ S, pak σy = d(R ⋈ R) = σy = d(R) ⋈ R
  22. R ⋈ (R ∪ R) = (R ⋈ R) ∪ (R ⋈ R) pro R nad S a R, R nad S
  23. R ⋈ (R ∩ R) = (R ⋈ R) ∩ (R ⋈ R) = R ⋈ R ⋈ R pro R nad S a R, R nad S
  24. R ⋈ (R \ R) = (R ⋈ R) \ (R ⋈ R) pro R nad S a R, R nad S

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