Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Relationsdatabaser og SQL

Lignende præsentationer


Præsentationer af emnet: "Relationsdatabaser og SQL"— Præsentationens transcript:

1 Relationsdatabaser og SQL
Del 4 af 4: Normalisering og dataintegritet Aalborg Universitet, d. 6. september 2006 B e n t M ø l l e r M a d s e n

2 Normalisering Optimering af et databasedesign Undgå redundans
Medfører opdeling til flere tabeller Disse skal kunne samles (joines) igen uden datatab 6 normalformer 1., 2., 3., Boyce-Codd, 4. og 5. normalform Mest almindelige er 1. til 3. normalform + evt. Boyce Codd normalformen (BCNF)

3 Første Normalform (1NF)
Mindstekrav til en relationel database Krav til tabeller på 1NF: For hver række gælder det, at kun én værdi må indtastes i hver kolonne. Der må ikke forekomme repeterende grupper Der skal eksistere en primærnøgle

4 1. normalform - et eksempel
Vare_id Navn Kategori Pris_1 Pris_2 Pris_3 210 Sofabord Stue, Glas 699,50 749,50 779,00 212 Stol Stue, Klassisk 499,00 529,50 Vare_id Navn 210 Sofabord 212 Stol Vare_id Pris 210 699,50 749,50 779,00 212 499,00 529,50 Vare_id Kategori_id 210 11 12 212 13 Kategori_id Navn 11 Stue 12 Glas 13 Klassisk

5 Anden normalform (2NF) Krav til en tabel på 2NF:
Tabellen skal være på 1NF Alle ikke-nøgle attributter skal være fuldt funktionelt afhængige af primærnøglen Dvs. at ikke-nøgle attributter ikke må være afhængige af en delmængde af primærnøglen. Kun relevant, hvis primærnøglen består af 2 eller flere kolonner

6 2. normalform - et eksempel
Ordre_id Linie_id Kunde_id Ordre_dato Vare_id Antal 101 1 1013 423 40 2 251 10 3 122 5 Ordre_id Kunde_id Ordre_dato 101 1013 Ordre_id Linie_id Vare_id Antal 101 1 423 40 2 251 10 3 122 5

7 Tredje normalform (3NF)
Krav til en tabel på 3NF: Tabellen skal være på 2NF Ingen ikke-nøgle attributter er transitivt afhængige af primærnøglen Dvs. at attributterne kun må være afhængig af primærnøglen og ikke andre, heller ikke en kombination af andre attributter Transitiv afhængighed A  B og B  C  A  C

8 3. normalform - et eksempel
Medarbejdere Id Navn Adresse Postnr Bynavn 101 Hans Jensen Sildevej 45 9000 Aalborg 102 Inga Petersen Østre Alle 30 103 Peter Andersen Æblestien 4 8000 Århus C Medarbejdere Id Navn Adresse Postnr 101 Hans Jensen Sildevej 45 9000 102 Inga Petersen Østre Alle 30 103 Peter Andersen Æblestien 4 8000 Postnumre Postnr Bynavn 9000 Aalborg 8000 Århus C

9 Boyce-Codd normalform (BCNF)
Krav til en tabel på BCNF: Alle determinanter skal være kandidatnøgler En determinant er en eller flere attributter, der bestemmer (determinerer) andre attributters værdi En kandidatnøgle er en potentiel primærnøgle Eller på dansk: En tabel er på BCNF, når alle felter eller sammensatte felter, der kan bruges som nøgle for en del af tabellen, også kan bruges som primærnøgle for hele tabellen. BCNF er et alternativ til normalform + at den opfanger et specialtilfælde der ikke dækkes af normalform

10 Normalisering - opsamling
Normaliser til 3. normalform eller BCNF Brug sund fornuft Overvejelser i forbindelse med undtagelser for normalisering og denormalisering Konsekvenser for performance Konsekvenser for integritet

11 Integritet Fjerne fejl i databasen
Sikre at der er sammenhæng i databasen, og at denne opretholdes og fungerer Sikre at data bliver indtastet det rigtige sted Sikre overensstemmelse mellem virkeligheden og informationer i databasen

12 Typer af integritet Entitetsintegritet: Referentiel integritet
Alle rækker i en tabel skal være identificerbare Referentiel integritet Integriteten mellem tabeller Semantisk integritet: Betydning af data

13 Sikring af integritet Entitetsintegritet: Referentiel integritet:
Primærnøgle Referentiel integritet: Fremmednøgler Semantisk integritet: Datatyper Not Null Unikke nøgler Check betingelser

14 Sikring af integritet - eksempel
CREATE TABLE medarbejdere (id NUMBER(4) PRIMARY KEY , navn VARCHAR2(50) NOT NULL, loen NUMBER(7,2) NOT NULL, koen CHAR(1), afd_id NUMBER(3), CONSTRAINT med_afd_fk FOREIGN KEY (afd_id) REFERENCES afdelinger (id) ON DELETE CASCADE, CONSTRAINT min_loen CHECK (loen >= 15000), CONSTRAINT koen_cc CHECK (koen IN (’m’,’k’));

15 ?


Download ppt "Relationsdatabaser og SQL"

Lignende præsentationer


Annoncer fra Google