Page 1

DATABASER TEORI

Indhold Introduktion··········································································· 1 E-R diagram············································································ 1 Entitet ············································································ 1 Relation········································································· 1 Kardinalitet ································································· 1 Eksempel ············································································ 2 Datastrukturdiagram ························································· 2 Tabel ··············································································· 2 Relation········································································· 2 Regler for omdannelse af E-R til tabeller············ 2 Eksempel ············································································ 2 Udfylde datanavne i tabellerne································ 3 Normalisering af tabellerne············································· 3 Eksempel ············································································ 3 1. normalform······························································ 3 2. normalform ····························································· 5

Notat af

3. normalform ····························································· 6

Arne Madsen

Samlet resultat for eksempel ·········································· 6

Viborg handelsskole


IT-A

Databaser

Introduktion En database er en samling af relaterede tabeller. Kaldes også en relationsdatabase. Ved at lave en hensigtsmæssige opdeling at dataene i forskellige relaterede tabeller kan redundans undgås (minimeres) og opdateringer i fremtiden sikres og lettes. Når man skal lave en database skal følgende fremgangsmåde følges: 1.

Lav E-R diagram.

2.

Omdan E-R diagram til datastrukturdiagram. a. Omdan E-R diagram til tabeller. b. Find og indskriv datanavne i de enkelte tabeller. c. Normalisér databasen ved at bruge normalformerne på tabellerne (fra datastrukturdiagrammet) og tilpasse datastrukturdiagrammet.

E-R diagram Et E-R diagram viser sammenhængen mellem de ting, som vi ønsker at registrere data om. Eksempelvis idrætsgrene og medlemmer, medarbejdere og projekter, kunder og ordrer. Entitet

Objekt, som vi ønsker at registrere data om.

Eksempler: Sælger, kunde, ordre. Medarbejder, projekt, kunde. Tegnes som et rektangel. Relation

En forbindelse mellem entiteter.

Eksempler: relationen "tilmeldt" forbinder entiteten "idrætsgren" med entiteten "medlem" – et medlem er tilmeldt en idrætsgren. Tegnes som en rombe. Kardinalitet

Angiver relationstypen. 1:1

Én til én: et objekt i den ene entitet er forbundet med ét objekt i den anden entitet – og omvendt. En mand er gift med én kvinde og en kvinde er gift med én mand.

1:m Én til mange: et objekt i den ene entitet er forbundet med flere objekter i den anden entitet. Men et objekt i den anden entitet er kun forbundet med ét objekt i den første entitet. En ordre er tilknyttet én kunde og en kunde kan have flere ordrer. m:m Mange til mange: et objekt i den ene entitet er forbundet med mange objekter i den anden entitet og et objekt i den anden entitet er forbundet med mange objekter i den første entitet. Et medlem kan være tilmeldt mange idrætsgrene og en idrætsgren har mange medlemmer.

Arne Madsen

1


IT-A

Databaser

Eksempel På et bilværksted ønsker man at registrere de enkelte mekanikeres timeforbrug på de enkelte biler. En bil kan altså have flere mekanikere og den enkelte mekaniker kan arbejde på flere biler. BIL

HAR

m

m

MEKANIKER

Datastrukturdiagram Da databaser består af relaterede tabeller, skal E-R diagrammet omdannes til et datastrukturdiagram, som viser tabeller og indbyrdes relationer. Tabel Tegnes som et rektangel med tabellens navn øverst til højre. Tabellens datanavne skrives under tabelnavnet. Relation Tegnes som en linie mellem de felter, der er fælles for tabellerne (mellem nøgler). Gaflen symboliserer en 1:m kardinalitet.

Regler for omdannelse af E-R til tabeller Regel 1 – 1:m

Entiteter med 1:m kardinalitet mellem sig omdannes til 2 tabeller med gaflen placeret hvor der før var et ”m”.

Regel 2 – m:m

Entiteter med m:m kardinalitet mellem sig omdannes til 3 tabeller, svarende til de 2 entiteter og relationen. Gaflerne placeres ved tabellen svarende til relationen.

Eksempel BIL

Bil

Arne Madsen

HAR

m

Har

m

MEKANIKER

Mekaniker

2


IT-A

Databaser

Udfylde datanavne i tabellerne Her tages ovenstående diagram og udfyldes med de datanavne, hver tabel skal indeholde. Derefter vælges en nøgle til hver tabel. Nøglen kan være et enkelt datanavn eller flere datanavne som tilsammen kan fungere som nøgle.

Nøgle: et (eller flere) felt som entydigt identificerer en post i en tabel.

BIL

HAR

MEKANIKER

Stelnr.

Stelnr.

Mek.nr.

Fabrikat

Mek.nr.

Navn

Model

Adresse

Kundenr.

Postnr.

Timer

By

Normalisering af tabellerne 1. normalform

- Tabellen skal have en nøgle - Alle poster i tabellen har samme længde (antal felter)

2. normalform

- Tabellen er på 1. normalform - Tabellens nøglefelt skal bestemme værdien i de andre felter; uden hjælp fra andre felter.

3. normalform

- Tabellen er på 2. normalform - Tabellens nøglefelt skal være eneste determinantfelt; der må ikke være andre felter, som også kan være determinantfelt.

Eksempel 1. normalform BIL Stelnr.

Fabrikat

Model

Kundenr.

Timer

Timer2

123456789

Volvo

C70

000001

2

2

987654321

Porsche

911

000002

8

147258369

Audi

A6

000003

2

963852741

Porsche

Cayenne

000002

3

Arne Madsen

Timer3

Timer4

1

4

6

3

1

3


IT-A

Databaser

MEKANIKER

HAR Stelnr.

Mek.nr.

Mek.nr.

Navn

Adresse

Postnr.

By

123456789

01

01

Ib

Her 1

8800

Viborg

987654321

02

02

Ole

Der 2

8800

Viborg

147258369

01

03

Kim

Hvor 3

8900

Randers

963852741

03

Problemer: posterne har ikke samme lÌngde i bil-tabellen. En løsning ses nedenfor.

BIL Stelnr.

Fabrikat

Model

Kundenr.

Timer

123456789

Volvo

C70

000001

2

123456789

Volvo

C70

000001

2

987654321

Porsche

911

000002

8

987654321

Porsche

911

000002

1

987654321

Porsche

911

000002

4

987654321

Porsche

911

000002

6

147258369

Audi

A6

000003

2

147258369

Audi

A6

000003

3

147258369

Audi

A6

000003

1

963852741

Porsche

Cayenne

000002

3

Opfylder nu 1. normalform.

Arne Madsen

4


IT-A

Databaser

2. normalform Denne normalform bruges særligt for at undgå redundans og inkonsistens. Redundans:

De samme data gentages i databasen.

Inkonsistens: Data som burde være ens optræder forskelligt i databasen. En mulig følge af redundans. Problemer fra 1. normalform:

Redundans i biltabellen. ”Timer” kan ikke bestemmes alene af nøglefeltet.

En løsning ses nedenfor: BIL Stelnr.

Fabrikat

Model

Kundenr.

123456789

Volvo

C70

000001

987654321

Porsche

911

000002

147258369

Audi

A6

000003

963852741

Porsche

Cayenne

000002

HAR Fakturanr.

Stelnr.

Mek.nr.

Timer

0000001

123456789

01

2

0000002

123456789

01

2

0000003

987654321

02

8

0000004

987654321

02

1

0000005

987654321

02

4

0000006

987654321

02

6

0000007

147258369

01

2

0000008

147258369

01

3

0000009

147258369

01

1

0000010

963852741

03

3

Tabellerne er nu på 2. normalform!

Arne Madsen

5


IT-A

Databaser

3. normalform Bruges for at fjerne redundans. Problemer fra 2. normalform:

Redundans med by. "By" er bestemt af nøglefelt, men "postnr." kan også bestemme by.

PostBy

MEKANIKER Mek.nr.

Navn

Adresse

Postnr.

Postnr.

By

01

Ib

Her 1

8800

8800

Viborg

02

Ole

Der 2

8800

8900

Randers

03

Kim

Hvor 3

8900

Tabellerne er nu på 3. normalform.

Samlet resultat for eksempel BIL

HAR

MEKANIKER

Stelnr.

Fakturanr.

Mek.nr.

Fabrikat

Stelnr.

Navn

Model

Mek.nr.

Adresse

Kundenr.

Timer

Postnr.

PostBy Postnr. By

Når I skal normalisere, behøver I ikke at vise dataeksempler. Det er tilstrækkeligt at anføre tabeller med datanavne samt forklare problemer og løsninger for hver normalform.

Arne Madsen

6

Databaseteori  

Lidt grundlæggende om databaseudvikling. E/R diagrammer og normalisering.

Read more
Read more
Similar to
Popular now
Just for you