Varianta A:
Příklad 1:
(Použiju zkrácený zápis, tam to byly slova jako Lékař, Čas apod)
Schéma = {P, L, C, B, O, N, K}
FZ = {L->O, LC->P, PC->L, PC->K, O->B, K->N}
** - Najděte všechny klíče. (10b)
** - Najděte všechny redundantní atributy a funkční závislosti. (10b)
** -** Určete minimální pokrytí. (5b)
** -** Můžete začít alg. dekompozice podle funkční závistlosti LC->P? Proč? (5b)
Provědte dekompozici do BCNF, určete bezztrátovost, pokrytí, NF. (20b)
Příklad 2:
Mějme:
Student(rč_stud, jméno, rok_narození)
Učitel(rč_uč, co-já-vim)
Výuka(rč_uč, čís_před, zase-něco)
Zápis(čís_před, rč_stud, hodnocení)
A:
Máme dotaz:
"Vypište všechny učitele (stačí čísla), jejichž přednášky mají zapsány všichni studenti narození r.1984)"
1) Zapište v relační algebře pomocí operátoru dělení (15 b)
2) Nakreslete strom operací (či jak se to) a určete pořadí vyhodnocování operandů (10 b)
B:
Máme dotaz v DRK:
{rč_uč | Učitel(rč_uč) AND PROKAŽDÉ čís_před (
Výuka(rč_uč, čís_před)
=> PROKAŽDÉ rč_stud (
NOT Student(rč_stud) OR NOT Zápis(čís_před, rč_stud)
))}
1) Co dělá dotaz? Zapište v normálním jazyce (10 b)
**2) **Je dotaz bezpečný? Jestli není, napište funkčně stejný bezpečný dotaz. (15 b)
Doufám, že se vám to bude líbit stejně jako mně. Budu rád, když budu mít 50 bodů :evil:

