Presentation laddar. Vänta.

Presentation laddar. Vänta.

KaU - Datavetenskap - DAV B04 - MGö

Liknande presentationer


En presentation över ämnet: "KaU - Datavetenskap - DAV B04 - MGö"— Presentationens avskrift:

1 KaU - Datavetenskap - DAV B04 - MGö
DAV B04 - Databasteknik Normalisering (igen) KaU - Datavetenskap - DAV B04 - MGö

2 KaU - Datavetenskap - DAV B04 - MGö
Normalisering Förut sunt förnuft Nu formell metod riktlinjer för att hjälpa till att gruppera attributen (egenskaperna) för varje relation serie av tester KaU - Datavetenskap - DAV B04 - MGö

3 KaU - Datavetenskap - DAV B04 - MGö
Normalisering Är därmed en formell metod för att identifiera relationer utifrån deras primär- eller kandidatnycklar och de funktionella beroenden som finns mellan deras attribut KaU - Datavetenskap - DAV B04 - MGö

4 KaU - Datavetenskap - DAV B04 - MGö
Mål för normalisering Minska redundansen!!! KaU - Datavetenskap - DAV B04 - MGö

5 Exempel utan redundans
Staff staffNo sName position salary branchNo SL21 SG37 SG14 John White Ann Beech David Ford Manager Assistant Supervisor 30000 12000 18000 B005 B003 Branch branchNo bAddress B005 B003 22 Deer Rd, London 163 Main St, Glasgow KaU - Datavetenskap - DAV B04 - MGö

6 KaU - Datavetenskap - DAV B04 - MGö
Exempel med redundans StaffBranch staffNo sName position salary branchNo bAddress SL21 SG37 SG14 John White Ann Beech David Ford Manager Assistant Supervisor 30000 12000 18000 B005 B003 22 Deer Rd, London 163 Main St, Glasgow KaU - Datavetenskap - DAV B04 - MGö

7 KaU - Datavetenskap - DAV B04 - MGö
Uppdateringsproblem Uppstår eventuellt när redundant data existerar insertion deletion modification KaU - Datavetenskap - DAV B04 - MGö

8 Insättningsproblem i exemplet StaffBranch
En ny anställd skall in i databasen Branchinformationen måste matcha informationen i de andra tuplerna Hur lägger jag in information om en ny branch? Måste lägga in nulls på staffNo, sName, position och salary... KaU - Datavetenskap - DAV B04 - MGö

9 Borttagningsproblem i exmplet StaffBranch
Vad händer om vi tar bort den sista anställda på en branch? KaU - Datavetenskap - DAV B04 - MGö

10 Modifieringsproblem i exemplet StaffBranch
Uppdatera en branch... måste uppdatera i alla tupler där den branchen finns Risk? KaU - Datavetenskap - DAV B04 - MGö

11 Viktiga egenskaper vid normalisering
Får inte förlora data när relationerna delas Ingen ny information får tillkomma om man skulle slå ihop de nya relationerna igen KaU - Datavetenskap - DAV B04 - MGö

12 Funktionella beroenden
Beskriver samband mellan attribut i en relation A  B A bestämmer unikt B B är unikt beroende av A om varje värde i A ger exakt ett värde av B R A B KaU - Datavetenskap - DAV B04 - MGö

13 KaU - Datavetenskap - DAV B04 - MGö
FB diagram A (determinant) B (dependent) B är funktionellt beroende av A Om vi vet värdet på A och undersöker relationen så kommer vi bara att hitta ett värde på B som har det givna värdet på A Om vi hittar två tupler som har samma värde på A så kommer de också att ha samma värde på B! För ett givet värde på B kan det dock finnas flera olika värden av A KaU - Datavetenskap - DAV B04 - MGö

14 KaU - Datavetenskap - DAV B04 - MGö
Egenskaper FB 1:N förhållande 1:1 mellan staffNo och position 1:N mellan position och staffNo StaffNo är determinant i beroendet i normalisering letar vi därmed efter 1:1 förhållanden KaU - Datavetenskap - DAV B04 - MGö

15 KaU - Datavetenskap - DAV B04 - MGö
FB i StaffBranch Antagande Position och branch bestämmer lönen staffNo  {sName, position, salary, branchNo, bAddress} branchNo  bAddress bAddress  branchNo {branchNo, position}  salary {bAddress, position}  salary KaU - Datavetenskap - DAV B04 - MGö

16 KaU - Datavetenskap - DAV B04 - MGö
FB i StaffBranch Identifiera KN och PN Alla attribut som inte är en del av PN skall vara funktionellt beroende av PN Finns bara en KN: staffNo  PN branchNo, bAddress, (branchNo, position), (bAddress, position) är determinanter, inte KN staffNo -> {sName, position, salary, branchNo} branchNo -> bAddress bAddress -> branchNo {branchNo, position} -> salary {bAddress, position} -> salary KaU - Datavetenskap - DAV B04 - MGö Karlstads Universitet, Datavetenskap

17 KaU - Datavetenskap - DAV B04 - MGö
Normalformerna Ju högre normaliseringsgrad desto... starkare, begränsat format mindre sårbart för uppdateringsproblem KaU - Datavetenskap - DAV B04 - MGö

18 KaU - Datavetenskap - DAV B04 - MGö
1 NF En relation där korsningen av varje rad och kolumn innehåller ett och bara ett värde R A B C a1 a2 a3 b1 b2 c1 c3 KaU - Datavetenskap - DAV B04 - MGö

19 KaU - Datavetenskap - DAV B04 - MGö
Lösning UNF  1 NF ”Platta till” tabellen varje B-värde på en ny rad nyckel {A, B} Flytta ut till en ny relation R = {A, C} R2 = {A, B} R A B C a1 a2 a3 {b1, b2} b2 {b1, b2, b3} c1 c3 c2 KaU - Datavetenskap - DAV B04 - MGö

20 KaU - Datavetenskap - DAV B04 - MGö
2 NF Alla attribut som inte är en del av PN måste vara till fullo beroende av PN får därmed inte finnas delberoenden… {staffNo, sName}  {position, salary} inte OK! Staff staffNo sName position salary SL21 SG37 SG14 John White Ann Beech David Ford Manager Assistant Supervisor 30000 12000 18000 KaU - Datavetenskap - DAV B04 - MGö

21 KaU - Datavetenskap - DAV B04 - MGö
3 NF Ingen av de attribut som inte tillhör PN är transitivt beroende av PN staffNo  branchNo branchNo  bAddress Inte OK! StaffBranch staffNo sName position salary branchNo bAddress SL21 SG37 SG14 John White Ann Beech David Ford Manager Assistant Supervisor 30000 12000 18000 B005 B003 22 Deer Rd, London 163 Main St, Glasgow KaU - Datavetenskap - DAV B04 - MGö

22 KaU - Datavetenskap - DAV B04 - MGö
BCNF Alla determinanter är en KN Skillnad 3NF och BCNF 3NF tillåter AB om B är PN och A inte en KN BCNF insisterar på att AB är tillåtet bara om A är en KN KaU - Datavetenskap - DAV B04 - MGö


Ladda ner ppt "KaU - Datavetenskap - DAV B04 - MGö"

Liknande presentationer


Google-annonser