ontwerp een datamodel Criteria voor een goed model Ontwerppatronen

Slides:



Advertisements
Verwante presentaties
SQL deel 2: datamodel ontwerp
Advertisements

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het ER model Een powerpoint presentatie, gemaakt door: F. Triep
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Software Architectuur Over de samenhang der dingen = Over de connecties tussen componenten Over de afhankelijkheden tussen modules Over de belangen van.
> Volgende week krijgen jullie het eindcijfer > Beoordeling uitsluitend door opdrachtgever > Voor begin pitch: lever in pitchdocument en reflectie (met.
Entiteit-Relatie Model
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Het selecteren van data uit meerdere gekoppelde tabellen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normaliseren Datamodellering 2006.
<Mdl01 hoorcollege 1>
Opleiding AI cursus Databases
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Entity Relation Model (ER-model).
ontwerp een datamodel Criteria voor een goed model Ontwerppatronen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Download en installeer de gereedschappen
Download en installeer de gereedschappen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
SQL & datamodelleren.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Normalisatie Relationeel databaseontwerp:
Opleiding Kunstmatige Intelligentie cursus Databases voor AI
HALLO OPLETTEN : Waarom sql DOEN : Introductie opdracht
Vorige week: Referentiele integriteit
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Presentatie Studiemiddag Indexen en Nadere Toegangen Ralph Stuyver, Projectmanager 4 maart 2010.
Fundament Informatica
Informatieanalyse.
Medmec04 Engagement. LesOnderwerpenHuiswerk voor komende week en les 1 o Inleiding module & werkwijze o Inleiding opdracht 1 en 2 o Bestuderen modulewijzer.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Internet Standaarden WG5 “ Examinations are formidable even to the best prepared, for the greatest fool may ask more than the wisest man can answer. ”
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Les 6 Toetsbespreking Introductie eindopdracht. toets  Download goede antwoorden en vergelijk met je eigen score.  Cijfer < 5.5 = herkansing week 4.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Databases I Praktische aspecten Database Design en Database System Architectuur Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam definitieve.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hoofdstuk 11 Databasemanagementsystem. hoofdstuk 112 STROKENDIAGRAMMEN llnrvoornaamtussenvachternaamstraathuisnummerpostcodeplaatstelefoongeslachtgebdatumklas.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
UML 1. Use cases1. Use cases. Het probleem: Hoe inventariseer ik wensen en eisen voor mijn project? Hoe leg ik ze vast? Hoe geef ik vorm en structuur.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK 8 CMI Informatica. ANALYSE 3- INFANL01-3 ▸ Vorige les ▸ Herhaling ▸ Normaliseerregels ▸ Omzetten ERD ▸ Group by en SET ▸ Proeftentamen.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Week 1 BIMAIV03 Les B2 BIMAIV03 Les B2. Uit het voorgaande... CREATE TABLE... Opdracht om een nieuwe tabel binnen de database te creëren. Aandachtspunten.
EERDER….. Tabellen rij (record, tuple, occurence) kolom (attribuut, veld) tabel (relatie) tabelstructuur : patient(PAT#,PNAAM,LEEFTIJD,GESLACHT,ARTS)
Het onderzoeksverslag
– Software development fundamentals
Entiteiten bedrijfsvoering (Extra)
Opdracht Nederlands Je doet in een groepje van vijf personen een klein literatuuronderzoek. De uitkomsten van dit onderzoek beschrijf je in een verslag.
Schrijven 2.1 en 2.2 Formuleren en Stijl 2.1
SQL Les February 2019.
– Software development fundamentals
Transcript van de presentatie:

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

SQL deel 2: datamodel ontwerp 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

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

Op te leveren in week 9 of week 10: éé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

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

voorwaarden Op tijd inleveren: Correct nederlands: Week 10 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

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 DBWrench/OpenOffice/? Datatypen Views ( veel gebruikte SELECT queries ) ------------------------------------------------------------------------------------ * 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

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: rooster vrij thuis werk Wk 9: voorlopige definitief + feedback Wk 10: opleveren definitief 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

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

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

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

Versie 1 datamodel. 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

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

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

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

Tabelnaam: enkelvoud Tabel naam: Naam van de entiteit op één rij 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

Tabelnaam: enkelvoud Tabel naam: Naam van de entiteit op één rij 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

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

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

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

“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

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

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

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

Hoe ver moet je gaan Is_voetballer_bij_club persoon persoonID ID 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

Hoe ver moet je gaan Is_lid_van_club persoon persoonID ID 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

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

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

“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

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

huiswerk Download DBWrench 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

Werken met DBWrench 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

Ontwerppatronen Lees reader deel 2 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

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