På första raden står det 7 i kolumn B och 9 i kolumn C. Även på tredje raden står det 7 i kolumn B, och eftersom B → C måste det stå 9 i kolumn C på den raden.
På första raden står det 7 i kolumn B, 6 i kolumn D och 4 i kolumn E. Även på tredje raden står det 7 i kolumn B och 6 i kolumn D, och eftersom {B, D} → E måste det stå 4 i kolumn E på den raden.
Vi ser att det står 9 i kolumn C både på första raden och sista raden, och det finns ett ffb B → C, men funktionella beroenden är inte dubbelriktade, så bara för att det står 7 i kolumn B på första raden kan vi inte sluta oss till att det står 7 i kolumn B också på sista raden.
Däremot kan vi använda beroendet {B, D} → E för att se vad det inte kan stå:
Utgående från de två ffb vi känner till, dvs B → C och {B, D} → E, kan vi skapa många funktionella beroenden som inte är fullständiga:
{ A, B, D, E } → C
{ A, B, D } → C
{ A, B, E } → C
{ A, B } → C
{ B, D, E } → C
{ B, D } → C
{ B, E } → C
{ A, B, C, D } → E
{ A, B, D } → E
{ B, C, D } → E
(Om uppgiften hade varit att lista alla funktionella beroenden, och inte bara alla icke-fullständiga funktionella beroenden, skulle vi också tagit med B → C och {B, D} → E. Ett fullständigt funktionellt beroende är ett funktionellt beroende.)
Det går inte att veta vilken av kandidatnycklarna man har valt som primärnyckel, men en rimlig gissning är den första av de två, dvs { Båt, Datum, Tid 1 }.
Fullständiga funktionella beroenden:
Eftersom det bara finns en kandidatnyckel blir den också primärnyckel.
Fullständiga funktionella beroenden:
Första normalformen föreskriver enkla, odelbara värden, eller annorlunda uttryckt "högst ett värde i varje ruta". Här har jag stoppat in en hel lista med värden i samma ruta.
b)
Ingen av dessa. De höge normalformerna lägger var och en på ytterligare krav, som tabellen måste uppfylla. 2NF förutsätter 1NF, och lägger sen på ytterligare krav. 3NF förutsätter 2NF, och lägger sen på ytterligare krav. BCNF förutsätter 3NF, och lägger sen på ytterligare krav.
c)
Primärnycklarna är understrukna:
Referensattribut:
Med exempeldata:
|
|
d)
Båda tabellerna innehåller nu endast enkla, atomära värden, så de uppfyller 1NF. De uppfyller också BCNF, eftersom varje determinant är en kandidatnyckel, dvs det finns inga fullständiga funktionella beroenden som går från något som inte är en kandidatnyckel: