DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met...
Click here to load reader
Transcript of DMD-2011 Introductie · – bedacht door P. Chen (1976) – entiteitsklassen (= entity types) met...
DMD-2011 Introductie
1
1/33
Datamodelleren en databases 2011
Introductie
Leen Breure
2/33
Opzet van de cursus
• Twee hoorcolleges in totaal– week 1 en week 8 (14 juni)
• Wekelijks practicum: ca. 2 * 1 uur– 1 uur: ontwikkeling van eigen database
• toepassing van de handboekstof
• team-van-2: ontwerp en implementatie
– 1 uur: hulp en feedback bij weekopdrachten
Simon Pool
Pauline Hovers
3/33
Werkwijze per week
1. Handboekstof lezen *)2. Weekopdrachten maken3. Practicum:
– eventueel hulp vragen bij opdrachten– bespreking ingeleverde opdrachten
4. Practicum: voortgang eigen database bespreken (invullen template!)
5. Inleveren weekopdrachten
*) Zie ook de slides bij elk hoofdstuk
DMD-2011 Introductie
2
4/33
Ontwerp eigen database
• Leerstof toepassen op je eigen wereld
• Begrenzing: niet te groot, niet te klein
• Requirements – datamodel – bevraging
• Ruimte voor individuele niveauverschillen
• Deliverable aan het einde: databaseontwerp (template) + database met data + queries
5/33
Toetsing
A. Weekopdrachten (individueel): 25%• alle opdrachten inleveren via Submit• enkele worden nagekeken: 0..8 (bonus: 9, 10)• niet te herkansen, wel te compenseren
B. Eigen databaseontwerp (team): 25%
C. Tentamen: 50%• mc-deel• modelleeropgaven (boek)
Proeftoets (alleen mc): tijdens practicum: 6 juni
6/33
Feedback
• Handboekstof: bij eigen databaseontwerp
• Weekopdrachten:stud. ass. bespreken nagekeken opgaven
• Eigen databaseontwerp: wekelijks
• Tentamen:– proeftoets
– inkijken na het tentamen
DMD-2011 Introductie
3
7/33
Groepen en timeslots
• N = 60 4 vaste groepen: – elk ca. 15 personen
– lijst invullen!
• maandagmiddag
week-opgaven
databaseontwerp
Groep 4Groep 315-16 uur
Groep 3Groep 416-17 uur
Groep 1Groep 214-15 uur
Groep 2Groep 113-14 uur
BBL 103
overigezalen
8/33
Kalender
9/33
Is datamodelleren belangrijk?
“Data modeling is the hardest and most important activity in the RDBMS world.
If you get the data model wrong, your application might not do what users need, it might be unreliable, it might fill up the database with garbage”.
Philip Greenspun
http://philip.greenspun.com/sql/data-modeling.html
DMD-2011 Introductie
4
10/33
Opmerkingen
• Datamodelleren = regels toepassenvoorbeelden nodig:– running example: Pine Valley
– je eigen database
• Datamodelleren = communiceren met klant
• Vaak belang pas ingezien, als het fout gaat kost geld, conflicten
• Doel van de cursus: iedereen op redelijk niveau database ontwerpen en datamodel kan beoordelen
11/33
Vragen over het praktische gedeelte?
Dan nu de inhoud van datamodelleren…
12/33
Datamodelleren: ontwerpen van de database = kern van informatiesysteem
data
requirements
bedrijfsproces
theoretisch databasemodelb.v. relationele database model
datamodel
diagram
DMD-2011 Introductie
5
13/33
• Analyse van informatie & ontwerp database:– soorten entiteiten en hun attributen
– verbanden en afhankelijkheden
die bestaan in Universe of Discourse (UoD) = de “mini-wereld van de database”
• met als doel:– datamodel database-structuur
N.B.
Er is meestal niet een enkel goed model (varianten)
communiceren!
Dat wil zeggen…
14/33
Database en informatiesysteem
DBMS
15/33
Waarom een DBMS?
Wat is het verschil tussen A en B (implicaties)?
DMD-2011 Introductie
6
16/33
DBMS data independence:
• Scheiding van de data en de programma’s
• Data access staat los van (veranderingen in) fysieke dataopslag
• In de database velden toevoegen / verwijderen zonder noodzakelijk programma’s aan te passen
• De data verwerkende programma’s worden robuust: immuun voor veranderingen in de database
17/33
Voorbeeld datamodellering
Hondenschool
18/33
Het begin lijkt makkelijk…
Maar wat te doen als iemand meer dan één hond heeft?
Redundantie!
DMD-2011 Introductie
7
19/33
Dan anders…
Ook dit werkt niet:
• Voor hoeveel honden moeten er velden komen?
• Wat te doen met de attributen van ‘hond’ (m/v, soort, etc.)
• Ingewikkeld bevragen:
waar zit ‘Nero’ (Hond1 / Hond2 / Hond3)?
20/33
Maar wel zó…
1:N-relatie
primary key
primary key
foreign key
21/33
Methodologie
• Datamodelleren gaat in stappen
• Verschillen, afhankelijk van de gekozen methodolgie voor systeemontwkkeling
• Meestal 3 niveau’s:– conceptueel
– logisch
– fysiek
DMD-2011 Introductie
8
22/33
• Conceptueel– de wereld die wordt vastgelegd in de database (Universe of
Discourse)– entitytypes en attributen
• Logisch– een datamodel toegesneden op de implementatie-omgeving,
b.v. een RDBMS– tabellen en velden
• Fysiek– technische specificatie van tabellen, veldlengte. veldtype,
etc. indexen, etc.
Niveaus van datamodelleren
23/33
Conceptueel: ER-model
ER = Entity-Relationship– top-down benadering
– bedacht door P. Chen (1976)
– entiteitsklassen (= entity types) met attributen
– relaties tussen deze entiteitsklassen
– requirements te modelleren - ERD te lezen als verzameling beweringen (assertions) over samenhang in UoD
– resulteert in ERD (entity-relationship diagram)
24/33
Varianten in notatie
Entiteiten en relaties
Entiteit met attribuut
Relatie met attribuut
De notatie met de “kraaiepoot”is eenvoudiger, maar ookbeperkter (relaties geenattributen)
DMD-2011 Introductie
9
25/33
Voorbeeld ERD
entiteitsklassemag ook attribuutnamen bevatten, i.h.b. PK en FK
relatiemet cardinaliteit (connectivity) en labels
Hoe het diagram te lezen?
optionaliteit
26/33
Logisch: normaliseren
• Logische ontwerp houdt rekening met het theoretische opslagmodel– meestal het relationele database model (tabellen)
• ERD verzameling tabellen– normaliseren = techniek hiervoor
• Normaliseren in stappen = normaalvormen:– 1NF– 2NF– 3NF– etc.
27/33
Relationele tabel
etc.etc.etc.etc.etc.
EdeZuidwal 3JansenM.A.136
UtrechtVoorstraat 1VerhoogK.135
BredaWestzoom 12PietersJ.A.P.134
PlaatsAdresNaamInitKlantNr
cel (atomaire waarde)kolom = veld
rij = record = tuplerecords: verzameling volgordeniet relevant voor het model
tabel = relatie
Altijd rechthoekig dus geen spreadsheet-tabel
DMD-2011 Introductie
10
28/33
8BasicProgram 1B741
Web infosysB952
15AdvancedInformationB951MaComp Apps
B94
Hardware 2B745
11MediumProgram 2B744
Data Proc 1B743
Hardware 1B742
8BasicProgram 1B741BaComp SciB74
Credits
StatusMod-nameModLevelCourse-name
Crse
• Speadsheet format (GEEN relationele tabel)• Repeating groups: 1 Course-name met N Mod-names
Niet genormaliseerd
29/33
Doel van normaliseren
• De juiste indeling in tabellen– welke attributen horen logisch bij elkaar
– elke tabel: één entiteitstype
• Sleutels (primary keys, foreign keys) vinden– minimale PK
– FK verwijst naar PK
• Redundantie vermijden
30/33
Fysiek: dataopslag & -toegang
• Veldlengtes
• Datatypes
• Primaire en secundaire indexen
• Disk space
• Client/server
• Autorisatie en beveiliging
• etc.
DMD-2011 Introductie
11
31/33
Wat is een goed datamodel?
1. Compleet
2. Niet-redundant
3. Implementeert business-rules
4. Data herbruikbaar voor meerdere doelen
5. Stabiel (t.o.v. bedrijfspraktijk)
6. Flexibel (uitbreidbaar)
7. Elegant
8. Helder (communicatie van concepten en regels)
9. Past in bredere data-architectuur
32/33
Rest van de cursus
I. Bevraging (SQL)
II. Database-applicaties
33/33
Voor volgende week
• Lees handboek
• Maak weekopdrachten
• Kies een onderwerp voor je database