1 / 10

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models. Oppsummering: Å oversette fra ER- til relasjonsmodell side 2 Spesialisering og generalisering side 3-6 Komposisjon side 7 Aggregering side 8. Se ellers læreboka, side 199-212.

clio-moreno
Download Presentation

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektorientering i ER-modellerEER-modellerEnhanced Entity Relationship Models Oppsummering: Å oversette fra ER- til relasjonsmodell side 2Spesialisering og generalisering side 3-6 Komposisjon side 7 Aggregering side 8 Se ellers læreboka, side 199-212

  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 195. 4. Mange-til-mange-sammenhengstyper gir alltid opphav til en egen relasjon ("koplingstabell"). Se side 197-199. 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? Enhanced Entity Relationship (EER) 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*) Datamodellering og databaser, databasedelenElse Lervik, september 2012

  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: spesialisering generalisering 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 insert into person values(1, ‘Ås’, ‘Ole’, ‘xxx);insert into forelder(1, ‘99’,’88’,’xxx’);insert into laerer(1, ‘77’, ‘yyy’, 10);select * from person, forelder where person.persnr = forelder.persnr and fornavn = ‘Ole’ and etternavn = ‘Ås’; Datamodellering og databaser, databasedelenElse Lervik, september 2012

  4. Overlappende / disjunkte delmengder {AND} betyr overlappendespesialisering, 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 (NEI), eventuelt ved generering av databasen med SQL (NEI)?Men – vi skal i siste del av kurset se hvordan vi kan programmere dettesom et krav i databasen. 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) Datamodellering og databaser, databasedelenElse Lervik, september 2012

  5. Total/delvis deltakelse 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 kravet om total deltakelse framkomme i relasjonsmodellen (NEI), eventuelt ved generering av databasen med SQL (NEI)? Men – vi skal i siste del av kurset se hvordan vi kan programmere dettesom et krav i databasen. 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) Datamodellering og databaser, databasedelenElse Lervik, september 2012

  6. Restriksjoner på spesialiseringen kan kombineres Datamodellering og databaser, databasedelenElse Lervik, september 2012

  7. Et større eksempel 3..7 deltaker(delt_id, fornavn, etternavn, epostsesjon(sesjons_id, tittel, start_tid, varighet, ledes_av_delt_id* paneldebatt(sesjons_id*, foredrag(sesjons_id*, sammendragfellesforedrag(sesjons_id*, aapent spesialforedrag(sesjons_id*, maalgruppe delt_spes_foredrag(sesjons_id*, delt_id*) delt_paneldeb(sesjonsid*, delt_id*) Datamodellering og databaser, databasedelenElse Lervik, september 2012

  8. Komposisjon 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 avis(avisnavn,....)annonse(annonse_nr, ...., avisnavn*) Forskjell mellom de to Avis-Annonse- modellene? I det nederste tilfellet kan Annonse inngå i andre sammenhenger. I en komposisjon er dette (vanligvis) ikke tilfelle. Støtte i relasjonsmodellen og SQL for komposisjon? Nei, ikke hvis vi holder oss til det strenge kravet at Annonse ikke skal kunne delta i andre sammenhenger. For eksistensavhengighet? Ja, ved å sette NOT NULL på fremmednøkkelen. Konklusjon. Unngå å bruke komposisjon i ER-modeller. Datamodellering og databaser, databasedelenElse Lervik, september 2012

  9. Identitetsavhengighet prosjekt(prosjnr, prosjektnavn, budsjett, forbruk)prosjektrapport(prosjnr*, dato, tittel, forfattere, sammendrag, innhold) Videreføres i relasjonsmodell opg SQL ved å la fremmednøkkelenvære del av primærnøkkelen.

  10. 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?I praksis ingenting. kan være NULL husstand(husstand_id, adresse, boareal)person(person_id, etternavn, fornavn, epost, husstand_id*) Datamodellering og databaser, databasedelenElse Lervik, september 2012

More Related