3. Funktionelle afhængigheder og normalisering

Slides:



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

DPS Data ApS Få bedre datakvalitet, spar tid og penge - med Adresse*Kontrol Henrik Skalbo DPS Data ApS Blokhusvej 3, DK-2920 Charlottenlund Tlf:
Funktioner Grundbegreber.
Funktioner Grundbegreber.
Reglernes del 2: Når både mødes
Udsagn (propositioner)
Formularer (Access, del 3)
Databaser Teori.
SQL 1 DDL og DML.
Felter og nøgle-felter (databaser, del 6)
Informationsteknologi B-A, HHX, 2005,
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 4. november 2005.
NOEA/IT - FEN - Databaser/TabelDesign 1 Tabeldesign Design af relationsdatabaser Normalisering.
Kursus om borger.dk og brugen af digital signatur
Introduktion til Access (Access, del 1)
Validering af data (Access, del 7)
Opslagsfelter (Access, del 6). RHS – Informationsteknologi 2 Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser vores.
Oprettelse af tabeller (Access, del 2)
Beskrivelses- og analyse-teknikker understøttet af Oracle Designer
1 Dagens gang Repeter systemvalg Gennemgang af klasser og strukturer (kap. 3+4 OOA+D) Tavle opgave Gruppe opgave til næste gang.
2:Relations modellering og design regler.
Relationsdatabaser og SQL
Operationer på relationer
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
7. SQL constraints og triggers1 Aktive elementer i SQL.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Dagens gang Sidste uges opgaver Databaser Opgaver til næste gang
Powerpoint Jeopardy Data flow diagrammer Entity relationship diagrammer State diagrammerSammenhænge mellem systemmodeller
NOEA/IT FEN - Databaser/modellering 1 Tabeldesign Omformning af E/R-modellen til relationelle skemaer.
SQL – Oracle Relationsdatabase
Normalisering (databaser, del 8)
MMP Model og Metode til Programudvikling – MMP 1 Kursusindhold: Modellering af postkontor Objekt Orienteret Programudvikling - OO* Unified Modelling.
Begrebskort for lineære differentialligningsmodeller
Den relationelle model
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Vi ser nu på en general graf Men antager at alle afstande er heltallige (Det er ikke så restriktivt) Algoritmen leder efter den mindst mulige dækningsdistance.
17.1 Mathiassen, Munk-Madsen, Nielsen & Stage, 2000 © Implementering Principper, teknikker og vurdering Kapitel 17.
Rapporter (Access, del 5). RHS – Informationsteknologi – Udgangspunkt Vi har oprettet en database Vi har defineret en eller flere tabeller, og.
2009NOEA/IT - Databaser/arkitektur1 Den relationelle model En teoretisk model for databaser Hviler på et sundt teoretisk grundlag Omfatter: Datastruktur.
Fundamentale datastrukturer
2009NOEA/IT - Databaser/arkitektur1 Tabeldesign Design af relationsdatabaser Normalisering.
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.
1. Database-systemer, introduktion
Introduktion til databaser (databaser, del 1)
Eksamination: IT i byggeriet 8. januar 2003 Erfaringsopsamling i COWI Projektgruppe 2.124, BL7.
Opslagsfelter (Access, del 6). RHS – Informationsteknologi – Udgangspunkt Vi er ofte i den situation, at valg af en type for et felt ikke begrænser.
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
ER-modellering1 Analyse af data og sammenhæng mellem data.
DIEB4.1 Kursusgang 4 Oversigt: Sidste kursusgang Opgaver Aktivitet 2: Generer design (fortsat) Design af interaktionselementer.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation, og dataproblemer 9. november 2004.
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.
Økonometri 1: Specifikation og dataproblemer1 Økonometri 1 Specifikation og dataproblemer 2. november 2004.
Oprettelse af tabeller (Access, del 2)
Økonometri 1: F151 Økonometri 1 Specifikation og dataproblemer 10. november 2006.
2009Softwarekonstruktion / DB-design 11 Databasedesign 1 Fra begrebsmæssig model til relationel model.
Globaliseringsredegørelse 21.mar. 11 Globaliseringsredegørelsen 2011 Grafer fra temakapitlet Eksporten som drivkraft for vækst og velstand.
Database.
Database Some walk through. Database Design – Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management.
E/R-diagrammering 7. Semester.
Den relationelle model
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
Normal former i en database Jan Christiansen Nyborg Gymnasium.
1.10 System design - Database
MySQL dat2sem2018Fall Modul 2 – uge 2.
Præsentationens transcript:

3. Funktionelle afhængigheder og normalisering Kvalitet i relationer 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Metoder til database-design ER-model + konvertering til relationel model Top down (start med strukturen) Normalisering → relationel model Baseret på funktionelle afhængigheder Bottom up (starte med de enkelte data) 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Funktionelle afh. def. 83 Funktionel afhængighed i en relation R ABC → D Hvis attributterne A, B og C er ens, så skal D også være ens - for alle tupler, til enhver tid!! Kræver indgående kendskab til data! Eksempler cpr → navn cpr → adresse adresse → telefon gælder næppe i disse mobil-tider postnr → postdistrikt omv. gælder ikke, Viby cpr, kursusnr → karakter 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Nøgler, 84 En nøgle er en mængde af attributter, som alle andre attributter i relationen afhænger af. Eksempler Person (cpr, navn, adr) Postdistrikt (postnr, distrikt) Kursus (stud_cpr, kursusnr, tidspunkt, karakter) 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Super-nøgler, 86 Minimal: En nøgle må ikke indeholde unødvendige attributter Hvis en attribut tage ud af mængden, så forsvinder nøgle-egenskaben Super-nøgle: Mængde af attributter, der indeholder en nøgle + evt. ekstra attributter En super-nøgle er ikke ekstra god - tværtimod! 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Nøgler i ER, 87 Nøgler i relationelt skema lavet på baggrund af ER Entity set Har allerede nøgle (check minimal) Relationship Nøgle = nøgler fra deltagende entity sets Svag entity set Egen nøgle + nøgle fra "stærke" entity set 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Regler for funk. afh., 90 Trivielle afhængigheder AB…C → A Kombiner AB → C og AB → D, så AB → CD Split AB → CD, så AB → C og AB → D Transitiv A → B og B → C, så A → C 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Closure, 92 Aflukningen (closure) af en mængde af attributter: Alle de attributter, der er afhængige af attributterne i mængden Notation: {A, B}+ Hvis X+ er alle attributter i R, så er X supernøgle i R 3. Funktionelle afhængigheder og normalisering

Design af relationelt skema, 102 Vi skal undgå relationer med dårlige egenskaber fig. 3.21, side 103 redundans Samme information flere gange opdaterings-problemer Opdatering i en tupel, kræver opdatering i andre tupler sletnings-problemer sletning af en tupel medfører at anden information slettes. 3. Funktionelle afhængigheder og normalisering

Opdeling af relationer, 103 Relationer med dårlige egenskaber skal opdeles i flere mindre relationer, der hver især er uden dårlige egenskaber. Fig. 3.22, side 104 Fig. 3.23, side 105 3. Funktionelle afhængigheder og normalisering

Boyce-Codd normal-form (BCNF), 105 Reglement for relationer Høj normalform = få dårlige egenskaber BCNF Hvis X → B (ikke triviel), så er X supernøgle i relationen. Enhver determinant (venstre side i funk. afhængighed) skal være supernøgle. 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering BCNF eksempel BCNF eksempel Person (cpr, navn, adresse, postnr, bynavn) cpr → navn, adresse, postnr, bynavn postnr → bynavn Opdeles i Person2 (cpr, navn, adresse, postnr) Postdistrikt (postnr, bynavn) 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Join af relationer, 112 Opdelte relationer skal kunne samles (join), så de bliver præcis som før ingen nye (bogus) tupler ingen manglende tupler 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering 3. normal-form (3NF), 114 Svagere udgave af BCNF + Svagere: Flere dårlige egenskaber − Mindre opdeling = hurtigere søgning De-normalisering Regel: Hvis X → A (ikke-triviel), så er X supernøgle eller A er attribut i en nøgle (ny i forhold til BCNF) 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering 3NF eksempel, 114 Title City Theater Mulige nøgler {title, city} og {theater, title} 3NF OK City er en del af nøglen {Title, City} Brud på BCNF Theater → City, men Theater er ikke nøgle Problem: Opdeling {theater, city} for sig selv bryder den funktionelle afhængighed {title, city} → theater Løsning: Undladt opdeling, bliv ved 3NF 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering 1NF og 2NF 1NFAlle attributter er atomare + alle relationer har en nøgle Ingen sammensatte attributter 2NF Afhængighed af hele nøglen En attribut må ikke være afhængig af en del af nøglen. {cpr, navn, kursusnr, karakter} cpr → navn kun afhængig af en del af nøglen Forholdet cpr, navn må ud i en selvstændig relation. 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering The Relational Oath "I promise to use the key, the whole key, and nothing but the key, so help me Codd" Det var Codd, der definerede den relationelle model - og normalformerne. 3. Funktionelle afhængigheder og normalisering

Flerværdi afhængigheder, 118 Multivalued dependencies (MVD) Generalisering af funk. afhængighed. 2 mængder af attributter er uafhængige af hinanden. 2 typer information i samme relation medfører redundans. Fig. 3.29 , s. 118 vs. 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Flerværdi afh. def., 119 A1A2…An → → B1B2…Bk Værdierne i B'erne er uafhængige af værdierne af alle andre attributter [end A'erne] For alle tupler t, u [ens mht. A'er] eksisterer en tupel v, der er ens med t og u mht. A'er ens med t mht. B'er ens med u mht. alle attributter ikke i A eller B Fig. 3.29 side 118 + 120 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering Regler for MVD, 121 A → → BC medfører ikke A → → B name → → street holder ikke, da city ikke kan variere frit A → B medfører A → → B Alm. FD er altså er særtilfælde af MVD 3. Funktionelle afhængigheder og normalisering

3. Funktionelle afhængigheder og normalisering 4. normalform (4NF), 122 Regler A1A2…An → → B1B2…Bk er triviel, hvis nogle af B'erne også er blandt A'erne eller A'erne og B'erne tilsammen udgør alle attributterne i relationen 4NF hvis A1A2…An → → B1B2…Bk så skal A1A2…An være en supernøgle Hvis en relation ikke overholder 4NF,så må den opdeles i flere mindre relationer, der hver især overholder 4NF. Eksempel name → → street, city name → → title, year Opdeles i {name, street, city} og {name, title, year} Begge afhængigheder er nu trivielle (jf. ii.) 3. Funktionelle afhængigheder og normalisering

Afsluttende kommentarer, 124 Højere normalform = højere kvalitetskrav Færre relationer opfylder den høje normalform end den lave Med en instans af en database kan man ikke påvise funk. afhængigheder måske afvise funk. afhængigheder Funk. afhængigheder må man efterspørge i den modellerede verden. 3. Funktionelle afhængigheder og normalisering