Datamodellering en –verwerking 8C020 college 2 docent: Dragan Bošnački WH 3.101 Tel. 5159 Dragan@win.tue.nl , D.Bosnacki@tue.nl
Terugblik college 1 Informatiesystemen Databases Conceptueel data model Entity-Relationship Model Entiteiten Relaties Cardinaliteit Meerwaardig atribuut-type
Overzicht college week 2 Aspecten van modelleren Meerwaardige atribuut-type Herhalende groep Tijdsafhankelijke gegevens Classificeren ISA relatie Constraints (Beperkingen) UML Oefeningen Relationeel Model
Ternair relatie-type
Cardinaliteit cardinaliteit van een relatie-type het aantal entiteit-instanties van een entiteit-type die geassocieerd kunnen zijn met elke entiteit-instantie van een ander entiteit-type voorbeeld van “veel”
Minimum/maximum/vrij/verplicht
Zwakke entiteit bij een relatie-type met cardinaliteit “verplicht 1” kan een instantie van het ene type niet bestaan zonder het bestaan van een instantie van het andere type zo'n entiteit-type heet een zwakke entiteit we noemen dit een existentiële afhankelijkheid
Identificeerend relatie-type bij een zwakke entiteit is vaak de primaire sleutel van de ouder-entiteit onderdeel van de primaire sleutel van de (zwakke) kind-entiteit
Voorbeeld ziekenhuis Arts Naam Kamernummer Heeft afspraken met patienten Patient Adres Geboortedatum Verzekering Rekeningnummer Huisarts Maakt afspraken met arts(en) Afspraken Datum, tijd en duur Reden Arts kan geen twee afspraken tegelijkertijd hebben
Modeleren van meerwaardige atribuut-type
Herhalende groep
Herhalende groep
Modelleren van tijdsafhankelijke gegevens
Modeleren van tijdsafhankelijke gegevens
Modelleren van tijdsafhankelijke gegevens
Tijdsafhankeljike gegevens
Classificeren ERM gebruikt het menselijk vermogen om dingen (objecten) in klassen in te delen en om hun eigenschappen algemeen te beschouwen bij het classificeren: niet alleen gemeenschappelijke eigenschappen maar ook onderscheidende eigenschappen generalisatie (bottom up) het concept dat sommige entiteiten subtype zijn van meer algemene entiteiten specialisatie (top down) het concept dat entiteit-instanties voorkomen in verschillende subtypen
Supertype en Subtype uur-werkers: WERKNEMERSNUMMER NAAM ADRES DATUM-IN-DIENST UURLOON salaris-personeel: WERKNEMERSNUMMER JAARSALARIS contract-werkers: WERKNEMERSNUMMER CONTRACTNUMMER DAGLOON er zijn drie opties om een model te maken: één enkel entiteit-type drie afzonderlijke entiteit-typen één supertype met drie subtypen
Supertype en subtype drie opties om een model te maken: één enkel entiteit-type drie afzonderlijke entiteit-typen één supertype met drie subtypen
Een supertype met drie subtypen
ISA-relatie Opties Subtypen kunnen exclusief of niet exclusief zijn Subtypen kunnen volledig on niet volledig zijn
Constraints constraints (beperkingen) beschrijven regels die ervoor zorgen dat de gegevens correct zijn en blijven belangrijk bij het uitvoeren van operaties (updates) die gegevens veranderen een ER-diagram brengt slechts de structuur in kaart een ER-model specificeert o.a. ook alle constraints
Domein een domein legt vast aan welke voorwaarden attribuutwaarden (-instanties) moeten voldoen naam: REKENINGNUMMER betekenis: nummer van klantenrekening bij de bank type van de gegevens: alfa-numerieke karakters formaat: xxx-xxx-xxxx uniek? moet uniek zijn n.v.t.? mag niet n.v.t. zijn naam: BEDRAG betekenis: bedrag van transactie in euro’’s type van de gegevens: numeriek formaat: 2 cijfers achter de komma bereik: 0-10.000 uniek? hoeft niet uniek te zijn n.v.t.? mag niet n.v.t. zijn
Trigger trigger een specificatie van een regel die de database helpt om de integriteit van de gegevens te bewaren bij het uitvoeren van operaties die de gegevens veranderen regel: opnamebedrag groter dan rekeningsaldo operatie: toevoeging entiteit-naam: OPNAME conditie: OPNAME.BEDRAG > REKENING.SALDO actie: verwerp toevoeging
UML UML: Unified Modeling Language (Future) standard for creating specifications (?) A collection of different formalisms (diagrams) to graphically model different aspects of an entire software system class diagrams, use case diagrams, activity diagrams, implementation diagrams (See also the link on the course web page) UML Class Diagrams correspond to E-R Diagram, but there exist several differences
Entity type STUDENT SUDNETNUMMER NAAM ADRES TELEFOONNUMMER
Relationship type Volbrengt
Relationtip attributes Volbrengt DATUM-AFRONDING
UML Entity sets are shown as boxes, and attributes are shown within the box, rather than as separate ellipses in E-R diagrams. Binary relationship sets are represented in UML by just drawing a line connecting the entity sets. The relationship set name is written adjacent to the line. The role played by an entity set in a relationship set may also be specified by writing the role name on the line, adjacent to the entity set. The relationship set name may alternatively be written in a box, along with attributes of the relationship set, and the box is connected, using a dotted line, to the line depicting the relationship set. Non-binary relationships drawn using diamonds, just as in ER diagrams
Cardinality Is voorradig als 1..1 0..*
UML Cardinality constraints are specified in the form l..h, where l denotes the minimum and h the maximum number of relationships an entity can participate in. The constraint 0..* on the E2 side and 0..1 on the E1 side means that each E2 entity can participate in at most one relationship, whereas each E1 entity can participate in many relationships; in other words, the relationship is many to one from E2 to E1. Single values, such as 1 or * may be written on edges; The single value 1 on an edge is treated as equivalent to 1..1, while * is equivalent to 0..*.
Generalization and Specialization ISA ISA B C B C
Oefening: Ziekenhuis Het ziekenhuisinformatiesysteem bevat de informatie over behandelingen van patienten bij het ziekenhuis. Wanneer en patient voor het eerst naar het ziekenhuis verwezen wordt, wordt hij of zij opgenomen in de ziekenhuisadministratie. Bij deze registratie worden gegevens, zoals de naam (voorletters en achternaam), adres en geboortedatum genoteerd, en de patient krijgt een ID nummer. Voor elk behandeling worden er afspraken gemaakt voor bepaalde tijd en plaats met een vermelding wat voor soort behandeling, aantal verpleegkundigen en aantal specialisten met concrete specialismen zijn voor elke soort behandeling vastgesteld. Het tarief voor elke soort behandeling wordt berekend volgens een formule die het aantal verpleekundigen en het aantal specialisten van elke specialisme als parameters gebruikt. Het uurtarief van verpleegkundigen ligt vast terwijl het uurtarief van specialisten is afhankelijk van het specialisme. De informatie die over elk staflid bewaard wordt omvat de naam (voorletters, achternaam, roepnaam), telefoonnummer en personeelsnummer. Verpleegkundigen werken bij een afdeling terwijl specilasiten kunnen voor alle afdelingen werken.(Niemand kan tegelijkertijd als specialist en als verpleegkundige werken). Specialisten kunnen meerdere specialismen hebben.
Oefening: Ziekenhuis Het ziekenhuisinformatiesysteem bevat de informatie over behandelingen van patienten bij het ziekenhuis. Wanneer en patient voor het eerst naar het ziekenhuis verwezen wordt, wordt hij of zij opgenomen in de ziekenhuisadministratie. Bij deze registratie worden gegevens, zoals de naam (voorletters en achternaam), adres en geboortedatum genoteerd, en de patient krijgt een ID nummer. Voor elk behandeling worden er afspraken gemaakt voor bepaalde tijd en plaats met een vermelding wat voor soort behandeling, aantal verpleegkundigen en aantal specialisten met concrete specialismen zijn voor elke soort behandeling vastgesteld. Het tarief voor elke soort behandeling wordt berekend volgens een formule die het aantal verpleekundigen en het aantal specialisten van elke specialisme als parameters gebruikt. Het uurtarief van verpleegkundigen ligt vast terwijl het uurtarief van specialisten is afhankelijk van het specialisme. De informatie die over elk staflid bewaard wordt omvat de naam (voorletters, achternaam, roepnaam), telefoonnummer en personeelsnummer. Verpleegkundigen werken bij een afdeling terwijl specilasiten kunnen voor alle afdelingen werken.(Niemand kan tegelijkertijd als specialist en als verpleegkundige werken). Specialisten kunnen meerdere specialismen hebben.
Oefening: Ziekenhuis Het ziekenhuisinformatiesysteem bevat de informatie over behandelingen van patienten bij het ziekenhuis. Wanneer en patient voor het eerst naar het ziekenhuis verwezen wordt, wordt hij of zij opgenomen in de ziekenhuisadministratie. Bij deze registratie worden gegevens, zoals de naam (voorletters en achternaam), adres en geboortedatum genoteerd, en de patient krijgt een ID nummer. Voor elk behandeling worden er afspraken gemaakt voor bepaalde tijd en plaats met een vermelding wat voor soort behandeling, aantal verpleegkundigen en aantal specialisten met concrete specialismen zijn voor elke soort behandeling vastgesteld. Het tarief voor elke soort behandeling wordt berekend volgens een formule die het aantal verpleekundigen en het aantal specialisten van elke specialisme als parameters gebruikt. Het uurtarief van verpleegkundigen ligt vast terwijl het uurtarief van specialisten is afhankelijk van het specialisme. De informatie die over elk staflid bewaard wordt omvat de naam (voorletters, achternaam, roepnaam), telefoonnummer en personeelsnummer. Verpleegkundigen werken bij een afdeling terwijl specilasiten kunnen voor alle afdelingen werken.(Niemand kan tegelijkertijd als specialist en als verpleegkundige werken). Specialisten kunnen meerdere specialismen hebben.
Oefening: Ziekenhuis Het ziekenhuisinformatiesysteem bevat de informatie over behandelingen van patienten bij het ziekenhuis. Wanneer en patient voor het eerst naar het ziekenhuis verwezen wordt, wordt hij of zij opgenomen in de ziekenhuisadministratie. Bij deze registratie worden gegevens, zoals de naam (voorletters en achternaam), adres en geboortedatum genoteerd, en de patient krijgt een ID nummer. Voor elk behandeling worden er afspraken gemaakt voor bepaalde tijd en plaats met een vermelding wat voor soort behandeling, aantal verpleegkundigen en aantal specialisten met concrete specialismen zijn voor elke soort behandeling vastgesteld. Het tarief voor elke soort behandeling wordt berekend volgens een formule die het aantal verpleekundigen en het aantal specialisten van elke specialisme als parameters gebruikt. Het uurtarief van verpleegkundigen ligt vast terwijl het uurtarief van specialisten is afhankelijk van het specialisme. De informatie die over elk staflid bewaard wordt omvat de naam (voorletters, achternaam, roepnaam), telefoonnummer en personeelsnummer. Verpleegkundigen werken bij een afdeling terwijl specilasiten kunnen voor alle afdelingen werken.(Niemand kan tegelijkertijd als specialist en als verpleegkundige werken). Specialisten kunnen meerdere specialismen hebben.
Oefening: Ziekenhuis Het ziekenhuisinformatiesysteem bevat de informatie over behandelingen van patienten bij het ziekenhuis. Wanneer en patient voor het eerst naar het ziekenhuis verwezen wordt, wordt hij of zij opgenomen in de ziekenhuisadministratie. Bij deze registratie worden gegevens, zoals de naam (voorletters en achternaam), adres en geboortedatum genoteerd, en de patient krijgt een ID nummer. Voor elk behandeling worden er afspraken gemaakt voor bepaalde tijd en plaats met een vermelding wat voor soort behandeling, aantal verpleegkundigen en aantal specialisten met concrete specialismen zijn voor elke soort behandeling vastgesteld. Het tarief voor elke soort behandeling wordt berekend volgens een formule die het aantal verpleekundigen en het aantal specialisten van elke specialisme als parameters gebruikt. Het uurtarief van verpleegkundigen ligt vast terwijl het uurtarief van specialisten is afhankelijk van het specialisme. De informatie die over elk staflid bewaard wordt omvat de naam (voorletters, achternaam, roepnaam), telefoonnummer en personeelsnummer. Verpleegkundigen werken bij een afdeling terwijl specilasiten kunnen voor alle afdelingen werken.(Niemand kan tegelijkertijd als specialist en als verpleegkundige werken). Specialisten kunnen meerdere specialismen hebben.