Design ved normalisering

Relaterede dokumenter
Normalisering, del 2

Funktionel afhængighed

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

Information Integration

Skriftlig eksamen i. Databaser. Vinter 2002/2003

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databaser Obligatorisk opgave 1

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

PRÆSENTATION AF ER-DIAGRAMMER OG NORMALISERING

Fra ER til RM. Databaser, efterår Troels Andreasen. Efterår 2002

Jørgen Koch. och. Access. Normalisering m.v.

Henrik Bulskov Styltsvig

Efterår 2002 Note 10. Temaopgave

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Henrik Bulskov Styltsvig

Objektorientering og databaser

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

Henrik Bulskov Styltsvig

Databasesystemer. IT Universitetet i København 7. juni 2005

Oversættere. Vejledende løsninger til Skriftlig eksamen onsdag d. 20. april 2005

Velkommen! KONFLIKTHÅNDTERING FORMÅLET MED MØDET PLAN FOR MØDET

Datalagring og formater

Henrik Bulskov Styltsvig

Henrik Bulskov Styltsvig

Dorthes Bog Centrum har ca forskellige bøger (bibliografiske enheder), som alle skal være søgbare fra prototypen.

Svar på opgave 336 (Januar 2017)

1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn

Konflikthåndtering mødepakke. konflikthåndtering. Velkommen! B3_1_Dias side 1/14

Skriftlig eksamen i. Datalogi. Databaser. Sommer 2001

Easy Guide i GallupPC

Udbud af RIPA-Syd. Underbilag 14.B - Fejlproces

Versionsbrev. LUDUS Web version Den 16. august J.nr V

CLmul-b14e Gruppe 2 2. Database projekt

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

Versionsbrev. LUDUS Web version Den 15. september J.nr V

Algebra. Denition. Signatur: et antal sorter eller typer: (simple eller strukturerede). et antal konstantsymboler med type, og

Databaser. 3. Normalform. Mette Frost Nielsen

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Opgaver. Henrik Bulskov Styltsvig. Efterår 2003

Nye funktioner i Autocore Salg

Introduktion til programmering

TALTEORI Ligninger og det der ligner.

Databasesystemer. IT Universitetet i København 16. januar 2006

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

TAGISOLERING BRUGERVEJLEDNING (VERSION 0.9.2)

Versionsbrev. LUDUS Web version Den 24. august J.nr V

Lyngby-Taarbæk Kommune. Stafetlog

Versionsbrev. LUDUS version Den 4. august J.nr V

Spørgsmål 2 Givet at R indeholder 3 tupler (d,f,a,b,c), (d,f,b,d,e), (e,g,a,b,c). Hvilke tupler må R da også indeholde?

Løsningsbeskrivelse til bestilling af SMS-notifikation

Generel vejledning i opsætning og redigering af spørgerammer

Versionsbrev. LUDUS Web version Den 13. januar J.nr V

Versionsbrev. LUDUS Web version Den 13. juli J.nr V

Oversættere Skriftlig eksamen onsdag d. 20. april 2005

Afleveringsopgave. Efterår 2001

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Skriftlig eksamen i kurset. Informationssystemer

Versionsbrev LUDUS Web version LUDUS Web Den 10. februar J. nr: 4004-V

SYSTEM DESIGN. 18. december 2012 [Mink Farm Rapport] Dette projekt bruger UP model, som er et krav for dette semesters projekt.

Versionsbrev. LUDUS Web version Den 31. maj J.nr V

Versionsbrev. LUDUS Web version Den 24. oktober J.nr V

Brug af Discoverer. 1. Start Discoverer ved at klikke på knappen Discoverer på

Håndbog Til CPR services. Bilag 6 Anvendelse af CPR Søgeservices, programmeringsvejledning

Kom godt i gang med PcBase Water og MT Pro wm-bus

Ghostbusters. Introduktion. Scratch. Du skal lave et fangelegsspil med spøgelser! Arbejdsliste. Test dit Projekt. Gem dit Projekt

Forberedelsesskema UDVIKLINGSSAMTALE. til medarbejderen

Versionsbrev LUDUS Web version Den 22. januar 2009 J.nr.: 4004-V

Vejledning til skemaet Gødningskvote og Efterafgrøder 2014

Teknisk dokumentation af data til lønanalyser

Versionsbrev. LUDUS Web version Den 17. december J.nr V

Versionsbrev. LUDUS Web version Den 5. juli J.nr V

Versionsbrev. LUDUS Web version Den 3. juni J.nr V

24-timer tilbud. Håndtering af tilbudsgivning via web vers September 2013

Versionsbrev. LUDUS Web version Den 11. november J.nr V

Hvordan virker en rejseplanner?

DATABASE DESIGN. En note om database design, normalisering og database generalisering

Systemair Connect. Opsætning

Psykisk arbejdsmiljø. AMI s korte spørgeskema til kortlægning af det psykiske arbejdsmiljø. Ny udgave

Vejledning: Opsætning af ændringslog - NS 5.X

Versionsbrev LUDUS Web version Den 15. maj 2009 J.nr.: 4004-V

Markedsføringsplan værktøj

Geokodning af bygninger i FOT2007

Versionsbrev LUDUS Web version Den 27. november 2008 J.nr.: 4004-V

LUDUS Web version Den 24. januar LUDUS Web

Bilag 2: Spørgeskema og svarfrekvenser

Versionsbrev LUDUS Web version Den 17. november 2008 J.nr.: 4004-V

Versionsbrev. LUDUS version Den 15. september J.nr V

Release note LUDUS Sundhed

Vejledning til PRO2TAL Bager/Online. Ordrer

Versionsbrev. LUDUS Web version Den 8. januar J.nr V

Vejledning til elevadministration. Vejledning til brug af Optagelse.dk som elevadministrativt system

Brugervejledning NN Markedsdata for ectrl

Kom godt i gang: Vejledning vedr. VP Rapport:

Anvendelse af dobbelthistorik i GD2

Vurdering af kvalitet en note af Tove Zöga Larsen

Versionsbrev. LUDUS Web version Den 26. september J.nr V

Vejledende løsninger

Transkript:

Databaser, efterår 2002 Design ved normalisering Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Design ved normalisering Visse relationelle skemaer kan skabe problemer: vare kunde pris postnr by bord jensen 200 4000 roskilde stol jensen 100 4000 roskilde bord hansen 200 4600 køge seng hansen 300 4600 køge stol suhr 100 8000 århus Problemer, såsom redundans oplysninger er gentaget flere steder f.eks. hansens adresse opdatering en oplysning står flere steder f.eks. hansens adresse inkonsistens hvis den kun ændres et sted sletning sletning af en oplysning kan potentielt trække flere med sig f.eks. leverance af stol til suhr (slettes denne forsvinder kunden suhr også) 2

Dekomponering Dekomponering af relation R at splitte relationen R i to relationer S og T R (A 1, A 2,, A n ) kan dekomponeres i S(B 1, B 2,, B m ) og T(C 1, C 2,, C k ), hvis {A 1, A 2,, A n } = {B 1, B 2,, B m } {C 1, C 2,, C k } S = projektionen af R på B 1, B 2,, B m T = projektionen af R på C 1, C 2,, C k 3

Dekomponering Eksempel leverance(vare,kunde,pris,postnr,by) kan dekomponeres i leverance1(vare,kunde,pris) kunde(kunde,postnr,by) vare kunde pris postnr by bord jensen 200 4000 roskilde stol jensen 100 4000 roskilde bord hansen 200 4600 køge seng hansen 300 4600 køge stol suhr 100 8000 århus vare kunde pris bord jensen 200 stol jensen 100 bord hansen 200 seng hansen 300 stol suhr 100 kunde postnr by jensen 4000 roskilde hansen 4600 køge suhr 8000 århus redundans elimineret (adresse), problem med opdatering af adresse løst, problem med sletning af leverance til suhr løst 4

FD s efter dekomponering ( Projektion af FD s ) Problem efter dekomponering hvilke FD s gælder i de nye relationer? Princip givet mængde af funktionelle afhængigheder F for relation R Udvid F med FD s, der følger af F, (altså dan F+) i resultatet kan findes de FD s der følger med ved dekomponering af R i S og T: FD s for S er FD s (udelukkende) på attributter i S FD s for T er FD s (udelukkende) på attributter i T! at projicere FD's F for R på skemaer S og T 5

FD s efter dekomponering, Eksempel R(A,B,C,D) skal dekomponeres til S(A,B,C) og T(A,D) R(A,B,C,D) har FD s F = {AB -> C, C -> D, D -> A} Hvilke FD's har S og T? Bestemmelse af FD s i de nye relationer S og T: F udvides til: {AB -> C, C -> D, D -> A, C -> A, AB -> D, BD -> C} (= alle interessante FD's, der følger af de tre første FD's) (= minimal overdækning af afslutningen af F) Når R(A,B,C,D) dekomponeret til S(A,B,C) og T(A,D) fås ved simpel udvælgelse ("projektion") FD s for S: {AB -> C, C -> A} FD s for T: {D -> A} 6

Boyce-Codd normal form (BCNF) Uformelt enhver FD på R har formen nøgle -> 'attributter fra R' Formelt Relation R er på BCNF såfremt når A 1 A 2 A n -> B 1 B 2 B m er ikke-triviel på R så er {A 1, A 2,, A n } en supernøgle for R Normalisering af relation R til BCNF at dekomponere R så resulterende skemaer overholder BCNF evt. i flere trin 7

BCNF Normalisering, eksempel I denne relation: leverance(vare,kunde,pris,postnr,by) antag postnr -> by er 'leverance' på BCNF? hvorfor? vare kunde pris postnr by bord jensen 200 4000 roskilde stol jensen 100 4000 roskilde bord hansen 200 4600 køge seng hansen 300 4600 køge stol suhr 100 8000 århus 8

BCNF Normalisering, princip Princip relation R med FD s F (X -> A) F bryder BCNF dekomponer R til S med attributter X+ (ikke = alle attributter hvorfor?) og T med attributter ({R attributter} - {attributter i X+ som ikke er i X} udvid F og find heri FD s for hhv. S og T 9

BCNF Normalisering, Eksempel Eksempel (se også side 6) R(A,B,C,D) F = {AB -> C, C -> D, D -> A} D -> A bryder BCNF, dekomponer i S og T Resultat??? S med attributter: D+ = DA T med attributter: ABCD - A = BCD ok nu? 10

At dekomponere At normalisere involverer at dekomponere Er det altid OK at dekomponere? 11

Tabsløs (lossless) dekomponering Teorem hvis vi dekomponerer en relation R med skema XYZ i relationer S og T med skemaer XY og XZ og der gælder: enten X -> Y eller X -> Z så vil R = S T (altså at R kan genskabes uden tab fra S og T) Eksempel leverance(vare,kunde,pris,postnr,by) kan dekomponeres i leverance1(vare,kunde,pris) kunde(kunde,postnr,by) uden tab af information fordi kunde -> postnr,by BCNF-normalisering når man dekomponerer R i S og T er det fordi der er en FD på formen S T -> T S altså er det altid OK 12

BCNF-normalisering er OK BCNF-normalisering OK fordi BCNF-normaliserings-princippet (X -> A) F bryder BCNF for relation R dekomponer R til S med attributter X+ og T med attributter ({R attributter} - {attributter i X+ som ikke er i X} så der gælder en FD på formen S T -> T S altså er der tale om Tabsløs dekomponering (se eksempel s. 8) 13

BCNF-normalisering, Eksempel leverance(vare,kunde,pris,postnr,by)= leverance(v,k,p,n,b) funktionelle afhængigheder på leverance F = {vk->p, k->n, n->b} hvordan bliver leverance bragt på BCNF? bryder nogle FD's fra F med BCNF? hvis nej: ALT OK (OBS: vi behøver ikke at se på FD's der følger af F) hvis ja: dekomponer efter en af de FD's der bryder find afledte FD's fra F "projicer" på ny relationer fortsæt med disse første skridt: vk -> p bryder BCNF dekomponer i (vkp) og (vknb) find afledte FD's udvælg FD's for (vkp) og (vknb) (altså projicer på hhv (vkp) og (vknb)) fortsæt næste skridt?? 14

BCNF-normalisering, Eksempel leverance(vare,kunde,pris,postnr,by)= leverance(v,k,p,n,b) relation leverance(v,k,p,n,b) funktionelle afhængigheder F: F = {vk->p, k->n, n->b} udvid F: v+=v k+=knb (tilføj k->b) p+=p, n+=nb, b+=b vk+=vkpnb vp+=vp, vn+=vnb, vb+=vb, alle overmængder til vk droppes fortsættes: kp,kn,kb,pn,pb,nb, vpn,vpb,vnb,kpn,kpb,knb,pnb,vpnb,kpnb (ingen yderligere) F udvidet til {vk->p, k->n, n->b, k->b} 15