Inleiding Datamodellering 2008 1 In dit college: Opzet van de cursus Inhoud van het vak DMO Belangrijke begrippen base, model, etc. DMO in context: andere vakken Klassiek en modern modelleren vernieuwing in systeemontwikkeling Doelomgeving: relationele base en XML Oefenen 2/27 Opzet van de cursus (1) Hoor/werkcollege (verplicht) inleiding en overzicht warming up voor weekopgaven Thuis 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
Opzet van de cursus (2) Tussentoets en tentamen mc + modelleeropgaven RDBMS en XML, XSLT Beoordeling 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 base = kern van informatiesysteem requirements bedrijfsproces model basemodel + theorie b.v. relationele base model diagram 5/27 Wat is een informatiesysteem? Report Report DATABASE 6/27 DMO 2008 2
Structuur van een base base: tabellen (althans relationele bases) tabel: kolommen = velden rijen: records speciale velden (sleutels) koppelen tabellen Problemen modellering: Hoe kies je de tabellen? Welke velden ga je definiëren? Welke zijn overbodig? Hoe vermijd redundantie? Welke velden zijn geschikt als sleutel? Hoe krijg ik antwoord op mijn informatievraag? 7/27 Voorbeeld: verzekering Polis Polisnr V213748 N065987 Datum start 02/29/1989 04/04/1984 Type E20 E20 Klantnr HAYES01 WALSH01 Rente 12% 12% Datum einde 02/29/2009 04/04/2004 tabellen / entity types Klant W345798 12/18/1987 WOL ODEAJ13 8% W678649 09/12/1967 WOL RICHB76 8% V986377 11/07/1977 SUI RICHB76 14% koppeling via sleutelvelden Klantnr Naam Adres Postcode Geslacht Leeftijd HAYES01 D HazeHayes 3/1 Collins St 3000 F 25 WALSH01 H Walsh 2 Allen Road 3065 M 53 ODEAJ13 J O Dea 69 Black Street 3145 M 33 RICHB76 B Rich 181 Kemp Rd 3507 M 59 06/12/2047 09/12/2006 09/12/2006 Geboren 06/23/1975 04/16/1947 06/12/1967 09/12/1941 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 base 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
Niveaus van modelering Conceptueel de wereld die wordt vastgelegd in de base (Universe of Discourse) entitytypes en attributen Logisch een model 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 modellering? Analyse & design van informatie: entiteiten en hun attributen verbanden en afhankelijkheden die bestaan in Universe of Discourse (UoD) = de mini-wereld van de base met als doel: model base-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 model wrong, your application might not do what users need, it might be unreliable, it might fill up the base with garbage. Philip Greenspun http://philip.greenspun.com/sql/-modeling.html 12/27 DMO 2008 4
Wie zijn betrokken? business specialist, gebruikers Business Requirements Business Specialist Develop Information Requirements Build Conceptual Data Model Information Requirements Conceptual Data Model requirements conceptueel model modeler, systeem architect Data Modeler DBMS & Platform Specification Design Logical Data Model Logical Data Model logisch model base ontwerper, programmeur Database Designer Design Physical Data Model Physical Data Model fysiek model Performance Requirements 13/27 Criteria goed model 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 -architectuur 14/27 Waarom een DBMS? Wat is het verschil tussen A en B (implicaties)? A. base applicatie applicatie B. base DBMS applicatie applicatie 15/27 DMO 2008 5
Wat is een DBMS? A software system that has a catalog describing the it manages controls access to the stored within it contains routines for input, verification, storage, retrieval, and combination simplifies writing applications 16/27 ANSI/SPARC-schema Extern schema Extern schema Extern schema Conceptueel schema Intern schema Een DBMS is gebaseerd op deze driedeling independence ( onafhankelijkheid) basestructuur kan veranderen zonder dat gebruiker het merkt. 17/27 DBMS en independence Greep uit definities independence: The separation of from the programs that use the. Data access is unaffected by changes in the physical storage characteristics Data fields can be added, changed, and deleted from a base without necessarily affecting existing application programs. Immunity of user applications to changes in the definition and organization of, and viceversa. 18/27 DMO 2008 6
Context: DMO & andere (1) Datamodel min of meer onafhankelijk van DBMS conceptueel model te implementeren in RDBMS of XMLbase basetheorie (-architectuur) wel ondersteunend, maar in DMO niet in detail behandeld DMO minder nadruk op retrieval ( MIR) 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 base (= kern van het informatiesysteem) op de achtergrond: bedrijfsprocessen, functionaliteit ontwerp en documenteren ontwikkelmethodologie overlap met MSO schematechnieken voor structuur 20/27 Context: DMO & andere (3) Een conceptueel model is in verschillende systemen te implementeren: RDBMS, maar ook XML base Daarom: herhaling stof UWT en ook oefenen met XML-implementatie 21/27 DMO 2008 7
DMO en systeemontwikkeling Ontwerpen van een base is onderdeel van het traject van informatiesysteem ontwikkeling Invloed van nieuw trends in systeemontwikkeling (webtijdperk), ook op modellering klassiek versus modern 22/27 Methodologie Methodologieën: process-driven (-flow) -driven (vanaf ±1980: structuur 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
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 modelleren? 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 base 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 (velden), groepeer deze en vermijd dubbel vastleggen (redundantie). 27/27 DMO 2008 9