Funktionella beroenden - teori

Relevanta dokument
Relationell databasdesign

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

Databaser Design och programmering

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

Lösningar till tentamen i EDAF75

Analytisk relationsdatabasdesign

Databasdesign. E-R-modellen

Universitetet: ER-diagram

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

Informationssystem och databasteknik

GIS, databasteknik och kartografi. Kursmaterial för databasdelen

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

Explorativ övning 9 RELATIONER OCH FUNKTIONER

Karlstads Universitet, Datavetenskap 1

IT i organisationer och databasteknik

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

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

Grunderna för relationsmodellen!

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

Lösningsförslag, tentamen i Databaser

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

Uppföljning av diagnostiskt prov HT-2016

ENDIMENSIONELL ANALYS B1 FÖRELÄSNING II. Föreläsning II. Mikael P. Sundqvist

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

Lösningar till utvalda uppgifter i kapitel 1

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

Logisk databasdesign

Karlstads Universitet, Datavetenskap 1

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Föreläsning 9: NP-fullständighet

Karlstads Universitet, Datavetenskap 1

Vektorgeometri för gymnasister

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

Föreläsning 6: Normalisering & funktionella beroenden

Föreläsning 8: Intro till Komplexitetsteori

Vektorgeometri för gymnasister

Algebra och Diskret Matematik A (svenska)

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

Finaltävling i Uppsala den 24 november 2018

Repetition inför tentamen

Lösningsförslag till Exempel tentamen

Konceptuella datamodeller

Peanos axiomsystem för de naturliga talen

Frågeoptimering. Frågeoptimering kapitel 14

K2 Något om modeller, kompakthetssatsen

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Kap Inversfunktion, arcusfunktioner.

KTH Matematik B.Ek Lösningar tentamen 5B1928 Logik för D (och IT), 29 augusti 2007

Kongruens och likformighet

Trigonometri. Sidor i boken 26-34

Matriser. En m n-matris A har följande form. Vi skriver också A = (a ij ) m n. m n kallas för A:s storlek. 0 1, 0 0. Exempel 1

Finaltävling i Umeå den 18 november 2017

Algebra I, 1MA004. Lektionsplanering

Om semantisk följd och bevis

Tentamen TMV210/MMGD10 Inledande Diskret Matematik, D1/GU

Sidor i boken Figur 1:

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

{ } { } En mängd är en samling objekt A = 0, 1. Ex: Mängder grundbegrepp 5 C. Olof M C = { 7, 1, 5} M = { Ce, Joa, Ch, Je, Id, Jon, Pe}

Tentamen DATABASTEKNIK - 1DL116

Grundläggande logik och modellteori

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

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Nöjd Medarbetar Index 2012

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

10.4. Linjära höljet LINJÄRA RUM

TDDI60 Tekniska databaser

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

Övningshäfte 6: 2. Alla formler är inte oberoende av varandra. Försök att härleda ett par av de formler du fann ur några av de övriga.

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Matematiska uppgifter

Tentamen i Databasteknik

NORMALISERING. Mahmud Al Hakim

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Databasteori. Övningar

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

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

Sidor i boken 8-9, 90-93

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

Digitalteknik syntes Arne Linde 2012

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

LKT325/LMA521: Faktorförsök

SMD033 Digitalteknik. Digitalteknik F1 bild 1

1 som går genom punkten (1, 3) och är parallell med vektorn.

1. (3p) Ett RSA-krypto har parametrarna n = 77 och e = 37. Dekryptera meddelandet 3, dvs bestäm D(3). 60 = = =

TENTAMEN I LINJÄR ALGEBRA OCH NUMERISK ANALYS F1, TMA671

SF1624 Algebra och geometri Lösningsförslag till tentamen DEL A

KTHs Matematiska Cirkel. Reella tal. Joakim Arnlind Tomas Ekholm Andreas Enblom

Explorativ övning euklidisk geometri

Moment 6.1, 6.2 Viktiga exempel Övningsuppgifter T6.1-T6.6

Vektorgeometri för gymnasister

Tentamen i Linjär algebra (TATA31/TEN1) , 8 13.

Induktionsprincipen Starka induktionsprincipen Välordningsprincipen Divisionsalgoritmen

Matematik CD för TB. tanv = motstående närliggande. tan34 = x 35. x = 35tan 34. x cosv = närliggande hypotenusan. cos40 = x 61.

Moment 4.11 Viktiga exempel 4.32, 4.33 Övningsuppgifter Ö4.18-Ö4.22, Ö4.30-Ö4.34. Planet Ett plan i rummet är bestämt då

Om ordinaltal och kardinaltal

Transkript:

Relationell databasdesign, FB Teori 7-12 Funktionella beroenden - teori Vid utformning av databassystem är det av största vikt att man kan resonera systematiskt om funktionella beroenden bl.a. för att kunna testa scheman för BCNF och 3NF. Formella begreppet nyckel (repetition): K är en (kandidat)nyckel för relation R om (1) K alla attribut i R (2) För ingen äkta delmängd av K är (1) sann. Om K bara satisfierar (1) så är K en supernyckel. Hölje av en mängd av funktionella beroenden Vi kunde definiera ett relationsschema genom att helt enkelt ge en enda kandidatnyckel. De enda funktionella beroenden som sedan anges är att K A för varje attribut A. K är då den enda kandidatnyckeln för dessa funktionella beroenden, enligt den formella definitionen på kandidatnyckel. Eller vi kunde ange några funktionella beroenden och härleda en eller flere nycklar enligt den formella definitionen Tumregel: Funktionella beroenden kommer antingen från nyckelhet eller från fysik. T.ex. "inga två kurser kan hållas i samma rum vid samma tid" ger rum tid kurs Vilka beroenden fås ur E-R-diagrammet?

Relationell databasdesign, FB Teori 7-13 Det räcker ej att beakta en mängd funktionella beroenden, man måste beakta alla funktionella beroenden som gäller. Genom att utgå från en given mängd F av funktionella beroenden kan man bevisa att andra funktionella beroenden gäller är logiskt implicerade av F: Givet ett relationsschema R. Ett funktionellt beroende f på R är logiskt implicerat av en mängd F av funktionella beroenden på R om varje instans r(r) som satisfierar F även satisfierar f. Ex.: Givet relationsschema R(A,B,C,G,H,I) där följande funktionella beroenden gäller A B XY = X Y A C CG H CG I B H Man kan visa att A H är logist implicerat. Dvs. man kan visa att om den givna mängden av funktionella beroenden gäller så gäller äver A H: Antag att t 1 och t 2 är tupler så att t 1 [A] = t 2 [A] A B, def.fb B H, def.fb t 1 [A] = t 2 [A] t 1 [B] = t 2 [B] t 1 [H] = t 2 [H] dvs. A H Hölje av en mängd funktionella beroenden, F + Låt F vara en mängd av funktionella beroenden. Höljet av F (bet. F + ) är mängden av alla funktionella beroenden implicerade av F. F + kan bestämmas m.h.a. en algoritm som utnyttjar Armstrongs axiom, med det är besvärligt ty F + kan vara stort. (Om R innehåller n attribut är antalet möjliga funktionella beroenden i F + 2 2n -2 n+1 +1.)

Relationell databasdesign, FB Teori 7-14 Inferensregler Följande regler kan användas för att härleda funktionella beroenden Armstrongs axiom (1974) 1. Reflexivitet: Om Y X, så X Y 2. Augmentering: Om X Y, så XZ YZ 3. Transitivitet: Om X Y och Y Z, så X Z Av 1-3 följer 4. Union: Om X Y och X Z, så X YZ 5. Uppdelning: Om X YZ så X Y och X Z 6. Pseudo-transitivitet: Om X Y och WY Z, så XW Z Armstrongs axiom är sunda (ger inga felaktiga funktionella beroenden) och fullständiga. Ex.: Visa att A B och BC D implicerar AC D 1. A B (givet) 2. AC BC (augmentering) 3. BC D (givet) 4. AC D (transitivitet anv. 2 och 3) Ex.: Visa att A B och A C implicerar A BC 1. A B (givet) 2. A AB (augmentering m.h.a A) 3. A C (givet) 4. AB CB (augmentering) 5. A BC (transitivitet anv 2 och 4)

Relationell databasdesign, FB Teori 7-15 Höljet av en mängd attribut Ett attribut B är funktionellt bestämt av α om α B. Låt α vara en mängd attribut. Höljet av α under F (bet. α + ) är mängden av alla attribut som funktionellt bestäms av α under en mängd F av funktionella beroenden. Algorim för att beräkna höljet av α, α + Bas: α + = α. Induktion: Om β α +, och β γ är ett givet funktionellt beroende, så lägg γ till α +. Varför? Sluta då α + inte kan ändras. Då bestämmer α funktionellt alla medlemmar av α +, och inga andra attribut. Algorimen kan användas på många sätt: Testa om en attributmängd α är en supernyckel: Beräkna α + i schemat under mängden av dess funktionella beroenden. Om alla attribut i schemat ingår i höljet är mängden en supernyckel. Ex.: R = (A,B,C,D) A B, BC D A + = AB B + = B (AC) + = ABCD dvs. AC är en nyckel Testa om ett funktionellt beroende α β gäller, dvs tillhör F + : Beräkna α +, om β α + gäller α β eljest gäller det ej. Ex.: A C gäller ej ty C / A + = AB Beräkna F + : Beräkna γ + för varje γ R. Varje S γ + ger det funktionella beroendet γ S till F +.

Relationell databasdesign, FB Teori 7-16 Ex.: R = (A,B,C,G,H,I) F = {A B, A C, CG H, CG I, B H} Några element i F + i exemplet ovan: A H CG HI AG I Finns det flere? ty A B och B H (anv. trans) ty CG H, CG I (anv. union) ty A C i F, AG CG (aug med G), CG I i F (trans) ger res. Bestämning av alla härledda funktionella beroenden Motivering: Antag att vi har en relation ABCD med några funktionella beroenden F. Om vi besluter att uppdela ABCD i ABC och AD, vad är de funktionella beroendena för ABC och AD? Ex.: R = (A,B,C,D), F = {AB C, C D, D A} Det ser ut som om bara AB C gäller i ABC, men i själva verket följer C A från F och är tillämpbar på relation ABC. Problemet är exponentiellt i värsta fall. Algoritm För varje mängd av attribut X i R beräkna X +. Eliminera några "uppenbara" beroenden som följer av andra: 1. Eliminera triviala funktionella beroenden (högersida vänstersida) 2. Eliminera XY Z om X Z gäller. 3. Eliminera funktionella beroenden vars högra sidor inte är enskilda attribut. Obs! Efter det att de upptäckta FB na projicerats på en relation kan de som eliminerats med reglerna ovan rekonstrueras i den projicerade relationen.

Relationell databasdesign, FB Teori 7-17 Ex.: R = (A,B,C,D) F = {AB C, C D, D A} Vilka funktionella beroenden följer. Dvs. AB, BC och BD är supernycklar A + = A B + = B C + = ACD D + = AD (AB) + = ABCD (BC) + = ABCD (BD) + = ABCD (AC) + = ACD (AD) + = AD (CD) + = ACD ingenting ingenting lägg C A till höljet lägg AB D (lämna bort alla supermängder av AB) (lämna bort alla supermängder av BC) lägg till BD C (lämna bort alla supermängder av BD) Alla andra mängder innehåller AB, BC eller BD så de ger inget nytt. Dvs. de enda intressanta funktionella beroenden som följer av F är: C A AB D BD C

Relationell databasdesign, FB Teori 7-18 Kanonisk övertäckning Alltid då en uppdatering görs i en databas måste systemet kontrollera att inga funktionella beroenden brytes mot. Dvs. att alla funktionella beroenden i F är satisfierade i databasens nya tillstånd. (Om de ej är satisfierade skall systemet återställas.) Kontrollen kan göras för en förenklad mängd av funktionella beroenden som har samma hölje som F, som är enklare att utföra. Att F och den förenklade mängden har samma hölje innebär att om databasen satisfierar den förenklade mängden av funktionella beroenden så satisfierar den även F, och tvärtom. Def.: Betrakta en mängd F av funktionella beroenden och det funktionella beroendet α β i F. Attribut A är överflödigt i α om A α och F logiskt implicerar (F { α β } ) { (α A) β } Attribut A är överflödigt i β om A β och mängden av funktionella beroenden Varför F F (F { α β } ) { α (β A) } och ej F F? logiskt implicerar F. En kanonisk övertäckning F c för F är en mängd av beroenden så att F logiskt implicerar alla beroenden i F c och F c logiskt implicerar alla beroenden i F, och vidare Inget FB i F c innehåller ett överflödigt attribut Varje vänstersida av ett FB i F c är unikt Hur hitta en förenklad mängd F av F? Varför F F och ej F F? Kan en mängd av funktionella beroenden ha flere kanonisk övertäckningar?

Relationell databasdesign, FB Teori 7-19 Beräkning av en kanonisk övertäckning för F: F c = F repeat Använd union-regeln för att ersätta beroenden α 1 β 1 och α 1 β 2 med α 1 β 1 β 2 Bestäm ett FB α βmed ett överflödigt attribut i antingen α eller i β Om ett överflödigt attribut hittas, stryk det från α β until F c inte ändras Ex.: R = (A, B, C) F = { A BC B C A B AB C } Det finns två FB n med samma vänstersida, kombinera dem: A BC och A B kombineras till A BC Är A överflödigt i AB C? dvs. gäller F (F { AB C} ) { B C } Ja ty B C F implicerar logiskt AB C Är C är överflödigt i A BC? dvs. gäller (F { A BC } ) { A B} F Ja ty A BC kan härledas ur F ty A + = ABC under F F = { A BC B C AB C } F = { A BC B C } F = { A B B C } Den kanoniska övertäckningen F c för F är F c = { A B, B C }