GB: Entity Relationship Model

90
1 Gegevensbanken entiteit-relatie model Prof. Erik Duval 2011-2012 Wednesday 22 February 12

Transcript of GB: Entity Relationship Model

1

Gegevensbankenentiteit-relatie model

Prof. Erik Duval

2011-2012

Wednesday 22 February 12

2

http

://w

ww.

slid

esha

re.n

et/e

rik.d

uval

Wednesday 22 February 12

3

Wednesday 22 February 12

• ontwerp van een gegevensbank

• conceptuele gegevensmodellen

• voorbeeld

• E-R model

• E-R diagrammen

• ontwerpkeuzes

• niet-binaire relaties

4

Wednesday 22 February 12

ontwerp van een gegevensbank

5Wednesday 22 February 12

6

Wednesday 22 February 12

• analyse: behoeften? gegevens?

6

Wednesday 22 February 12

• analyse: behoeften? gegevens?

• conceptueel ontwerp: hoog-niveau gegevensmodel

• gegevenstypes, relaties, beperkingen, operaties

6

Wednesday 22 February 12

• analyse: behoeften? gegevens?

• conceptueel ontwerp: hoog-niveau gegevensmodel

• gegevenstypes, relaties, beperkingen, operaties

• transformatie naar implementatiemodel

• conceptueel schema volgens model van DBMS

6

Wednesday 22 February 12

• analyse: behoeften? gegevens?

• conceptueel ontwerp: hoog-niveau gegevensmodel

• gegevenstypes, relaties, beperkingen, operaties

• transformatie naar implementatiemodel

• conceptueel schema volgens model van DBMS

• fysisch ontwerp

• intern schema volgens model van DBMS

6

Wednesday 22 February 12

7

Wednesday 22 February 12

conceptueel gegevensmodel

8Wednesday 22 February 12

9

Wednesday 22 February 12

• bedoeling: relevant deel van de werkelijkheid beschrijven

• objecten + feiten

9

Wednesday 22 February 12

• bedoeling: relevant deel van de werkelijkheid beschrijven

• objecten + feiten

• beschrijving = schema

• elke groep gebruikers heeft eigen schema

• alle schema's samen: infologisch schema

9

Wednesday 22 February 12

• bedoeling: relevant deel van de werkelijkheid beschrijven

• objecten + feiten

• beschrijving = schema

• elke groep gebruikers heeft eigen schema

• alle schema's samen: infologisch schema

• modellering gebruikt abstractie

• details weggelaten

• algemene, gemeenschappelijke eigenschappen en feiten

9

Wednesday 22 February 12

10

Wednesday 22 February 12

• waarom

• sluit nauwer aan bij realiteit dan een implementatiemodel

• meer betekenis van objecten dan implementatiemodellen

• ... minder details van implementatie

10

Wednesday 22 February 12

• waarom

• sluit nauwer aan bij realiteit dan een implementatiemodel

• meer betekenis van objecten dan implementatiemodellen

• ... minder details van implementatie

• gebruikte model: entiteit-relatie-model

• objecten (entiteiten)

• verbanden tussen objecten (relaties)

• eigenschappen (attributen)

• waardenverzamelingen (domeinen)

10

Wednesday 22 February 12

11

Wednesday 22 February 12

• entiteiten ∈ entiteitstype

11

Wednesday 22 February 12

• entiteiten ∈ entiteitstype

• relaties ∈ relatietype

11

Wednesday 22 February 12

• entiteiten ∈ entiteitstype

• relaties ∈ relatietype

• attributen: waarden ∈ domein

11

Wednesday 22 February 12

• entiteiten ∈ entiteitstype

• relaties ∈ relatietype

• attributen: waarden ∈ domein

11

Wednesday 22 February 12

• entiteiten ∈ entiteitstype

• relaties ∈ relatietype

• attributen: waarden ∈ domein

• sleutel

• identificator v.e. entiteitstype / relatietype

• waarde van sleutel bepaalt eenduidig de entiteit / relatie

11

Wednesday 22 February 12

voorbeeld:bedrijf

12Wednesday 22 February 12

...

13Wednesday 22 February 12

• bedrijf is georganiseerd in departementen

• een departement heeft naam, nummer, een of meer locaties,departementshoofd (sinds een bepaalde datum)

• elk departement controleert een aantal projectenelk project heeft naam, nummer, 1 locatie

• voor elke werknemer

• naam, ID, adres, salaris, geslacht, geboortedatum, #uren per week besteed aan elk project, onmiddellijke overste (supervisor)

• een werknemer hoort bij 1 departement,maar kan aan meerdere projecten werken die niet noodzakelijk door 1 departement gecontroleerd worden

• voor elke werknemer bovendien van de personen ten laste

• naam, geslacht, geboortedatum, relatie tot werknemer

14Wednesday 22 February 12

• schema: mini-wereld

• entiteit: object (fysisch of conceptueel)

• entiteit type: klasse

• attribuut: eigenschap

• samengesteld / enkelvoudig (atomair)

• eenwaardig / meerwaardig

• expliciet voorgesteld / afgeleid

• domein (= mogelijke waarden)

• null-waarden:

• "heeft geen waarde" : niet van toepassing / onbekend

• nesten van samengestelde / meerwaardige attributen

15Wednesday 22 February 12

16Wednesday 22 February 12

17Wednesday 22 February 12

18Wednesday 22 February 12

19Wednesday 22 February 12

• attribuut waarvan de waarden verschillen

• voor elke verschillende entiteit

• in elke mogelijke instantie

• soms combinatie van attributen

• soms meer dan één sleutel

sleutel

20

Wednesday 22 February 12

identificeer

• entiteitstypes

• attributen van elk entiteitstype

• sleutelattributen

ontwerp van ER schema

21

Wednesday 22 February 12

22

Wednesday 22 February 12

22

EMPLOYEE

Sex

Name

Ssn

Fname Minit Lname

Address

Bdate

Salary

Wednesday 22 February 12

22

EMPLOYEE

Sex

Name

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

Wednesday 22 February 12

22

EMPLOYEE

Sex

Name

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

Location

Wednesday 22 February 12

22

EMPLOYEE

Sex

Name

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

Location

DEPENDENT

Name

Sex BirthdateRelationship

Wednesday 22 February 12

relatie

23

Wednesday 22 February 12

• relatietype = verzameling verbanden (relaties) over entiteitstypes E1, ..., En

relatie

23

Wednesday 22 February 12

• relatietype = verzameling verbanden (relaties) over entiteitstypes E1, ..., En

• graad = aantal betrokken entiteitstypes

• binair, ternair, ...

relatie

23

Wednesday 22 February 12

• relatietype = verzameling verbanden (relaties) over entiteitstypes E1, ..., En

• graad = aantal betrokken entiteitstypes

• binair, ternair, ...

• 1 entiteitstype meerdere keren: recursief relatietype

• vb. SUPERVISION

relatie

23

Wednesday 22 February 12

• relatietype = verzameling verbanden (relaties) over entiteitstypes E1, ..., En

• graad = aantal betrokken entiteitstypes

• binair, ternair, ...

• 1 entiteitstype meerdere keren: recursief relatietype

• vb. SUPERVISION

• entiteitstype speelt rol in een relatie

relatie

23

Wednesday 22 February 12

24

Wednesday 22 February 12

25

Wednesday 22 February 12

26

Wednesday 22 February 12

identificeer

• entiteitstypes en attributen van elk entiteitstype

• sleutelattributen

• relatietypes en attributen van elk relatietype

• connectiviteit en deelnamebeperkingen

• eventuele afgeleide attributen in entiteitstypes

• vb: aantal werknemers in een departement

ontwerp van ER schema

27

Wednesday 22 February 12

28

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

Location

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

MANAGES

StartDate

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

CONTROLS

MANAGES

StartDate

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

CONTROLS

MANAGES

StartDate

SUPERVISES

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

CONTROLS

MANAGES

StartDate

SUPERVISESHAS_DEP.

Wednesday 22 February 12

28

EMPLOYEE

SexName

Ssn

Fname Minit Lname

Address

Bdate

Salary

DEPARTMENT

Number

LocationsName

PROJECT

Name

Number

LocationDEPENDENT

NameSex BirthDate

Relationship

WORKS_FOR

CONTROLS

MANAGES

StartDate

SUPERVISESHAS_DEP.

WORKS_ON

Hours

Wednesday 22 February 12

beperkingen op relatietypes

29

Wednesday 22 February 12

• connectiviteit ("cardinality ratio")

• voor binaire relatietypes: 1:1, 1:n, m:n

• vb. werknemer behoort bij precies één departement

• ternaire, ... relatietypes: meer mogelijkheden

beperkingen op relatietypes

29

Wednesday 22 February 12

• connectiviteit ("cardinality ratio")

• voor binaire relatietypes: 1:1, 1:n, m:n

• vb. werknemer behoort bij precies één departement

• ternaire, ... relatietypes: meer mogelijkheden

• deelnamebeperking

• totale / partiële deelname

• vb. moet iedereen bij een departement behoren?

• voor binaire relatietypes: T-T, T-P, P-P

• totale deelname = "bestaansafhankelijkheid"

beperkingen op relatietypes

29

Wednesday 22 February 12

30

1:n en totaal voor employee en department

Wednesday 22 February 12

31

1:n en partieel voor supervisor en supervisee rol

Wednesday 22 February 12

32

1:1, totaal voor department en partieel voor employee

Wednesday 22 February 12

• vb. aantal uren / week dat werknemer aan project werkt

• 1 : 1 ➡ attribuut kan bij een van de entiteitstypes

• 1 : n ➡ attribuut kan bij entiteitstype aan n-zijde

• m : n ➡ attribuut kan niet bij entiteitstypes

• moet bij relatietype zelf

• vb: WORKS_ON: Hours

attributen van relatietypes

33

Wednesday 22 February 12

34

EMPLOYE

SeNam

Ss

Fnam Mini Lnam

Addres

Bdat

Salar

DEPARTMEN

Numbe

LocationNam

PROJEC

Nam

Numbe

LocatioDEPENDENT

NamSe BirthDat

Relationshi

WORKS_FO

CONTROLS

MANAGES

StartDat

SUPERVISESHAS_DEP

1N

11

1

N

superviso supervise1

N

1 NWORKS_O

Hour

NM

Wednesday 22 February 12

• zonder eigen sleutel

• identificatie via entiteit van ander entiteitstype

• identificerende entiteit = "eigenaar", identificerende relatie

• steeds totale deelname in identificerende relatie

• partiële sleutel

• identificeert entiteit binnen entiteiten met zelfde eigenaar

• partiële sleutel = "discriminator"

• vb : DEPENDENT

zwakke entiteitstypes

35

Wednesday 22 February 12

• bestaansafhankelijkheid

• bestaan ene hangt af van bestaan van andere

• ondergeschikte entiteit - dominante entiteit

• identificatieafhankelijkheid

• kan niet geïdentificeerd worden met eigen attributen

• = zwakke entiteit

• vb. straat ← gemeente ← land

• vaak samen, maar niet altijd

36

Wednesday 22 February 12

– ENTITEIT : • enkelvoud (bv. PERSOON, niet PERSONEN)

– RELATIE :• vervoegd werkwoord

– Attribuut– Sleutelattribuut– rolnaam

37

Wednesday 22 February 12

38

Wednesday 22 February 12

39

Wednesday 22 February 12

alternatieve notatie

(min,max) annotatie bij rol

hoe vaak kan een entiteit die rol spelen in een relatie?min = 0 → partieelmin > 0 → totaal

40

Wednesday 22 February 12

41

EMPLOYE

SeNam

Ss

Fnam Mini Lnam

Addres

Bdat

Salar

DEPARTMEN

Numbe

LocationNam

PROJEC

Nam

Numbe

LocatioDEPENDENT

NamSe BirthDat

Relationshi

WORKS_FO

CONTROLS

MANAGES

StartDat

SUPERVISESHAS_DEP

WORKS_O

hour

(1,1

(4,N

(0,1(1,1 (0,N

(1,1(1,N

(1,N

(1,1

(0,Nsuperviso

supervise(0,N

(0,1

Wednesday 22 February 12

ontwerpkeuzes

42

Wednesday 22 February 12

ontwerpkeuzes

• attribuut verwijst naar ander entiteitstype ➡ relatie• vb. manager als attribuut bij DEPARTMENT

of als relatie ts. DEPARTMENT en EMPLOYEE

42

Wednesday 22 February 12

ontwerpkeuzes

• attribuut verwijst naar ander entiteitstype ➡ relatie• vb. manager als attribuut bij DEPARTMENT

of als relatie ts. DEPARTMENT en EMPLOYEE• attribuut bij verschillende entiteitstypes ➡ entiteitstype

• vb. STUDENT, INSTRUCTOR en COURSE een attribuut ‘Departement’ ➡ entiteit DEPARTMENT

42

Wednesday 22 February 12

ontwerpkeuzes

• attribuut verwijst naar ander entiteitstype ➡ relatie• vb. manager als attribuut bij DEPARTMENT

of als relatie ts. DEPARTMENT en EMPLOYEE• attribuut bij verschillende entiteitstypes ➡ entiteitstype

• vb. STUDENT, INSTRUCTOR en COURSE een attribuut ‘Departement’ ➡ entiteit DEPARTMENT

• entiteitstype met één attribuut met één entiteitstype relatie ➡ attribuut• vb. entiteitstype DEPARTMENT met slechts één

attribuut, en enkel relatie met STUDENT ➡attribuut

42

Wednesday 22 February 12

UML klasse diagram

43

Wednesday 22 February 12

niet-binaire relaties

• vb. van ternaire relatie: SUPPLY

• leverancier levert onderdelen voor project

• SUPPLIER, PART en PROJECT in relatie SUPPLY

• connectiviteit en deelnamebeperking

• ingewikkelder, met (min, max) notatie

• is ternaire relatie ook via binaire relaties voor te stellen?

44

Wednesday 22 February 12

45

Wednesday 22 February 12

46

SUPPLIER

PART

PROJECTSUPPLIES_FOR(0,N

(0,N

(1,N

SuppNo

PartNo

ProjNoQuantity

Wednesday 22 February 12

47

PART

(0,N)

PartNo

SUPPLIER PROJECT

SUPPLIES_FOR

(0,N) (1,N)

SuppNo ProjNo

Quantity

een ternair relatietype vervangen door drie binaire

Wednesday 22 February 12

47

PART

(0,N)

PartNo

SUPPLIER PROJECT

SUPPLIES_FOR

(0,N) (1,N)

SuppNo ProjNo

Quantity

CAN_SUPPLY

een ternair relatietype vervangen door drie binaire

Wednesday 22 February 12

47

PART

(0,N)

PartNo

SUPPLIER PROJECT

SUPPLIES_FOR

(0,N) (1,N)

SuppNo ProjNo

Quantity

CAN_SUPPLY USES

een ternair relatietype vervangen door drie binaire

Wednesday 22 February 12

47

PART

(0,N)

PartNo

SUPPLIER PROJECT

SUPPLIES_FOR

(0,N) (1,N)

SuppNo ProjNo

Quantity

CAN_SUPPLY USES

PARTICIPATES

een ternair relatietype vervangen door drie binaire

Wednesday 22 February 12

48

Wednesday 22 February 12

49

Wednesday 22 February 12

Vragen...?

50

Wednesday 22 February 12