agenturer.no

Beskyttet innhold!

For å lese denne og våre øvrige sider må du tegne et årsabonnement og være logget inn.

Som abonnent/medlem får du tilgang til alt innholdet på sidene våre, og skulle sidene våre ikke leve opp til forventningene dine har vi en "Pengene tilbake garanti" du kan benytte.

Tegn abonnement!

    Denne artikkelen er del 9 av 9 artikler om Databasedesign

  • Metode for å kontrollere strukturen på relasjonsdatabasen før den implementeres.
  • Bottom-up tilnærming → starter med attributter, ender med tabeller.
  • Krav til relasjonene i en database at de er normaliserte.
  • Mål: unngå redundans og problemer med anomalier.
  • Utgangspunkt: normalformer.
Annonse

Redundans og anomalier

redudanse-tabell

  • Redundans: dobbeltlagring av data.
  • Anomalier:
    • Innsettingsanomali → f.eks. ved nye bestillinger
    • Oppdateringsanomali → f.eks. ved endring av opplysningene om en film
    • Sletteanomali → f.eks. ved kansellering av bestillinger

Normalformene

  • Spesifiserte krav til tabellene.
  • Dersom brudd på en normalform: oppsplitting av tabeller – vha. fremmednøkler beholder man koblingene.
  • Seks typer normalformer:
    1. Første normalform (1NF)
    2. Andre normalform (2NF)
    3. Tredje normalform (3NF)
    4. Fjerde normalform (4NF)
    5. Femte normalform (5NF)
    6. Boyce-Codd normalform

Normalformene bygger på hverandre:

inf

Annonse

1NF – eksempel

int2

  • Er denne tabellen i 1NF?

Ved brudd på 1NF

  • To mulige løsninger:
    1. Splitte radene med repeterende verdier.
    2. Skille ut kolonnene med repeterende verdier. Primærnøkkelen i den opprinnelige tabellen legges som fremmednøkkel i den nye tabellen.

Det er ingen fasit for hvilken løsning man velger.

Annonse

Løsning 1 – splitte rader

int3

  • Kun kolonner med atomære verdier.
  • Oppfyller 1NF.

Løsning 2 – skille ut kolonner

To nye tabeller: Én for Kunde:

int4

og én for Filmbestilling:

int5

Kolonnene inneholder kun atomære verdier = 1NF.

Annonse


Andre normalform (2NF)

Definisjon:
En tabell er i andre normalform hvis og bare hvis den er i 1NF og alle kolonnene som ikke er en del av primærnøkkelen er funksjonelt avhengige av hele primærnøkkelen, og ikke bare deler av den.

Brudd på 2NF:

int6

Funksjonelle avhengigheter:

  • Dersom attributt A entydig bestemmer verdien på attributt B:
    A → B
    A er determinant for B.
  • Alle attributtene må altså entydig bestemmes av hele primærnøkkelen, ikke bare deler av den.
  • Funksjonelle avhengigheter finner man ved å analysere tabellene.
  • Primærnøklene må være definert før man starter analysearbeidet.

2NF – eksempel

int7

Primærnøkkel: Kundenr og FilmID.

Hvordan er de funksjonelle avhengighetene?

Dersom brudd på 2NF: de funksjonelt avhengige attributtene skilles ut i en egen tabell sammen med determinanten.

2NF – eksempel forts.

Én ny tabell med de funksjonelt avhengige attributtene og determinanten:

int8

2NF – eksempel forts.

int9

 Denne artikkelen er hentet fra http://www.jbi.hio.no/bibin/KoG1db/2006/forelesninger/databaseteori-3.html

Kilde: http://www.jbi.hio.no/bibin/KoG1db/2006/forelesninger/databaseteori-3.html

Fant du ikke svaret? Spør redaksjonen!

Fant du ikke svaret?

Fyll ut skjemaet under hvis du har et spørsmål knyttet til denne artikkelen.

Ditt spørsmål:

Ditt navn:

E-post:

Rapporter en feil, mangel eller savn

Rapporter en feil, mangel eller et savn

Benytt skjemaet under hvis du finner en feil eller mangel i en av våre artikler. Uten tilbakemeldinger fra våre lesere er det umulig for oss å forbedre våre artikler.

Jeg ønsker å rapportere inn en:

En feilEn mangelEt savn

Angi en feil, mangel eller savn:

Ditt navn:

E-post:

Du kan også laste ned denne artikkelen og resten av artikkelserien som en e-bok Artikkelserien fortsetter under.

Topp20 artikler
Siste 20 artikler
Nye artikkelserier
Du leser nå artikkelserien: Databasedesign

  Gå til neste / forrige artikkel i artikkelserien: << Indekseringsspråk (i-språk)
    Andre artikler i serien er: 
  • Database
  • Hva er databasedesign, og hvordan gå frem for å lage en database?
  • Databasebygging ved hjelp av Enity – Relationship – informasjonsmodellen
  • Enhet (entitet)
  • Relasjoner og kardinaliteter i ER-modellen
  • Entity-relationship diagram (ER-diagram)
  • Noen designprinsipper ved datamodellering (ER-modellen)
  • Indekseringsspråk (i-språk)
  • Normalisering