2009NOEA/IT - Databaser/arkitektur1 Tabeldesign Design af relationsdatabaser Normalisering.

Slides:



Advertisements
Lignende præsentationer
Relationer En relation mellem to mængder er en generaliseret funktion
Advertisements

Velkommen til matematikkonference 7/3-13
Arkitektur - data.
Mapning af klasser til relationer
2009NOEA/IT - Databaser/arkitektur1 Databaser Introduktion - Arkitektur Introduktion DBMS-arkitektur Datamodeller.
Databaser Teori.
Relationsdatabaser og SQL
3. Funktionelle afhængigheder og normalisering
Databasedesign • Hvad skal man tage højde for: – Hvad skal kunne trækkes UD af databasen – Hvilke data skal IND – Hvilke tabeller og felter skal vi have.
SQL 1 DDL og DML.
Felter og nøgle-felter (databaser, del 6)
ER-diagrammer (databaser, del 4)
HR Søg og du skal finde! ► Fravær ► Ferie. ► Uddannelse. ► Afdelinger. ► Mu-samtaler. ► Personale udlån. ► Etc. etc. Registrering af alle.
Informationsteknologi B-A, HHX, 2005,
NOEA/IT - FEN - Databaser/TabelDesign 1 Tabeldesign Design af relationsdatabaser Normalisering.
Mapning af 1 til mange forbindelser
Introduktion til Access (Access, del 1)
Oprettelse af tabeller (Access, del 2)
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
2:Relations modellering og design regler.
Relationsdatabaser og SQL
Operationer på relationer
7. SQL constraints og triggers1 Aktive elementer i SQL.
Dagens gang Sidste uges opgaver Databaser Opgaver til næste gang
NOEA/IT FEN - Databaser/modellering 1 Tabeldesign Omformning af E/R-modellen til relationelle skemaer.
SQL – Oracle Relationsdatabase
Data Dictionary (databaser, del 7)
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Normalisering (databaser, del 8)
Context- og flow-diagrammer (databaser, del 3)
Den relationelle model
2009NOEA/IT - Databasedesign1 Agenda Datamodellering Databasedesign Normalisering.
Test 1 Klik her for start. Hvor skal du klikke for at få designvisning?
SQL – Oracle Relationsdatabase
ER-diagrammer Hvad er det? Og hvad bruges det til?
Relationelle databaser og XML
17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
1 SQL2. 2 Funktioner der laver aggregerede beregninger Returnerer count() Antal rækker der opfylder bestemt betingelse min() Laveste værdi (eller null)
Virksomhedens informationsbehandling lektion Ved. Jens Godik Højen.
IT i Byggeriet Semester 6, kursusgang Databaser (2) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg Universitet.
IT i Byggeriet Semester kursusgang Databaser (2) Kjeld Svidt Kjeld Svidt  Institut for Bygningsteknik  Aalborg Universitet.
Normalisering Sund Fornuft!. Normalformer 1. Normalform Ingen repeterende felter Der eksisterer en primær nøgle 2. Normalform Tabellen skal være i 1NF.
Data Warehouse 8. semester forår 2010
Aalborg Universitet Master i Informationsteknologi, IT i Byggeriet – 2. Års projekt TYPEHUSKATALOG.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
ER-modellering1 Analyse af data og sammenhæng mellem data.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 8 Hvorfor data i en RDB (relationel database)? Databasemodellering.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (2) Kjeld Svidt
I4DAB1 F08 guideline for normalisering og design Take 2 Jesper Tørresø DAB1 F April 2008.
NOEA/IT FEN - Databaser/modellering 1 Datamodellering Den udvidede (enhanced) E/R-model (EE/R- modellen) Begreber Diagrammering Omformning til.
Dokumentation 7. Semester
Oprettelse af tabeller (Access, del 2)
OOD  Relationel database: Klasser Hver klasse afbildes over i en tabel. Klassens navn bruges som navn på tabellen. Hver af klassens attributter afbildes.
2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.
Database.
E/R-diagrammering 7. Semester.
Opgaver Design tabeller Kvalitetscheck af (3NF) tabeldesignet Skriv CREATE TABLE-sætninger.
Den relationelle model
Virksomhedens informationsbehandling Opgave inden for databehandling Opgave 1 Ved. Jens Godik Højen.
Intro Databaserne? Gik det som det skulle?. Databasestøttet webpublicering Forelæsning nr 7 Hvorfor data i en RDB? Databasemodellering Begrebet nøgle.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Normal former i en database Jan Christiansen Nyborg Gymnasium.
Jan Christiansen Nyborg Gymnasium
1.10 System design - Database
Videnskabeligt projekt
Anvendt Statistik Lektion 6
Fornavn Efternavn Fornavn + Efternavn Adresse; Vej, husnr., sal
MySQL dat2sem2018Fall Modul 2 – uge 2.
Dat2sem2019 Bornholm Modul 2 – uge 2
Præsentationens transcript:

2009NOEA/IT - Databaser/arkitektur1 Tabeldesign Design af relationsdatabaser Normalisering

2009NOEA/IT - Databaser/arkitektur2 Uformelle designmål for tabeller Meningen med en tabel skal være let at forstå, oplysninger om forskellige ting må ikke anbringes i den samme tabel. Redundant information undgås: –pladsforbrug –opdateringsanomalier, dvs. problemer ved indsætning, modificering og sletning af data Antallet af null- værdier minimeres: –pladsforbrug Undgå uægte tupler ved JOIN

2009NOEA/IT - Databaser/arkitektur3 Tabel-mening Eksempel på dårligt tabeldesign: Udlånstabel: [bogtitel, matNr, lånernr, lånernavn, låneradresse, dato, rykkerstatus] Oplysninger om forskellige ting er blandet i den samme tabel

2009NOEA/IT - Databaser/arkitektur4 Minimér NULL-værdier Hver 10. ansat har en firmabil - hvor skal fremmednøglen placeres? Hvis NULL bliver den normale værdi, så hører attributten nok ikke til i denne tabel. PersonBil 0..1

2009NOEA/IT - Databaser/arkitektur5 Uægte tupler Betragt følgende udsnit af et ”alternativt” tabeldesign for en biblioteksdatabase: Låner:[lNr, fnavn, enavn,…….] Eksemplar:[matNr,…, enavn, …] Relationen Udlån mellem Låner og Eksemplar er designet ved, at låners efternavn er taget med i Eksemplar. Når Låner og Eksemplar efterfølgende joines vil der optræde uægte tupler, idet Låner.enavn næppe er entydig. Dvs. låner ’117 Ib Hansen’ vil optræde som låner af alle eksemplarer, hvor enavn = ’Hansen’ - altså alle eksemplarer lånt af alle mulige andre hansener (som også vil optræde som lånere af Ibs eksemplarer).

2009NOEA/IT - Databaser/arkitektur6 Normalisering Normalformerne (NF) er en formel formulering af designmål for tabeller. Normalisering er processen. Der findes 6 normalformer: –1., 2., 3. NF, og BCNF. –4. og 5. NF BCNF: Boyce-Codd Normal Form

2009NOEA/IT - Databaser/arkitektur7 Funktionelle afhængigheder Y er funktionelt afhængig af X, hvis der for samme værdi af X altid er den samme værdi af Y (X og Y er sæt af attributter) - skrives X -> Y Y er funktionelt afhængig af X (værdien af Y er altid entydigt bestemt af X, X bestemmer (el. determinerer) Y) At X -> Y siger intet om hvorvidt Y -> X er opfyldt. Klassisk eksempel: i adresse er bynavn funktionelt afhængig af postnummer (eller postnummer determinerer by). En funktionel afhængighed (X->Y) er transitiv, hvis der eksisterer et sæt af attributter Z, hvorom det gælder at X -> Z og Z -> Y.

Normaliseringseksempel 2009NOEA/IT - Databaser/arkitektur8 GrundattributterBeskrivelse EfternavnIkke entydig ID for medarbejder TypeMedarbejdertype GrundlønMedarbejderens grundløn PostnrMedarbejderens postnummer BydelDen til postnummere knyttede bydel IndgåetDato for indgåelse af ordre AfsluttetDato for afsluttelse af ordre VarenrEntydig bestemmelse af vare VarenavnIkke entydig navn for vare AntalAntal varer der indgår i en ordre PrisPris på den vare der indgår i ordren

Normaliseringseksempel 2009NOEA/IT - Databaser/arkitektur9 Vha. sund fornuft opsplittes i to entiteter –Tabsgivende (hvilken medarbejder gennemfører hvilken ordrer?) –Primærnøgle mangler Medarbejdere (1) Efternavn Type Grundløn Postnr Bydel Ordrer (1) Indgået Afsluttet Varenr Varenavn Antal Pris

Normalisering – 1NF – Medarb. 2009NOEA/IT - Databaser/arkitektur10 Krav –Primærnøgle eksisterer –Ingen repeterende grupper Medarbejdere (1) Medarbnr Efternavn Type Grundløn Postnr Bydel

Normalisering – 1NF – Ordrer 2009NOEA/IT - Databaser/arkitektur11 For ikke at gøre dekompositionen tabsgivende overføres den valgte primærnøgle til ”ordrer” –Hvad med primærnøgle her –Kombination af eksisterende attributter? –Tilføjelse af ny attribut? Ordrer (3) Ordrenr Medarbnr Indgået.. Ordrer (2) Medarbnr Indgået Afsluttet Varenr Varenavn Antal Pris

Normalisering – 1NF – Ordrer 2009NOEA/IT - Databaser/arkitektur12 Den repeterende gruppe flyttes (ordre-specifikation) til en ny tabel, og primærnøglen fra ”Ordrer” tilføjes –Hvad med primærnøgle her? Ordrer (4) Ordrenr Medarbnr Indgået Afsluttet Ordrespec (4) Ordrenr Varenr Varenavn Antal Pris Ordrespec (5) Ordrenr Varenr Varenavn Antal Pris

Normalisering – 2NF 2009NOEA/IT - Databaser/arkitektur13 Krav –Tabellen er på 1NF –Alle ikke-nøgle attributter skal være fuldt funktionelt afhængige af primærnøglen –Alle ikke-nøgle attributter skal være entydigt identificerbare ud fra hele primærnøglen (og ikke bare en delmængde af den) Tabeller med usammensatte primærnøgler er altså altid på 2NF, og det er kun nødvendigt at betragte ”Ordrespec”

Normalisering – 2NF – Ordrespec 2009NOEA/IT - Databaser/arkitektur14 Funktionelle afhængigheder i ”Ordrespec” –Pris og varenavn kan bestemmes ud fra varenr alene, og må derfor flyttes ud fra tabellen, for at gøre tabellen på 2NF

Normalisering – 2NF – Ordrespec 2009NOEA/IT - Databaser/arkitektur15 Ordrespec (6) Ordrenr Varenr Antal Lager Varenr Varenavn Pris

Normalisering – 3NF 2009NOEA/IT - Databaser/arkitektur16 Krav –Tabellen er på 2NF –ingen ikke-nøgle attribut er transitivt afhængig af primærnøglen –Alle ikke-nøgle attributter skal være gensidigt uafhængige Problem: i ”Medarbejdere” findes følgende indbyrdes afhængigheder (udover de alm. funkt. afhængigheder) –”Grundløn” afhænger af ”Type” –”Bydel” afhænger af ”Postnr”

Normaliseringseksempel – 3NF 2009NOEA/IT - Databaser/arkitektur17 Løsning: –Transitive afhængigheder isoleres og tabellen dekomponeres Medarbejdere (2) Medarbnr Efternavn Type Postnr Typer Type Grundløn Postnr Bydel

Resultat 2009NOEA/IT - Databaser/arkitektur18 Medarbejdere Medarbnr Efternavn Type Postnr Typer Type Grundløn Postnr Bydel Ordrer Ordrenr Medarbnr Indgået Afsluttet Ordrespec Ordrenr Varenr Antal Lager Varenr Varenavn Pris

2009NOEA/IT - Databaser/arkitektur19 Boyce-Codd Normal Form Alle attributter skal afhænge af nøglen, af hele nøglen og af intet andet end nøglen.