Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.

Liknende presentasjoner


Presentasjon om: "LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller."— Utskrift av presentasjonen:

1 LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models Oppsummering: Å oversette fra ER- til relasjonsmodellside 2 Spesialisering og generaliseringside 3-6 Komposisjonside 7 Aggregeringside 8 Se ellers læreboka, side

2 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 2 Oppsummering: Å oversette fra ER-modell til relasjonsmodell 1. Lag en relasjon pr. entitetstype. 2. Oversett en-til-en-sammenhengstyper ved å legge inn fremmednøkkel på den ene av sidene. Hvis det er eksistensavhengighet (NOT NULL) på en av sidene, skal denne brukes. UNIQUE på fremmednøkkelen sikrer 1-multiplisiteten på motsatt side. Se side 193 i læreboka. 3. Oversett en-til-mange-sammenhengstyper ved å legge inn fremmednøkkel på mange-siden i forholdet. Se side Mange-til-mange-sammenhengstyper gir alltid opphav til en egen relasjon ("koplingstabell"). Se side Fremmednøkler fra begge sidene kommer inn og danner til sammen primærnøkkelen i en slik relasjon. (Alternativt kan man ha løpenummer som primærnøkkel. Fremmednøklene må likevel være med.) Det er mulig med ekstra attributter i tillegg, da vises det i ER- modellen ved en entitetstype med stiplet linje fram til den aktuelle sammenhengstypen. Eksempler på sammenhenger mellom tre entitetstyper (trinær sammenheng) samt entiteter av samme type (rekursjon og nettverk), samt identitetsavhengighet, se forelesning 4. I dag kommer flere regler: Hvordan overføre objektorientering fra UML-diagrammet til relasjonsmodellen? andelseier(and_eier_nr, fornavn, etternavn, telefon, ansiennitet) leilighet(leil_nr, ant_rom, ant_kvm, etasje, and_eier_nr*) student(studnr, fornavn, etternavn, adresse, postnr*) poststed(postnr, sted) student(studnr, etternavn, fornavn, adresse, telefon, fdato, epost) fag(fagkode, fagnavn, eks_dato, vekttall, brukernavn, passord) fagvalg(studnr*, fagkode*)

3 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 3 Spesialisering og generalisering •Spesialisering er prosessen for å finne forskjellene mellom entitetstyper ved å identifisere karakteristiske trekk ved dem. •Generalisering er prosessen som går ut på å redusere forskjellene mellom entitetstyper ved å identifisere deres fellestrekk. •Spesialisering viser roller. •Oversetter til relasjonsmodellen: person(person_id, etternavn, fornavn, adresse) forelder(person_id*, telefon_jobb, telefon_hjemme, stilling) laerer(person_id*, telefon_kontor, utdanning, ansiennitet) elev(person_id*, fodselsdato, morsmaal) Skisser SQL-setninger for • innlegging av ny forelder/laerer/elev • uthenting av all info om en forelder/laerer/elev

4 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 4 Overlappende / disjunkte delmengder {AND} betyr overlappende spesialisering, dvs at en person kan være f. eks. både forelder og lærer. {OR} betyr disjunkt spesialisering, dvs at hver person enten er forelder, lærer eller elev. Kan kravet om disjunkte mengder framkomme i relasjonsmodellen, eventuelt ved generering av databasen med SQL? person(person_id, etternavn, fornavn, adresse) forelder(person_id*, telefon_jobb, telefon_hjemme, stilling) laerer(person_id*, telefon_kontor, utdanning, ansiennitet) elev(person_id*, fodselsdato, morsmaal)

5 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 5 Total/delvis deltakelse person(person_id, etternavn, fornavn, adresse) forelder(person_id*, telefon_jobb, telefon_hjemme, stilling, status) laerer(person_id*, telefon_kontor, utdanning, ansiennitet) elev(person_id*, fodselsdato, maalform) Delvis deltakelse betyr at det kan finnes entiteter i superentitetstypen som ikke er med i noen av subentitetstypene. Total deltakelse betyr at alle entitetene i superentitetstypen må være med i minst en av subentitetstypene. Kan disse kravene framkomme i relasjonsmodellen, eventuelt ved generering av databasen med SQL?

6 Restriksjoner på spesialiseringen kan kombineres Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 6 Disjunkt (OR)Overlappende (AND) DelvisEn superentitet deltar i 0 eller 1 subentitetstype (0..1) En superentitet kan, men behøver ikke, delta i 1 eller flere subentitetstyper (0..*) TotalEn superentitet deltar i eksakt 1 subentitetstype (1..1) En superentitet deltar i minst 1 subentitetstyper (1..*)

7 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 7 Et større eksempel 3..7

8 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 8 Komposisjon avis(avisnavn,....) annonse(annonse_nr,...., avisnavn*) prosjekt(prosjnr, prosjektnavn, budsjett, forbruk) prosjektrapport(prosjnr*, dato, tittel, forfattere, sammendrag, innhold) Identitetsavhengighet En komposisjon er en meget sterk en-del-av-binding. Delene kan ikke leve uten at den delen de inngår i eksisterer. Delene kan kun inngå i én kompositt. Komposisjon innebærer eksistensavhengighet. NOT NULL Forskjell mellom de to Avis- Annonse- modellene? Støtte i relasjonsmodellen og SQL for komposisjon? For eksistensavhengighet? For identitetsavhengighet?

9 Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 9 Aggregering •Aggregering er en løsere sammenheng enn komposisjon. De enkelte delene kan leve videre selv om den entiteten de er en del av, forsvinner. •Hva skiller dette fra en ”vanlig” sammenheng, dvs en strek uten aggregerings-rombe? husstand(husstand_id, adresse, boareal) person(person_id, etternavn, fornavn, epost, husstand_id*) kan være NULL


Laste ned ppt "LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller."

Liknende presentasjoner


Annonser fra Google