Vinnaren i pepparkakshustävlingen!
2016-10-21, 11:54
  #1
Medlem
The-Johans avatar
Hej! Vi är helt lost just nu känns det som i denna fråga.
Följande begränsningar finns:
1. Varje student har ett personnummer och ett studentnummer, där antigen
personnumret eller studentnumret kan användas för att unikt identifiera en
student.
2. Varje student läser ett eller flera kurser och kan prata ett eller flera språk.

Vi har dessa relationerna:
R(personnummer, studentnummer, kurs, språk)

Och vi har kommit fram till dessa funktionella beroenden som vi vet är rätt:
Fd1: studentnummer → personnummer
Fd2: personnummer → studentnummer
Fd3: kurs, språk, studentnummer → personnummer
Fd4: kurs, språk, personnummer → studentnummer

Vi ska nu normalisera detta stegvis från 1NF till 4NF. Vi skall även ange primärnycklar och kandidatnycklar.

Vi skulle uppskatta starkt att få svar på vår fråga då våra hjärnor håller på att kollapsa helt

Tack på förhand!
Mvh Johan
Citera
2016-10-21, 12:37
  #2
Medlem
Citat:
Ursprungligen postat av The-Johan
Hej! Vi är helt lost just nu känns det som i denna fråga.
Följande begränsningar finns:
1. Varje student har ett personnummer och ett studentnummer, där antigen
personnumret eller studentnumret kan användas för att unikt identifiera en
student.
2. Varje student läser ett eller flera kurser och kan prata ett eller flera språk.

Vi har dessa relationerna:
R(personnummer, studentnummer, kurs, språk)

Och vi har kommit fram till dessa funktionella beroenden som vi vet är rätt:
Fd1: studentnummer → personnummer
Fd2: personnummer → studentnummer
Fd3: kurs, språk, studentnummer → personnummer
Fd4: kurs, språk, personnummer → studentnummer

Vi ska nu normalisera detta stegvis från 1NF till 4NF. Vi skall även ange primärnycklar och kandidatnycklar.

Vi skulle uppskatta starkt att få svar på vår fråga då våra hjärnor håller på att kollapsa helt

Tack på förhand!
Mvh Johan
Vilka steg är det ni inte grejar? Kan ni inte gå från det ni har nu till 2NF? därifrån till 3NF vidare till 4NF är väl bara applicera algoritmen som jag antar att ni har fått i någon kursbok
__________________
Senast redigerad av Oscillation 2016-10-21 kl. 12:47.
Citera
2016-10-21, 12:53
  #3
Medlem
The-Johans avatar
Citat:
Ursprungligen postat av Oscillation
Vilka steg är det ni inte grejar? Kan ni inte gå från det ni har nu till 2NF? därifrån till 3NF vidare till 4NF är väl bara applicera algoritmen som jag antar att ni har fått i någon kursbok

Vi hade hoppats på att få se ett exempel på varje steg med ordentliga och tydliga förklaringar, men vi kan ha tagit oss till BCNF nu, bara 4NF som ställer till det för oss. Vi har läst i kursboken samt kollat online men vi blir inte riktigt kloka på det därför vi skriver här.

Så här ser det ut nu:

1NF
Relationen befinner sig redan i 1NF eftersom det finns en primärnyckel och det finns ett värde i en cell.

R(personnummer, studentnummer, kurs, språk)
Fd1: studentnummer → personnummer
Fd2: personnummer → studentnummer
Fd3: kurs, språk, studentnummer → personnummer (CK,PK)
Fd4: kurs, språk, personnummer → studentnummer (CK)

2NF
Är redan uppnådd eftersom det inte finns något icke-kanditatnyckelattribut där determinanten är en del av en CK.


3NF
Den uppfylls igenom att det inte finns några transitiva beroenden.


BCNF
Vi måste bryta ut FD1 och sätta den som PK så uppfylls kravet.
r(personnummer, Studentnummer)
Personnummer → studentnummer PK
Citera
2016-10-21, 16:23
  #4
Medlem
Citat:
Ursprungligen postat av The-Johan
Vi hade hoppats på att få se ett exempel på varje steg med ordentliga och tydliga förklaringar, men vi kan ha tagit oss till BCNF nu, bara 4NF som ställer till det för oss. Vi har läst i kursboken samt kollat online men vi blir inte riktigt kloka på det därför vi skriver här.

Så här ser det ut nu:

1NF
Relationen befinner sig redan i 1NF eftersom det finns en primärnyckel och det finns ett värde i en cell.

R(personnummer, studentnummer, kurs, språk)
Fd1: studentnummer → personnummer
Fd2: personnummer → studentnummer
Fd3: kurs, språk, studentnummer → personnummer (CK,PK)
Fd4: kurs, språk, personnummer → studentnummer (CK)

2NF
Är redan uppnådd eftersom det inte finns något icke-kanditatnyckelattribut där determinanten är en del av en CK.


3NF
Den uppfylls igenom att det inte finns några transitiva beroenden.


BCNF
Vi måste bryta ut FD1 och sätta den som PK så uppfylls kravet.
r(personnummer, Studentnummer)
Personnummer → studentnummer PK
Jag vet inte vad ni har för kursbok men jag tipsar att titta på Database Systems - The complete Book 2nd edition. s.103
Bör finnas pdf på internet, tycker 3NF BNCF och 4NF är riktigt bra förklarade där steg för steg.
Citera
2016-10-24, 15:53
  #5
Medlem
Har ni kollat http://www.databasteknik.se

Boken förklarar det grymt bra på svenska.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback