Databaser Design och programmering

Relevanta dokument
Universitetet: ER-diagram

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Konceptuella datamodeller

NORMALISERING. Mahmud Al Hakim

Universitetet: ER-diagram e-namn

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Funktionella beroenden - teori

Logisk databasdesign

Universitetet: ER-diagram e-namn

Databasteori. Övningar

Databasteori. Övningar

Databasteori. Övningar

Relationell databasdesign

Kvalitetstänkande. Utgångsläge Samtliga ER-diagram har överförts till scheman

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Föreläsning 6: Normalisering & funktionella beroenden

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

IT i organisationer och databasteknik

Databaser och Datamodellering Foreläsning IV

Grunderna för relationsmodellen!

Karlstads Universitet, Datavetenskap 1

Informationssystem och databasteknik

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

GIS, databasteknik och kartografi. Kursmaterial för databasdelen

Karlstads Universitet, Datavetenskap 1

Databasteori Övningar

Webbprogrammering, grundkurs 725G54

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen plus lösningsförslag

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

Idag. Hur vet vi att vår databas är tillräckligt bra?

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Databasteori Övningar

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Uppdelning. Relationell databasdesign, FB Teori Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databasdesign. E-R-modellen

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

Lösningsförslag till Tentamen,

Databaser design och programmering. Design processen ER- modellering

TDDI60 Tekniska databaser

Karlstads Universitet, Datavetenskap 1

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Analytisk relationsdatabasdesign

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

TDDI 60 Tekniska databaser

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Lösningsförslag Tentamen, 25 april 03

Modul DB1-2 Datamodellering

Tentamen DATABASTEKNIK - 1DL116

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Exempel-Tentamen III

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Lite om databasdesign och modellering

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Lösningsförslag till Exempel tentamen

Lösningar till tentamen i EDAF75

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Databaser - Design och programmering. Databasdesign. Funktioner. Relationsmodellen. Relationsmodellen. Funktion = avbildning (mappning) Y=X 2

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Lösningsförslag, tentamen i Databaser

Tentamen. Databasmetodik Lördag 27 september 2014 kl

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

2. Redundans 3. Normalformer

Ett arbetsexempel Faktureringsrutin

Design och underhåll av databaser

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Informationssystem och Databasteknik

732G16: Databaser - Design och programmering

Databaser - Design och programmering

Relationsmodellen och syntetisk databasdesign

Tentamen för DD1370 Databasteknik och informationssystem

Uppgift 1.8p (a) Ange tre orsaker hur felaktigheter i en databas kan uppstνa. Till varje av dem, ange en lämplig metod som används som νatgärd mot des

Relationsdatabasdesign

Transkript:

Databaser Design och programmering Fortsättning på relationsmodellen: Normalisering funktionella beroenden normalformer informationsbevarande relationsschemauppdelning

2 Varför normalisera? Metod att skydda oss från dum design Lagra samma data flera ggr i onödan Inte kunna lagra viss information Otydlig betydelse av en tupel/rad som kan komma från otydlig betydelse av entitetsinstans

3 Dubbellagring - problem Student Namn Adress Föddat epost Program Namn Studierektor Programansvarig Anna Rydsv 940304 annni f7ksa statist Lotta Linda Pelle Bygat 960311 pella f7kko kogret Mattias DMnämnd Olle Rydsv 991115 ollan f7ksa statist Lotta Linda

Universitetet - med studieplaner och poäng 4

5 Relationsmodell Universitetet Student (PNr, Namn, Gata, GatNr, PostNr, PostOrt, liu-id, Lösen) StudentTel (Student, Tel) Program (Kod, Namn, Programansv, Studierektor, Sektion) Sektion (Namn, Lokal) Fest(Sektion, Namn, tidpunkt, budget) RegistreradPå (Student, Program, År) MedlemI (Student, Sektion, BetTermin)

6 Relationsmodell Universitetet Student (PNr, Namn, Gata, GatNr, PostNr, PostOrt, liu-id, Lösen) StudentTel (Student, Tel) Program (Kod, Namn, Programansv, Poäng, År, Studierektor, Sektion, Studieplan) Sektion (Namn, Lokal) Fest(Sektion, Namn, tidpunkt, budget) RegistreradPå (Student, Program) MedlemI (Student, Sektion, BetTermin)

7 Relationen Program (exempel) Program Pgmkod Namn Studierektor Programansvarig Studieplan Poäng År Sektion f7ksa statistik Lotta Linda Dokument1 300 2017 Statistik f7kko kogvet Jalal Mattias Dokument2 300 2017 Kogvet f7ksa statistik Lotta Linda Dokument3 300 2016 Statistik f7ksa statistik Lotta Kalle Dokument 4 300 2009 Statistik 6cddd datatek - DMnämn den Dokument 5 500 2016 D- sektion

8 Problem med Program Samma namn, sektion och poäng återkommer: redundans Tar plats. Uppdateringsanomali Insättningsanomali Borttagningsanomali Otydlig tolkning Hur undvika redundans?

9 Normalisering En metod att finna redundans Normaliserings-villkor: normalformer Begrepp: atomära attribut, kandidatnycklar, primärnycklar och nyckelattribut (primattribut) funktionella beroenden, determinant informationsbevarande relationsschemauppdelning

10 1:a Normalform (1NF) Alla attribut ska vara atomära (odelbara) Relationsmodellen antar att alla attribut är odelbara. 2:a normalform, 3:e normalform, BCNF baseras på Funktionella beroenden i relationen.

11 Funktionellt beroende X är en delmängd av attributen i en relation. Om X entydigt bestämmer värdet på ett attribut Y, kallas det att Y är funktionellt beroende av X eller att X bestämmer Y. X Y X kallas determinant i det funktionella beroendet.

Exempel Ex: Student {pnr} {namn} {pnr} {Gata} {pnr} {GatNr} {pnr} {PostNr} {pnr} {PostOrt} {pnr} {liuid}{pnr} {lösen} {pnr} {pnr} 12 Kan också skrivas: {pnr} {pnr,namn,gata, GatNr, PostNr, PostOrt,liuid,lösen} Determinanten kan vara flera attribut ex: Program {ProgKod,år}=>{Programansvarig, Studierektor} Determinanten behöver inte vara nyckelattribut {PostNr} => {PostOrt}

13 Funktionella beroenden, forts Funktionella beroenden baseras på relationens semantik. Ett fb ska gälla i alla möjliga instanser av databasen! OBS: Att det finns ett fb X Y betyder inte att det finns ett fb Y X ex: pnr=>namn betyder inte att Namn=>pnr

14 Funktionella beroenden kan härledas Transitivitet: om X Y och Y Z så X Z Kan ibland vara svårt att avgöra vilket som kom först (ex: pnr, liuid) Reflexivitet: X X alltid. Om Y X så X Y Augmentation: Om X Y så har vi också {XZ} YZ

15 Fullt funktionellt beroende Givet: X Y. Om inget attribut kan tas bort ur X utan att vi förlorar det funktionella beroendet (dvs X är minimal), kallas det fullt funktionellt beroende, ffb.

16 Fullt funktionellt beroende, exemplet Program Program (Kod, Namn, Programansv, Poäng, År, Studierektor, Sektion, Studieplan) Nyckeln ger {Kod, år} {namn, ProgAnsv, poäng, År, Studierektor, Sektion, Studieplan} MEN: {kurskod, år} {poäng} är FB men ej FFB för ett program får inte ändra poäng hur som helst! Likaså för {kod, år} => {Namn, Sektion} för ett program kan inte byta namn eller sektion. OBS att verkligheten styr!

17 Nycklar och funktionella beroenden Supernyckel en attributmängd som har fb till mängden av alla attribut i relationen (hela raden/tupeln) (pga reflexivitet finns alltid en! - Vilken?) Kandidatnyckel en attributmängd som har ffb till mängden av alla attribut i relationen (hela raden/tupeln). Primärnyckel den kandidatnyckel som väljs ut.

18 Nyckelattribut (prim-attribut) Nyckelattribut = attribut som ingår i någon kandidatnyckel till relationen. Ex Student (pnr, namn, Gata, Gatnr, Postnr, postort, liuid,lösen) pnr har ffb till alla attribut men liuid har det också, är också kandidatnyckel! Ex: Program (Kod, Namn, Programansv, Poäng, År, Studierektor, Sektion, Studieplan) Nyckelattribut markeras i relationsschemat med * Student (pnr*, namn,. liuid*,lösen) Program (Kod*, Namn År*, Studierektor.)

19 Andra normalformen - 2NF Definition: Ett relationsschema R är i 2NF om det är i 1NF och varje icke-nyckelattribut A i R är FFB av varje kandidatnyckel i R. Eller som fråga: Är alla attribut som inte är nyckelattribut FFB av alla kandidatnycklar?

20 2NF Exemplet program Program (Kod, Namn, Programansv, Poäng, År, Studierektor, Sektion, Studieplan) {Kod, läsår} {Studierektor} {Kod, läsår} {Programansv} {Kod, läsår} {Studieplan} {Kod} {namn} {Kod} {poäng} {Kod} {sektion} Uppfyller ej 2NF FFB FFB FFB FFB FFB FFB

21 Informationsbevarande relationsschemauppdelning Kom ihåg Naturlig sammansättning (*) Om relationen R delas upp i R1 och R2 så att R1*R2=R så är uppdelningen informationsbevarande!

Informationsbevarande relationsschemauppdelning, exempel 22 Person(Pnr,Namn,Adress) med funktionella beroenden: Pnr Namn, Pnr Adress, inte Namn Adress pnr namn Adress 7908101234 Anna Ågatan 3 8112237890 Anna Rydsv.12 pnr namn 7908101234 Anna 8112237890 Anna namn Adress Anna Ågatan 3 Anna Rydsv.12

23 Relationsschemauppdelning Lyft ut det/de problematiska funktionella beroendet/ na till en egen tabell ny tabell: determinant plus de attribut som bestäms av det fb gamla tabellen: stryk de attribut som bestäms av fb informationsbevarande? dubbelkolla med naturlig join (sammansättning)

24 Exemplet Program Program (Kod, Namn, Programansv, Poäng, År, Studierektor, Sektion, Studieplan) {Kod, År} {Studierektor, Programansvarig, Studieplan} {Kod} {namn, poäng, sektion} Ger: Program (Kod, namn, poäng, sektion) ProgramInstans(Kod, År, Studierektor, Programansvarig, Studieplan)

25 Tredje normalform - 3NF Definition: Ett relationsschema R är i 3NF om det är i 2NF och inget icke-nyckel-attribut är ffb av något annat icke-nyckel-attribut Eller, motsvarande: 2NF och det för varje FFB X A som finns i R, gäller något av följande villkor: a) determinanten X är en supernyckel för R b) A är ett nyckelattribut i R Frågan för 3NF: För varje ffb: är X en supernyckel eller A ett nyckelattribut?

26 Exemplet Student Student (pnr, namn, Gata, Gatnr, Postnr, postort, liuid,lösen) Funktionella beroenden: {pnr}=> {namn, Gata, Gatnr, Postnr, postort, liuid,lösen} {liuid}=> {pnr, namn, Gata, Gatnr, Postnr, postort,lösen} {Postnr}=>{postort} Uppfyller INTE 3NF

27 Boyce-Codd normalform - BCNF Ett relationsschema R är i BCNF om det är i 2NF och inget attribut är ffb av något icke-nyckel-attribut Eller, motsvarande: om det är i 3NF och för varje ffb X A som finns i R, X är en kandidatnyckel för R. Frågan för BCNF: är varje determinant en kandidatnyckel?

28 3NF/BCNF Inte alltid möjligt att transformera ett schema till BCNF och behålla beroendena. 3NF har de flesta av BCNF s fördelar. Det är inte självklart att man måste uppfylla BCNF. OBS: 3NF tillåter någon sorts redundans som BCNF inte gör (funktionella beroenden mellan primattribut).

29 Resultat: Student (pnr, namn, Gata, Gatnr, Postnr, liuid,lösen) PostAdress (PostNr, PostOrt) Program (Kod, namn, poäng, sektion) ProgramInstans(Kod, År, Studierektor, Programansvarig, Studieplan) Vilka nycklar får de nya relationerna? Definition: En nyckel kan identifiera hela tupeln.

Frågor? Normalisering Funktionella beroenden Normalformer: 1NF, 2NF, 3NF, BCNF Informationsbevarande relationsschemauppdelning