K02 (1)
-
Upload
helene-fosse -
Category
Technology
-
view
119 -
download
3
Transcript of K02 (1)
![Page 1: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/1.jpg)
11
Kap 02 RelasjonsdatabaserKap 02 Relasjonsdatabaser
![Page 2: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/2.jpg)
Tabeller
Dataene i en relasjonsdatabase er plassert ito-dimensjonale tabeller.
En relasjons-database består av tabeller.
![Page 3: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/3.jpg)
Eksempel på innhold i en database
Tables
Indexes
Triggers
Views Procedures
Rules
Datatypes
Defaults
Database
![Page 4: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/4.jpg)
Database / Tabell / Rad / Kolonne
5 Nilsen 50022 Olsen 64001 Hansen 90004 Berg 6400
Database
Tabell
RadPostRecord
KolonneFelt
![Page 5: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/5.jpg)
Hva er en relasjons-database ?
Nr Navn PNr
5 Nilsen 48907 Olsen 64003 Hansen 48908 Karlsen 4890
PNr Sted
4890 Grimstad5002 Bergen6400 Molde
En relasjons-database er en database hvor alle dataene er samlet i to-dimensjonale tabellerog hvor tabellene eventuelt står i en 1:1 eller 1:n relasjon til hverandre.
Tabellene er inndelt i rader (records) og kolonner (felter).
n 1
![Page 6: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/6.jpg)
Viktige fortrinn ved relasjons-database
Reduserer lagring av redundante data.Reduserer lagring av redundante data. Data kan lett omorganiseres og kombineres i nye relasjoner,Data kan lett omorganiseres og kombineres i nye relasjoner,
de er ikke låst til faste relasjoner pga måten de er lagret på.de er ikke låst til faste relasjoner pga måten de er lagret på. Data kan lett oppdateres i det disse vil bli oppdatertData kan lett oppdateres i det disse vil bli oppdatert
på et minimum antall steder.på et minimum antall steder. Reduserer behovet for disk-plass.Reduserer behovet for disk-plass.
![Page 7: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/7.jpg)
3 sentrale gjenfinnings-operasjoner i Codd’s relasjons-algebra
SelectionSelection Ekstraherer alle rader fra en tabell,Ekstraherer alle rader fra en tabell,hvor radene oppfyller gitte kriterier.hvor radene oppfyller gitte kriterier.
ProjectionProjection Ekstraherer en eller flere kolonner fra en tabell.Ekstraherer en eller flere kolonner fra en tabell.
JoinJoin Ekstraherer kolonner fra flere relaterte tabeller.Ekstraherer kolonner fra flere relaterte tabeller.
Selection Projection Join
![Page 8: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/8.jpg)
Normal-former
SNr Navn PNr Sted VNr Pris Mg VNr Pris Mg VNr Pris Mg
5 Nilsen 5002 Bergen 8 500 302 Olsen 6400 Molde 1 200 20 3 400 101 Hansen 9000 Tromsø 5 300 50 8 500 404 Berg 6400 Molde 1 200 70 3 400 50 5 300 20
SNr Selger-nummerNavn Selger-navnPNr Post-nummerSted Post-stedVNr Vare-nummerPris Vare-prisMg Vare-mengde
![Page 9: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/9.jpg)
1NF Første normalform
Hver tabell skal ha en fast postlengdeHver tabell skal ha en fast postlengde Det skal være kun en post-type pr tabellDet skal være kun en post-type pr tabell Hver post skal ha et eget identifikasjons-felt ( ID )Hver post skal ha et eget identifikasjons-felt ( ID )
SNr Navn PNr Sted VNr Pris Mg
5 Nilsen 5002 Bergen 8 500 302 Olsen 6400 Molde 1 200 202 Olsen 6400 Molde 3 400 101 Hansen 9000 Tromsø 5 300 501 Hansen 9000 Tromsø 8 500 404 Berg 6400 Molde 1 200 704 Berg 6400 Molde 3 400 504 Berg 6400 Molde 5 300 20
![Page 10: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/10.jpg)
2NF Andre normalform
Databasen må være på 1.normalformDatabasen må være på 1.normalform Deler av ID skal ikke kunne være determinantfelt for andre felt,Deler av ID skal ikke kunne være determinantfelt for andre felt,
dvs deler av ID skal ikke entydig kunne bestemme dvs deler av ID skal ikke entydig kunne bestemme verdier i et annet feltverdier i et annet felt
SNr Navn PNr Sted
5 Nilsen 5002 Bergen2 Olsen 6400 Molde1 Hansen 9000 Tromsø4 Berg 6400 Molde
VNr Pris
8 5001 2003 4005 300
SNr VNr Mg
5 8 302 1 202 3 101 5 501 8 404 1 704 3 504 5 20
![Page 11: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/11.jpg)
3NF Tredje normalform
Databasen må være på 2.normalformDatabasen må være på 2.normalform Det må ikke eksistere noen funksjonelle Det må ikke eksistere noen funksjonelle
avhengigheter mellom egenskapsfeltene avhengigheter mellom egenskapsfeltene (felter utenom ID-feltene)(felter utenom ID-feltene)
SNr Navn PNr
5 Nilsen 50022 Olsen 64001 Hansen 90004 Berg 6400
VNr Pris
8 5001 2003 4005 300
SNr VNr Mg
5 8 302 1 202 3 101 5 501 8 404 1 704 3 504 5 20
PNr Sted
5002 Bergen6400 Molde9000 Tromsø
![Page 12: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/12.jpg)
3NF Tredje normalform
SNr Navn PNr
5 Nilsen 50022 Olsen 64001 Hansen 90004 Berg 6400
VNr Pris
8 5001 2003 4005 300
SNr VNr Mg
5 8 302 1 202 3 101 5 501 8 404 1 704 3 504 5 20
PNr Sted
5002 Bergen6400 Molde9000 Tromsø
SelgerAdr
Vare
Salg
![Page 13: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/13.jpg)
Modellator- Notasjon
Selger Adr
Kråkefot
Uten attributter
Selger Adr Med attributter
SNrNavn*PNr
PNrSted
![Page 14: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/14.jpg)
Modellator
Selger Adr Kråkefot
Selger Adr Gaffel
Selger Adr Pil
Selger Adr Pil / Dobbeltpil
Selger Adr Antall
Selger Adr Niam-basert
Selger Adr Kan / Må
0..m1..1
![Page 15: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/15.jpg)
1:n ( 0…m – 1…1)
1515
Selger Adr Kråkefot
Selger Adr Niam-basert
Selger Adr Pil
![Page 16: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/16.jpg)
1:1 ( 0…1 – 1…1)
1616
Selger Adr Kråkefot
Selger Adr Niam-basert
Selger Adr Pil
Dette vil si at vi kan bare ha en eller ingen selgere i tabellen
![Page 17: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/17.jpg)
Generell metode for tilordning av 3NF-tabeller (0)
Vi går tilbake til vår opprinnelige Selger-tabell på 1NF form.Følgende felter er med i denne 1NF-tabellen ( ID er markert med * ).
* SNr Selger-nummerNavn Selger-navnPNr Post-nummerSted Post-sted
* VNr Vare-nummerPris Vare-prisMg Vare-mengde
![Page 18: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/18.jpg)
Generell metode for tilordning av 3NF-tabeller (1)
* SNrNavnPNrSted
* VNrPrisMg
1. Vi tegner inn relasjoner (piler) fra de feltene som entydig bestemmerverdien i andre felter til disse andre feltene.
Total (1NF)
![Page 19: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/19.jpg)
Generell metode for tilordning av 3NF-tabeller (2)
2. Lag en ny tabell ved å plukke ut alle *-feltene samt alle feltene som er funksjonelt avhengigav alle disse *-feltene. Denne nye tabellen vil være på 2NF.
* SNr* VNr
Mg
Salg (2NF)
![Page 20: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/20.jpg)
Generell metode for tilordning av 3NF-tabeller (3)
3. Hvis det i 1NF-tabellen finnes felt som er avhengig av en ekte delmengde av *-feltene,plukkes disse ut sammen med tilhørende *-felt i egne tabeller.Disse nye tabellene vil være på 2NF.
* SNrNavnPNrSted
Selger (2NF)
* VNrPris
Vare (2NF)
![Page 21: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/21.jpg)
Generell metode for tilordning av 3NF-tabeller (4)
4. Hvis det i noen av våre 2NF-tabeller ( Salg, Selger, Vare ) finnes ikke-*-felter (ikke ID-felter)som entydig bestemmer verdier i andre ikke-*-felter, plukkes disse nevnte felteneut i egne tabeller. I vårt eksempel gjelder dette tabellen Selger (PNr bestemmer Sted).Tabellen Selger splittes i to: Tabellene Selger og Adr (Adresse).Selger-tabellen beholder informasjon om PNr.ID i disse nye tabellene vil være de feltene som entydig bestemmerandre felt-verdier. Alle tabellene vil nå være på 3NF.
* SNrNavnPNr
Selger (3NF)
* PNrSted
Adr (3NF)
![Page 22: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/22.jpg)
Generell metode for tilordning av 3NF-tabeller (5)
Alle våre 4 tabeller ( Selger, Adr, Vare, Salg ) vil nå oppfylle 3NF.
* SNrNavnPNr
Selger (3NF)
* PNrSted
Adr (3NF)
* SNr* VNr
Mg
Salg (3NF)
* VNrPris
Vare (3NF)
![Page 23: K02 (1)](https://reader035.fdocuments.net/reader035/viewer/2022062400/58cf0bdb1a28ab5f2b8b5c19/html5/thumbnails/23.jpg)
Generell metode for tilordning av 3NF-tabeller (6)
Følgende relasjoner gjelder mellom våre 4 tabeller ( Selger, Adr, Vare, Salg ) vil nå oppfylle 3NF.
* SNrNavnPNr
Selger
* PNrSted
Adr
* SNr* VNr
Mg
Salg
* VNrPris
Vare