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



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

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

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Oppgaver Oppgave a: Sett opp mulige relasjoner

1. SQL datadefinisjon og manipulering

Miniverden og ER- modell

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Dagens program. Kunnskapsorganisasjon og gjenfinning 1. Spørring mot databaser: SQL 2 - Spørring mot flere tabeller

Normalisering. Hva er normalisering?

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Databaser: Relasjonsmodellen, del I

Normalisering. Hva er normalisering?

1. Datamodellering Kommentarer til læreboka

Repetisjon: Normalformer og SQL

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Datamodellering og databaser SQL, del 2

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Datamodellering og databaser SQL, del 2

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Datamodellering og databaser SQL, del 2

HØGSKOLEN I SØR-TRØNDELAG

Integritetsregler i SQL. Primærnøkler

Øvingsoppgave uke 3. Fanger i fengsel

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

En liten rekap. Spørrespråk. I dag SELECT

1. Innføring i bruk av MySQL Query Browser

Dette er vår første obligatoriske oppgave i kurset Moderne Databaseteknologi.

Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

INF1300 Introduksjon til databaser

1. Designe ER-modeller med MS Visio

HØGSKOLEN I SØR-TRØNDELAG

Andre sett obligatoriske oppgaver i INF3100 V2013

Hvordan designe en ER-modell med MS-VISIO

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsforslag matoppskrifter modellering

Datamodellering 101 En tenkt høgskoledatabase

Integritetsregler i SQL

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

2 of :19 1 of :19 [Kurssidene] [ ABI - fagsider bibin ]

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

HØGSKOLEN I SØR-TRØNDELAG

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Utvikling fra kjernen og ut

Integritetsregler i SQL

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

1. SQL spørringer mot flere tabeller

Del 1: ER-modellering og databaseteori

Metaspråket for å beskrive grammatikk

Kunnskapsorganisasjon og gjenfinning 1

Systemutvikling fra kjernen og ut, fra skallet og inn

Etternavn Fornavn Født Død Annet Felt

Utvikling fra kjernen og ut

ORDBMS og OODBMS i praksis

Løsningsforslag eksamen i IN

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)

Tilkobling og Triggere

LO118D Forelesning 3 (DM)

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

Databaser & objektorientering.

HØGSKOLEN I SØR-TRØNDELAG

Videregående programmering 6

SQL Introduksjonskurs. Oversikt

Løsningsforlag for oblig 1, databaser 2010

Normalisering. Hva er normalisering?

5602 DATABASER Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.

Oppgave 1 (Opprett en database og en tabell)

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Oppgave 1 ER- og relasjonsmodell 10 %

UNIVERSITETET I OSLO

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

SELECT DISTINCT Fornavn, Etternavn, Programtittel FROM Program P, Medvirkende M, Deltagelse D. SELECT Tilgjengelighet FROM Program

Fakultet for samfunnsfag Bibliotek- og informasjonsvitenskap Kunnskapsorganisasjon og gjenfinning 1.2

Modeller for design av Web-Applikasjoner

HØGSKOLEN I SØR-TRØNDELAG

Fag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010

Utvikling fra kjernen og ut

Transaksjoner og flerbrukerproblematikk. Transaksjoner

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

SQL Structured Query Language

EKSAMEN 6102 / 6102N DATABASER

Datamodellering med E/R

Datamodellering noen temaer

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008

Hvor mye er 1341 kr delt på 2?

1. Relasjonsmodellen Kommentarer til læreboka

Databaser kort intro. Tom Heine Nätt

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller

Transkript:

LC238D Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models Oppsummering: Å oversette fra ER- til relasjonsmodell side 2 Spesialisering og generalisering side 3-7 Komposisjon side 8 Aggregering side 9 Se ellers læreboka, side 99-22 Forelesning 6, Uke 38 Oppsummering: Å oversette fra ER-modell til relasjonsmodell. 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. Sett på UNIQUE-krav i CREATE TABLE-setningen for å sikre entydigheten. Se side 93 i læreboka. 3. Oversett en-til-mange-sammenhengstyper ved å legge inn fremmednøkkel på mange-siden i forholdet. Se side 95. 4. Mange-til-mange-sammenhengstyper gir alltid opphav til en egen relasjon ("koplingstabell"). Se side 97-99. Fremmednøkler fra begge sidene kommer inn og danner til sammen primærnøkkelen i en slik relasjon. 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. (Alternativt kan man ha løpenummer som primærnøkkel. Fremmednøklene må likevel være med. Sett da på UNIQUE-krav i CREATE TABLE-setningen, eksempel: CONSTRAINT unique_constr UNIQUE(lev_nr, prod_nr))) 5. I dag kommer flere regler: Hvordan overføre objektorientering fra UML-diagrammet til relasjonsmodellen? side 2

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) elev(person_id*, fodselsdato, morsmaal) insert into person values(00, Olsen, Arne, xxx ) insert into elev values(00, 0092002, bokmål ) select * from person, elev where person.person_id = elev.person_id; Skisser SQL-setninger for innlegging av ny forelder/laerer/elev uthenting av all info om en forelder/laerer/elev side 3 Overlappende / disjunkte delmengder {AND} {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? Nei. Vi skal senere se hvordan slike krav kan programmeres som person(person_id, etternavn, fornavn, adresse) del av database-skjemaet. forelder(person_id*, telefon_jobb, telefon_hjemme, stilling) elev(person_id*, fodselsdato, morsmaal) side 4 2

Total/delvis deltakelse {delvis} 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? Nei. Vi skal senere se hvordan slike krav kan programmeres som person(person_id, etternavn, fornavn, adresse) del av database-skjemaet. forelder(person_id*, telefon_jobb, telefon_hjemme, stilling, status) elev(person_id*, fodselsdato, maalform) side 5 Restriksjoner på spesialiseringen kan kombineres Disjunkt (OR) Overlappende (AND) Delvis En superentitet deltar i 0 eller subentitetstype (0..) En superentitet kan, men behøver ikke, delta i eller flere subentitetstyper () Total En superentitet deltar i eksakt subentitetstype () En superentitet deltar i minst subentitetstyper (..*) side 6 3

Et større eksempel 3..7..* Deltaker +delt_id {PK} +deltart i +epost +leder Sesjon +sesjons_id {PK} +tittel +start_tid +varighet {total, OR} deltaker(delt_id, fornavn, etternavn, epost) sesjon(sesjons_id, tittel, start_tid, varighet, ledes_av_delt_id*) paneldebatt(sesjons_id*) foredrag(sesjons_id*, sammendrag) fellesforedrag(sesjons_id*, aapent) spesialforedrag(sesjons_id*, maalgruppe) deltaker_spesialforedrag(delt_id*, sesjons_id*) deltaker_paneldebatt(delt_id*, sesjons_id*) (alternativt: paneldebatt(sesjons_id*, delt*, delt2*,, delt7*)) +deltar i - Paneldebatt Foredrag -sammendrag {total, OR} (Deltakere på fellesforedrag trenger ikke registreres) Fellesforedrag -aapent Spesialforedrag -maalgruppe side 7 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. avis(avisnavn,...) annonse(annonse_nr,..., avisnavn*) NOT NULL Identitetsavhengighet Forskjell mellom de to - - modellene? Støtte i relasjonsmodellen og SQL for komposisjon? For eksistensavhengighet? For identitetsavhengighet? prosjekt(prosjnr, prosjektnavn, budsjett, forbruk) prosjektrapport(prosjnr*, dato, tittel, forfattere, sammendrag, innhold) side 8 4

avis(avisnavn,...) annonse(annonse_nr,..., avisnavn*) Forskjell mellom de to -- modellene? Figuren til høyre: kan inngå i andre sammenhenger, det er (vanligvis) ikke tilfelle for figuren til venstre. Støtte i relasjonsmodellen og SQL for komposisjon? ON CASCADE DELETE. Ikke mulig å hindre at annonse_nr blir fremmednøkkel. For eksistensavhengighet? Sett NOT NULL på fremmednøkkelen. For identitetsavhengighet? La fremmednøkkelen være en del av primærnøkkelen. 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? Ingenting / svært lite. Husstand +husstand_id {PK} +boareal 0.. +består_av kan være NULL +epost husstand(husstand_id, adresse, boareal) person(person_id, etternavn, fornavn, epost, husstand_id*) side 0 5