Representasjoner. En bro kobler begrep og representasjon. Forekomster i interesseområdet og i informasjonssystemet

Like dokumenter
Representasjoner. En bro kobler begrep og representasjon. Forekomster i interesseområdet og i informasjonssystemet

Representasjoner. Modell uten representasjoner. Modell med representasjoner. Forekomster i interesseområdet og i informasjonssystemet

Underbegreper. Homogenitetsregelen. Bruk av homogenitetsregelen

Skranker og avledninger

Skranker og avledninger

Hva vi i alle fall bør huske fra INF1050

Datamodellering med ORM

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

Integritetsregler i SQL. Primærnøkler

Utvikling fra kjernen og ut

Datamodellering med UML

Integritetsregler i SQL

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

The Unified Modeling Language - UML

Utvikling fra kjernen og ut

Datamodellering med UML (forts.)

Integritetsregler i SQL

Utvikling fra kjernen og ut

Modellenes to formål. Datamodellering med UML (forts.) Fra naturlig språk til datamodell. Figur 5-2. Ogdens trekant

Utvikling fra kjernen og ut

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

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML

Dataorientert modellering

Oppgaver Oppgave a: Sett opp mulige relasjoner

Databaser: Relasjonsmodellen, del I

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

Modellenes to formål. Datamodellering med UML (forts.) Ugrupperte og grupperte modeller. Figur 5-2. Ogdens trekant

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Den grunnleggende konstruksjonen det elementære utsagnet

INF1300 Introduksjon til databaser

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

1. SQL datadefinisjon og manipulering

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

Løsningsforslag matoppskrifter modellering

Den redundansfri datamodellen

Vegard Nossum. 21. oktober 2010

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn.

SQL: Integritetsregler, triggere og views

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Individer i interesseområdet

INF1300 Introduksjon til databaser

Miniverden og ER- modell

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen?

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

INF1050 Klasseromsoppgave Uke 6

SQL. ISO SQL-standardene. Structured Query Language. Bruk av SQL. En innledende kommentar SQL-89 SQL-92 SQL:1999

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Metaspråket for å beskrive grammatikk

Personvernsreglene. Bruk og beskyttelse av personopplysninger. Vår Policy om Personvern

Utvikling fra kjernen og ut

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

INF1300 Introduksjon til databaser

Kommunal bolig - søknad

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

Datamodellering og databaser SQL, del 2

INF1300 Introduksjon til databaser

Språk for dataorientert modellering

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

Kommunal bolig - søknad

1. Innføring i bruk av MySQL Query Browser

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker

Datamodellering og databaser SQL, del 2

Oppsummering INF1050. Hovedtemaene i INF1050. Utviklingsverktøy og plattformer. Produksjon av informasjonssystemer

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

Systemutvikling fra kjernen og ut, fra skallet og inn

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET l OSLO Det matematisk-naturvitenskapelige fakultet

Oppsummering INF1050. Hovedtemaene i INF1050. Utviklingsverktøy og plattformer. Produksjon av informasjonssystemer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

Regional planlegging og nytten av et godt planprogram. Linda Duffy, Østfold fylkeskommune Nasjonal vannmiljøkonferanse, 27.

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

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

Datamodellering og databaser SQL, del 2

Databaser kort intro. Tom Heine Nätt

Eksamen i Internetteknologi Fagkode: IVA1379

INF1300 Introduksjon til databaser: SQL Structured Query Language

Repetisjon: Normalformer og SQL

Normalisering. Hva er normalisering?

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

EKSAMEN DATABASER

Informasjonsmøte. Matematikk 1PY (Mat 1001)

HØGSKOLEN I SØR-TRØNDELAG

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

TILLITSVALGTE: Intervjuguide

Oversikt over forelesningene. Fra analyse til objektdesign. Utfordringen i å lage OO-modeller. Metode for ansvarsdrevet OO. Uke 12: Ansvarsdrevet OO:

INF1300 Introduksjon til databaser

Informasjonsbærende representasjoner

Elhub Vedlegg til BRS Målerverdirapportering, prosesspesifikke meldingsvalideringer

Tabelldefinisjon og datamanipulering

Parkeringstillatelse for forflytningshemmede - søknad

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

Informasjonsmøte. Matematikk 1P (Mat 1011) og 1T (Mat 1013)

Transkript:

En br kbler begrep g representasjn Representasjner fylkenr{id} mfatter ligger-i kmmunenr{id} Jfr. Fra kjernen g ut, fra skallet g inn kapittel 8 br Begreper Representasjner dmskranker&repr- dmskranker&repr-2 Frekmster i interessemrådet g i infrmasjnssystemet Hvrfr skille mellm virkelighet g representasjn? med etternavn Ås er eier av bil med kjennetegn DB 2345 med etternavn Dal er eier av bil med kjennetegn AX 5432 eier eier Bil Det er virkeligheten vi skal mdellere, men vi ser ikke annet enn representasjnen Vi kan studere virkelighet g representasjn uavhengig av hverandre. (Hvrdan spise en elefant... ) Hvilke regler gjelder i virkeligheten? «Ås» etternavn «Dal» «DB 2345» «AX 5432» kjennetegn Finnes det flere representasjner? Hva er den beste representasjnen? dmskranker&repr-3 dmskranker&repr-4

Om representasjner Begrepsfrekmster kan ikke lagres de data vi lagrer, er representasjnsfrekmster (verdier) Et begrep bør ikke representeres ved en representasjn fr et annet begrep Et begrep kan tilrdnes flere representasjner En mdell bør ikke innehlde samme representasjn mer enn én gang Alle representasjner spiller nøyaktig én rlle (sm altså ligger i den (eneste) bren sm fører til representasjnen) Et begrep må ha en entydig representasjn Mdellbestemt Systembestemt (OID i OO-databaser, genererte primærnøkler) Et begrep bør ha en stabil representasjn Ulike representasjner Navn, betegnelser, kder eks.: Fødselsnr, fylkenr, fylkenavn, kmmunenr Blske verdier frekmster: true, false ja, nei Målbare/tellbare størrelser frekmster: m, 75 kg, 220 V, kr 7,-, 30 Fri tekst frekmster: gd betaler, Per du lyver, nei jeg gjør ei, Representasjner av bilde g lyd dmskranker&repr-5 dmskranker&repr-6 Feilaktige brer Feilaktige brer Feilaktig mdell kmmune kmmune Våler Nes fylke Østfld Akershus fylke Telefn Jf. lærebkas figur 8-2 Våler Hedmark priv.tlf {id} fødselsnr {id} tlf_nr {id} Nes Buskerud Enda mer feilaktig mdell kmmune kmmune Våler fylke Østfld fylke Galt (?) Riktig Fr krrekt mdell, se lærebka figur 8-2 c g d Nes Våler Nes Akershus Hedmark Buskerud Kble ikke sammen en begrepstype g en representasjnstype fr en annen begrepstype dmskranker&repr-7 dmskranker&repr-8

Delvis infrmasjnsbærende representasjn Fullt infrmasjnsbærende representasjn fylkenr{id} jf. lærebkas figur 8-3 Trykkfeil i lærebka side 27: Rett navn til fylke kmmune kmmunenr2s{id} En kmmune er representert ved en delvis infrmasjnsbærende representasjn, et fylkenr (infrmasjnsbærende) g et tsifret kmmunenr (ikke infrmasjnsbærende)! Prsjektdeltakelse En prsjektdeltakelse er representert ved en fullt infrmasjnsbærende representasjn! ansattnr{id} Prsjekt prsjektnr{id} jf. lærebkas figur 8-4 dmskranker&repr-9 dmskranker&repr-0 Eksempel: EU s bilregister Eksempel: Htellrmmet Bil kjennetegn{id} reg_land Land landkde{id} rmnr{id} Rm Rm rmnr_i_etasje{id} Etasje etasjenr{id} jf. lærebkas figur 8-5 Let etter skjulte begreper i representasjnene! jf. lærebkas figur 8-6 dmskranker&repr- dmskranker&repr-2

Figur 8-8. Eksempel på kntekstsensitiv representasjn 0 Melk g melkeprdukter 0 02 Melk, søt 0 02 0 H-melk 0 02 02 Lettmelk 0 02 03 Skummet melk 0 02 04 Fløte 0%, sterilisert 0 02 05 Fløte 20 % 0 02 06 Fløte 35 % 0 02 2 H-melk /3 l 0 02 22 Lettmelk /3 l 0 02 23 Skummet melk /3 l 0 02 26 Fløte 25 % /3 l 0 03 Melk, syrnet 0 03 0 Kefir 0 03 02 Skummet kulturmelk 0 03 03 Rømme 20 % 0 03 04 Seterrømme 35 % 0 03 05 Yghurt, naturell 0 03 06 Kulturmelk 0 03 07 Yghurt med smakstilsetning 0 03 8 Lett-Yghurt Betydningen av en siffergruppe er avhengig av de fregående Fra et eksamensreglement A: Kalkulatrer ikke tillatt. Ingen andre hjelpemidler tillatt A2: Kalkulatrer ikke tillatt. Bestemte hjelpemidler tillatt A3: Kalkulatrer ikke tillatt. Alle andre hjelpemidler tillatt B: Enkel kalkulatr utdeles på eksamen. Ingen andre hjelpemidler tillatt B2: Enkel kalkulatr utdeles på eksamen. Bestemte hjelpemidler tillatt B3: Enkel kalkulatr utdeles på eksamen. Alle andre hjelpemidler tillatt C: Alle typer kalkulatr tillatt. Alle andre hjelpemidler tillatt C2: Alle typer kalkulatr tillatt. Bestemte hjelpemidler tillatt C3: Alle typer kalkulatr tillatt. Ingen andre hjelpemidler tillatt Hva betyr A,B,C,,2,3? dmskranker&repr-3 dmskranker&repr-4 Kding Hvrfr skal vi kalle H-melk 0 02 0? Hvrfr skal vi kalle Østfld 0? Hvrfr skal vi kalle emnet Systemutvikling INF050? Hvrfr skal Ingen hjelpemidler tillatt kalles A? Pr Cn Undertypen arver representasjnen til supertypen fødselsnr {id} {disjint, cmplete} Stabilt Databehandlings-esperant Srteringsmuligheter Fagsjargng Mann ektemann hustru Kvinne Unngår tilfeldige ulikheter i representasjner Plassbesparende jf. lærebkas figur 8-9 Ingen representasjn i underbegrepene! dmskranker&repr-5 dmskranker&repr-6

Figur 8-0. Indirekte representasjn gjennm et en-til-en-utsagn Gde råd m representasjner Legg ikke inn mer infrmasjn i representasjnen enn nødvendig Land landkde {id} 0: Hvedstad Basér representasjnene på ufranderlige, stabile pplysninger Vær frsiktig med kder Bruk standardiserte representasjner Det er intet mål at alt skal kunne leses ut av representasjnen! dmskranker&repr-7 dmskranker&repr-8 Figur 7-. Skrankene skal gjenspeile virkelighetens regler Frretningsregler Virkeligheten (interessemrådet) Skranker g avledninger registrering påvirkning jfr. Fra kjernen g ut, fra skallet g inn kapittel 7 Skranker Oppfatningen av virkeligheten Skranker/ Integritetsregler Infrmasjnssystem Brukere Organisasjnen dmskranker&repr-9 dmskranker&repr-20

Eksempler på skranker En persn kan bare ha én bilgisk mr En persn kan bare ha én bilgisk far En kmmune kan tilhøre bare ett fylke En kmmune skifter aldri fylkestilhørighet Du kan være gift med bare én persn Du kan bare ha én sjef En persn kan være ansatt i bare ett firma En persn må være ansatt i et firma En bil må enten eies av en persn eller ett firma En bil må eies av et firma fr å kunne være firmabil Er en persn blitt gift, kan vedkmmende aldri bli ugift igjen Typer av skranker Tilstandsskranker freskriver lvlige tilstander Begreps/Verdiskranker Multiplisitetsskranker Mengdeskranker Frekmstgenererende skranker Overgangsskranker freskriver lvlige tilstandsverganger Fastskranken Andre vergangsskranker dmskranker&repr-2 dmskranker&repr-22 Hva brukes skrankene til? Brer vs. entydighetsskranker Skranker Strukturering av databasen Deklarative integritetsregler Brukergrensesnitt Applikasjn fødselsnr {id} fødselsnr 206734568 Systemutvikler Prgrammerbare integritetsregler - i databasen (triggere) - i applikasjnsprgrammene - i brukergrensesnittene Virkelighetsmdell br 206734568 Entydighetsskranken sikrer at samme persn ikke frekmmer flere ganger i infrmasjnssystemet. Da kan fødselnr. brukes til å finne en persn dmskranker&repr-23 dmskranker&repr-24

Tid en utfrdring Prblemet med tiden er at den har en utstrekning Diskretisering: 25 26 27 28 29 220 t Et tidspunkt sm fr eksempel 25 kan brukes til å finne ne sm begynner kl 25, men en entydighetsskranke kan ikke frhindre frekmsten 26 Fr å frhindre tidsmessig verlapp må vi enten registere alle tidsbitene angi slutt-tid angi varighet Ta ikke slutt-tiden med i identifikatren! Frelesning rm{id} starttid{id} slutt_tid Entydighetsskranken i SQL CREATE TABLE tabellnavn ( attributtnavn datatype attributtnavn2 datatype NOT NULL,... CONSTRAINT skrankenavn PRIMARY KEY (attributtnavn,...), CONSTRAINT skrankenavn UNIQUE(attributtnavn,...) ); Eksempel PRIMARY KEY impliserer fylkenr fylkenavn NOT NULL. UNIQUE impliserer ikke CREATE TABLE ( NOT NULL. fylkenr CHAR(2), fylkenavn VARCHAR(25), CONSTRAINT fylkenr_pk PRIMARY KEY (fylkenr), CONSTRAINT fylkenavn_uk UNIQUE(fylkenavn) ) ; dmskranker&repr-25 dmskranker&repr-26 Mengdeskranker Eksempler på bruk av delmengdeskranken skytter død bjørn skytter død bjørn Mengdeskranker ( set-cmparisn cnstraints ) begrenser mengden av frekmster i en eller flere rller i frhld til frekmstene i andre rller a) UI Bjørn UI b) Bjørn Mengdeskranker finnes i følgende varianter: skinnselger bjørneskinn skinnselger bjørneskinn Mengdelikhetsskranke ( Equality cnstraint ) Mengdeulikhetsskranke ( Exclusin cnstraint ) Delmengdeskranke ( Subset cnstraint ) Ringskranke ( Ring cnstraint ) Ekvivalente veier ( Equivalence f path ) dmskranker&repr-27 skytter skinnselger UI bjørneskinn c) død bjørn Bjørn OBS! jf. lærebka figur 7-0 «Selg ikke skinnet før bjørnen er skutt!» dmskranker&repr-28

Realisering av delmengdeskranke i SQL Delmengdeskranken realiseres vanligvis ved hjelp av referanseintegritet. Denne deklareres sm regel i en separat ALTER TABLE av kntrllert tabell: ALTER TABLE navn_på_kntrllert_tabell ADD CONSTRAINT navn_på_regel FOREIGN KEY(fremmednøkkelattributt, fremmednøkkelattributt2) REFERENCES navn_på_kntrllerende_tabell (attr, attr2); Oppdateringer g integritetsregler Ved frsøk på ppdateringer kan vi kmme i knflikt med integritetsreglene. I så fall freligger følgende muligheter (sm deklareres i DML): Avvise ppdateringen Gjennmføre ppdateringen på en slik måte at integritetsreglene fremdeles er ppfylt (mulig fr referanseintegritet) Eksempel fylkenr fylkenavn kan utelates da antas primærnøkkelen Eksempel: Frsøke å fjerne et fylke fra -tabellen Avvisning med feilmelding UI NOT NULL NOT NULL Fjerne fylket i -tabellen, g samtidig alle kmmunene i fylket i fylkenr kmmunenr2s kmmunenavn avfallsmengde innbyggertall Sette fremmednøkkelen fylkenr i til NULL ALTER TABLE ADD CONSTRAINT fylkenr_fk FOREIGN KEY(fylkenr) REFERENCES ; dmskranker&repr-29 dmskranker&repr-30 Handlingsmønster ved vertredelse av referanseintegritet T prinsipper fr kntrll av verdier ALTER TABLE navn på kntrllert tabell ADD CONSTRAINT navn på regel FOREIGN KEY(fremmednøkkelattributt) REFERENCES navn_på_kntrllerende_tabell ON DELETE referential_actin ; fødselsnr {id} kjønnskde {fk} Kjønn kjønnskde {id} Kntrlleres med referanseintegritet eller UPDATE NO ACTION (gi feilmelding) CASCADE (fjern gså kntrllerte linjer) SET NULL (sett fremmednøkkel til NULL) SET DEFAULT (sett fremmednøkkel til default -verdi) I Oracle: bare ON DELETE CASCADE fødselsnr {id} kjønnskde:enum{m,k} {fk} jf. lærebka figur 7-6 Kntrlleres med CHECK Kjønn kjønnskde:enum{m,k} {id} dmskranker&repr-3 dmskranker&repr-32

Begrepsskranke Ringskranker Kjønn kjønnskde:enum{m,k} {id} Lvlige verdier fr kjønnskde er M eller K CREATE TABLE ( kjnn char()constraint kjnn_ck CHECK (kjnn in ('M', 'K')) ) CREATE TABLE ( kjnn char(), CONSTRAINT kjnn_ck CHECK (kjnn in ('M', 'K')) ) fr irrefl, asym, intrans? mr Anne Anne Eva Eva Anne Kvinne datter Anne Eva Anne Gr Gr Jf. Figur 7-4. Slektstavlemdellen frhindres med irrefl frhindres med asym (inkluderer irrefl) frhindres med intrans dmskranker&repr-33 dmskranker&repr-34 Eksempel på ekvivalente veier Båt båt Køye køyenr {id} Avgang avgang båt dag passasjer {Køyeplass.køye.båt = Køyeplass.avgang.båt} Køyeplass dat {id} køye båt Dag KH 03 060 KH 32 pnr00 PR 03 060 PR 32 pnr09 KH 03 060 KH 34 pnr5 KH 03 0602 KH 32 pnr27 Passasjer passasjernr {id} Avledninger g frekmstgenererende skranker Jf. lærebka figur 7-5. dmskranker&repr-35 dmskranker&repr-36

Transitivt avledet utsagn Ingen avledninger fylkenr {id} jf. lærebka figur 7-8 betjenes av {betjenes_av = ppdragsgiver.fylke} Eksempel på avledning fylkenr {id} vertsfylke Frmen på diagrammet er ikke tilstrekkelig til å avgjøre m det freligger en avledning! jf. lærebka figur 7-9 selskap selskap kmmunenr {id} ppdragsgiver Avfallsselskap selskaps kmmunenr {id} 0: ppdragsgiver Avfallsselskap selskaps dmskranker&repr-37 dmskranker&repr-38 Refleksivitet, symmetri g transitivitet Frekmstgenererende ringskranker refl, sym, trans? erstattes V V V Del delnr {id} erstatning V V V jf. lærebka figur 7-20 fylkenr {id} kmmunenr {id} Eksempel på akkumulering 0: avfallsmengde jf. lærebka figur 7-22 {fylkesavfallsmengde = sum(.kmmune.avfallsmengde) } Mengde #tnn {id} fylkesavfallsmengde dmskranker&repr-39 dmskranker&repr-40

Eksempel på fastskranke Overgangsskranker transitin cnstraints fylkenr {id} fylke {immutable } : kmmune 0: kmmunenr2s {id} cmpsitin jf. lærebka figur 7-23 Fastskranken uttrykker at en kmmune ikke kan flytte seg fra et fylke til et annet dmskranker&repr-4 dmskranker&repr-42 Figur 7-24. Eksempel på beskrivelse av vergangsskranker Et UML tilstandsdiagram ( state diagram ) Ugift start Overgangsskranker må realiseres ved hjelp av triggere giftemål giftemål giftemål Skilt skilsmisse Gift dødsfall Enke/ enkemann En velppdragen vaktbikkje hever datakvaliteten! dmskranker&repr-43 dmskranker&repr-44