Rešitve: Iskanje ključev in normalizacija
1. Imamo relacijo (tabelo) OceneIzpitov(VpisnaSt, Predmet, Semester, Ocena) Določite funkcionalne odvisnosti in
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
Glede na besedilo določimo naslednje funkcionalne odvisnosti:
VpisnaSt, Predmet $\rightarrow$ Ocena
Predmet $\rightarrow$ Semester
Od tukaj naprej krajšamo (VpisnaSt = V, Prdemet = P, Ocena = O, Semester = S)
a)
K = {V, P, S, O}
{K-{V}}+ = {P, S, O}
K = {V, P, S, O}
{K-{P}}+ = {V, S, O}
K = {V, P, S, O}
{K-{S}}+ = {V, P, O, S} //P$\rightarrow$S
K = {V, P, O}
{K-{O}}+ = {V, P, O, S} //V,P$\rightarrow$O; P $\rightarrow$ S
K = {V, P} // ključ je VP
b)
L = {V,P}
R = {O, S}
B = {}
L+ = {V, P, O, S} //V,P$\rightarrow$O; P$\rightarrow$S
Edini ključ je VP.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ VP
2. NO: ni, ker je P$\rightarrow$S parcialna odvisnost
3. NO: ni, ker ni v 2.NO
d)
$\rho$ = {}
$\rho$ = {VS} //P$\rightarrow$S (paricalna)
$\rho$ = {VS, VPO} //kar ostane
OceneIzpitov(VpisnaSt, #Predmet, Ocena)
Predmeti(Predmet, Semester)
2. Imamo relacijo (tabelo) PostavkaNarocila(SifraNarocila, CrtnaKodaIzdelka, SifraIzdelka, OpisIzdelka, CenaIzdelka, Kolicina) Določite funkcionalne odvisnosti in
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
Okrajšave:
SifraNarocila = $S_n$, CrtnaKodaIzdelka = $C_k$, SifraIzdelka = $S_i$, OpisIzdelka = $O$, CenaIzdelka = $C$, Kolicina = $K_o$
Funkcionalne odvisnosti:
$C_k \rightarrow S_i$,
$S_i \rightarrow C_k$,
$S_i \rightarrow O,C$,
$S_n, S_i \rightarrow K_o$
a)
K = {$S_n$, $S_i$, $C_k$, $O$, $C$, $K_o$}
{K-{$S_n$}}+ = {$S_i$, $C_k$, $O$, $C$, $K_o$}
K = {$S_n$, $S_i$, $C_k$, $O$, $C$, $K_o$}
{K-{$S_i$}}+ = {$S_n$, $C_k$, $O$, $C$, $K_o$, $S_i$} //$C_k \rightarrow S_i$
K = {$S_n$, $C_k$, $O$, $C$, $K_o$}
{K-{$C_k$}}+ = {$S_n$, $O$, $C$, $K_o$}
K = {$S_n$, $C_k$, $O$, $C$, $K_o$}
{K-{$O$}}+ = {$S_n$, $C_k$, $C$, $K_o$, $S_i$, $O$} //$C_k \rightarrow S_i$, $S_i \rightarrow O$
K = {$S_n$, $C_k$, $C$, $K_o$}
{K-{$C$}}+ = {$S_n$, $C_k$, $K_o$, $S_i$, $O$, $C$} //$C_k \rightarrow S_i$, $S_i \rightarrow O, C$
K = {$S_n$, $C_k$, $K_o$}
{K-{$K_o$}}+ = {$S_n$, $C_k$, $S_i$, $O$, $C$, $K_o$} //$C_k \rightarrow S_i$, $S_i \rightarrow O, C$, $S_n, S_i \rightarrow K_o$
K = {$S_n$, $C_k$}
Ključ je $S_nC_k$.
b)
L = {$S_n$}
R = {$C$, $O$, $K_o$}
B = {$S_i$, $C_k$}
L+ = {$S_n$} //L ni ključ
{$S_n$, $S_i$}+ = {$S_n$, $S_i$, $C_k$, $O$, $C$, $K_o$} //$S_i \rightarrow C_k$, $S_i \rightarrow O, C$, $S_n, S_i \rightarrow K_o$
{$S_n$, $C_k$}+ = {$S_n$, $C_k$, $S_i$, $O$, $C$, $K_o$} //$C_k \rightarrow S_i$, $S_i \rightarrow O, C$, $S_n, S_i \rightarrow K_o$
Ključa sta $S_nS_i$ in $S_nC_k$.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ $S_nS_i$
2. NO: ni, ker je $S_i \rightarrow C_k$ parcialna odvisnost
3. NO: ni, ker ni v 2.NO
d)
$\rho$ = {}
$\rho$ = {$S_iC_k$} //$S_i \rightarrow C_k$ (paricalna)
$\rho$ = {$S_iC_k$, $S_iOC$} //$S_i \rightarrow O,C$ (parcialna)
$\rho$ = {$S_iC_k$, $S_iOC$, $S_nS_iK_o$} //kar ostane
PostavkaNarocila(SifraNarocila, #SifraIzdelka, Kolicina)
CrtneKode(SifraIzdelka, CrtnaKodaIzdelka)
Izdelek(SifraIzdelka, OpisIzdelka, CenaIzdelka)
3. Imamo relacijo (tabelo) s podanimi funkcionalnimi odvisnostmi. Določite
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
Zaloga (SifraIzdelka, SifraAkcije, Proizvajalec, OpisIzdelka, CenaIzdelka)
SifraIzdelka, SifraAkcije $\rightarrow$ Proizvajalec, OpisIzdelka, CenaIzdelka
SifraIzdelka $\rightarrow$ Proizvajalec, OpisIzdelka
Okrajšave:
SifraIzdelka = $S_i$, SifraAkcije = $S_a$, Proizvajalec = $P$, OpisIzdelka = $O$, CenaIzdelka = $C$
Funkcionalne odvisnosti lahko skrajšamo na:
$S_i, S_a \rightarrow C$,
$S_i \rightarrow P, O$
a)
K = {$S_i$, $S_a$, $P$, $O$, $C$}
{K-{$S_i$}}+ = {$S_a$, $P$, $O$, $C$}
K = {$S_i$, $S_a$, $P$, $O$, $C$}
{K-{$S_a$}}+ = {$S_i$, $P$, $O$, $C$}
K = {$S_i$, $S_a$, $P$, $O$, $C$}
{K-{$P$}}+ = {$S_i$, $S_a$, $O$, $C$, $P$} //$S_i \rightarrow P$
K = {$S_i$, $S_a$, $O$, $C$}
{K-{$O$}}+ = {$S_i$, $S_a$, $C$, $P$, $O$} //$S_i \rightarrow P,O$
K = {$S_i$, $S_a$, $C$}
{K-{$C$}}+ = {$S_i$, $S_a$, $C$, $P$, $O$} //$S_i, S_a \rightarrow C$, $S_i \rightarrow P,O$
K = {$S_i$, $S_a$}
Ključ je $S_iSa$.
b)
L = {$S_i$, $S_a$}
R = {$P$, $O$, $C$}
B = {}
L+ = {$S_i$, $S_a$, $C$, $P$, $O$} //$S_i, S_a \rightarrow C$, $S_i \rightarrow P,O$
Edini ključ je $S_iS_a$.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ $S_iS_a$
2. NO: ni, ker je $S_i \rightarrow P$ parcialna odvisnost
3. NO: ni, ker ni v 2.NO
d)
$\rho$ = {}
$\rho$ = {$S_iPO$} //$S_i \rightarrow P,O$ (paricalna)
$\rho$ = {$S_iPO$, $S_iS_aC$} //kar ostane
Zaloga(#SifraIzdelka, SifraAkcije, CenaIzdelka)
Izdelek(SifraIzdelka, Proizvajalec, OpisIzdeka)
4. Imamo relacijo (tabelo) s podano funkcionalno odvisnostjo. Ob predpostavki, da imajo vsi produkti istega založnika enako garancijo določite še ostale funkcionalne odvisnosti in
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
ProgramskaOprema(Založnik, Produkt, Verzija, SistemskeZahteve, Cena, Garancija)
Založnik, Produkt, Verzija $\rightarrow$ SistemskeZahteve, Cena, Garancija
Glede na besedilo lahko dodamo:
Založnik $\rightarrow$ Garancija
Okrajšave:
Založnik = Z, Produkt = P, Verzija = V, SistemskeZahteve = S, Cena = C, Garancija = G
Funkcionalne odvisnosti lahko okrajšamo:
Z, P, V $\rightarrow$ S, C
Z $\rightarrow$ G (na nekaterih vajah smo pomotoma pisali P, Z $\rightarrow$ G)
a)
K = {Z, P, V, S, C, G}
{K-{Z}}+ = {P, V, S, C, G}
K = {Z, P, V, S, C, G}
{K-{P}}+ = {Z, V, S, C, G}
K = {Z, P, V, S, C, G}
{K-{V}}+ = {Z, P, S, C, G}
K = {Z, P, V, S, C, G}
{K-{S}}+ = {Z, P, V, C, G, S} //Z, P, V $\rightarrow$ S
K = {Z, P, V, C, G}
{K-{C}}+ = {Z, P, V, G, S, C} //Z, P, V $\rightarrow$ S, C
K = {Z, P, V, G}
{K-{G}}+ = {Z, P, V, S, C, G} //Z, P, V $\rightarrow$ S, C; Z $\rightarrow$ G
K = {Z, P, V}
Ključ je ZPV.
b)
L = {Z, P, V}
R = {S, C, G}
B = {}
L+ = {Z, P, V, S, C, G} //Z, P, V $\rightarrow$ S, C; Z $\rightarrow$ G
Edini ključ je ZPV.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ ZPV.
2. NO: ni, ker je Z $\rightarrow G$ parcialna odvisnost
3. NO: ni, ker ni v 2.NO
d)
$\rho$ = {}
$\rho$ = {ZG} // Z $\rightarrow G$ (paricalna)
$\rho$ = {ZG, ZPVSC} //kar ostane
ProgramskaOprema(#Založnik, Produkt, Verzija, SistemskeZahteve, Cena)
Založniki (Založnik, Garancija)
5. Imamo relacijo (tabelo) s podanimi funkcionalnimi odvisnostmi. Določite
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
R1(H, I, J, K, L, M, N, O)
H, I $\rightarrow$ J, K, L
J $\rightarrow$ M
K $\rightarrow$ N
L $\rightarrow$ O
a)
K = {H, I, J, K, L, M, N, O}
{K-{H}}+ = {H, I, J, K, L, M, N, O}
K = {H, I, J, K, L, M, N, O}
{K-{I}}+ = {H, J, K, L, M, N, O}
K = {H, I, J, K, L, M, N, O}
{K-{J}}+ = {H, I, K, L, M, N, O, J} //H,I $\rightarrow$ J
K = {H, I, K, L, M, N, O}
{K-{K}}+ = {H, I, L, M, N, O, J, K} //H,I $\rightarrow$ J, K
K = {H, I, L, M, N, O}
{K-{L}}+ = {H, I, M, N, O, J, K, L} //H,I $\rightarrow$ J, K, L
K = {H, I, M, N, O}
{K-{M}}+ = {H, I, N, O, J, K, L, M} //H,I $\rightarrow$ J, K, L; J $\rightarrow$ M
K = {H, I, N, O}
{K-{N}}+ = {H, I, O, J, K, L, M, N} //H,I $\rightarrow$ J, K, L; J $\rightarrow$ M; K $\rightarrow$ N
K = {H, I, O}
{K-{O}}+ = {H, I, J, K, L, M, N, O} //H,I $\rightarrow$ J, K, L; J $\rightarrow$ M; K $\rightarrow$ N; L $\rightarrow$ O
K = {H, I}
Ključ je HI.
b)
L = {H,I}
R = {M, N, O}
B = {J, K, L}
L+ = {H, I, J, K, L, M, N, O} //H,I $\rightarrow$ J, K, L; J $\rightarrow$ M; K $\rightarrow$ N; L $\rightarrow$ O
Edini ključ je HI.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ HI.
2. NO: je, ker nimamo parcilnih odvisnosti.
3. NO: ni, ker je J $\rightarrow$ M tranzitivna odvisnost.
d)
$\rho$ = {}
$\rho$ = {JM} //J $\rightarrow M$ (tranzitivna)
$\rho$ = {JM, KN} //K $\rightarrow N$ (tranzitivna)
$\rho$ = {JM, KN, LO} //L $\rightarrow O$ (tranzitivna)
$\rho$ = {JM, KN, LO, HIJKL} //kar ostane
R1(H, I, #J, #K, #L)
R2(J, M)
R3(K, N)
R4(L, O)
6. Imamo relacijo (tabelo) s podanimi funkcionalnimi odvisnostmi. Določite
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
R2(D, O, N, T, C, R, Y)
D, O $\rightarrow$ N, T, C, R, Y
C, R $\rightarrow$ D
D $\rightarrow$ N
Funkcionalne odvisnosti lahko malenkostno okrajšamo:
D, O $\rightarrow$ T, C, R, Y
C, R $\rightarrow$ D
D $\rightarrow$ N
a)
K = {D, O, N, T, C, R, Y}
{K-{D}}+ = {O, N, T, C, R, Y, D} // C, R $\rightarrow$ D
K = {O, N, T, C, R, Y}
{K-{O}}+ = {N, T, C, R, Y, D} // C, R $\rightarrow$ D
K = {O, N, T, C, R, Y}
{K-{N}}+ = {O, T, C, R, Y, D, N} // C, R $\rightarrow$ D; D $\rightarrow$ N
K = {O, T, C, R, Y}
{K-{T}}+ = {O, C, R, Y, D, N, T} // C, R $\rightarrow$ D; D $\rightarrow$ N; D, O $\rightarrow$ T
K = {O, C, R, Y}
{K-{C}}+ = {O, R, Y}
K = {O, C, R, Y}
{K-{R}}+ = {O, C, Y}
K = {O, C, R, Y}
{K-{Y}}+ = {O, C, R, D, N, T, Y} // C, R $\rightarrow$ D; D $\rightarrow$ N; D, O $\rightarrow$ T, Y
K = {O, C, R}
b)
L = {O}
R = {N, T, Y}
B = {D, C, R}
L+ = {O}
L ni ključ, zato preverimo L + po en element iz B.
{O, D}+ = {O, D, T, C, R, Y, N} //D, O $\rightarrow$ T, C, R, Y; D $\rightarrow$ N
{O, C}+ = {O, C}
{O, R}+ = {O, R}
Ključ je OD, preverimo še L + po dva elementa iz B (pri tem smo atribut D že odstranili, ker je del manjšega ključa).
{O, C, R}+ = {O, C, R, D, T, Y, N} // C, R $\rightarrow$ D; D, O $\rightarrow$ T, Y; D $\rightarrow$ N
Ključa sta OD in OCR.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ OD.
2. NO: ni, ker imamo parcilno odvisnost D $\rightarrow$ N.
3. NO: ni, ker ni v 2. NO.
d)
$\rho$ = {}
$\rho$ = {DN} //D $\rightarrow N$ (parcialna)
$\rho$ = {DN, DOTCRY} //kar ostane
R1(#D, O, T, C, R, Y)
R2(D, N)
7. Imamo relacijo (tabelo) s podanimi funkcionalnimi odvisnostmi. Določite
a) en ključ (Elmasri-Navathe)
b) vse ključe (Saiedian-Spencer)
c) Ugotovite v kateri normalni obliki je tabela.
d) Normalizirajte v 3 NO.
Shipping (ShipName, ShipType, VoyageID, Cargo, Port, Date)
ShipName $\rightarrow$ ShipType
VoyageID $\rightarrow$ ShipName, Cargo
ShipName, Date $\rightarrow$ VoyageID, Port
Date je datum prihoda ladje v pristanišče (Port).
Okrajšave:
ShipName = N, ShipType = T, VoyageID = V, Cargo = C, Port = P, Date = D
a)
K = {N, T, V, C, P, D<span style="font-size: 0.9375rem;">}
K = {T, V, C, P, D}
{K-{T}}+ = {V, C, P, D, N, T} // V $\rightarrow$ N; N $\rightarrow$ T
K = {V, C, P, D}
{K-{V}}+ = {C, P, D}
K = {V, C, P, D}
{K-{C}}+ = {V, P, D, N, C, T} // V $\rightarrow$ N, C; N $\rightarrow$ T
K = {V, P, D}
{K-{P}}+ = {V, D, N, C, T, P} // V $\rightarrow$ N, C; N $\rightarrow$ T; N, D $\rightarrow$ P
K = {V, D}
{K-{D}}+ = {V, N, C, T} // V $\rightarrow$ N, C; N $\rightarrow$ T
K = {V, D}
b)
L = {D}
R = {T, C, P}
B = {N, V}
L+ = {D}
L ni ključ, zato preverimo L + po en element iz B.
{D, N}+ = {D, N, T, V, P, C} // N $\rightarrow$ T; N, D $\rightarrow$ V, P; V $\rightarrow$ C
{D, V}+ = {D, V, N, C, T, P} //V $\rightarrow$ N, C; N $\rightarrow$ T; N, D $\rightarrow$ P
Ključa sta DN in DV.
c)
1. NO: je, ker imamo določene funkcionalne odvisnosti in primarni ključ DV.
2. NO: ni, ker imamo parcilno odvisnost V $\rightarrow$ N, C.
3. NO: ni, ker ni v 2. NO.
d)
$\rho$ = {}
$\rho$ = {NT} //N $\rightarrow$ T (tranzitivna)
$\rho$ = {NT, VNC} //V $\rightarrow$ N, C (parcialna)
$\rho$ = {NT, VNC, VPD} //kar ostane
Route(#V, P, D)
ShipTypes(N, T)
Shipping(V, #N, C)