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