niomi Skrevet 19. april 2013 Del Skrevet 19. april 2013 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 Lenke til kommentar
niomi Skrevet 19. april 2013 Forfatter Del Skrevet 19. april 2013 Vil forresten si at alt jeg egentlig har lyst til er å lage to tabeller av den Lenke til kommentar
tomsi42 Skrevet 19. april 2013 Del Skrevet 19. april 2013 (endret) 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 19. april 2013 av tomsi42 Lenke til kommentar
Mr D Skrevet 19. april 2013 Del Skrevet 19. april 2013 (endret) 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 19. april 2013 av Mr D Lenke til kommentar
tomsi42 Skrevet 19. april 2013 Del Skrevet 19. april 2013 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
scriptkiddy Skrevet 20. april 2013 Del Skrevet 20. april 2013 (endret) 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 20. april 2013 av scriptkiddy Lenke til kommentar
tomsi42 Skrevet 20. april 2013 Del Skrevet 20. april 2013 (endret) 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 20. april 2013 av tomsi42 Lenke til kommentar
niomi Skrevet 21. april 2013 Forfatter Del Skrevet 21. april 2013 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
scriptkiddy Skrevet 21. april 2013 Del Skrevet 21. april 2013 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
niomi Skrevet 22. april 2013 Forfatter Del Skrevet 22. april 2013 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå