Gå til innhold

Anbefalte innlegg

Jeg blir mer og mer forvirra ang dette jo mer jeg leser om det, og jo flere filmer jeg ser som skal forklare hele greia. Så, jeg må bare dobbeltsjekke at jeg forstår det sånn ca.

 

Vi har en tabell hvor vi kun har fått vite nøklene:

 

Ansattnr, Ansattnavn, Tlfnr, Avdelingsnr, Avdelingsnavn

 

Vi skal forklare hvilke funksjonelle determineringer som er her og hvilken normalform dette er på. På determinering har jeg en gjetning som jeg stadig endrer på - som sagt jeg blir mer forvirra jo mer jeg leser om dritten. Det er dette:

 

Ansattnr -> Ansattnavn, Tlfnr

Ansattnr -> Tlfnr

Ansattnr -> Avdelingsnr (siden h*n jobber på en avdeling)

Avdelingsnr -> Avdelingsnavn

 

Jeg har helt sikkert gjort det feil for jeg forstår IKKE determinering. Derfor bestemte jeg meg for å hoppe til å finne ut av hvilken normaliseringform den er på. Her endte jeg også opp med å krangle med meg selv om svaret.

 

1NF: Det er ingen repeterende grupper her, så det er OK.

Det at en attributt er atomær vil jo si at man ikke kan bryte den mer ned. Man kan jo bryte Ansattnavn til F.navn og E.navn, men det er jo ikke alltid dette er nødvendig. Er det nødvendig vil vi si at den ikke er 1NF, men hvis vi lar det gå da og sier at det ikke er nødvendig så vil den gå for 1NF.

 

2NF: Her er jeg totalt forvirra til helvete. Det er jo ikke to primærnøkler her så man vil jo si at alle nøklene er avhengige av HELE primærnøkkelen, men hva skjer når vi har determineringen avdnr -> avdnavn (hvis vi har den? haha) ? Altså, vil jo tørre å påstå at Ansattenr alene ikke kan si noe om avdelingsnavn eller ? Eller vil den igrunn det siden jeg regner med at det kun vil være ett avdelingsnavn per id. Så da vil vi si at tabellen oppfyller 2NF også da eller?

 

Jeg prøvde å diskutere dette med en medstudent, men han var minst like forvirret som meg :p

Lenke til kommentar
Videoannonse
Annonse

Jeg kjenner ikke begrepet "funksjonelle determinering"; men ut ifra tabellen, så synes jeg dette virker som en tabell av andre norm. Ref wikipedia.

 

At du har lyst å splitte dette i to tabeller betyr at du er på rett vei. Det er muligens noen som vil ta dette videre til tre tabeller; men jeg er usikker på om det er naturlig ut i fra den informasjonen som er gitt.

Endret av tomsi42
Lenke til kommentar

Er ikke helt stødig på normalisering, men har lært at navn i utgangspunktet skal splittes for å få atomiske verdier. Beste løsning vil vel bli 2 tabeller:

 

Ansattnr, Etternavn, Fornavn, Tlfnr, Avdelingsnr

 

Avdelingsnr, Avdelingsnavn

 

Og da er vi vel på 3NF....(tror jeg).

Endret av Mr D
Lenke til kommentar

Det stemmer det. Det som jeg siktet til, er at mange vil også splitte ut telefon-nr. (Vi har jo gjerne mer enn et nå om dagen.

 

Da får vi:

 

Ansattnr, Etternavn, Fornavn, Avdelingsnr

 

Avdelingsnr, Avdelingsnavn

 

TelefonNr_id, Ansattnr, Tlfnr

 

Her har jeg laget en dummy ID som primær-nøkkel da det ikke er pent å bruke Ansattnr + Tlfnr som primærnøkkel. Øvelsen er da: Hvorfor?

 

Hvis jeg først skulle splitte ut telefonnr, så hadde jeg også lagt til et ekstra felt i telefonnr tabellen - type (Hjem, Jobb, Mobil, osv)

Lenke til kommentar

Det stemmer det. Det som jeg siktet til, er at mange vil også splitte ut telefon-nr. (Vi har jo gjerne mer enn et nå om dagen.

 

Da får vi:

 

Ansattnr, Etternavn, Fornavn, Avdelingsnr

 

Avdelingsnr, Avdelingsnavn

 

TelefonNr_id, Ansattnr, Tlfnr

 

Her har jeg laget en dummy ID som primær-nøkkel da det ikke er pent å bruke Ansattnr + Tlfnr som primærnøkkel. Øvelsen er da: Hvorfor?

 

Hvis jeg først skulle splitte ut telefonnr, så hadde jeg også lagt til et ekstra felt i telefonnr tabellen - type (Hjem, Jobb, Mobil, osv)

spm til: tomsi42

Hei, hvis man skal først splitte ut telefonnr, er det ikke like greit å opprette en kontaktinformasjons tabell , med epost, telefonnr, faks og evnt annen kontaktinformasjon?

 

Mitt forslag til normalisering, ingen ekspert, men føler jeg har litt peiling :)

 

Sånn når det komme til normalisering ut fra oppgaven du har gitt ville jeg ha gjort slik:

Ansatt_tabell

Ansattnr, Etternavn, Fornavn,Telefonnr, Avdelingsnr*

Etter som det ser ut til at du forutsetter at man kun kan ha en type kontaktinformasjon og kun et nr registrert i bedriften. Da vil du potensielt ha duplikat av data hvis det er en familie som jobber i samme bedrift med samme hus-tlfnr. Samme nr vil da potensielt varier fra 1-4.

 

Avdelings_tabell

Avdelingsnr,Avdelingsnavn

-

Eneste måten avdelingsnr kan determinere ansattnr er hvis ansattnr gjelder innad i avdelingen og ikke for hele bedriften. Er ikke noe vits å opprette en ny tabell for kun telefonnr, hvis man skal kun ha 1 type feks kun jobbnr.

 

Da ville du fått en helt annen oppsetning også.

Endret av scriptkiddy
Lenke til kommentar

spm til: tomsi42

Hei, hvis man skal først splitte ut telefonnr, er det ikke like greit å opprette en kontaktinformasjons tabell , med epost, telefonnr, faks og evnt annen kontaktinformasjon?

Det kan du godt si; men jeg tror at når vi begynner der, så tror jeg vi har gått langt vekk fra å svare på oppgaven, og gått over på redesign.

Endret av tomsi42
Lenke til kommentar

Splittinga var jeg jo ganske sikker på, men det er jo det jeg skal gjøre på b-oppgaven, ikke a-oppgaven. A-oppgaven er som sagt å vise hvilke determineringer som er i det oppsettet og hvilken normalform den står i på det oppsettet. Som sagt er jeg usikker på om de determineringene jeg har satt opp er riktig, og om tabellen bryter 1NF eller ikke + om den kanskje er på 2NF også?

 

Joda, i de fleste tilfeller vil man si at en tabell ikke står til 1NF hvis navnet ikke er delt opp, men som sagt er det ikke alltid nødvendig og det kommer da helt an på situasjonen om den attributten blir sett på som atomær eller ikke-atmoær.

Lenke til kommentar

Splittinga var jeg jo ganske sikker på, men det er jo det jeg skal gjøre på b-oppgaven, ikke a-oppgaven. A-oppgaven er som sagt å vise hvilke determineringer som er i det oppsettet og hvilken normalform den står i på det oppsettet. Som sagt er jeg usikker på om de determineringene jeg har satt opp er riktig, og om tabellen bryter 1NF eller ikke + om den kanskje er på 2NF også?

 

Joda, i de fleste tilfeller vil man si at en tabell ikke står til 1NF hvis navnet ikke er delt opp, men som sagt er det ikke alltid nødvendig og det kommer da helt an på situasjonen om den attributten blir sett på som atomær eller ikke-atmoær.

 

Regelen til 2NF er 1NF+ at ingen deler av primærnøkkelen skal determinere ikke determinere, ikke-nøkkel-attributter. Med mindre jeg misforstod tabell oppsettet du oppgav så vil jeg si den er på 2NF ved at man kan anta at i denne situasjonen så trenger ikke navn være delt opp i fornavn/etternavn.

Lenke til kommentar

Regelen til 2NF er 1NF+ at ingen deler av primærnøkkelen skal determinere ikke determinere, ikke-nøkkel-attributter. Med mindre jeg misforstod tabell oppsettet du oppgav så vil jeg si den er på 2NF ved at man kan anta at i denne situasjonen så trenger ikke navn være delt opp i fornavn/etternavn.

Takk, var det jeg trodde :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...