De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -

Verwante presentaties


Presentatie over: "Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -"— Transcript van de presentatie:

1 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese ontwerp een datamodel Criteria voor een goed model Ontwerppatronen

2 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese SQL deel 2: datamodel ontwerp Datamodel Criteria Proces

3 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Modulariteit

4 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Op te leveren in week 9: één document met daarin  Domein afbakening  Entiteiten Relatie Diagram  Tabel Definities  Eventueel voorbeeld Data  Views / Voorbeeld Queries ( reparatie onvoldoende toets ) Werk in groepjes van 3 onder leiding van één ‘expert’.  De expert gaat voor een G als alle groepsleden een goed model opleveren.  De anderen gaan voor een V als eigen model goed wordt opgeleverd.

5 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

6 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.

7 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Ontwerpmethode 1.Afbakening van het domein 1.Beschrijven van de relevante informatie 2.Beschrijven van gebruiksmogelijkheden (use cases) 2.Formaliseren van entiteiten en relaties (ERD) 1.Benoemen van entiteiten, attributen en relaties 2.Entity relation diagram 3.Functionele toetsing 4.Datatypen en beperkingen 3.Optimaliseren van het model 1.Waarborgen integriteit ( stored procedures, triggers, etc) 2.Optimaliseren perfomance ( indexen e.a. maatregelen )

8 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Plan van aanpak  Wk 6: afbakening van het domein Huiswerk: versie 1 van het datamodel  Wk 7: criteria voor goed datamodel Huiswerk: versie 2 van het datamodel  Wk 8: roostervrij Huiswerk: afronding van het datamodel  Wk 9: oplevering presentatie en documentatie datamodel  Wk 10: feedback feedback per team

9 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 ) -Schrijf het resultaat op je blog !

10 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

11 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht  Identificeer de belangrijkste ‘sterke’ entiteiten  Identificeer relaties tussen deze entiteiten  Maak een eerste ‘conceptueel’ datamodel NB: - Beperk je tot 2 tot 5 entiteiten

12 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht.  Maak een 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?

13 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Criteria voor een goed datamodel

14 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Stap 2: datamodel ( ERD ) Criteria voor een goed model 1.Naamgevingsconventies 2.“3de normaalvorm” Voor teggies 3.Integriteit waarborgen. Middels triggers, stored procedures, e.d. 4.Optimalisatie. Indexeren, views

15 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Naamgeving (algemeen)  Geen spaties ( eventueel underscore _ )  Geen gekke karakters  Geen afkortingen  Niet beginnen met een cijfer  Consistent gebruik hoofdletters  De naam beschrijft het element precies,  Laat niets te raden over.  Liever een lange naam, dan een onduidelijke naam

16 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Tabelnaam: enkelvoud Tabel naam:  Naam van de entiteit op één rij  Enkelvoud forum  berichtID  auteur  tekst  datum bericht  ID  auteur  tekst  datum berichten  berichtID  auteur  tekst  datum

17 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

18 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht: datamodel versie 1  Controleer je datamodel op bovengenoemde naamgevingsconventies.

19 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Stap 2: datamodel ( ERD ) Criteria voor een goed model 1.Naamgevingsconventies 2.“3de normaalvorm” Voor teggies 3.Integriteit waarborgen. Middels triggers, stored procedures, e.d. 4.Optimalisatie. Indexeren, views

20 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese de normaalvorm

21 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese “3de normaalvorm” Regel 1: eenvoud  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: vermijdt redundantie  Data mag maar één keer voorkomen, zodat het praktisch ommogelijk is dat de database inconsistente informatie bevat (waarborgt de integriteit)

22 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Data-elementen zijn ‘atomair’  Geen samengestelde waarden in één kolom  Voor+achternaam, straat+nummer+plaats  Geen herhalende waarden in één tabelcel  Komma gescheiden lijst productnummers (gebruik een aparte tabel)  Laat de betekenis niet afhangen van andere elementen  Bij studenten is ‘contact’ een adres en bij docenten is ‘contact’ een telefoonnummer.

23 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Data element zijn ‘atomair’ Fout  Naam = “Fons van Kesteren” Goed  Voornaam = “Fons”  Achternaam = “Kesteren”  Tussenvoegsel = “van” NB: dit hangt wel een beetje af van hoe je deze dataelement wilt gaan gebruiken. Als je denkt dat je voor en achternaam nooit hoeft te onderscheiden, dan hoef je ook geen aparte kolommen te maken.

24 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

25 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Hoe ver moet je gaan? voetballer  ID  naamID  clubID  adresID club  ID  naam  trainer adres  ID  straat  postcode  plaats naam  ID  voornaam  achternaam

26 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Hoe ver moet je gaan persoon  ID  voornaam  achternaam  adresID club  ID  naam  trainerID  adresID adres  ID  straat  postcode  plaats Is_voetballer_bij_club  persoonID  clubID

27 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Hoe ver moet je gaan persoon  ID  voornaam  achternaam  adresID club  ID  naam  adresID adres  ID  straat  postcode  plaats Is_lid_van_club  persoonID  clubID  rol [speler,trainer]

28 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

29 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Voorbeelden van misontwerp 

30 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese “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

31 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese opdracht  Controleer je datamodel op ‘3de normaalvorm’  Verbeter indien nodig, en maak nieuwe flap  Vergelijk met je use case. Is het datamodel een basis voor alle gewenste gebruiksmogelijkheden?

32 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese huiswerk  Download DBDesigner4 van fabforce.net  Maak een 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?

33 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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

34 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese DataModellen ontwerppatronen

35 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Logische Model vs. Fysiek Model Logisch model:  entiteiten, attributen en relaties Geen details met betrekking tot database realisatie Geef relaties een naam Fysiek model  tabellen, kolommen, PK’s/FK’s Bepaal details database realisatie: PK’s/FK’s, datatypen

36 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese many-to-one, many-to-many, one-to-one Hoe kunnen we deze verschillende logische relaties in een fysiek datamodel realiseren?  one-to-one  one-to-many / many-to-one  many-to-many

37 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Belangrijke tip Geeft de relatie een naam:  boek is_geschreven_door auteur auteur is_schrijver_van boek  student is_ingeschreven_bij vak vak wordt_gevolgd_door student Bepaal multipiliciteit :  Logische: many-to-one, one-to-many : Fysiek: FK in ‘many’-tabel verwijst naar PK in ‘one’-tabel  Logisch: many-to-many: Fysiek: creeer een ‘tussentabel’

38 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Many-to-one = FK to PK voetballer  ID  naam  clubID club  ID  trainer  voetballer is_lid_van club  meer voetballers zijn lid van een club  De Foreign Key verwijst naar de Primary Key

39 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Many-to-Many = tussentabel persoon  ID  naam  … ... vereniging  ID  Naam ...  persoon is_lid_van vereniging  meer personen zijn lid van meer verenigingen  Gebruik een tussentabel voor de relatie  De relatie opvatten als entiteit ( ‘lidmaatschap’ ) ls_lid_van  persoonID  verenigingID ...

40 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Meer ontwerppatronen  Lees de reader!

41 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Opdracht ( vijf minuten ) Controleer je datamodel op de volgende punten: Naamgeving: 1.Is de naamgeving goed? (enkelvoud) Normalisatie: 2.Zijn alle data-elementen ‘atomair’? 3.Bevat het model redundante data-elementen? Relaties: 4.Is bij iedere relatie de multipliciteit bepaald? 5.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: 4.Welke ontwerppatronen uit de reader gebruik je.?


Download ppt "Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -"

Verwante presentaties


Ads door Google