370 likes | 651 Views
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
E N D
Datamodellering en –verwerking8C020 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
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”
Zwakke entiteit bij een relatie-type met cardinaliteit “verplicht 1”kan een instantie van het ene type niet bestaan zonderhet bestaan van een instantie van het andere type zo'n entiteit-type heet eenzwakke entiteit we noemen dit een existentiële afhankelijkheid
Identificeerend relatie-type bij een zwakke entiteit is vaak de primaire sleutel van de ouder-entiteitonderdeel van de primaire sleutel van de (zwakke) kind-entiteit
Voorbeeld ziekenhuis • Arts • Naam • Kamernummer • Heeft afspraken met patienten • Patient • Naam • Adres • Geboortedatum • Verzekering • Rekeningnummer • Huisarts • Maakt afspraken met arts(en) • Afspraken • Datum, tijd en duur • Reden • Arts kan geen twee afspraken tegelijkertijd hebben
Classificeren • ERM gebruikt het menselijk vermogen omdingen (objecten) inklassenin te delenen om hun eigenschappen algemeen te beschouwen • bij het classificeren: niet alleen gemeenschappelijkeeigenschappenmaar 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 • NAAM • ADRES • DATUM-IN-DIENST • JAARSALARIS • contract-werkers:WERKNEMERSNUMMER • NAAM • ADRES • DATUM-IN-DIENST • 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
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 uitvoerenvan 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 bewarenbij het uitvoeren van operaties die de gegevens veranderen • regel:opnamebedrag groter danrekeningsaldo • 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 0..* 1..1
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 E2side 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..*.
ISA ISA Generalization and Specialization A A 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.