Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam

Maat: px
Weergave met pagina beginnen:

Download "Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam"

Transcriptie

1 Opleiding SQL / Systeemanalyse IBK ERD Hogeschool Rotterdam

2 ERD ERD = Entity Relationship diagram is een model of diagram voor het inzichtelijk te maken van een conceptueel datamodel. Het is een visuele weergave van de entiteiten, relaties en regels die gelden of aanwezig zijn in een logisch ontwerp. Deze diagrammen worden gemaakt bij het ontwerpen van een informatiesysteem om inzicht te krijgen in de benodigde informatie en de verbanden tussen de gegevens.

3 Een ER-diagram bestaat uit de volgende onderdelen entiteiten: een entiteit kan worden gezien als een object, een concreet of abstract "iets" dat waargenomen kan worden. Voorbeelden hiervan zijn: een auto, een werknemer, een lied, een gebied of een gebeurtenis. Een entiteit heeft een eenduidige naam in het enkelvoud en een kernachtige omschrijving. Als het niet lukt een goede naam of omschrijving te vinden, kan dat een aanduiding zijn dat er een modelleringsfout is gemaakt. Bijvoorbeeld de naam 'auto of fiets' kan er op wijzen dan men eigenlijk bedoelt 'vervoermiddel' of dat men twee sub-entiteiten erbij moet maken, genaamd 'auto' en 'fiets'.

4 relaties: een relatie geeft het verband weer tussen twee entiteiten, zoals "een werknemer werkt in een fabriek"; werkt in is hier de relatie tussen de entiteiten werknemer en fabriek. (In de fabriek werk de werknemer is dezelfde relatie maar dan van fabriek tot werknemer.) Relaties kennen een kardinaliteit (de relatie kent 0,1 of n voorkomens), een optionaliteit (de relatie is verplicht of optioneel, -verplicht heeft een kardinaliteit van een of meer-).

5 attributen: een attribuut is een van de eigenschappen van een entiteit. Zo heeft een werknemer (onder andere) een voornaam, optioneel voorvoegsel, een achternaam, een woonplaats en een sofinummer. Attributen kennen een domein (bijvoorbeeld datum, numeriek, alfanumeriek), een optionaliteit (verplicht of optioneel), een naam, een omschrijving. Het domein begrenst de toegestane waarden, voorbeelden alleen 'Ja' en 'Nee' toegestaan, salaris uitsluitend positieve waarden.).

6 identificaties: een identificatie bestaat uit een minimale set van 1 of meer verplichte attributen () waarmee een voorkomenvan-de-entiteit (instantie) uniek geïdentificeerd wordt. De primaire identificatie geldt als basis voor de primaire sleutel van de uit de entiteit te genereren tabeldefinitie. Voorbeeld: Entiteit medewerker in functie tijdvak (Het open tijdvak waarin de medewerker een bepaalde functie bekleedt), heeft als primaire identificatie: de relaties naar zowel medewerker als naar functie, en het medewerker in functie tijdvak-attribuut begindatum in functie.

7 Elk van deze zaken wordt weergegeven met een bepaald symbool. Een entiteit wordt met een rechthoek, liefst met ronde hoeken om onderscheidt te maken met een datamodel, weergegeven, een relatie wordt weergegeven met een lijn, het identificerend attribuut wordt veelal onderstreept weergegeven, en een identificerende relatie wordt veelal met een dwarsstreepje weergegeven. In de rechthoek wordt tenminste de naam van de entiteit vermeld. Het is ook mogelijk om een relatie tussen een entiteit en zichzelf te hebben. Dit heet wel een recursieve of zelf-refererende relatie. Zo kan een persoon een relatie "getrouwd met" hebben met een andere persoon. Bij een aansluitpunt van de relatie-lijn bij de entiteit wordt dan aangegeven wie met wie getrouwd is.

8 Voorbeeldoefening ERD Maak het Entity Relationship diagram voor leerkrachten die een les uit een module geven met volgende gewenste gegevens en vereisten: De naam (voornaam en familienaam) van de leerkracht, zijn e- mailadres(sen), de datum dat de leerkracht in dienst gegaan is en zijn aantal jaren dienst. De naam en de inhoud van iedere module. Het lokaal waar de les doorgaat. De datum waarop de les doorgaat. De inhoud van de les. Een module bestaat uit meerdere lessen (bv. een module bestaat uit 20 lessen). Een les kan slechts door 1 leerkracht gegeven worden (business rule).

9 We passen volgende stappen toe: Specificeer de entiteiten, de attributen en de relaties Ontwerp het ERD met entiteiten en relaties Verfijn het ERD Voeg de identifier en de attributen toe aan het ERD Werk eventueel entiteiten uit in Super- en Subtypes (Generalization)

10 Specificeer de entiteiten, de attributen en de relaties Entiteiten De begrippen, dingen, zelfstandige naamwoorden waar het om draait: Leerkrachten Les Module Relaties De handelingen, werkwoorden: Leerkracht geeft les Module bestaat uit lessen Attributen Kenmerken, bijvoeglijke naamwoorden: Attributen bij Leerkracht: naam (voornaam en familienaam), e- mailadres(sen), datum in dienst, dienstjaren. Attributen bij module: naam, inhoud. Attributen bij les: lokaal, datum, inhoud

11 Ontwerp het ERD met entiteiten en relaties De relaties tussen entiteiten leggen Leerkracht geeft/ heeft Les Leerkracht geeft les. Les heeft een leerkracht. Les behoort tot een module. Module bestaat uit lessen. behoort tot/bestaat uit Module

12 Zijn er zwakke entiteiten? Leerkracht geeft/ heeft Entity Les Een zwakke entiteit bestaat bij de gratie van een andere entiteit. Valt die andere entiteit weg dan verdwijnt ook de zwakke entiteit. Een relatie met een zwakke entiteit is een zwakke relatie. Leerkracht is geen zwakke entiteit. Hij bestaat niet bij de gratie van de les, je kunt ook leerkracht zijn zonder momenteel les te geven. behoort tot/bestaat uit Les is wel een zwakke entiteit. Les behoort tot een module, bestaat die module niet meer dan verdwijnen ook de lessen die tot die module behoren. Module Een module staat ook op zichzelf en is dus geen zwakke entiteit.

13 Bepaal de kardinaliteit en de optionaliteit Leerkracht geeft/ heeft Entity Les Een leerkracht kan geen, 1 of meerdere lessen geven. Een les heeft steeds juist 1 leerkracht. Een les behoort tot juist 1 module. behoort tot/bestaat uit Een module bestaat uit 1 of meerdere lessen Module

14 Verfijn het ERD Iedere entiteit moet deel uit maken van een relatie Dit is het geval. Veel op veel relaties Er is geen veel op veel relaties. Verwijder overtollige relaties Er zijn geen overtollige relaties. Vereenvoudig N-ary relaties Er zijn geen N-ary relaties.

15 Voeg de identifier en de attributen toe aan het ERD Voornaam Familienaam LesID Lokaal Naam Datum LeerkrachtID Leerkracht geeft/ heeft Entity Les Inhoud DatumIndienst Dienstjaren behoort tot/bestaat uit Attributen bij Leerkracht: naam (voornaam en familienaam), adres(sen), datum in dienst, dienstjaren. Module Attributen bij module: naam, inhoud. Attributen bij les: lokaal, datum, inhoud. ModuleID Inhoud Naam

16 Was is informatieverzorging ook al weer? Het systematisch verzamelen, vastleggen, verwerken, opslaan en verstrekken van informatie (gegevens) ten behoeve van gebruikers en uitvoering van processen met behulp van een informatiesysteem. opslag gegevens Bijvoorbeeld in een Database invoer verwerking uitvoer

17 Ontwikkeling van een informatiesysteem Projectmatig werken: Verkenning (waar gaat 't over) Analyse (problemen,knelpunt en) Ontwerp Realisatie Gebruik en Beheer In deze presentatie kijk je naar het ontwerp en de bouw van een database. verkenning analyse ontwerp realisatie gebruik en beheer informatieplanning of vooronderzoek definitiestudie functioneel ontwerp technisch ontwerp bouw acceptatietest invoering gebruik en beheer

18 Database Een database is een vaak voorkomend onderdeel van een (bedrijfs)informatiesysteem. Het is een verzameling van gegevens, opgeslagen in een logische structuur. Voordat je een database opzet, moet je bedenken welke gegevens je nodig hebt: gegevensanalyse.

19 Database toepassingen en taalgebruik Je kunt een database bewerken en raadplegen. Bijvoorbeeld: Basisgegevens van klanten: naam, adres en woonplaats (NAWgegevens). Telefoonboek op internet. Je cd-verzameling op je computer. Bij het ontwerpen van een bruikbare database hoort een bepaald taalgebruik: 'jargon'.

20 Basisbegrippen Begrip Omschrijving Voorbeeld Object Entiteit Een concrete of abstracte zaak waarover gegevens worden vastgelegd. Concreet = zichtbaar/tastbaar Abstract = niet zichtbaar/tastbaar Beschrijving van een object in een gegevensverzameling. Een telefoon, een tafel, studente Kim Berg. (concreet) klas 4h, het vak informatica. (abstract) Eigenschappen van studente Kim zoals geboorteplaats, woonplaats, klas. Relatie Verband tussen 2 entiteiten. Kim is geboren in Anjum. In de database wordt dit beschreven als: 'Kim heeft geboorteplaats Anjum' Attribuut Een eigenschap van een object waarmee informatie over dat object wordt vastgelegd. (Eigenschap is afhankelijk van het doel waarvoor de gegevensverzameling wordt vastgelegd.) NAW-gegevens van studente Kim in de studentenadministratie. De brilsterkte van de klanten van opticien Oogappel.

21 Basisbegrippen Begrip Toelichting / Opmerking Voorbeeld Classificeren Classificeren is het samennemen van een bepaalde soort entiteiten, attributen en/of relaties tot respectievelijk entiteittype, attribuuttype en/of relatietype Entiteittype Naamgeving: enkelvoud Entiteiten 'Kim Berg' en 'Joep Bol' zijn studenten. Classificatie = bijv. 'Student' Attribuuttype Classificatie van gelijksoortige waarden. 'Kim' en 'Berg' zijn attribuutwaarden. 'Joep'en 'Bol' zijn attribuutwaarden. Classificatie = Voornaam Classificatie = Achternaam Relatietype Er is weinig verschil tussen 'Relatie' en 'Relatietype'. Kim Berg zit in klas 4h. Relatie = 'zit in' Classificatie = 'zit in'

22 ERD Samenhang tussen entiteiten geef je schematisch weer in een Entity Relationschip Diagram: ERD. ERD's behoren tot de informatieanalysemethode Een entiteittype geef je weer met een rechthoek Een relatietype geef je weer met een ruitvorm Een attribuuttype beschrijf je 'gewoon' in tekst Student Zit in entiteittype relatietype

23 Weergaven Student Zit in Klas Student Leent Boek Samen voegen tot 1 figuur + = Student Zit in Klas Leent Boek

24 Identificatie Zorgt ervoor dat elke entiteit uniek te benoemen is door 1 of meer attribuuttypen. Bijvoorbeeld: een studentnummer. Wanneer 2 studentes 'Kim' heten voeg je aan de entiteit 'Kim' het attribuuttype 'studentnummer' toe. Het attribuuttype 'studentnummer' heeft dan als attribuutwaarde bijvoorbeeld

25 Tekstuele beschrijving Met deze beschrijving van het informatiemodel geef je aan: welke attribuuttypen de identificerende attribuuttypen zijn, welke attribuuttypen deel uitmaken van een bepaald entiteittype. Per entiteittype bestaat de beschrijving uit 3 groepen: 1 Entiteittype 2 Identifier 3 Description

26 Tekstuele beschrijving Entiteittype Klas Student Entiteittype Klas heeft meer dan één attribuuttype als identificatie. Je ziet: een identificatie hoeft niet per se uit één attribuuttype te bestaan. Identifier Description Afdeling Klasnummer Afdeling Klasnummer Aantal studenten Studentnummer Studentnummer Naam Adres Postcode Woonplaats Geslacht Geboortedatum

27 Cardinaliteit (1) Het aantal keren dat een relatie tussen entiteiten voor mag komen. Er zijn 3 typen relaties: één-op-veel (+ veel-op-één) veel-op-veel één-op-één 'cardinaliteit van het relatietype'

28 Cardinaliteit (2) Cardinaliteit wordt in het grafisch model weergegeven d.m.v. het cijfer 1 en de letter 'n'. 'n' betekent: 'veel'. Maximale cardinaliteit 0 1 Minimale cardinaliteit n (meer dan 1) Minimale cardinaliteit: Is het verplicht (1) of niet (0) dat het entiteittype deelneemt aan de relatie? De minimale cardinaliteit staat altijd voor de maximale cardinaliteit.

29 één-op-veel relatie 1 n Student zit in Groep veel-op-één relatie Één student zit in één groep, in één groep mogen meerdere studenten zitten. n 1 Groep bevat Student Er mogen meerdere studenten in één klas zitten. Student n leent 1 Boek exemplaar

30 veel-op-veel relatie Student n Volgt les van n docent veel-op-veel relatie n n Fitnesser gebruikt apparaat Elke student krijgt les van meerdere docenten; elke docent geeft les aan meerdere studenten. Een fitnessapparaat wordt gebruikt door meerdere sporters; een sporter gebruikt meerdere apparaten.

31 één-op-één relatie 1 1 Student krijgt studiebeurs Één student heeft één studiebeurs. Deze studiebeurs is uniek voor deze student.

32 Optionaliteit (1) Bij een optionele relatie hoeft er niet per se een relatie tussen de entiteittypen te bestaan. Voorbeeld: een boek in een bibliotheek màg uitgeleend worden aan een persoon, maar het hoeft niet.

33 Optionaliteit (2) Optionaliteit heeft betrekking op het al of niet verplicht aanwezig zijn van een relatie bij een entiteit. Word aangeduid met een 0 of 1. 0 = geen verplichte deelname 1 = wel verplichte deelname

34 Optionaliteit (3) 1 n Student zit in Klas Cardinaliteit 1, 1 1, n Student zit in Klas Optionaliteit wordt toegevoegd. In iedere klas zit minimaal 1 student. Iedere student moet in 1 klas zitten. Dus, met andere woorden: Bij een entiteit van het entiteittype Student hoort minimaal 1 en maximaal 1 relatie van het relatietype zit in. Bij een entiteit van het entiteittype Klas hoort minimaal 1 en maximaal n relaties van het relatietype zit in.

35 Ternaire relatie Ternair = derde primair, secundair, ternair = 1 e, 2 e, 3 e Het is een derde relatietype naast de bestaande twee. Een ternair relatietype houdt in dat een bepaalde entiteit betrekking heeft op de relatie tussen twee andere entiteiten. De identificatie gebeurt soms door een eigen nummer, soms door de identificatie van één of van beide andere entiteittypes over te nemen. Dit worden geen attributen van het derde entiteittype. Dit type wordt dan afhankelijk van een of van beide andere entiteittypen

36 Ternair relatietype 1,n 0,n Student krijgt vak 1,1 De cardinaliteit en optionaliteit bij het entiteittype Resultaat zijn 1,1. Resultaat Student Kim haalt voor het vak Informatica het cijfer 8. Het cijfer 8 is geen eigenschap van student Kim, en ook geen eigenschap van het vak Informatica. Immers: Kim zal voor andere vakken andere cijfers halen en voor Iinformatica zal door andere studenten andere cijfers worden gehaald. Dus, met andere woorden: Een entiteit van het entiteittype Resultaat is verbonden met één relatie van het relatietype 'krijgt'. Niet met meer dan één relatie.

37 Bestaansafhankelijkheid (1) 1,n 0,n Student krijgt vak 1,1 Resultaat De identificatie van het entiteittype Student is Studentnummer. De identificatie van het entiteittype Vak is bijvoorbeeld Vaknaam. De identificatie van het entiteittype Resultaat kan niet alleen een combinatie van bovenstaande twee attirbuttypen zijn: dit gaat namelijk mis wanneer Kim nog meer cijfers voor Informatica haalt. Anvulling met bijvoorbeeld Datum lost dit probleem op. Attribuuttype Studentnummer wordt geleend van entiteittype Student. Attribuuttype Vaknaam wordt geleend van entiteittype Vak.

38 Tekstuele beschrijving Entiteittype Resultaat Student Vak Identifier Studentnummer Studentnummer Vaknaam Vaknaam Datum Description Datum Studentnummer Vaknaam Cijfer Naam Adres Postcode Woonplaats Geslacht Geboortedatum

39 Bestaansafhankelijkheid (2) Studentnummer en Vaknaam zijn geen eigenschappen van het entiteittype Resultaat. Attribuuttype Studentnummer wordt geleend van entiteittype Student. Attribuuttype Vaknaam wordt geleend van entiteittype Vak. Het entiteittype Resultaat is bestaansafhankelijk van de entiteittypen Student en Vak. Bestaansafhankelijkheid houdt in dat ten behoeven van de identificatie van een entiteittype attribuuttypen 'geleend' worden bij een ander entiteittype.