1 / 34

ontwerp een datamodel Criteria voor een goed model Ontwerppatronen

ontwerp een datamodel Criteria voor een goed model Ontwerppatronen. SQL deel 2: datamodel ontwerp. Datamodel Criteria Proces. Modulariteit. Op te leveren in week 9: één document met daarin. Domein afbakening Entiteiten Relatie Diagram Tabel Definities Eventueel voorbeeld Data

dillon
Download Presentation

ontwerp een datamodel Criteria voor een goed model Ontwerppatronen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ontwerp een datamodelCriteria voor een goed modelOntwerppatronen Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  2. SQL deel 2: datamodel ontwerp Datamodel Criteria Proces Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  3. Modulariteit Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  4. Op te leveren in week 9: één document met daarin • Domein afbakening • Entiteiten Relatie Diagram • Tabel Definities • Eventueel voorbeeld Data • Views / Voorbeeld Queries • Reflectie: wat heb je geleerd, wat heb je nog niet geleerd. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  5. Criteria • Vaardigheden: SQL, genormaliseerd ERD • Jargon, terminologie, vaktermen • Bronnen en gereedschappen • Overdraagbaar, begrijpelijk: documentatie • Zinvolle, relevante toepassing • Samenwerking, advies vragen en geven • Interesse en ontwikkeling Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  6. voorwaarden • Op tijd inleveren: • Week 9 • Correct nederlands: • Weinig taalfouten • Gestructureerd document • Titel, inhoudsopgave, paginanummers, etc. • Compleet : • Met bijlagen of links naar broncode • Voorzien van metadata: • Naam, nummer, klas, datum, vak, beoordelaar • Reflectie: • Beschrijf waarom jij vind dat je aan de criteria voldoet. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  7. Ontwerpmethode • Afbakening van het domein • Beschrijven van de relevante informatie • Beschrijven van gebruiksmogelijkheden (use cases) • Conceptueel model: ERD op papier ! • Benoemen van entiteiten, attributen en relaties • Entity relation diagram • Functionele toetsing • Implementatie ERD in DBDesigner/OpenOffice/? • Datatypen • Views ------------------------------------------------------------------------------------ • * Contraints • * Waarborgen integriteit ( stored procedures, triggers, etc) • * Optimaliseren perfomance ( indexen e.a. maatregelen ) * Niet verplicht voor een V Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  8. Plan van aanpak • Wk 6: afbakening van het domein Huiswerk: versie 1 van het conceptueel datamodel • Wk 7: criteria voor goed datamodel Huiswerk: versie 2 van het conceptueel datamodel • Wk 8: afronden implementatie en documentatie datamodel • Wk 9: rooster vrij di: inleveren definitief datamodel per email • Wk 10: feedback feedback en herkansing toets Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  9. Afbakening • Welke informatie zal de database bevatten? • Tot op welke details? entiteiten en/of functionaliteiten ? • Welke ‘entiteiten’ behoren tot het domein? En welke niet? • Welke functies zal de database moeten kunnen vervullen? Wat moet een gebruiker kunnen doen? ( use case diagram ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  10. Sterke en zwakke entiteiten Niet alle entiteiten zijn even belangrijk in het datamodel. • Sterke entiteiten • 2 to 5 kern-entiteiten • Worden in ieder geval in het model opgenomen, ook als andere entiteiten er niet zouden zijn. • Raken de essentie van je concept • Zwakke entiteiten • Beschrijven veelal relaties tussen sterke entiteiten • Zijn afhankelijk van sterke entiteiten. • Opzoeklijstjes Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  11. Opdracht • Identificeer de belangrijkste ‘sterke’ entiteiten • Identificeer relaties tussen deze entiteiten • Maak een eerste ‘conceptueel’ datamodel NB: - Beperk je tot 2 tot 5 entiteiten Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  12. Vorige week. • eerste versie van een ERD voor jouw collectie database, waarbij de nadruk ligt op • Zijn alle belangrijkste entiteiten gevonden • Zijn de attributen in kaart gebracht • Zijn de relaties in kaart gebracht • Vergelijk met je use case. Is het datamodel een basis voor alle gebruiksmogelijkheden? Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  13. Criteria voor een goed datamodel Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  14. Stap 2: datamodel ( ERD ) Criteria voor een goed model • Naamgevingsconventies • “3de normaalvorm” Voor teggies volgende week • Integriteit waarborgen. Middels triggers, stored procedures, e.d. • Optimalisatie.Indexeren, views Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  15. Naamgeving (algemeen) • Geen spaties ( eventueel underscore _ ) • Geen gekke karakters • Geen afkortingen • Niet beginnen met een cijfer • Consistent gebruik hoofdletters • Beschrijvend • De naam beschrijft het element precies, • Laat niets te raden over. • Liever een lange naam, dan een onduidelijke naam Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  16. Tabelnaam: enkelvoud Tabel naam: • Naam van de entiteit op één rij • Enkelvoud forum • berichtID • auteur • tekst • datum berichten • berichtID • auteur • tekst • datum bericht • ID • auteur • tekst • datum Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  17. Tabelnaam: enkelvoud Tabel naam: • Naam van de entiteit op één rij • Enkelvoud catalogus • productID • naam • prijs • datum producten • productID • naam • prijs • datum product • ID • naam • prijs • datum Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  18. Naamgeving attribuut/kolom • De ‘scope’ van betekenis is de entiteit( de sql code wordt dan leesbaar ) • bij FK’s: de naam van de relatie als prefix. (vaak is dat ook de naam van de tabel waarnaar wordt verwezen) bericht • berichtID • berichtauteur • berichtTekst • datum bericht • ID • auteurID • tekst • datum Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  19. Opdracht: datamodel versie 1 • Controleer je datamodel op bovengenoemde naamgevingsconventies. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  20. Stap 2: datamodel ( ERD ) Criteria voor een goed model • Naamgevingsconventies • “3de normaalvorm” Voor teggies • Integriteit waarborgen. Middels triggers, stored procedures, e.d. • Optimalisatie.Indexeren, views Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  21. “3de normaalvorm” Regel 1: éénduidige betekenissen • Als je ingewikkelde ‘als-dit,dan-dat’ constructies of procedures nodig hebt om de betekenis van je elementen uit te leggen zit je fout. Regel 2: géén redundantie • Data mag maar één keer voorkomen, zodat het praktisch ommogelijk is dat de database inconsistente informatie bevat (waarborgt de integriteit) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  22. Data-elementen zijn ‘atomair’ • Geen samengestelde waarden in één kolom • Fout: Voor+achternaam, straat+nummer+plaats • Geen herhalende waarden in één tabelcel • Fout: Komma gescheiden lijst productnummers(wel: gebruik een aparte tabel) • Laat de betekenis niet afhangen van andere elementen • Fout: Bij studenten is ‘contact’ een emailadres en bij docenten is ‘contact’ een telefoonnummer. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  23. Vermijdt redundantie ( 1 ) • Iedere rij in een tabel bevat attributen van één entiteit en niets dan attributen van die ene entiteit. • Iedere rij heeft een unieke sleutel ( of gecombineerde sleutel ) voetballer • ID • naam • club • trainer voetballer • ID • naam • clubID club • ID • trainer Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  24. Hoe ver moet je gaan? voetballer • ID • naamID • clubID • adresID naam • ID • voornaam • achternaam club • ID • naam • trainer adres • ID • straat • postcode • plaats Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  25. Hoe ver moet je gaan Is_voetballer_bij_club • persoonID • clubID persoon • ID • voornaam • achternaam • adresID club • ID • naam • trainerID • adresID adres • ID • straat • postcode • plaats Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  26. Hoe ver moet je gaan Is_lid_van_club • persoonID • clubID • rol [speler,trainer] persoon • ID • voornaam • achternaam • adresID club • ID • naam • adresID adres • ID • straat • postcode • plaats Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  27. Vermijdt redundantie (2) • Data-elementen die afgeleid kunnen worden mogen niet in de tabel voor komen product • ID • prijs • btw • Prijs_inc_btw product • ID • prijs • btw Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  28. Voorbeelden van misontwerp • http://www.sum-it.nl/cursus/dbdesign/hollands/index.php3 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  29. “3de normaalvorm” Regel 1: eenvoud • Data-elementen zijn atomair Regel 2: vermijdt redundantie • Per rij, een entiteit (zo niet dan tabel splitsen ) • Geen kolommen die berekend kunnen worden • Geen relaties die afgeleid kunnen worden Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  30. opdracht • Controleer je datamodel op ‘3de normaalvorm’ • Verbeter indien nodig, en maak nieuwe ERD • Vergelijk met je use case. Is het datamodel een basis voor alle gewenste gebruiksmogelijkheden? Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  31. huiswerk • Download DBDesigner4 of OpenOffice • Maak een genormaliseerde versie van een ERD voor jouw collectie database, waarbij de nadruk ligt op • volledigheid • Zijn alle belangrijkste entiteiten gevonden • Zijn de attributen in kaart gebracht • Zijn de relaties in kaart gebracht • 3de normaalvorm • Atomaire data-elementen • Geen redundante data • Geen redundante relaties • Vergelijk met je use case. Is het datamodel een basis voor alle gebruiksmogelijkheden? Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  32. Werken met DBdesigner Relaties leggen • Gebruik alleen de 1ste ( one-to-many) en de 3de (many-to-many) relatietype DBDesigner en mySQL • Connectie met mySQL • Database, naam, wachtwoord -> connect • Database Synchronization • Model doorvoeren in mySQL Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  33. DataModellen Ontwerppatronen Lees reader deel 2 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  34. Opdracht ( vijf minuten ) Controleer je datamodel op de volgende punten: Naamgeving: • Is de naamgeving goed? (enkelvoud) Normalisatie: • Zijn alle data-elementen ‘atomair’? • Bevat het model redundante data-elementen? Relaties: • Is bij iedere relatie de multipliciteit bepaald? • Is de multipliciteit vertaald naar correcte relaties? • many-to-one = FK in ‘many’-tabel naar PK in ‘one’-tabel • Many-to-many = tussen tabel ( zwakke entiteit ) Ontwerppatronen: • Welke ontwerppatronen uit de reader gebruik je.? Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

More Related