110 likes | 368 Views
Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller. ER-modellen, intro. side 2-3 Sterke og svake entitetstyper side 4 Attributter side 5 Multiplisitet, 1:1, 1:*, *:* side 6-8
E N D
Datamodellering: ER-modellerER = Enitity-Relationshipdel 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller ER-modellen, intro. side 2-3 Sterke og svake entitetstyper side 4 Attributter side 5 Multiplisitet, 1:1, 1:*, *:* side 6-8 Binære, trinære og rekursive sammenhengstyper side 9-11 Entitetstyper med to sammenhengstyper side 12 Chen, 1975 Se ellers læreboka, kap. 6.1-6.4, side 178-199
ER-modellen er en konseptuell modell (dvs en modell av hele databasen). Hensikt: Å beskrive dataene fra brukerens synsvinkel. Uavhengig av implementasjonsmodell og databasesystem – også uavhengig av relasjonsmodellen! Datamodellering og databaserElse Lervik, september 2012
Notasjon og begreper • Mange notasjoner, vi bruker UML-diagram. • Tar i bruk ER-begrepsapparatet, jamfører tilsvarende OO-begreper • entitet ~ objekt • entitetstype ~ klasse • attributt • sammenhengstype (eng: relationship type) ~ assosiasjon • multiplisitet (1..1, 0..1, 0..*, 1..*, *..*) • Primærnøkkel {PK} kommer inn som nytt begrep Datamodellering og databaserElse Lervik, september 2012
Sterke og svake entitetstyper En sterk entitetstype eksisterer uavhengig av andre entitetstyper. En svak entitetstype er avhengig av en annen entitetstype for å kunne identifiseres. Identitetsavhengighet. prosjekt(prosjnr, prosjektnavn, budsjett, forbrukprosjektrapport(prosjnr*, dato, tittel, forfattere, sammendrag, innhold) Datamodellering og databaserElse Lervik, september 2012
Attributter Avledet attributt Sammensatt attributt student(studnr, etternavn, fornavn,adresse, telefon, fdato, epost) snitt_karakter er et avledetattributt, den regnes ut og lagres ikkei databasen. Flerverdiet attributt student(studnr, etternavn, fornavn, adresse, fdato, epost)telefon(studnr*, tlfnr) Datamodellering og databaserElse Lervik, september 2012
Multiplisitet – en-til-en-sammenhengstype • Multiplisiteten bestemmer antallet mulige sammenhenger mellom entiteter i en sammenhengstype • En-til-en-sammenhengstype En andelseier kan ha min 0, maks 1 lelighetEn leilighet bebos av min 1, maks 1 andelseier andelseier(and_eier_nr, fornavn, etternavn, telefon, ansiennitet)leilighet(leil_nr, ant_rom, ant_kvm, etasje, and_eier_nr*)NOT NULL UNIQUEand_eier_nr INTEGER NOT NULL UNIQUE • 0..1 – delvis avhengighet • 1..1 – total avhengighet • Konkrete sammenhenger mellom entiteter kan illustreres vhja semantiske nett (figur på tavla) Datamodellering og databaserElse Lervik, september 2012
Multiplisitet - en-til-mange-sammenhengstyper En student bor på min. 1, maks. 1 poststed. (På) ett poststed (bor) min 0., maks. * (mange) studenter.student(studnr, fornavn, etternavn, adresse, postnr*)poststed(postnr, sted) Multiplisiteten refererer til maks-verdiene. Sammenhengen over er en-til-mange fra poststed til student. Minimumsverdien i 1..1 forteller om fremmednøkkelen kan være NULL eller ikke. Fremmednøkkelen postnr kan ikke være NULL, pga 1..1.Minimumsverdien i 0..* forteller at det kan fins poststed uten studenter. Datamodellering og databaserElse Lervik, september 2012
Multiplisitet - mange-til-mange-sammenhengstyper Én student velger minst ett fag, maks mange fag.Ett fag velges av min. 0 studenter, maks mange. student(studnr, etternavn,…fag(fagkode, fagnavn,….fagvalg(studnr*, fagkode*, semester, betalt, karakter)En mange-til-mange-sammenheng medførerat vi må lage en “koplingstabell”/”koplingsrelasjon”.Primærnøkkelen i denne relasjonen er satt sammen av fremmednøkler som refererer til de involverte relasjonene. Datamodellering og databaserElse Lervik, september 2012
Dimensjon - tre-dimensjonal (trinær) sammenhengstype Én person jobber i mange prosjekter i mange uker. I en bestemt uke jobbes det på mange prosjeketr av mange personer. På ett prosjekt jobber det mange personer i mange uker. person(pers_id, fornavn, etternavn, …prosjekt(prosjnr, prosjektnavn, …uke((uke, aar), norm_timer, ….timeliste(pers_id*, prosjnr*, (uke, aar)*, ant_timer) Datamodellering og databaserElse Lervik, september 2012
Rekursiv sammenhengstype Hierarki/trestruktur Én person er sjef for min. 0, maks mange ansatte.Hver ansatt har min. 0, maks. 1 sjef. ansatt(ans_id, fornavn, etternavn, tlf, epost, har_som_sjef_id*) Nettverk Datamodellering og databaserElse Lervik, september 2012
Entitetstyper med to sammenhengstyper Datamodellering og databaserElse Lervik, september 2012