Inleiding

advertisement
DMO - introductie
Inleiding
Datamodellering 2008
1
In dit college:
„
„
„
Opzet van de cursus
Inhoud van het vak DMO
Belangrijke begrippen
„
„
„
„
„
„
database, datamodel, etc.
DMO in context: andere vakken
Klassiek en modern datamodelleren
vernieuwing in systeemontwikkeling
Doelomgeving: relationele database en XML
Oefenen
2/27
Opzet van de cursus (1)
„
Hoor/werkcollege (verplicht)
„
„
„
Thuis
„
„
„
inleiding en overzicht
warming up voor weekopgaven
literatuur bestuderen
opgaven maken; inleveren via Submit, zie rooster
Practicum (verplicht)
„
„
hulp bij opgaven
zelf opgaven nakijken (s.a. → oplossing)
3/27
DMO 2008
1
DMO - introductie
Opzet van de cursus (2)
„
Tussentoets en tentamen
„
„
„
Beoordeling
„
„
„
mc + modelleeropgaven
RDBMS en XML, XSLT
eindcijfer =
(tussentoets + tentamen) / 2 –
ontbrekende_opgaven * 0.3
Indien meer dan 2 keer afwezig, geen
aanvullende toets
Lees: http://www.cs.uu.nl/docs/vakken/dmo/Opzet.htm
4/27
Waarover gaat DMO?
„
Datamodellering: het ontwerp van de
database = kern van informatiesysteem
bedrijfsproces
data
datamodel
requirements
databasemodel + theorie
diagram
b.v. relationele database model
5/27
Wat is een informatiesysteem?
Report
Report
Program
Program
data
data
DATABASE
Program
data
data
data
Program
Program
6/27
DMO 2008
2
DMO - introductie
Structuur van een database
„
„
database: tabellen (althans relationele databases)
tabel:
„
„
„
„
kolommen = velden
rijen: records
speciale velden (sleutels) → koppelen tabellen
Problemen → datamodellering:
„
„
„
„
„
„
Hoe kies je de tabellen?
Welke velden ga je definiëren?
Welke data zijn overbodig?
Hoe vermijd redundantie?
Welke velden zijn geschikt als sleutel?
Hoe krijg ik antwoord op mijn informatievraag?
7/27
Voorbeeld: verzekering
Polis
tabellen /
entity
types
Klant
Polisnr
Datum
start
Type
Klantnr
Rente
V213748
02/29/1989
E20
HAYES01
12%
Datum
einde
02/29/2009
N065987
04/04/1984
E20
WALSH01
12%
04/04/2004
W345798
12/18/1987
WOL
ODEAJ13
8%
06/12/2047
W678649
09/12/1967
WOL
RICHB76
8%
09/12/2006
V986377
11/07/1977
SUI
RICHB76
14%
09/12/2006
koppeling via sleutelvelden
Klantnr
Naam
Adres
HAYES01
D HazeHayes
3/1 Collins St
3000
F
25
WALSH01
H Walsh
2 Allen Road
3065
Postcode Geslacht
M
Leeftijd
53
Geboren
04/16/1947
ODEAJ13
J O’Dea
69 Black Street
3145
M
33
06/12/1967
RICHB76
B Rich
181 Kemp Rd
3507
M
59
09/12/1941
06/23/1975
velden / attributes
8/27
Vragen bij dit voorbeeld
„
„
„
„
„
Waarom twee tabellen en niet alles in één tabel?
Wat is voor een verzekeringsmaatschappij precies
een ‘klant’?
Moet de leeftijd van een klant in de database worden
vastgelegd?
Correspondeert een bepaald type polis steeds met de
zelfde rente?
Is het handig om voorletters en achternaam in één
veld op te slaan?
9/27
DMO 2008
3
DMO - introductie
Niveaus van datamodelering
„
Conceptueel
„
„
„
Logisch
„
„
„
de wereld die wordt vastgelegd in de database (Universe of
Discourse)
entitytypes en attributen
een datamodel toegesneden op de implementatie-omgeving,
b.v. een RDBMS
tabellen en velden
Fysiek
„
technische specificatie van tabellen, veldlengte. veldtype,
etc. indexen, etc.
10/27
Wat is datamodellering?
„
Analyse & design van informatie:
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!)
11/27
Datamodeling – 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
12/27
DMO 2008
4
DMO - introductie
Wie zijn betrokken?
Business
Requirements
business specialist,
gebruikers
Business
Specialist
data modeler,
systeem architect
Data Modeler
DBMS &
Platform
Specification
database ontwerper,
programmeur
Database Designer
Develop
Information
Requirements
Build
Conceptual
Data Model
Design
Logical
Data Model
Design
Physical
Data Model
Information
Requirements
Conceptual
Data Model
Logical Data
Model
Physical Data
Model
requirements
conceptueel
model
logisch
model
fysiek
model
Performance
Requirements
13/27
Criteria goed datamodel
Compleet
Niet-redundant
Implementeert business-rules
Data herbruikbaar voor meerdere doelen
Stabiel (t.o.v. bedrijfspraktijk)
Flexibel (uitbreidbaar)
Elegant
Helder (communicatie van concepten en regels)
Past in bredere data-architectuur
1.
2.
3.
4.
5.
6.
7.
8.
9.
14/27
Waarom een DBMS?
Wat is het verschil tussen A en B (implicaties)?
A.
applicatie
database
applicatie
B.
database
DBMS
applicatie
applicatie
15/27
DMO 2008
5
DMO - introductie
Wat is een DBMS?
A software system that
„ has a catalog describing the data it manages
„ controls access to the data stored within it
„ contains routines for data input, verification,
storage, retrieval, and combination
→ simplifies writing data applications
16/27
ANSI/SPARC-schema
Extern schema
Extern schema
Conceptueel schema
Intern schema
Extern schema
Een DBMS is
gebaseerd op deze
driedeling →
data independence
(data onafhankelijkheid) → databasestructuur kan
veranderen zonder
dat gebruiker het
merkt.
17/27
DBMS en data independence
Greep uit definities data independence:
„ The separation of data from the programs that
use the data.
„ Data access is unaffected by changes in the
physical data storage characteristics
„ Data fields can be added, changed, and deleted
from a database without necessarily affecting
existing application programs.
„ Immunity of user applications to changes in the
definition and organization of data, and viceversa.
18/27
DMO 2008
6
DMO - introductie
Context: DMO & andere (1)
„
Datamodel min of meer onafhankelijk van DBMS
„
„
„
DMO minder nadruk op retrieval (→ MIR)
„
„
conceptueel datamodel te implementeren in RDBMS of XMLdatabase
databasetheorie (-architectuur) wel ondersteunend, maar in
DMO niet in detail behandeld
maar wel opgaven over SQL (eenvoudig)
DMO nauwelijks architectuur en werking van DBMS
„
transacties, concurrency, security, client-server, etc.
(→ Databases)
19/27
Context: DMO & andere (2)
„
MSO
„
„
„
„
„
ontwikkeling van het hele informatiesysteem
bedrijfsprocessen
functionaliteit
ontwikkelmethodologie met schematechnieken
DMO
„
„
„
„
focus op database (= kern van het informatiesysteem)
op de achtergrond: bedrijfsprocessen, functionaliteit
ontwerp en documenteren → ontwikkelmethodologie →
overlap met MSO
schematechnieken voor datastructuur
20/27
Context: DMO & andere (3)
„
„
Een conceptueel datamodel is in
verschillende systemen te
implementeren: RDBMS, maar ook XML
database
Daarom: herhaling stof UWT en ook
oefenen met XML-implementatie
21/27
DMO 2008
7
DMO - introductie
DMO en systeemontwikkeling
„
„
„
Ontwerpen van een database is
onderdeel van het traject van
informatiesysteem ontwikkeling
Invloed van nieuw trends in
systeemontwikkeling (webtijdperk), ook
op datamodellering →
“klassiek” versus “modern”
22/27
Methodologie
„
Methodologieën:
„
„
„
„
„
„
process-driven (data-flow)
data-driven (vanaf ±1980: datastructuur primair)
blended (combinatie)
object-oriented (weinig O-O DBMS)
agile (nu invoedrijk)
Schema-technieken:
„
„
uitsluitend UML?
ERD vs. UML
23/27
Agile development
Manifesto for Agile Software Development (2001)
„
„
„
„
„
Early and continuous delivery of valuable software
Welcome changing requirements
Business people and developers must work together,
build projects around motivated individuals, face-toface conversation, self-organizing teams
Continuous attention to technical excellence and
good design, simplicity
Team reflects on how to become more effective
24/27
DMO 2008
8
DMO - introductie
Klassiek versus modern
„
„
„
Simsion volgt meer de klassieke
benadering
Scott Ambler de moderne, agile aanpak
We komen in de loop van de cursus
terug op de verschillen
25/27
Hoe leer je datamodelleren?
„
„
„
„
Veel, veel oefenen
Testen van gemaakte modellen
Boek ondersteunt en biedt
kader, maar is geen vervanging
voor oefenen
Dus cursus is hierop afgestemd!
26/27
Oefening
„
„
Een fietsclub gaat elke zaterdag in groepjes van
wisselende samenstelling erop uit; elk groepje rijdt
een andere route naar keuze. Een groepje heeft een
nummer; een route een letter en een omschrijving.
De club heeft al een eenvoudige database van de
leden (tabel, NAW, etc.) en wil die uitbreiden zodat
men weet:
„
„
„
wanneer wie samen een route heeft gereden
welke routes nooit worden gereden
Opdracht
„
Maak een lijst van benodigde data (velden), groepeer deze
en vermijd “dubbel vastleggen” (redundantie).
27/27
DMO 2008
9
Download