Dataorientert modellering

Størrelse: px
Begynne med side:

Download "Dataorientert modellering"

Transkript

1 INF2120 Dataorientert modellering Ragnar Normann 1. mars 2006 INF2120 Prosjekt i modellering 1

2 Dataorientering og UML UML har som utgangspunkt et objektorientert syn på tilværelsen hvor oppførsel og samspill mellom objekter er det sentrale UML beskriver datastrukturen i klassediagrammer Et UML klassediagram gir en oversikt over klassene i systemet og de statiske relasjonene mellom dem Metoder for å analysere datastruktur eksisterte lenge før UML ble til Den desidert mest utbredte av disse dataorienterte metodene er ER (Entity-Relationship) som ble introdusert av Chen i 1976, og som siden har kommet i et utall av dialekter UML klassediagrammer kan godt betegnes som en ny ER-dialekt Den vesentligste forskjellen er at UML klassediagrammer, i tillegg til å angi attributter, også inneholder navn på metoder i klassene Bruken av UML øker kraftig, og UML klassediagrammer er i ferd med å bli den dominerende ER-dialekten (Mange vil si: ta over for ER) 1. mars 2006 INF2120 Prosjekt i modellering 2

3 ORM (Object-Role Modeling) Selv om ER har vært den desidert mest utbredte metoden for å utarbeide datamodeller, er den ikke nødvendigvis den beste Rollemodellering (Engelsk «Object-Role Modelling», forkortet ORM) er en annen metode ORM er mer detaljert og har større utsagnskraft enn ER Det betyr at vi kan utrykke mer kompliserte sammenhenger og skranker med ORM enn det vi kan gjøre med ER, og dermed med tradisjonelle UML klassediagrammer I tillegg inneholder ORM en metode for å kvalitetssikre klassediagrammene, en metode som med fordel kan overføres til UML 1. mars 2006 INF2120 Prosjekt i modellering 3

4 OCL Object Constraint Language OCL er et språk for å uttrykke skranker som ikke lar seg uttrykke i de «ordinære» UML-diagrammene OCL er beskrevet i en bok av Jos Warmer og Anneke Kleppe: The Object Constraint Language Precise Modelling with UML Der forelår de noen utvidelser av UML klassediagrammer for å gjøre dem tilnærmet like uttrykkskraftige som ORM-diagrammer Formålet med denne forelesningen er å vise noen av ideene bak ORM og hvordan de ved bruk av OCL kan inkorporeres i UML klassediagrammer På den måten kan vi sørge for at ikke UML klassediagrammer er dårligere enn tidligere tiders datamodelleringsteknikker 1. mars 2006 INF2120 Prosjekt i modellering 4

5 ORM og 100%-prinsippet ORM er en metode for å beskrive informasjonsstruktur ORM baserer seg på 100%-prinsippet: Det er alltid mulig å gi en endelig og fullstendig tekstlig beskrivelse av UoD, dvs. den delen av virkeligheten som interesserer oss (UoD = Universe of Discourse) En slik beskrivelse kalles en informasjonsmodell Informasjonsmodellen kan brukes som forskrift for et datasystem og kalles da datasystemets begrepsmessige skjema Siden utgangspunkt og mål er tekstlige beskrivelser, følger det at ORM er vitenskapelig forankret i (formell) lingvistikk Resultatet av en ORM-analyse er en grafisk fremstilling av en tekstlig beskrivelse av informasjonsstrukturen 1. mars 2006 INF2120 Prosjekt i modellering 5

6 NIAM en ORM-dialekt NIAM er den eldste ORM-dialekten NIAM ble utviklet i Nederland av en gruppe ledet av G.M.Nijssen De fleste tror at NIAM betyr «Nijssen's Information Analysis Method» Nijssen selv hevder imidlertid at NIAM er et akronym for «Natural language Information Analysis Methodology» Vi skal bruke en revidert versjon av NIAM fra 1982 som vår ORMdialekt og se hvordan denne kan uttrykkes i UML syntaks En konsekvens av at NIAM (og alle senere ORM-dialekter) er basert på naturlig språk, er at en NIAM modell er en grafisk fremstilling av vanlige setninger 1. mars 2006 INF2120 Prosjekt i modellering 6

7 Entiteter En entitet er en gjenstand, egenskap eller hendelse i interesseområdet vårt Eksempler: Sigrid Undset Bilen min Studielånet ditt INF2120 Dagen i dag Rød Entiteter beskrives vanligvis med substantiver, men pronomener og adjektiver forekommer også I objektorientert modellering (som UML) modelleres entiteter som objekter én entitet svarer til ett objekt og omvendt 1. mars 2006 INF2120 Prosjekt i modellering 7

8 Begreper Det første, og vanskeligste, trinnet i modelleringsprosessen er å putte entitetene i interesseområdet inn i båser eller grupper En slik gruppe entiteter kalles en entitetstype Navnet på en entitetstype kalles et begrep (På engelsk: concept) Eksempler på begreper Person Ansatt Lån Farge 1. mars 2006 INF2120 Prosjekt i modellering 8

9 Eksempel på et «vanskelig» begrep Hvilke entiteter i interesseområdet omfattes av begrepet «bok»? Har du lest Peer Gynt? Når ble boken med ISBN utgitt? Hvem har lånt eksemplar 5 av denne boken? Merk: Begrepers innhold er avhengig av hva som er vårt interesseområde 1. mars 2006 INF2120 Prosjekt i modellering 9

10 Representasjonstyper Vanligvis kan ikke entiteter lagres i databasen De data vi lagrer, er representasjoner av entitetene, og disse representasjonene må tilhøre en representasjonstype for det begrepet som entiteten tilhører Et begrep kan tilordnes flere representasjonstyper Eksempler: Personer kan representeres med navn og/eller fødselsnummer Biler kan representeres med bilnummer eller chassisnummer 1. mars 2006 INF2120 Prosjekt i modellering 10

11 Ogdens trekant 1. mars 2006 INF2120 Prosjekt i modellering 11

12 Roller Når vi beskriver sammenhenger mellom begreper, sier vi at begrepene spiller roller overfor hverandre Eksempel: Anta at vi har de to begrepene «person» og «bil», og at personer kan eie biler Da sier vi at person spiller rollen «eier» overfor bil, og at bil spiller rollen «er eid av» overfor person Roller uttrykkes vanligvis med verb og/eller preposisjoner 1. mars 2006 INF2120 Prosjekt i modellering 12

13 Begreper tegnet i NIAM og UML I NIAM tegnes begreper som heltrukne sirkler og representasjoner som stiplede sirkler Person Fødselsnr UML har i utgangspunktet ikke noe symbol for begreper Dette løser vi med å definere en stereotypi med den egenskap at den ikke kan ha andre attributter enn sin representasjon («id») Person Fødselsnr {id} 1. mars 2006 INF2120 Prosjekt i modellering 13

14 Broer I NIAM kalles sammenhengen mellom et begrep og dets representasjon en bro (broen går mellom modell og representasjon), og vi tegner den slik: Person med for Fødselsnr Rollene i broer er redundante, og vi kan alltid bruke «med» og «for» Broen kan leses begge veier: Begrep med representasjon Representasjon for begrep UML har ikke noen konstruksjon som tilsvarer broer I et er broen implisitt definert ved at alle attributtene inngår i identifikatoren Person Fødselsnr {id} 1. mars 2006 INF2120 Prosjekt i modellering 14

15 Broer på kortform Siden rollene i broer er redundante, tillater vi oss ofte å la være å tegne broene Da skriver vi representasjonstypen i parentes etter (under) begrepsnavnet Med denne kortformen blir et begrep i NIAM svært likt et i UML Person (Fødselsnr) tilsvarer Person Fødselsnr {id} 1. mars 2006 INF2120 Prosjekt i modellering 15

16 Faktatyper Det at personer eier biler, og at biler eies av personer, tegner vi slik: Person eier er eid av Bil En slik sammenheng mellom to begreper hvor begrepene spiller hver sin rolle overfor hverandre, kalles en binær faktatype Slike «kjøttben» er de viktigste byggeklossene i NIAM (ORM) I vår variant av UML, som vi skal kalle -UML, ser det slik ut: Person 1 0..* eier er eid av Bil 1. mars 2006 INF2120 Prosjekt i modellering 16

17 Faktasetningers dype struktur Person eier eies av Bil med på Person med fødselsnummer eier bil med registreringsnummer CE76543 Bil med registreringsnummer CE76543 eies av person med fødselsnummer med på De to setningene har samme meningsinnhold, dvs. samme dype struktur Fødselsnr Reg.- nr 1. mars 2006 INF2120 Prosjekt i modellering 17

18 Dyp struktur tegnet med UML--klasser Person eier eies av Bil med på Slik ser samme setning ut i UML: Person Fødselsnr{id} 1 0..* eier er eid av Bil Reg.- nr{id} De to tegningene uttrykker akkurat det samme med på Fødselsnr Reg.- nr 1. mars 2006 INF2120 Prosjekt i modellering 18

19 Syntaksregler i NIAM og -UML Del 1: Begreper og roller Et begrep tegnes i NIAM som en heltrukket sirkel eller ellipse med et navn inni I UML er et begrep det samme som en -stereotypi Samme begrep kan forekomme vilkårlig mange ganger i den ferdige modellen (både i NIAM og UML) Dette er et tegneteknisk hjelpemiddel, og to begreper med samme navn betegner samme begrep I NIAM er en rolle et rektangel med en tekst i I UML er en rolle en kommentar skrevet utenfor klassen knyttet til den linjen som representerer den faktatypen som rollen inngår i En rolle skal knyttes til nøyaktig ett begrep I NIAM har i tillegg også hver representasjonstype nøyaktig en rolle I NIAM tegnes tilknyttingen som en heltrukken linje/kurve mellom randen på rollen og randen på begrepet 1. mars 2006 INF2120 Prosjekt i modellering 19

20 Syntaksregler i NIAM og -UML Del 2: Faktatyper I NIAM gjelder følgende regler: En faktatype tegnes som en eller flere roller stilt ved siden av hverandre (det kan være vilkårlig mange roller i en faktatype) Et begrep skal ha minst en rolle som inngår i en faktatype (vi sier at begrepet deltar i faktatypen) Et begrep kan ha vilkårlig mange roller og altså delta i vilkårlig mange faktatyper (og broer) Et begrep kan ha flere roller i samme faktatype Disse rollene må da ha forskjellig tekst I UML gjelder følgende: Binære faktatyper, dvs faktatyper med to roller, tegnes som en heltrukken linje mellom de to klassene (begrepene) som spiller disse rollene Lengre faktatyper må særbehandles (vi tar det problemet senere) 1. mars 2006 INF2120 Prosjekt i modellering 20

21 Elementære setninger En setning kalles elementær hvis den ikke kan deles opp uten å miste meningsinnhold Eksempel: Setningen «Mons spiser grøt og drikker melk» kan deles opp i to elementære setninger «Mons spiser grøt» «Mons drikker melk» De to siste setningene kalles binære fordi de binder sammen to entiteter, hhv. «Mons» med «grøt» og «Mons» med «melk» Binære setninger er alltid elementære Eksempel: Maksimumstemperaturen i Narvik var -1 C Dette er en elementær (ternær) setning som binder sammen et sted, et tidspunkt og en temperatur 1. mars 2006 INF2120 Prosjekt i modellering 21

22 Fakta (setningsforekomster) og semantikkregelen for faktatyper Alle faktatyper beskriver den dype strukturen i en gruppe med setningsforekomster Semantikkregelen for NIAM-modeller: Alle faktatyper i modellen skal være slik at alle setningsforekomster som passer i den, skal være elementære setninger Konsekvens: Ingen faktatype skal kunne erstattes av faktatyper som alle er kortere enn den opprinnelige faktatypen Merk: Siden vi i UML bare kan tegne binære setninger (assosiasjoner), er semantikkregelen automatisk oppfylt i -UML 1. mars 2006 INF2120 Prosjekt i modellering 22

23 Entydighetsskranker Person (navn) Eier Eies av Bil (reg.nr) Eva Nils Else Eva Per Hans Liv JC BC DJ KE AA BC DE Det som står under entydighetspilen, kan ikke gjentas 1. mars 2006 INF2120 Prosjekt i modellering 23

24 Eksempel: Ekteskap Kvinne (F.nr) er gift med er gift med Mann (F.nr) Hvor skal pilen(e) stå? Skriv forekomster! 1. mars 2006 INF2120 Prosjekt i modellering 24

25 Monogami Kvinne (F.nr) er gift med er gift med Mann (F.nr) Kvinne Fødselsnr{id} er gift med er gift med Mann Fødselsnr{id} Én til én-faktatype 1. mars 2006 INF2120 Prosjekt i modellering 25

26 Polygyni Kvinne (F.nr) er gift med er gift med Mann (F.nr) Kvinne Fødselsnr{id} 0..* 0..1 er gift med er gift med Mann Fødselsnr{id} Mange til én-faktatype 1. mars 2006 INF2120 Prosjekt i modellering 26

27 Polyandri Kvinne (F.nr) er gift med er gift med Mann (F.nr) Kvinne Fødselsnr{id} * er gift med er gift med Mann Fødselsnr{id} Én til mange-faktatype 1. mars 2006 INF2120 Prosjekt i modellering 27

28 Polygami Kvinne (F.nr) er gift med er gift med Mann (F.nr) Kvinne Fødselsnr{id} 0..* 0..* er gift med er gift med Mann Fødselsnr{id} Mange til mange-faktatype 1. mars 2006 INF2120 Prosjekt i modellering 28

29 Entydighet et enkelt eksempel (NIAM) En person kan ha ett navn, men ikke flere En person kan ha én eller flere telefoner, og en telefon kan være for én eller flere personer En person kan ha én eller flere biler, men hver bil kan bare ha én eier Person (F.nr) har med har på for for Navn (Navn) Tlf. (Tlfnr) Bil (Reg.- nr) 1. mars 2006 INF2120 Prosjekt i modellering 29

30 Entydighet et enkelt eksempel (-UML) En person kan ha ett navn, men ikke flere En person kan ha én eller flere telefoner, og en telefon kan være for én eller flere personer En person kan ha én eller flere biler, men hver bil kan bare ha én eier Person F.nr{id} har 0..* 0..* 0..* med for 0..1 har Navn 0..1 Navn{id} på 0..* for Tlf. Tlfnr{id} Bil Reg.- nr{id} 1. mars 2006 INF2120 Prosjekt i modellering 30

31 Påkrevd (=total) rolle (NIAM) Alle personer skal ha et navn har på Navn (Navn) Person (F.nr) med har for for Tlf. (Tlfnr) Bil (Reg.- nr) Alle forekomster av begrepet finnes i denne rollen 1. mars 2006 INF2120 Prosjekt i modellering 31

32 Påkrevd (=total) rolle (UML) Alle personer skal ha et navn Person F.nr{id} har 0..* 0..* 0..* med for 0..1 har Navn 1..1 Navn{id} på 0..* for Tlf. Tlfnr{id} Bil Reg.- nr{id} I UML angies påkrevde roller som minimumskardinalitet 1 1. mars 2006 INF2120 Prosjekt i modellering 32

33 Faktatypers aritet (lengde) (gjelder bare NIAM) Person er gift Unær faktatype (aritet=1) Person ansatt i med ansatt Firma Binær faktatype (aritet=2) ble ansatt i er ansettelsesdato med ansatt Ternær faktatype (aritet=3) Person Dag Firma 1. mars 2006 INF2120 Prosjekt i modellering 33

34 Entydighet i lange faktatyper ble målt ble målt ble resultat Temperaturen kan måles flere steder samtidig Tid Sted Temp. Den kan også måles flere ganger på samme sted På samme tidspunkt kan flere steder ha samme temperatur Samme sted kan ha samme temperatur på flere tidspunkt På samme tid og sted kan det bare være en temperatur 1. mars 2006 INF2120 Prosjekt i modellering 34

35 Regler for entydighetsskranker Alle faktatyper skal ha minst én entydighetsskranke Korte entydighetsskranker er strengere enn lange, så ingen entydighetsskranke får lov til totalt å dekke en annen Lange faktatyper kan godt ha overlappende entydighetsskranker 1. mars 2006 INF2120 Prosjekt i modellering 35

36 Overlappende entydighetsskranker Ble gift For giftermål Ble gift En kvinne kan ikke gifte seg flere ganger på samme dag Kvinne Dag Mann En mann kan ikke gifte seg flere ganger på samme dag En kvinne og en mann kan gifte seg med hverandre flere ganger Dette kan ikke uttrykkes i UML uten å bruke OCL 1. mars 2006 INF2120 Prosjekt i modellering 36

37 N-1 regelen for entydighetsskranker Gitt en setningstype med aritet N Hvis setningstypen er elementær, har den ingen entydighetsskranke som er kortere enn at den dekker N-1 roller Nesten alltid: Hvis setningstypen ikke har noen entydighetsskranke som dekker mindre enn N-1 roller, så er den elementær 1. mars 2006 INF2120 Prosjekt i modellering 37

38 Et eksempel til ettertanke Målte Meteorolog Ble målt Tid Ble målt Sted Ble resultat Temp. På sammetidogstedkan det bare være én temperatur En meteorolog kan ikke gjøre to temperaturmålinger på samme tidspunkt En meteorolog kan bare være ett sted på et gitt tidspunkt På sammetidogstedkan det bare være en meteorolog (?) NB: Denne faktatypen er ikke elementær. Problem: Hvordan skal den splittes? 1. mars 2006 INF2120 Prosjekt i modellering 38

39 Begrepsdannelse Måling Tid Ble målt Ble målt Sted Tid Ble målt på Måling på Ble målt Sted Hvilke skranker trengs for å gjøre denne konstruksjonen syntaktisk korrekt? 1. mars 2006 INF2120 Prosjekt i modellering 39

40 Kombinert entydighet Måling er definert som kombinasjonen av tid og sted Tid Ble målt på Måling på Ble målt Sted 1. mars 2006 INF2120 Prosjekt i modellering 40

41 To måter å tegne «måling» på Målte Ble målt Ble målt Ble resultat Meteorolog Tid Sted Temp. Tid Ble målt på Måling på Ble målt Sted Meteorolog Målte Ble målt av Med resultat Ble resultat Temp. 1. mars 2006 INF2120 Prosjekt i modellering 41

42 Kombinert entydighet i -UML Tid Dato{id} Klokke{id} Måling Sted 1 «identifying» 0..* 0..* «identifying» 1 Adr{id} Ble På På Ble målt målt Ved å markere de to setningene som «identifying» sier vi at representasjonstypene til Tid og Sted inngår i representasjonstypen for Måling (Her utgjør de hele representasjonstypen) Ved hjelp av denne konstruksjonen kan vi uttrykke lange faktatyper som en stereotypi i UML 1. mars 2006 INF2120 Prosjekt i modellering 42

43 Måling modellert i -UML versjon 1 Tid dato,klokkeslett {id} {unique} 1 {unique} Sted adresse {id} * 1 * Måling * 1 Meteorolog ansattnr {id} * 1 Temperatur C {id} 1. mars 2006 INF2120 Prosjekt i modellering 43

44 Måling modellert i -UML versjon 2 Tid dato,klokkeslett {id} Sted adresse {id} 1 «identifying» {unique} * 1 * Måling * 1 «identifying» * 1 Temperatur Meteorolog ansattnr {id} C {id} 1. mars 2006 INF2120 Prosjekt i modellering 44

45 NIAMs skrankeapparat Klassiske UML klassediagrammer har begrensninger i forhold til ORM/NIAM når det gjelder hvilke skranker som kan uttrykkes NIAM har følgende skranker som i UML må uttrykkes ved hjelp av OCL (Object Constraint Language): Påkrevde rollekombinasjoner Mengdeskranker Vi skal ta dem for oss og se på hvordan de tar seg ut i OCL-notasjon 1. mars 2006 INF2120 Prosjekt i modellering 45

46 Populasjoner for roller og begreper Roller er de eneste informasjonsbærerne i NIAM, dvs. at bare roller kan ha forekomster Mengden av forekomster i en rolle r kalles populasjonen til r og betegnes med pop(r) Begreper har egentlig ikke forekomster Det er likevel praktisk å snakke om populasjonen til begreper Vi definerer populasjonen til et begrep A som pop(a) = U pop(r) der unionen tas over alle roller som spilles av begrepet A 1. mars 2006 INF2120 Prosjekt i modellering 46

47 Påkrevde roller Repetisjon: Vi sier at en rolle r for begrepet A er påkrevd (mandatory) hvis det for alle tilstander av databasen skal gjelde at pop(a) = pop(r) A V r Påkrevde roller utrykkes i UML ved å ha minimumskardinalitet > 0 Påkrevde roller kalles også for totale roller 1. mars 2006 INF2120 Prosjekt i modellering 47

48 Påkrevd rollekombinasjon pop(bil) = pop(er privatbil for) U pop(er firmabil for) Bil (Reg.nr) er privatbil for T eier Person (F.nr) er firmabil for eier Firma (foretaksnr) En bil må være enten firmabil eller privateid (eller begge deler) 1. mars 2006 INF2120 Prosjekt i modellering 48

49 Påkrevd rollekombinasjon i UML Dette angis med OCL-symbolet {or} mellom to roller * Bil reg.nr {id} er privatbil for {or} eier 0..1 * 0..1 er firmabil for eier Person f.nr {id} Firma foretaksnr {id} En bil må være enten firmabil eller privateid (eller begge deler) 1. mars 2006 INF2120 Prosjekt i modellering 49

50 Mengdeskranker Mengdeskrankene (set-comparison constraints) begrenser mengden av forekomster i en eller flere roller i forhold til forekomstene i andre roller Mengdeskranker finnes i følgende varianter: Delmengdeskranke (Subset constraint) Likhetsskranke (Equality constraint) Ulikhetsskranke (Exclusion constraint) 1. mars 2006 INF2120 Prosjekt i modellering 50

51 Delmengdeskranken Person r 1 pop(r 1 ) pop(r 2 ) r 2 Den kalles også «først siden» Pilen peker mot «først»-rollen (r 1 ) 1. mars 2006 INF2120 Prosjekt i modellering 51

52 Delmengdeskranken, eksempel, OCL og NIAM * Ansatt ans.nr {id} mottar Ansatt (ans.nr) {subset} mottar mnd.lønn er mnd.lønn Penger (NOK) Penger NOK {id} 0..1 * 0..1 har er bonus har bonus En ansatt kan ikke ha bonus uten å motta månedslønn 1. mars 2006 INF2120 Prosjekt i modellering 52

53 Delmengdeskranke over en eller flere roller I 1 Person pnavn {id} skytter {subset} død bjørn * Bjørn bnavn {id} * skinnselger bjørneskinn * skytter død bjørn Person Bjørn skinnselgerbjørneskinn Selg ikke skinnet før bjørnen er skutt! 1. mars 2006 INF2120 Prosjekt i modellering 53

54 Delmengdeskranke over en eller flere roller II 1 Person pnavn {id} skytter {subset} død bjørn * Bjørn bnavn {id} * skinnselger bjørneskinn * skytter død bjørn Person Bjørn skinnselgerbjørneskinn Selg ikke bjørneskinn før du har skutt en bjørn! 1. mars 2006 INF2120 Prosjekt i modellering 54

55 Delmengdeskranke over en eller flere roller III 1 Person pnavn {id} skytter {subset} død bjørn * Bjørn bnavn {id} OBS! 1 skinnselger bjørneskinn * skytter død bjørn Person Bjørn skinnselgerbjørneskinn Selg ikke skinnet før bjørnen er skutt! (Skutt av deg!) 1. mars 2006 INF2120 Prosjekt i modellering 55

56 Mengdelikhetsskranken pop(r1) = pop(r2) for alle tilstander Person (F.nr) r 1 = r 2 1. mars 2006 INF2120 Prosjekt i modellering 56

57 Mengdelikhetsskranken, eksempel Ansatt (ans.nr) = bruttolønn skatt Penger (NOK) En ansatt betaler skatt hvis, og bare hvis, hun eller han mottar lønn 1. mars 2006 INF2120 Prosjekt i modellering 57

58 Likhetsskranken i OCL * Ansatt mottar {subset} bruttolønn Penger ans.nr {id} {subset} NOK {id} * 0..1 har skatt En likhetsskranke er det samme som å ha to delmengdeskranker som går i hver sin retning 0..1 Dette kan vi utnytte i OCL 1. mars 2006 INF2120 Prosjekt i modellering 58

59 Mengdeulikhetsskranken r 1 Person pop(r 1 ) pop(r 2 )= r 2 Mengdeulikhetsskranken kan kombineres med en kombinert påkrevd rolle for å definere en partisjon: Person r 1 r 2 T 1. mars 2006 INF2120 Prosjekt i modellering 59

60 Mengdeulikhetsskranken, eksempel Avdeling (avdnavn) ans.avd V Ansatt (ans.nr) mnd.lønn timelønn Penger (NOK) 1. mars 2006 INF2120 Prosjekt i modellering 60

61 Mengdeulikhetsskranke over en eller flere roller Person sager Gren Person sager Gren sitter sitter Person sager Gren Sag ikke av den grenen du sitter på! sitter 1. mars 2006 INF2120 Prosjekt i modellering 61

62 Den generelle mengdeulikhetsskranken 1 k n 1 m n k m pop(r k ) pop(r m )= A (a) r 1 r 2 B 1 (b 1 ) B 2 (b 2 ) Hvorfor har vi ikke noe tilsvarende for mengdelikhet? r n B n (b n ) 1. mars 2006 INF2120 Prosjekt i modellering 62

63 Ulikhetsskranker og UML Det er ikke vanskelig å uttrykke ulikhetsskranker som regler i OCL Warmer og Kleppe har imidlertid ikke foreslått noe eget symbol for dette Det er selvfølgelig lett å gjøre det, men jeg har valgt å begrense meg til de symboler som Warmer og Kleppe har introdusert Dermed kan vi ikke pr i dag tegne inn ulikhetsskranker i våre UML klassediagrammer 1. mars 2006 INF2120 Prosjekt i modellering 63

64 Underbegreper (Subtypes) Noen biler er lastebiler Vekt (kg) for veier V Bil (Reg.nr) V reg_år registrert År (årstall) maxlast frakter V Lastebil V plan lasteplan Areal (m 2 ) 1. mars 2006 INF2120 Prosjekt i modellering 64

65 Delmengdeskranke eller underbegrep? Ansatt (ans.nr.) lønn Beløp (NOK) selger bonus Ansatt (ans.nr.) Selger V lønn bonus Beløp (NOK) Er det å være selger en permanent tilstand? 1. mars 2006 INF2120 Prosjekt i modellering 65

66 Sammenligning av det dataorienterte og det objektorienterte perspektivet I det dataorienterte perspektivet interesserer vi oss for faktaopplysninger av statisk natur om interesseområdet, samt skranker som forhindrer registrering av åpenbart uriktige fakta I det objektorienterte perspektivet interesserer vi oss for virkelige og tenkte objekter i interesse-området, og hvordan disse objektene gjennom samarbeide kan gi en hensiktsmessig modell Men har ikke disse to perspektivene svært lite felles? 1. mars 2006 INF2120 Prosjekt i modellering 66

67 Ekvivalente stier Båt båtnavn {id} 1 dato {id} Dag * Køye køyenr {id} {Køyeplass.køye.båt = Køyeplass.avgang.båt} avgang båt dag passasjer Avgang 1 * * 1 «identifying» «identifying» 1 «identifying» «identifying» * «identifying» * * Køyeplass 1 1 køye båt KH KH 312 pnr100 CF CF 312 pnr109 KH KH 314 pnr115 KH KH 312 pnr217 Passasjer passasjernr {id} 1. mars 2006 INF2120 Prosjekt i modellering 67

68 Dataorientering vs. objektorientering I Både datasentrerte og objektorienterte informasjonssystemer inneholder data, men måten data er organisert på, er forskjellig I datasentrerte systemer er alle data samlet i en sentral ressurs databasen I objektorienterte systemer er dataene fordelt på objektene ut fra det generelle prinsipp at det objektet som har bruk for data, selv tar vare på dem Dataene gis «evig liv» ved å gjøre objektene «persistente» Dette kan realiseres på flere måter, f.eks. ved hjelp av en OO-database 1. mars 2006 INF2120 Prosjekt i modellering 68

69 Dataorientering vs. objektorientering II NIAM/ORM er i utgangspunktet (nesten) nøytral overfor hvilket perspektiv som velges Perspektivet kommer inn når de elementære faktatypene skal grupperes til en relasjonsdatabase eller inn i objektklasser Det finnes en algoritme som omformer ethvert syntaktisk lovlig NIAM-diagram til et optimalt normalisert relasjonsdatabaseskjema En tilsvarende algoritme for design av objektklasser finnes ikke, så her må vi ha tilleggsinformasjon (som andre diagramtyper i UML) for å få et best mulig resultat Det finnes riktig nok en algoritme som omformer et NIAM-diagram (og da spesielt et -UML klassediagram) til et (ordinært) UML klassediagram, men vi har ingen garanti for at dette diagrammet gir den optimale datastrukturen for vår anvendelse 1. mars 2006 INF2120 Prosjekt i modellering 69

70 Andre relevante forskjeller I OO har vi ikke bare mengde, men også «bag» og «list» krav om entydighetsskranke faller bort forekomstene kan ordnes I OO kan strukturer som «set», «bag» og «list», samt generelle objekter, brukes som verdier ubegrenset mange muligheter for hvordan data struktureres I OO er dataene innkapslet i objektene dataenes struktur er ukjent for omverdenen de kan bare fås tak i gjennom spørremeldinger I OO har objekter sin egen, innebygde identifikator (OID) begreper behøver ikke alltid ha en representasjon 1. mars 2006 INF2120 Prosjekt i modellering 70

71 Sterke sider ved ORM/NIAM ORM har et sterkere skrankeapparat enn det UML klassediagrammer har Men med innføring av stereotypien og de nye OCLsymbolene er ikke forskjellen vesentlig Et ORM-diagram kan trivielt oversettes til en mengde med elementære faktatyper (dette gjelder også skrankene) Det er vanligvis lett for brukerne å avgjøre om en elementær faktatype er riktig eller gal En slik oversettelse av strukturdiagrammet til naturlig språk bør brukes for å fomidle datamodellen til brukerne Brukere kan ikke forventes å fullt ut forstå UML klassediagrammer, men de bør kunne verifisere at en samling elementære setningstyper er korrekt 1. mars 2006 INF2120 Prosjekt i modellering 71

Språk for dataorientert modellering

Språk for dataorientert modellering Språk for dataorientert modellering Hva forvirrer studentene minst, ORM/NIAM eller UML-stereotyper? (Omkamp mellom «Rundinger» og «Firkanter») Ragnar Normann (med god støtte av Gerhard Skagestein) 1 Bakgrunn

Detaljer

Dataorientert modellering

Dataorientert modellering INF2120 Dataorientert modellering Ragnar Normann 9. mars 2005 INF2120 Prosjekt i modellering 1 Dataorientering og UML UML har som utgangspunkt et objektorientert syn på tilværelsen hvor oppførsel og samspill

Detaljer

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen Verdiskranker Mengdeskranker INF1300 29.08.2017 Mathias Stang

Detaljer

IN2090 Databaser og datamodellering ORM 1

IN2090 Databaser og datamodellering ORM 1 IN2090 Databaser og datamodellering ORM 1 Modellere for obliger og eksamen Digital eksamen, men modeller tegnes med penn og papir Det er like greit å tegne for hand også på obligene 2 Dagens tema: Grunnuttrykkene

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker INF1300 1.9.2008 Ellen Munthe-Kaas 1 Et eksempel fra virkeligheten

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale

Detaljer

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Institutt for informatikk 1 Et eksempel fra virkeligheten

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og vanlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og totale

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og naturlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og

Detaljer

INF Introduksjon til databaser ORM I

INF Introduksjon til databaser ORM I INF1300 - Introduksjon til databaser ORM I Dagens tema: Grunnbegrepene i ORM Sammenheng mellom ORM og naturlig språk Elementære setninger (fakta) Faktatyper og broer Entydighetsskranker og påkrevde roller

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Verdiskranker Underbegreper Underbegrepsskranker Mengdeskranker Delmengdeskranker INF1300-10.9.2007 Ellen Munthe-Kaas 1 Verdiskranker

Detaljer

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen UNIVERSITETET I OSLO IN2090 Databaser og datamodellering Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Representasjon n-1-regelen IN2090 05.09.2018 Mathias Stang 1 Opplegget fremover Forelesningene

Detaljer

INF1300. Grunnbegrepene i ORM: fakta, begreper, roller, faktatyper, broer, entydighetsskranker, totale roller, funksjonelle avhengigheter

INF1300. Grunnbegrepene i ORM: fakta, begreper, roller, faktatyper, broer, entydighetsskranker, totale roller, funksjonelle avhengigheter INF1300 Grunnbegrepene i ORM: fakta, begreper, roller, faktatyper, broer, entydighetsskranker, totale roller, funksjonelle avhengigheter Ogdens trekant begrep representasjon fenomen i UoD michael@ifi.uio.no

Detaljer

Datamodellering med ORM

Datamodellering med ORM Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesset Datamodellering med ORM registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen

Detaljer

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM IN2090 Databaser og datamodellering Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM Mathias Stang (mjstang@ifi.uio.no) 3. oktober 2018 1 Repetisjon: Relasjoner relasjonsskjema

Detaljer

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

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Verdiskranker Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller

Detaljer

Vegard Nossum. 21. oktober 2010

Vegard Nossum. 21. oktober 2010 ORM, UML og DL-Lite A,id Vegard Nossum 21. oktober 2010 Plan Introduksjon til ORM-modellering Formalisering av ORM og UML Litt om kompleksitet ORM-modellering: Begreper og forekomster Begreper tegnes som

Detaljer

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Begrepsdannelse Eksterne entydighetsskranker Institutt for informatikk INF1300 29.8.2016 1 Et eksempel fra virkeligheten La oss se på

Detaljer

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

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2016 Agenda Hensikten med ORM-modellering Hva er lov

Detaljer

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

Flere skranker i ORM Integritetsregler med «CHECK» i SQL IN2090 Databaser og datamodellering Flere skranker i ORM Integritetsregler med «CHECK» i SQL Mathias Stang (mjstang@ifi.uio.no) 10. oktober 2018 1 Agenda Verdiskranker Mengdeskranker Ekstern påkrevd rolle

Detaljer

Skranker og avledninger

Skranker og avledninger Figur 7-1. Skrankene skal gjenspeile virkelighetens regler Forretningsregler Virkeligheten (interesseområdet) Skranker og avledninger registrering påvirkning jfr. Fra kjernen og ut, fra skallet og inn

Detaljer

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

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering INF1300 Introduksjon til databaser Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 21. november 2017 Agenda Hensikten med ORM-modellering Hva er lov

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende representasjoner INF1300

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Informasjonsbærende referansemåter Resten av realiseringsalgoritmen Sterk realisering Realisering versus modellering INF1300-31.10.2016

Detaljer

*UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU

*UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU *UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU Historikk (Ikke bruk tid på å lese dette, den nyttige informasjonen begynner på neste side...) Ideen til å lage

Detaljer

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

Intermesso. Visjonen... samling av trådene. Veivalget. Et bedre bilde av visjonen? Visjonen... Intermesso samling av trådene jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel INF02-Intermesso- Theodor Kittelsen: Og i det fjerne, langt, langt borte så han noe lyse og

Detaljer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler ORM som analysemetode

Detaljer

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

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner Institutt for informatikk

Detaljer

Informasjonsbærende representasjoner

Informasjonsbærende representasjoner UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

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

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering IN2090 Databaser og datamodellering Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering Mathias Stang (mjstang@ifi.uio.no) 19. november 2018 Agenda Hensikten med ORM-modellering Hva er lov

Detaljer

Datamodellering med UML

Datamodellering med UML Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 (og litt fra kapittel 6 og 7) dmuml-1 Figur 5-1. Datamodellen dokumenterer vår oppfatning av virkeligheten

Detaljer

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Notater: INF1300. Veronika Heimsbakk 8. januar 2013 Notater: INF1300 Veronika Heimsbakk veronahe@student.matnat.uio.no 8. januar 2013 Innhold 1 ORM 3 1.1 Setningers aritet......................... 3 1.2 Faktatyper og broer i ORM................... 3 1.3

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehånteringssystemer Data versus informasjon Beskrivelse av interesseområdet 100%-prinsippet og det begrepsmessige

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Data versus informasjon Beskrivelse av interesseområdet Begreper og representasjon av

Detaljer

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

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet Datamodellering med UML registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel

Detaljer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper Underbegrepsskranker Kombinerte totale roller Ekvivalente stier og joinskranker Behandling av tid Informasjonsbærende

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser Data (transiente, persistente) DBMS databser informasjon interesseområdet informasjonsmodeller informasjonssystemer Transiente og persistente data Når vi programmerer,

Detaljer

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper og underbegrepsforklaringer Kombinerte påkrevde roller Undertrykking av begreper Ekvivalente stier og joinskranker Behandling

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Informasjonssystemer 100%-prinsippet: Fra virkelighet til informasjonsmodell Forretningsregler, skranker og integritetsregler: Fra modell

Detaljer

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 Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

The Unified Modeling Language - UML

The Unified Modeling Language - UML Datamodellering med UML jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Modellenes to formål Interesseområdet Beskrivelse Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

Forelesning INF1300. Simen Buodd. Plenumstime 8. September 2015

Forelesning INF1300. Simen Buodd. Plenumstime 8. September 2015 Forelesning INF1300 Simen Buodd Plenumstime 8. September 2015 Agenda Gjennomgå Oblig 3 Realisere Oblig 3 Gjennomgå oppgave side 8 på ORM-slide 3 Gjennomgå oppgave side 33 på ORM-slide 33 Oppgaver med eksterne

Detaljer

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 Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 5 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

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

Modellenes to formål. Datamodellering med UML (forts.) Fra naturlig språk til datamodell. Figur 5-2. Ogdens trekant Modellenes to formål Interesseområdet Dataering med UML (forts.) Beskrivelse jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Oppfatningen av interesseområdet Foreskrivelse Informasjonssystem

Detaljer

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

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Den grunnleggende konstruksjonen det elementære utsagnet Dagens tema Individer i interesseområdet Den redundansfri dataen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? Begrepsdannelse jfr. Systemutvikling

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Relasjonsmodellen Funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner Institutt for informatikk INF1300--15.9.2009--michael@ifi.uio.no

Detaljer

Datamodellering med UML (forts.)

Datamodellering med UML (forts.) Datamodellering med UML (forts.) jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmuml2- Modellenes to formål Interesseområdet

Detaljer

Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler

Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler Institutt for informatikk INF1300 21.09.2015

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ekvivalente stier Behandling av tid Informasjonsbærende representasjoner INF1300-17.9.2007 Ellen Munthe-Kaas 1 Stier Dette er en sti

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

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

Datamodellering med UML. Modellenes to formål. The Unified Modeling Language - UML Figur 5-. Datamodellen dokumenterer vår oppfatning av virkeligheten Interesseområdet Datamodellering med UML registrering påvirkning jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel

Detaljer

Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Behandling av tid Informasjonsbærende representasjoner Ringskranker

Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Behandling av tid Informasjonsbærende representasjoner Ringskranker UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Underbegreper og underbegrepsskranker Kombinerte totale roller Behandling av tid Informasjonsbærende representasjoner Ringskranker Institutt

Detaljer

INF1050 Klasseromsoppgave Uke 6

INF1050 Klasseromsoppgave Uke 6 INF1050 Klasseromsoppgave Uke 6 Løsningsforslag Mer avansert datamodellering med UML Oppgave 1 Her følger noen eksempler på opplysninger som brukeren ønsker å kunne trekke ut av informasjonssystemer. Foreslå

Detaljer

IN2090 Introduksjon til databaser

IN2090 Introduksjon til databaser UNIVERSITETET I OSLO IN2090 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Hva er data? Hva er informasjon? Fra idé til informasjonssystem Litt om modellering: Begreper

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser INF1300 Introduksjon til databaser databaser data (transiente, persistente) informasjon interesseområdet

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer INF3100 Databasesystemer Forelesere: Obligsjef: Naci Akkök, Ragnar Normann Norun Sanderson Mål: Kjennskap til databasesystemer Oppgaver og moduler Virkemåte Implementasjon Teoretiske og praktiske problemer

Detaljer

INF212 - Databaseteori. Kursinnhold

INF212 - Databaseteori. Kursinnhold INF212 - Databaseteori Forelesere: Naci Akkök Ellen Munthe-Kaas Mål: Kjennskap til databasesystemer Virkemåte Implementasjon Teoretiske og praktiske problemer INF212 v2003 1 Kursinnhold Databasedesign

Detaljer

Skranker og avledninger

Skranker og avledninger Skranker og avledninger jfr. Fra kjernen og ut, fra skallet og inn kapittel 7 dmskranker&repr-1 Figur 7-1. Skrankene skal gjenspeile virkelighetens regler Forretningsregler Virkeligheten (interesseområdet)

Detaljer

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011 VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011 Oppgaven skal løses og leveres individuelt (men det er lov å snakke og diskutere med medstudenter om løsningen). Skriv ditt fulle navn, kursnummeret

Detaljer

Hva vi i alle fall bør huske fra INF1050

Hva vi i alle fall bør huske fra INF1050 Hva vi i alle fall bør huske fra INF1050 Gerhard Skagestein 25. januar 2006 25. januar 2006 INF2120 Prosjekt i modellering 1 Figur 1-3. Et systems livssyklus Idé Krav og ønsker Utforming Realisering Ny

Detaljer

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Data, databaser og databasehåndteringssystemer Hva er data? Hva er informasjon? Fra idé til informasjonssystem Litt om modellering:

Detaljer

INF3100 Databasesystemer

INF3100 Databasesystemer INF3100 Databasesystemer Forelesere: Naci Akkök Ragnar Normann Mål: Kjennskap til databasesystemer Oppgaver og moduler Virkemåte Implementasjon Teoretiske og praktiske problemer INF3100-19-20.1.2004 -

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

Den redundansfri datamodellen

Den redundansfri datamodellen Den redundansfri datamodellen jfr. Systemutvikling fra kjernen og ut, fra skallet og inn kapittel 6 Institutt for informatikk Gerhard Skagestein 4. februar 2007 dmredundansfri- Dagens tema Individer i

Detaljer

Fra krav til objektdesign

Fra krav til objektdesign Fra krav til objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050-ansvar-1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller

Detaljer

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

Dagens tema. Den redundansfri datamodellen. Modellenes to formål. Individer i interesseområdet Dagens tema Individer i interesseområdet Den redundansfri datamodellen Redundansfrihet ingen dobbeltlagringer eller avledninger Gruppering, normalisering eller intuisjon? jfr. Systemutvikling fra kjernen

Detaljer

Datamodellering med E/R

Datamodellering med E/R Datamodellering med E/R Fasene i systemutvikling og databasedesign E/R (Entity/Relationship) Entitet Attributt Identifikator Forhold og roller Kardinaliteter: 1:1, 1:M, M:N Oppløsing av mange-til-mange

Detaljer

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering Gruppeøvelse 20/9-2010 Dagens tema: - Gruppering/realisering Gruppering, regler - I Lange piler fjernes før grupperingen begynner Stikkord: Begrepsdannelse, ekstern entydighet September 20, 2010 2 Gruppering,

Detaljer

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objektdesign Hva skal systemet gjøre? UML: Bruksmønstermodeller o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

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

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Oppgaver til kapittel 5 - Datamodellering med UML Oppgave 6. Ugruppert og gruppert modell Et mindre bilutleiefirma ønsker å få

Detaljer

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski UKE 13 Mer UML modellering Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski Hva skal vi i dag? Objektorientert design - kapittel 5 og 7 UML modellering Aktivitetsdiagrammer Klassediagram Ukesoppgaver

Detaljer

Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr

Datamodellering i det virkelige liv. Jan-Thore Bjørnemyr Datamodellering i det virkelige liv Jan-Thore Bjørnemyr Jan-Thore Bjørnemyr Cand. Scient., databehandling 1991 Jobbet for Ericsson, IBM og Control Data Gründer Selvstendig konsulent Canada, USA, Argentina,

Detaljer

UKE 11 UML modellering og use case. Gruppetime INF1055

UKE 11 UML modellering og use case. Gruppetime INF1055 UKE 11 UML modellering og use case Gruppetime INF1055 Hva skal vi i dag? Analyse og design - kapittel 5 og 7 UML modellering Ukesoppgaver 3: Modellering av krav UML UML Kompetansemål Modellering av krav

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

Detaljer

MATOPPSKRIFTER Obligatorisk oppgave nr. 2 i INF1300 høsten 2010

MATOPPSKRIFTER Obligatorisk oppgave nr. 2 i INF1300 høsten 2010 MATOPPSKRIFTER Obligatorisk oppgave nr. 2 i INF1300 høsten 2010 Oppgaven skal løses og leveres individuelt (men det er lov å snakke og diskutere med medstudenter om løsningen). Skriv ditt fulle navn, kursnummeret

Detaljer

Databaser: Relasjonsmodellen, del I

Databaser: Relasjonsmodellen, del I LC238D http://www.aitel.hist.no/fag/_dmdb/ Databaser: Relasjonsmodellen, del I En relasjon er en matematisk mengde side 2 Egenskaper ved relasjoner side 3 Entitetsintegritet side 4-5 Referanseintegritet

Detaljer

INF1050 Klasseromsoppgave Uke 7

INF1050 Klasseromsoppgave Uke 7 INF1050 Klasseromsoppgave Uke 7 Løsningsforslag Skranker Oppgave 1 a) Vi skal lage en datamodell for utfallet av presidentvalgene i et land. Modellen skal inneholde begrepene Valg (identifisert med et

Detaljer

Informasjonssystemer, DBMSer og databaser

Informasjonssystemer, DBMSer og databaser UNIVERSITETET I OSLO Informasjonssystemer, DBMSer og databaser Institutt for Informatikk INF3100-21.1.2008 Ellen Munthe-Kaas 1 Interesseområdet (UoD = Universe of Discourse) Interesseområdet er en del

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Fra skranker til integritetsregler (restriksjoner) Klassifisering av integritetsregler Forekomstrestriksjoner Realisering av integritetsregler

Detaljer

1. Designe ER-modeller med MS Visio

1. Designe ER-modeller med MS Visio Kjell Toft Hansen 01.07.2009 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1- databaser 1. I dette notatet skal vi se på hvordan vi kan lage ER-modeller ved å bruke

Detaljer

IN2090 Introduksjon til databaser

IN2090 Introduksjon til databaser UNIVERSITETET I OSLO IN2090 Introduksjon til databaser Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Institutt for informatikk IN2090 26.9.2018!1 Relasjonsmodellen

Detaljer

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner Etter uke 9 skal du Introduksjon til objektorientert programmering INF1001 Høst 2016 Uke 9 Kunne designe og implementere en programstruktur med flere klasser Kunne etablere og manipulere objekter i (sammensatte)

Detaljer

INF1300 Introduksjon til databaser

INF1300 Introduksjon til databaser UNIVERSITETET I OSLO Dagens tema: INF1300 Introduksjon til databaser Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Institutt for informatikk INF1300 12.9.2016 1 Relasjonsmodellen

Detaljer

Dagens tema: Ringskranker Klisjéer (mønstre) Tommelfingerregler

Dagens tema: Ringskranker Klisjéer (mønstre) Tommelfingerregler UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ringskranker Klisjéer (mønstre) Tommelfingerregler Institutt for informatikk INF1300 26.11.2011 michael@ifi.uio.no 1 Ringskranker INF1300

Detaljer

UNIVERSITETET I OSLO INF1300. Dagens tema: Ringskranker. Tommelfingerregler. Institutt for informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO INF1300. Dagens tema: Ringskranker. Tommelfingerregler. Institutt for informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ringskranker Klisjéer (mønstre) Tommelfingerregler Institutt for informatikk INF1300 19.10.2009 Ellen Munthe-Kaas 1 Ringskranker INF1300

Detaljer

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

Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Gerhard Skagestein: Systemutvikling fra kjernen og ut, fra skallet og inn. Oppgaver til kapittel 5 - Datamodellering med UML Oppgave 2. Begreper og representasjoner a. I en modell finner du begrepene Mann

Detaljer

Spesifikasjon av Lag emne

Spesifikasjon av Lag emne Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Fra krav til objekter Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use Cases) o Objektdesign Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO INF050/INF02 vår2005 Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 050 Systemutvikling INF02 Utvikling av datasystemer Eksamensdag: Onsdag 5. juni 2005 Tid for

Detaljer

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer Fra krav til objekter Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer INF1050--1 Dagens forelesning o Kort repetisjon av kravspesifikasjon med UML Hva skal systemet gjøre? UML: Bruksmønstermodeller (Use

Detaljer

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur Dagens forelesning o Litt mer om design med UML sekvensdiagrammer Sentralisert og delegert kontrollstil Resultater fra et eksperiment o UML klassediagrammer Notasjon: UML klassediagram og objektdiagram

Detaljer

INF130: Datahåndtering og analyse

INF130: Datahåndtering og analyse INF130: Datahåndtering og analyse Modellering 1.1 Temaer Kapittel 7 Modellering 2 Datamodellering med E/R Fasene i systemutvikling og databasedesign E/R (Entity/Relationship) Entitet Attributt Identifikator

Detaljer

1. Datamodellering. 1.1. Kommentarer til læreboka

1. Datamodellering. 1.1. Kommentarer til læreboka Tore Mallaug 20.10.2009 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for fagene LN323D Databaser 1. Datamodellering Resymé: Denne leksjonen viser et par eksempler på ER-modellering

Detaljer

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO Relasjonsmodellen Relasjoner og funksjonelle avhengigheter Institutt for Informatikk INF3100-23.1.2007 Ellen Munthe-Kaas 1 Relasjonsdatabasemodellen Datamodell Mengde av begreper for

Detaljer

Kap3: Klassemodellering

Kap3: Klassemodellering Kap3: Klassemodellering I dag: Litt repetisjon fra sist (innledende om klassemodellen) Deretter egentlig litt mer repetisjon, men nå fra intro- Felt-/Instansvariabler og kurset i Java: Klasser og Objekt,

Detaljer

NB! Endring i undervisningsplanen

NB! Endring i undervisningsplanen NB! Endring i undervisningsplanen Forelesningen 24. mars må dessverre avlyses på grunn av Fagkritisk dag Se beskjed som er lagt ut på kursets nettsider og den oppdaterte undervisningsplanen INF1050-klasser-1

Detaljer

Dagens tema: Realiseringsalgoritmen (også kalt "grupperingsalgoritmen") fra ORM-diagram til relasjonsskjema

Dagens tema: Realiseringsalgoritmen (også kalt grupperingsalgoritmen) fra ORM-diagram til relasjonsskjema UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Realiseringsalgoritmen (også kalt "grupperingsalgoritmen") fra ORM-diagram til relasjonsskjema Institutt for informatikk INF1300 15.9.2016

Detaljer