LC238D Datamodellering og databaser Else Lervik, september 2012 Forelesning 6, Uke 39 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

Tabeller av objekter Klassen ArrayList
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Ebus Management Center En liten bruksanvisning for de enkleste funksjonene.
Hvordan er et atom bygd opp?
Nye Olweus dataweb en bruksanvisning Generell norsk (Q68T)
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
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.
Fremtidsbilder og familiens betydning Noen hovedfunn og perspektiver.
Mange til mange sammenhengen
Programmering i ActionScript - hva er det, og hvordan undervise?
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;
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Avansert SQL og problemløsning
1 Objektorienterte databaser - 6 Arne Maus. 2 Problemstillinger, hvorfor OO- databaser ?  dagens relasjonsdatabaser (RDB) passer ikke for alle anvendelser.
Korteste vei. LOG530 Distribusjonsplanlegging 2 2 Ofte står en overfor ønsket om å finne korteste kjørerute fra et gitt utgangspunkt til et ønsket bestemmelsessted.
SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3
Datamodellering og databaser Else Lervik, oktober 2011 Forelesning 9, uke 41 SQL, del 2 Eksempelbaseside 2 Virtuelle.
Databaseteori.
Normalformer – avleggs?
LC238D Datamodellering og databaser Else Lervik, november 2012 Forelesning 12, uke 45 Transaksjoner og flerbrukerproblematikk.
Prototyping & Use Case Software Engineering Gruppe
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.
Systemmodeller In 140 Sommerville kap. 7. Mål Forstå hensikten med kontekstmodell Forstå ideene bak –oppførselsmodellering –datamodellering –objektmodellering.
Reiserute med maksimal opplevelse. LOG530 Distribusjonsplanlegging 2 2 I følgende eksempel er det en turist som ønsker å velge kjøreruten med mest severdigheter,
Inndelingsproblemer. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes veistasjoner som skal betjene 8 distrikter. De 4 aktuelle lokaliseringene.
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
Relasjonsmodellen, del II
Normalisering Framstillingen avviker noe fra læreboka,
Se ellers læreboka, kap , side
Klargjøring fra forrige gang
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ø.
LC238D Datamodellering og databaser Else Lervik, september 2011 Forelesning 6, Uke 38 Objektorientering i ER-modeller.
Presentasjon av hovedprosjekt 23E Student:Veileder:Oppgavestiller: Ronny A. HansenArne B. MikalsenNordborg Kristen Videregående Skole
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.
Skåring av SSIS-skjemaene Frode Svartdal UiT / Diakonhjemmet høgskole.
Lønnssystem ► Hvorfor lønnssystem?  Begge tariffavtalene er minstelønnsavtaler, og basert på at de lokale parter skal fremforhandle lokal lønn basert.
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
Structured Query Language Kræsj-kurs
Bygge ontologier med ZTM Et lite eksempel med prosjekter, personer og dokumenter.
Nettbasert læringssystem Evaluering av LUVIT i bruk ved HiO
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
Fødselsdato (dmå) er født har lønn Ansatt (ansnr) Beløp (NKr)+ Telefon
Databaser II – Online bokdatabase
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
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.
Kapittel 6 Kveldsmat hos familien Dalilah.
INF1300 Introduksjon til databaser
INF1300 Introduksjon til databaser
Utskrift av presentasjonen:

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

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? 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, 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 spesialisering generalisering 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, 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 (NEI), eventuelt ved generering av databasen med SQL (NEI)? Men – vi skal i siste del av kurset se hvordan vi kan programmere dette som 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, 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 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 dette som et krav i databasen.

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..*)

Datamodellering og databaser, databasedelen Else Lervik, september 2012 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 delt_spes_foredrag(sesjons_id*, delt_id*) delt_paneldeb(sesjonsid*, delt_id*)

Datamodellering og databaser, databasedelen Else Lervik, september 2012 side 8 Komposisjon avis(avisnavn,....) annonse(annonse_nr,...., avisnavn*) 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? 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.

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

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