Datový model z 1. úkolu lze převést do relačního modelu následovně.
Hrac (IDH, Jmeno, Narozen)
Zapas (IDZ, Datum_konani, Vyzyvajici, Vyzvany, IDP)
Ligovy (IDZ, Skore1, Skore2)
Exhibice (IDZ, Penize)
Placek (IDP, Nazev, IDH)
Oprava (IDP, Datum, Popis)
IO:
Zapas[Vyzyvajici] ⊆ Hrac[IDH]
Zapas[Vyzvany] ⊆ Hrac[IDH]
Zapas[IDP] ⊆ Placek[IDP]
Ligovy[IDZ] ⊆ Zapas[IDZ]
Exhibice[IDZ] ⊆ Zapas[IDZ]
Placek[IDH] ⊆ Hrac[IDP]
Oprava[IDP] ⊆ Placek[IDP]
Pozor na názvy atributů při přirozeném spojení .
Vyjádřete pomocí relační algebry následující dotazy.
{ Hrac(jmeno='Jan Novak') * Placek }[Nazev]
{ Oprava * Placek * Hrac } [Jmeno]
{ Hrac(jmeno='Jan Novak') [Hrac.IDH = Zapas.Vyzyvajici OR Hrac.IDH = Zapas.Vyzvany] Zapas * Exhibice } [Datum, penize]
{ Oprava(Datum ≤ 2008-12-31 AND Datum ≥ 2008-01-01) * Placek } [Nazev]
{ Hrac \ { Exhibice *> Zapas [Hrac.IDH = Zapas.Vyzyvajici OR Hrac.IDH = Zapas.Vyzvany> Hrac } } [Jmeno,Narozen]
H1:= Hrac H2:= Hrac Vysledek := { Placek * Zapas [Zapas.Vyzvany = H1.IDH] H1 [Zapas.Vyzyvajici = H2.IDH] H2 } [Datum, H1.Jmeno, H2.Jmeno, Placek.Nazev]
{ Zapas [Vyzyvajici->IDH, IDP] ÷ Placek[IDP] } *> Hrac
Universum := Zapas[Vyzyvajici->IDH] X Placek [IDP] Neuskutecnene := Universum \ Zapas [Vyzyvajici->IDH, IDP] Splnili := Zapas[Vyzyvajici->IDP] \ Neuskutecnene [IDH] Vysledek := Splnili *> Hrac
Universum := Hrac[IDH] X Placek[IDP] Neuskutecnene := Universum \ Zapas [Vyzyvajici->IDH, IDP] Splnili:= Hrac[IDH] \ Neuskutecnene [IDH] Vysledek:= Splnili *> Hrac