PowerPoint-presentatie

advertisement
Principes van databases
Conceptueel databaseontwerp
Hoofdstuk 3
1
Overzicht
• Het databaseontwerpproces
• Het (uitgebreid) ‘entity-relationship’ model
• Het ontwerp van een (E)ER-diagram
2
Overzicht
• Het databaseontwerpproces
• Het (uitgebreid) ‘entity-relationship’ model
• Het ontwerp van een (E)ER-diagram
3
Het databaseontwerpproces
• Overzicht
informatievergaring
conceptueel
ontwerp
databasemodelonafhankelijk
logisch
ontwerp
dbmsonafhankelijk
fysieke
ontwerp
• domeinanalyse
• functionele analyse
• behoefteanalyse
• conceptueel model
(bijvoorbeeld EER-diagram)
• functionele beschrijving
• logisch databaseschema
(bijvoorbeeld relationeel)
• gedragspecificaties
• DDL-scripts
• implementatie van gedrag
4
Het databaseontwerpproces
• Informatievergaring
– Communicatie
– Onderzoek
•
•
•
•
Software
Data
Handleidingen
Rapporten
• Abstrahering, modellering en implementatie
– Abstrahering
– Modellering (EER of UML)
5
Het databaseontwerpproces
• EER-diagram
beginuur
datum
naam
titel
tijdstip
soort
klantnr
adres
stuknr
1
Stuk
opgevoerd
N
organisator
uitvoerder
Voorstelling
Klant
M
M
duur
prijs
reservatie
tarief
naam
Zone
betaald
N
N
6
1
1
in
N
Plaats
plaatsnr
Het databaseontwerpproces
• Functionele beschrijvingen
Controle_periode (IN Periode IN Artiest.Geboren IN
Artiest.Gestorven OUT Status) EXCEPTIE (OnmogelijkePeriode)
–operatie om te controleren of de periode van het schilderij wel valt binnen
de leefperiode van de schilder van het schilderij.
Ouderdom (IN Periode OUT Ouderdom) EXCEPTIE (PeriodeOnbekend)
–operatie om de ouderdom van een schilderij te bepalen. Daartoe wordt de
periode van het schilderij vergeleken met de huidige datum.
Opmerking: UML doet beiden
7
Het databaseontwerpproces
• CASE-tools
8
Het databaseontwerpproces
COMPANY
9
TOOL
FUNCTIONALITY
Embarcadero
Technologies
ER Studio
Database Modeling in ER and IDEF1X
DB Artisan
Database administration and space and security
management
Oracle
Developer 2000 and
Designer 2000
Database modeling, application development
Popkin Software
System Architect 2001
Data modeling, object modeling, process
modeling, structured analysis/design
Platinum
Technology
Platinum Enterprice
Modeling Suite: Erwin,
BPWin, Paradigm Plus
Data, process, and business component modeling
Persistence Inc.
Pwertier
Mapping from O-O to relational model
Rational
Rational Rose
Modeling in UML and application generation in
C++ and JAVA
Rogue Ware
RW Metro
Mapping from O-O to relational model
Resolution Ltd.
Xcase
Conceptual modeling up to code maintenance
Sybase
Enterprise Application
Suite
Data modeling, business logic modeling
Visio
Visio Enterprise
Data modeling, design and reengineering Visual
Basic and Visual C++
Overzicht
• Het databaseontwerpproces
• Het (uitgebreid) ‘entity-relationship’ model
• Het ontwerp van een (E)ER-diagram
10
Het uitgebreid ‘entity-relationship’ model
• Entiteittypes en relatietypes
– Structurele aspecten
Een entiteit is een ‘ding’ dat een zelfstandig
bestaan leidt in de reële wereld
Een entiteittype karakteriseert een collectie van
entiteiten en wordt gekenmerkt door een naam
en een verzameling van attributen
11
Het uitgebreid ‘entity-relationship’ model
Voorbeelden en visualisatie
Plaats
Naam
ID
Schilderij
Eigenaar
Land
12
Naam
Periode
Naam
Voornaam
Artiest
Waarde
Geboren
Gestorven
Het uitgebreid ‘entity-relationship’ model
Een relatietype is een verwantschap tussen twee
of meer al dan niet verschillende entiteittypes.
Men spreekt respectievelijk van een binair, ternair
of n-air (n>3) relatietype. Verder wordt elk
relatietype gekenmerkt door een naam. Een
relatietype kan attributen hebben.
13
Het uitgebreid ‘entity-relationship’ model
Voorbeelden en visualisatie
Werknemer
Procent
14
Schilderij
werkt
is
partner
Bedrijf
Persoon
Plaats
planning
Tentoonstelling
Het uitgebreid ‘entity-relationship’ model
– Karakteristieken en restricties
• Attributen
–
–
–
–
Meerwaardige versus enkelwaardige attributen
Samengestelde versus enkelvoudige attributen
Afgeleide attributen
Sleutelattributen (sleutel en surrogaatsleutel)
Nummer
Straat
Postcode
Talen
Leeftijd
Naam
afgeleid
sleutelattribuut
Plaats
meerwaardig
15
samengesteld
Het uitgebreid ‘entity-relationship’ model
• Zwakke entiteittypes
Een zwak entiteittype karakteriseert zwakke entiteiten.
Dit zijn entiteiten die niet op zichzelf kunnen bestaan,
maar voor hun bestaan afhankelijk zijn van het bestaan
van andere, identificerende entiteiten.
– Identificerende entiteittypes
– Identificerend relatietype
– Partiële sleutel
16
Het uitgebreid ‘entity-relationship’ model
Voorbeelden en visualisatie
Patiënt
Artiest
PID
Naam
Naam
17
Cursus
Code
Nummer
legt af
voor
maakt
Schilderij
Student
Zittijd
Jaar
Medisch dos.
Examen
Het uitgebreid ‘entity-relationship’ model
• Relatietypes
– Kardinaliteitrestricties
één of meerdere
– Participatierestricties
totaal of partieel
Voorbeelden en visualisatie
Boek
Werknemer
N
M
Procent
is
partner
werkt
N
Bedrijf
18
1
1
Persoon
Schilderij
Plaats
1
1
leent
planning
1
N
Lezer
Tentoonstelling
Het uitgebreid ‘entity-relationship’ model
Alternatieve notatie: (min,max)-notatie
Boek
Werknemer
(0,N)
(1,M)
Procent
is
partner
werkt
(0,1)
19
Plaats
(0,1)
leent
(0,1)
planning
(0,1)
(0,1)
(0,N)
Bedrijf
Schilderij
Persoon
Lezer
(1,N)
Tentoonstelling
Het uitgebreid ‘entity-relationship’ model
• Subtypes, supertypes en overerving
– Structurele aspecten
Een subtype is een entiteittype dat een subcollectie van entiteiten karakteriseert. Het
entiteittype van de collectie waarbinnen deze
subcollectie wordt beschouwd, wordt het
supertype genoemd.
• Het subtype
– ‘erft’ alle attributen en verwante relatietypes van het supertype
– kan daarnaast nog eigen attributen en relatietypes hebben
20
Het uitgebreid ‘entity-relationship’ model
Voorbeelden en visualisatie
Kunstwerk
Schilderij
Wandtapijt
21
Werknemer
Beeldhouw
Juweel
Administratie

Kaderlid
Technicus
Manager
Het uitgebreid ‘entity-relationship’ model
Het creëren van specifiekere subtypes voor een
een gegeven entiteittype noemen we specialisatie. Het creëren van een algemeen
supertype dat de gemeenschappelijke attributen
en relatietypes van een aantal gegeven entiteittypes verenigt, noemen we generalisatie.
• Supertype/subtype-netwerken
• Supertype/subtype-hiërarchieën
• Meervoudige overerving: beperking
22
Het uitgebreid ‘entity-relationship’ model
Voorbeeld en visualisatie
Outfit
Kledij
Kunstwerk
Juweel
Schilderij
Doek
Perkament
23
Hout
Papier
Wandtapijt
Beeldhouw
Olieverf
Waterverf
Was
Acryl
Het uitgebreid ‘entity-relationship’ model
– Karakteristieken en restricties
• Overlappende versus disjuncte subtypes
Kunstwerk
Artiest
d
o
Schilderij
Wandtapijt
24
Beeldhouw
Juweel
Schilder

Tekenaar
Beeldhouwer
Het uitgebreid ‘entity-relationship’ model
• Geconditioneerde subtypes
– Attribuutgedefinieerde supertype/subtype-verwantschap
Periode
Naam
Waarde
ID
Type
Kunstwerk
Type
d
‘bld’
‘sch’
Schilderij
‘wnd’
Wandtapijt
25
‘jwl’
Juweel
Beeldhouw
Het uitgebreid ‘entity-relationship’ model
• Categorieën
– Structurele aspecten
Een categorie of unietype is een ‘speciaal’ subtype met verschillende supertypes, dat wordt
ingevoerd om de entiteiten van deze supertypes te groeperen
• Elke entiteit van de categorie is slechts entiteit van juist één
van de supertypes
26
Het uitgebreid ‘entity-relationship’ model
Voorbeeld en visualisatie
Bedrijf
Persoon
Museum
U

Eigenaar
27
Het uitgebreid ‘entity-relationship’ model
– Karakteristieken en restricties
• Geconditioneerde supertypes
Bedrijf
Persoon
‘particulier’
‘bedrijf’
Museum
U
‘museum’
Eigenaar
Soort
 Soort
28
Overzicht
• Het databaseontwerpproces
• Het (uitgebreid) ‘entity-relationship’ model
• Het ontwerp van een (E)ER-diagram
29
Het ontwerp van een (E)ER-diagram
• Casestudie: Database voor een jeugdvereniging
Een jeugdvereniging wenst een database op te zetten, ter ondersteuning van
haar ledenadministratie en werking. Daarbij moet rekening worden gehouden
met de volgende aspecten. Bij de inschrijving krijgt elk lid een uniek lidnummer.
Gegevens zoals naam, voornaam, adres, geslacht en geboortedatum worden
geregistreerd. In het begin van het werkjaar worden de leden ingedeeld in
verschillende groepen volgens leeftijdsklassen. Er kunnen meerdere groepen
zijn voor één leeftijdsklasse. Elke groep heeft een leid(st)er. Een leid(st)er is
maximaal verantwoordelijke voor één groep. De leiding vormt zelf ook een
groep, die correspondeert met de hoogste leeftijdsklasse.
De leid(st)ers organiseren allerhande activiteiten voor de leden. Een dergelijke
activiteit kan bestemd zijn voor één of meerdere groepen tegelijkertijd. Tevens
kunnen meerdere activiteiten voor dezelfde groep worden gepland (op
verschillende uren).
Aan sommige activiteiten kunnen extra kosten verbonden zijn. Los daarvan kan
het zijn dat de leden zich op voorhand voor een activiteit moeten inschrijven
(en de kosten vereffenen).
30
Het ontwerp van een (E)ER-diagram
Oplossing
Lid
Groep
Activiteit
creatie entiteittypes
31
Het ontwerp van een (E)ER-diagram
• Casestudie: Database voor een jeugdvereniging
Een jeugdvereniging wenst een database op te zetten, ter ondersteuning van
haar ledenadministratie en werking. Daarbij moet rekening worden gehouden
met de volgende aspecten. Bij de inschrijving krijgt elk lid een uniek lidnummer.
Gegevens zoals naam, voornaam, adres, geslacht en geboortedatum worden
geregistreerd. In het begin van het werkjaar worden de leden ingedeeld in
verschillende groepen volgens leeftijdsklassen. Er kunnen meerdere groepen
zijn voor één leeftijdsklasse. Elke groep heeft een leid(st)er. Een leid(st)er is
maximaal verantwoordelijke voor één groep. De leiding vormt zelf ook een
groep, die correspondeert met de hoogste leeftijdsklasse.
De leid(st)ers organiseren allerhande activiteiten voor de leden. Een dergelijke
activiteit kan bestemd zijn voor één of meerdere groepen tegelijkertijd. Tevens
kunnen meerdere activiteiten voor dezelfde groep worden gepland (op
verschillende uren).
Aan sommige activiteiten kunnen extra kosten verbonden zijn. Los daarvan kan
het zijn dat de leden zich op voorhand voor een activiteit moeten inschrijven
(en de kosten vereffenen).
32
Het ontwerp van een (E)ER-diagram
Oplossing
geb.datum
naam
geslacht
voornaam
nummer
leeftijd
Lid
adres
straat
lidnummer
postcode
minimum
tijdstip
leeftijd
Activiteit
Groep
maximum
naam
nummer
omschrijving
creatie attributen
33
kost
Het ontwerp van een (E)ER-diagram
• Casestudie: Database voor een jeugdvereniging
Een jeugdvereniging wenst een database op te zetten, ter ondersteuning van
haar ledenadministratie en werking. Daarbij moet rekening worden gehouden
met de volgende aspecten. Bij de inschrijving krijgt elk lid een uniek lidnummer.
Gegevens zoals naam, voornaam, adres, geslacht en geboortedatum worden
geregistreerd. In het begin van het werkjaar worden de leden ingedeeld in
verschillende groepen volgens leeftijdsklassen. Er kunnen meerdere groepen
zijn voor één leeftijdsklasse. Elke groep heeft een leid(st)er. Een leid(st)er is
maximaal verantwoordelijke voor één groep. De leiding vormt zelf ook een
groep, die correspondeert met de hoogste leeftijdsklasse.
De leid(st)ers organiseren allerhande activiteiten voor de leden. Een dergelijke
activiteit kan bestemd zijn voor één of meerdere groepen tegelijkertijd. Tevens
kunnen meerdere activiteiten voor dezelfde groep worden gepland (op
verschillende uren).
Aan sommige activiteiten kunnen extra kosten verbonden zijn. Los daarvan kan
het zijn dat de leden zich op voorhand voor een activiteit moeten inschrijven
(en de kosten vereffenen).
34
Het ontwerp van een (E)ER-diagram
Oplossing
geb.datum
naam
voornaam
geslacht
nummer
leeftijd
Lid
lidnummer
N
lid
van
minimum
leeftijd
M
1
1
Groep
postcode
betaald
schrijft
in
leider
van
1
straat
adres
N
M
voor
N
Activiteit
maximum
naam
nummer
omschrijving
creatie relatietypes
35
tijdstip
kost
Het ontwerp van een (E)ER-diagram
Eindoplossing
geb.datum
naam
voornaam
geslacht
nummer
leeftijd
lidnummer
N
lid
van
minimum
1
leeftijd
M
1
Groep
postcode
betaald
schrijft
in
leider
van
1
straat
adres
Lid
N
M
voor
N
Activiteit
maximum
kost
naam
36
tijdstip
nummer
omschrijving
Het ontwerp van een (E)ER-diagram
• Casestudie: Reservatiesysteem voor een theater
In een theaterzaal worden verschillende stukken opgevoerd (toneel, ballet,
opera enzovoort). Doorgaans worden verschillende voorstellingen van een
bepaald stuk opgevoerd. Voor elk stuk wordt de titel, de duur, de soort, de
organisator, de uitvoerder en een uniek nummer bewaard. Van iedere
voorstelling wordt de datum en het beginuur opgeslagen. Aangezien er maar
één zaal is, kan op hetzelfde ogenblik maar één voorstelling worden
geprogrammeerd.
De zitplaatsen in de zaal worden doorlopend genummerd en zijn ingedeeld in
zones die een aparte naam hebben. De toegangsprijs is afhankelijk van de
zone van de zitplaats.
De verkoop van tickets verloopt uitsluitend via reservering. De klant moet
hierbij zijn naam en adres opgeven en kan dan één of meerdere zitplaatsen
reserveren voor een voorstelling. Er wordt bijgehouden of voor deze
reservering reeds werd betaald.
37
Het ontwerp van een (E)ER-diagram
Eindoplossing
beginuur
datum
naam
titel
tijdstip
soort
klantnr
adres
stuknr
1
Stuk
opgevoerd
N
organisator
uitvoerder
Voorstelling
Klant
M
M
duur
prijs
reservering
tarief
naam
Zone
betaald
N
N
38
1
1
in
N
Plaats
plaatsnr
Het ontwerp van een (E)ER-diagram
• Casestudie: Database voor een softwarefirma
Een softwarefirma wil een database opzetten als hulp bij het controleren en corrigeren van fouten die
ontdekt worden in haar softwareproducten. Aan elk softwareproduct wordt een uniek productnummer
toegekend en een beschrijving toegevoegd. Van een product worden verschillende versies
uitgebracht, die per product een versienummer krijgen. Daarnaast wordt ook de datum waarop de
versie werd uitgebracht bewaard. Een versie van een product kan zowel door externe als door interne
gebruikers (bijvoorbeeld programmeurs en systeemtesters) worden gebruikt. Interne gebruikers
mogen alle versies van alle producten gebruiken zonder voorafgaande aanvraag. Externen dienen de
versie van het product eerst aan te kopen. Bij de verkoop wordt voor elk verkocht exemplaar een
uniek registratienummer –dat geldt voor één of meerdere externe gebruikers– en de registratiedatum
vastgelegd.
Wanneer een gebruiker een probleem constateert, kan hij of zij hierover een probleemrapport
opstellen (en overmaken aan de onderhoudsafdeling). Zo’n rapport kan zowel door een interne als
door een externe gebruiker worden opgemaakt en vermeldt naast een verwijzing naar het product en
de versie, ook de datum en een omschrijving van het probleem. Aan elk rapport wordt verder een
uniek rapportnummer, een prioriteit en een status (aan te passen door de onderhoudsafdeling)
toegekend. Aangezien externe gebruikers enkel een rapport mogen sturen in verband met de versies
waarvoor zij geregistreerd zijn, dienen zij steeds hun registratienummer te vermelden.
Interne gebruikers dienen enkel hun werknemernummer op te geven, terwijl externen geïdentificeerd
worden via de combinatie van hun naam en de naam van hun bedrijf. Van alle gebruikers wordt
tenslotte ook nog het telefoonnummer, adres en e-mail adres bijgehouden (indien bekend).
39
Het ontwerp van een (E)ER-diagram
werknemernr
naam
Eindoplossing
gebruikerID
Ext_Gebr.
bedrijf
productnr
N
U
Product
beschr.

telefoon
Gebruiker
adres
1
bezit
1
van
datum
versienr
N
1
Rapport
1
N
Registratie
datum
40
door
rapportnr
omschr.
status
over
d
voor
registratienr
e-mail
N
Versie
datum
Int_Gebr.
prioriteit
N
M
Int_Rapport
1
over
Ext_Rapport
N
Download