Title: Conceptueel databaseontwerp
1Conceptueel databaseontwerp
Principes van databases
2Overzicht
- Het databaseontwerpproces
- Het (uitgebreid) entity-relationship model
- Het ontwerp van een (E)ER-diagram
3Overzicht
- Het databaseontwerpproces
- Het (uitgebreid) entity-relationship model
- Het ontwerp van een (E)ER-diagram
4Het databaseontwerpproces
informatie- vergaring
- domeinanalyse
- functionele analyse
- behoefteanalyse
conceptueel ontwerp
- conceptueel model (bijvoorbeeld EER-diagram)
- functionele beschrijving
databasemodel- onafhankelijk
logisch ontwerp
dbms- onafhankelijk
- logisch databaseschema (bijvoorbeeld
relationeel) - gedragspecificaties
fysieke ontwerp
- DDL-scripts
- implementatie van gedrag
5Het databaseontwerpproces
- Informatievergaring
- Communicatie
- Onderzoek
- Software
- Data
- Handleidingen
- Rapporten
- Abstrahering, modellering en implementatie
- Abstrahering
- Modellering (EER of UML)
6Het databaseontwerpproces
7Het 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
8Het databaseontwerpproces
9Het databaseontwerpproces
COMPANY TOOL FUNCTIONALITY
Embarcadero Technologies ER Studio Database Modeling in ER and IDEF1X
Embarcadero Technologies 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
10Overzicht
- Het databaseontwerpproces
- Het (uitgebreid) entity-relationship model
- Het ontwerp van een (E)ER-diagram
11Het 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
vanentiteiten en wordt gekenmerkt door een
naamen een verzameling van attributen
12Het uitgebreid entity-relationship model
Voorbeelden en visualisatie
13Het uitgebreid entity-relationship model
Een relatietype is een verwantschap tussen
tweeof meer al dan niet verschillende
entiteittypes.Men spreekt respectievelijk van
een binair, ternairof n-air (ngt3) relatietype.
Verder wordt elk relatietype gekenmerkt door een
naam. Een relatietype kan attributen hebben.
14Het uitgebreid entity-relationship model
Voorbeelden en visualisatie
Werknemer
is partner
werkt
plan- ning
Tentoonstelling
15Het uitgebreid entity-relationship model
- Karakteristieken en restricties
- Attributen
- Meerwaardige versus enkelwaardige attributen
- Samengestelde versus enkelvoudige attributen
- Afgeleide attributen
- Sleutelattributen (sleutel en surrogaatsleutel)
16Het uitgebreid entity-relationship model
- Zwakke entiteittypes
- Identificerende entiteittypes
- Identificerend relatietype
- Partiële sleutel
Een zwak entiteittype karakteriseert zwakke
entiteiten.Dit zijn entiteiten die niet op
zichzelf kunnen bestaan, maar voor hun bestaan
afhankelijk zijn van het bestaanvan andere,
identificerende entiteiten.
17Het uitgebreid entity-relationship model
Voorbeelden en visualisatie
Artiest
Patiënt
maakt
voor
legt af
Medisch dos.
Examen
18Het uitgebreid entity-relationship model
- Relatietypes
- Kardinaliteitrestrictieséén of meerdere
- Participatierestrictiestotaal of partieel
Voorbeelden en visualisatie
Boek
Werknemer
N
M
1
1
is partner
werkt
plan- ning
leent
N
N
1
1
1
Tentoonstelling
19Het uitgebreid entity-relationship model
Alternatieve notatie (min,max)-notatie
Werknemer
Boek
(0,N)
(1,M)
(0,1)
(0,1)
is partner
werkt
leent
plan- ning
(0,1)
(0,1)
(1,N)
(0,1)
(0,N)
Tentoonstelling
20Het uitgebreid entity-relationship model
- Subtypes, supertypes en overerving
- Structurele aspecten
- Het subtype
- erft alle attributen en verwante relatietypes
van het supertype - kan daarnaast nog eigen attributen en
relatietypes hebben
Een subtype is een entiteittype dat een
sub-collectie van entiteiten karakteriseert. Het
entiteittype van de collectie waarbinnen
dezesubcollectie wordt beschouwd, wordt
hetsupertype genoemd.
21Het uitgebreid entity-relationship model
Voorbeelden en visualisatie
?
?
?
?
?
?
?
?
22Het uitgebreid entity-relationship model
- Supertype/subtype-netwerken
- Supertype/subtype-hiërarchieën
- Meervoudige overerving beperking
Het creëren van specifiekere subtypes voor
eeneen gegeven entiteittype noemen we
speciali-satie. Het creëren van een algemeen
supertype dat de gemeenschappelijke
attributenen relatietypes van een aantal gegeven
entiteit-types verenigt, noemen we generalisatie.
23Het uitgebreid entity-relationship model
Voorbeeld en visualisatie
24Het uitgebreid entity-relationship model
- Karakteristieken en restricties
- Overlappende versus disjuncte subtypes
o
d
?
?
?
?
?
?
?
25Het uitgebreid entity-relationship model
- Geconditioneerde subtypes
- Attribuutgedefinieerde supertype/subtype-verwantsc
hap
26Het uitgebreid entity-relationship model
- Categorieën
- Structurele aspecten
- Elke entiteit van de categorie is slechts
entiteit van juist één van de supertypes
Een categorie of unietype is een speciaal
sub-type met verschillende supertypes, dat wordt
ingevoerd om de entiteiten van deze super-types
te groeperen
27Het uitgebreid entity-relationship model
Voorbeeld en visualisatie
28Het uitgebreid entity-relationship model
- Karakteristieken en restricties
- Geconditioneerde supertypes
29Overzicht
- Het databaseontwerpproces
- Het (uitgebreid) entity-relationship model
- Het ontwerp van een (E)ER-diagram
30Het 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).
identificatie van entiteittypes, subtypes,
supertypes en categorieën
31Het ontwerp van een (E)ER-diagram
creatie entiteittypes
32Het 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).
identificatie van attributen, hun
karakteristieken en hun restricties
33Het ontwerp van een (E)ER-diagram
creatie attributen
34Het 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).
identificatie van reguliere relatietypes, hun
attributen, karakteristieken en restricties
35Het ontwerp van een (E)ER-diagram
creatie relatietypes
36Het ontwerp van een (E)ER-diagram
37Het 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.
38Het ontwerp van een (E)ER-diagram
opge- voerd
1
N
M
1
M
reser- vering
tarief
N
N
1
N
in
39Het 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). Zon
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).
40Het ontwerp van een (E)ER-diagram
werknemernr
gebruikerID
N
U
?
1
bezit
1
van
door
N
N
1
1
over
d
?
?
voor
N
M
N
1
N
over