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

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
v/Tormod Engebu, IKAVA KDRS 13. november 2013
Ebus Management Center En liten bruksanvisning for de enkleste funksjonene.
Hvordan er et atom bygd opp?
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
4 Bruk øynene riktig.
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
1 Sannsynlighetsregning Gjenfinningssystemer og verktøy II Jon Anjer.
Mange til mange sammenhengen
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Gjenfinningssystemer og verktøy II
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Normalisering og andre modelleringsmetoder
Kontrakter i Smidig systemutvikling
Avansert SQL og problemløsning
5 Øk lesesynsfeltet. 5.1 Lesesynsfeltet, lesehastigheten og oppfatningen •Når du fikserer blikket på et sted i teksten, kan du bare lese bokstavene og.
SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3
Databaser Verktøybok om Access med innslag av Frontpage: Snarveien til Access.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Databaseteori.
1 Kap 04 Datamodellering. 2 Datamodellering -Et språk for å analysere og beskrive virkeligheten. -En metode for å beskrive naturlige sammenhenger i data.
LC238D Datamodellering og databaser Else Lervik, november 2012 Forelesning 12, uke 45 Transaksjoner og flerbrukerproblematikk.
Enkel forklaring av hvordan bygge nettverk i euroSMART!
Unified Process – Elaboration Iterasjon 3
Databasehåndtering med MySQL
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning 7 Kai Olav Ellefsen. 2 I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010.
Datamodellering Man is a knot, a web, a mesh into which relationships are tied. Only those relationships matter Saint-Exupéry.
Relasjonsmodellen og relasjonsalgebra
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Datamodellering og databaser Else Lervik, oktober 2012 Forelesning 11, uke 44 Å programmere databasetjeneren – JavaDB.
Relasjonsmodellen, del II
Normalisering Framstillingen avviker noe fra læreboka,
Se ellers læreboka, kap , side
LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 Objektorientering i ER-modeller.
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Siste forelesning ER/EER-modellering
Mer om programmering av aggregeringer Repetisjon: Komposisjon og aggregering En register-klasse: modellering En register-klasse: implementering Sortering.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
Presentasjon av hovedprosjekt 23E Student:Veileder:Oppgavestiller: Ronny A. HansenArne B. MikalsenNordborg Kristen Videregående Skole
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
Kap 04 Datamodellering. Datamodellering -Et språk for å analysere og beskrive virkeligheten. -En metode for å beskrive naturlige sammenhenger i data som.
SQLHiA Transaksjoner. SQLHiA TransaksjonDefinisjon En transaksjon er en serie av en eller flere SQL-statement som til sammen danner en logisk enhet. Med.
Structured Query Language Kræsj-kurs
Bygge ontologier med ZTM Et lite eksempel med prosjekter, personer og dokumenter.
ER-modellen, notasjon ENTITETS- Attributter TYPE Relasjon
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
storoppgave OPPGAVE3: bibliotekdatabase
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Databaser II – Online bokdatabase
Linq To SQL Fagdag 20. November DataContext  DataContexten er mappingen mot databasen –Generer objekter for alle entiteter (tabeller), med properties.
INF 4130 Eksamen 2008 Gjennomgang.
Oversettelsesminne – del II
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
INF3100 – – Ellen Munthe-Kaas Indeksering UNIVERSITETET I OSLO © Institutt for Informatikk Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10,
Eksempel: Sletting ved tynn indeks Slett post med a = 60 –Ingen endring nødvendig i indeksen. Slett post med a = 40 –Den første posten i blokken er blitt.
Se ellers læreboka, kap , side
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
RORMANN Opplæring.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Systemmodeller In 140 Forelesning nr. 9 Sommerville kap. 7.
INF1300 Introduksjon til databaser
INF1300 Introduksjon til databaser
Utskrift av presentasjonen:

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

Datamodellering og databaser, databasedelen Else Lervik, september 2011 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. Sett på UNIQUE-krav i CREATE TABLE-setningen for å sikre entydigheten. 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. 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?

Datamodellering og databaser, databasedelen Else Lervik, september 2011 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 insert into person values(100, ’Olsen’, ’Arne’, ’xxx’) insert into elev values(100, ’ ’, ’bokmål’) select * from person, elev where person.person_id = elev.person_id;

Datamodellering og databaser, databasedelen Else Lervik, september 2011 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? Nei. Vi skal senere se hvordan slike krav kan programmeres som del av database-skjemaet. 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, databasedelen Else Lervik, september 2011 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? Nei. Vi skal senere se hvordan slike krav kan programmeres som del av database-skjemaet.

Restriksjoner på spesialiseringen kan kombineres Datamodellering og databaser, databasedelen Else Lervik, september 2011 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..*)

Datamodellering og databaser, databasedelen Else Lervik, september 2011 side 7 Et større eksempel 3..7 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*, delt1*, delt2*, …, delt7*)) (Deltakere på fellesforedrag trenger ikke registreres)

Datamodellering og databaser, databasedelen Else Lervik, september 2011 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?

avis(avisnavn,....) annonse(annonse_nr,...., avisnavn*) Forskjell mellom de to Avis-Annonse- modellene? Figuren til høyre: Annonse 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.

Datamodellering og databaser, databasedelen Else Lervik, september 2011 side 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? Ingenting / svært lite. husstand(husstand_id, adresse, boareal) person(person_id, etternavn, fornavn, epost, husstand_id*) kan være NULL