46
1 Dagens tema: • Begrepsdannelse • Eksterne entydighetsskranker • Verdiskranker • Mengdeskranker Underbegreper og underbegrepsskranker Kombinerte totale roller INF1300 Introduksjon til databaser INF1300 – 24.8.2015 UNIVERSITETET I OSLO © Institutt for informatikk

UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

1

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

INF1300Introduksjon til databaser

INF1300 – 24.8.2015

UNIVERSITETETI OSLO

© Institutt for informatikk

Page 2: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

2

Et eksempel fra virkeligheten• La oss se på setningen

«På Blindern klokken 8 målte Jens 9 grader»• De tre spørsmålene vi alltid må stille oss, er:

– Hvilke begreper har vi? – Hvilken representasjon bruker vi for disse

begrepene?– Er setningen elementær i vårt UoD,

og hvis den ikke er det, hvordan kan den splittes opp?

Page 3: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

3

Et eksempel fra virkeligheten• «På Blindern klokken 8 målte Jens 9 grader»

– Blindern er et sted med representasjon stedsnavn– 8 er et tidspunkt med representasjon dato og

klokkeslett– Jens er en person med representasjon personnavn– 9 er en temperatur med representasjon C

• For å avgjøre om setningen er elementær, tyr vi til et forekomstdiagram

Page 4: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

4

Et eksempel fra virkeligheten

• Er det noen av forekomstene som må strykes?

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Temperatur(.C )

Person(.personnav n)

...klokken...målte...temperatur...

Blindern 3.1.12 kl.8:00 Jens 9

V ærnes 3.1.12 kl.8:00 Siri 9

Blindern 3.1.12 kl.8:00 Lars 11

Blindern 4.1.12 kl.8:00 Jens 9

Page 5: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Temperatur(.C )

Person(.personnav n)

...klokken...målte...temperatur...

Blindern 3.1.12 kl.8:00 Jens 9

V ærnes 3.1.12 kl.8:00 Siri 9

Blindern 3.1.12 kl.8:00 Lars 11

Blindern 4.1.12 kl.8:00 Jens 9

5

Et eksempel fra virkeligheten

• Hvor skal entydighetsskranken(e) stå?

Page 6: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Temperatur(.C )

Person(.personnav n)

...klokken...målte...temperatur...

Blindern 3.1.12 kl.8:00 Jens 9

V ærnes 3.1.12 kl.8:00 Siri 9

Blindern 3.1.12 kl.8:00 Lars 11

Blindern 4.1.12 kl.8:00 Jens 9

6

Et eksempel fra virkeligheten

• Dette er en entydighetsskranke over de to begrepene«Sted» og «Tid»

• Det gjør at setningen ikke er elementær (se neste lysark)

Page 7: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

7

n-1-regelen• En setning med aritet n er aldri elementær hvis det

tilhørende forekomstdiagrammet har en entydighetsskranke som er kortere enn n-1

• Hvis korteste entydighetsskranke har lengde n-1, er setningen elementær

• Hvis korteste entydighetsskranke har lengde n, er setningen nesten alltid elementær

• Unntakene forekommer svært sjelden i praksis, og de er ikke pensum i INF1300 (men i INF3100)

• Setninger med aritet 1 eller 2 er alltid elementære

Page 8: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

8

Et eksempel fra virkeligheten

• Vi har nå et skjema for elementære ternære setninger med entydighetsskranker av lengde to

• Entydighetsskrankene sier at Tid og Sted sammen bestemmer Temperatur og sammen bestemmer Person

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Person(.personnav n)

Temperatur(.C )

...klokken...måltes...

...klokken...målter...

Page 9: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

9

Et eksempel fra virkeligheten• De to setningene har til

felles at Tid og Sted sammen bestemmer en tredje verdi

• ORM-diagrammet til venstre er korrekt, men tydeliggjør ikke at for både Temperatur og Person er forekomster bestemt av en og sammekombinasjon av Tid og Sted

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Person(.personnav n)

Temperatur(.C )

...klokken...måltes...

...klokken...målter...

Page 10: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

10

Et eksempel fra virkeligheten• Vi kan tydeliggjøre

dette ved å lage et nytt begrep av kombinasjonen av begrepene Tid og Sted. Det nye begrepet kan vi i vårt UoD kalle Måling.

• Deretter kan vi knytte forekomster av Temperatur og Person til det nye begrepet.

• Entydighetsskrankene på rollene med_resultat og gjort_av uttrykker at én forekomst av Måling maksimalt har én forekomst av Temperatur og må være gjort av maksimalt én Person. Dette svarer til entydighetsskrankene over tid+sted i modellen til venstre.

Sted(.stedsnav n)

Tid(.dato-klokkeslett)

Person(.personnav n)

Temperatur(.C )

...klokken...måltes...

...klokken...målter...

Page 11: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

11

Begrepsdannelse• Et problem er at begrepene Tid og Sted ble

borte fra modellen• Hvorvidt vi kan tillate det, avhenger av UoD

– Hvis Tid eller Sted har andre roller enn å være tid og sted for Måling, kan vi ikke fjerne dem fra modellen

• La oss se nærmere på sammen-hengen mellom Tid, Sted og Måling:

• Entydighetsskrankene og de totale rollene uttrykker at én forekomst av Måling må være utført på eksakt ett Sted og én Tid

Page 12: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

Tid Måling Stedtid / med på / sted

3.1.12 kl.8:00 m1

3.1.12 kl.8:00 m2

3.1.12 kl.8:00 m3

4.1.12 kl.8:00 m4

m1 Blindern

m2 V ærnes

m3 Blindern

m4 Blindern

12

Begrepsdannelse

• Modellen er fortsatt ikke god nok:– Den utelukker ikke at to forskjellige målinger

(av samme fenomen) kan være foretatt på nøyaktig samme tid og sted

Page 13: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

13

Begrepsdannelse

• Modellen er fortsatt ikke god nok:– Den utelukker ikke at to forskjellige målinger

(av samme fenomen) kan være foretatt på nøyaktig samme tid og sted

– Vi trenger en entydighetsskranke på tvers av faktatypene

Tid Måling Stedtid / med på / sted

3.1.12 kl.8:00 m1

3.1.12 kl.8:00 m2

3.1.12 kl.8:00 m3

4.1.12 kl.8:00 m4

m1 Blindern

m2 V ærnes

m3 Blindern

m4 Blindern

Page 14: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

14

Eksterne entydighetsskranker

• Entydighet på tvers av faktatyper indikerer vi med en ekstern entydighetsskrankepå de involverte rollene tid og sted

Page 15: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

15

Begrepsdannelse –alternativ notasjon

Page 16: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

16

Eksterne entydighetsskranker• Vi kan også uttrykke at

en person ikke kan foreta mer enn én måling av gangen

• Dette gjøres med en ekstern entydighets-skranke på rollene foretok og tid

Page 17: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

17

Eksempel med aritet 4• På en gitt dag låner en person, kalt debitor, et beløp fra en annen

person, kalt kreditor

• Det nye begrepet, Lån, består av én dag og to personer• Hvordan vi modellerer «en annen person», kommer vi tilbake til.

Forøvrig ser modellen slik ut:

Page 18: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

Avsluttende om begrepsdannelser

• Alle entydighetspiler som går over mer enn én rolle i en faktatype, skjuler et (nytt) begrep. Man skal alltid vurdere om det skal lages nye begreper når man får faktatyper med lange entydighetspiler.

• En faktatype med aritet 3 eller 4 (eller mer) kan gjøres om til binære setninger ved å lage ett eller flere nye begreper.

18

Page 19: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

Verdiskranker

• Begrenser mulige forekomster av et begrep• I praksis: Angir en mengde verdier som er lovlige

representasjoner – f.eks. ved direkte opprams avverdiene, angivelse av en nedre og/eller øvre grense, innebygde kontrollsifre (eks. fødselsnumre)

19

Land (.nav n)

...v ant...medaljer...

A ntall(#)

Medaljeart(.medaljekode)

{'G ','S ','B'}

{1..69}

Page 20: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

20

Populasjoner• Populasjon for en rolle: Hvis r er en rolle,

betegner pop(r) mengden av forekomster i kolonnen for r i forekomsttabellen

• Populasjon for et begrep: Begreper har egentlig ikke forekomster løsrevet fra roller, men vi definerer likevel populasjonen til et begrep A som har roller r1, r2, ..., rn ved

pop(A) = pop(r1) pop(r2) ... pop(rn)• Merk: Populasjonen til en rolle/et begrep

varierer med tiden

Page 21: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

21

Populasjoner - eksempel

pop(Land som vant) = {Tyskland, USA, Østerrike}pop(Land som har_deltaker) = {Norge, USA, Frankrike}pop(Land) = {Tyskland, USA, Østerrike, Norge, Frankrike}

Land (.nav n)

...v ant...medaljer...

A ntall(#)

Medaljeart(.medaljekode)

{'G','S ','B'}

{1..69}

Person(.nav n)

deltar for / har deltaker

A amodt Norge

Miller USA

Deneriaz F rankerike

Ty skland 11 G

Ty skland 12 S

Ty skland 6 B

USA 9 G

USA 9 S

USA 7 B

Ø sterrike 9 G

Page 22: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

22

Mengdeskranker• Mengdeskrankene begrenser mengden av

forekomster i en eller flere roller i forhold til forekomstene i andre roller

• Finnes i følgende varianter:LikhetsskrankeUlikhetsskrankeDelmengdeskranke

Page 23: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

23

MengdelikhetsskrankenA skal ha rollen r1hvis og bare hvisA har rollen r2.pop(r1) = pop(r2) for alle tilstander

Page 24: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

24

Mengdelikhetsskranken, eksempel

Konsekvens: Oppdatering av har lønn krever oppdatering av har lønnstrekk og omvendt

Page 25: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

25

MengdeulikhetsskrankenA skal ikke ha både rollen r1 og r2.pop(r1) pop(r2) = for alle tilstander

Page 26: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

26

Mengdeulikhetsskranken, eksempel

Page 27: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

27

MengdeulikhetsskrankenA skal ikke ha både rollen r1 og r2. Det kan være forekomster av A som hverken er i r1 eller r2

A skal ha en og bare en av rollene r1 og r2

Page 28: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

28

Mengdeulikhetsskranke over to roller

Det skal ikke være forekomster av A og B som er relatert gjennom begge faktatypene

Page 29: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

29

Mengdeulikhetsskranken, eksempel

”Sag ikke av engren når du sitterpå en annen gren”

”Sag ikke av engren som noen andre sitter på”

”Sag ikke av den grenen du selvsitter på”

Page 30: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

30

Den generelle mengdeulikhetsskranken

pop(ri) pop(rj) = for alle i j (1 i k, 1 j k)

Page 31: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

31

DelmengdeskrankenHvis A har rollen r2, så skal A også ha rollen r1.pop(r2) pop(r1) for alle tilstander

Page 32: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

32

Delmengdeskranken, eksempel

Page 33: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

33

Eksempel med aritet 4 – forts.På en gitt dag låner en person – debitoren - et beløp fra en annen person - kreditoren

Oppgave: Hvilken skranke mangler?Hvor skal den plasseres?

Page 34: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

34

Impliserte skranker skal ikke tegnes

Implisert delmengde-skranke skal ikke tegnes

Implisert likhetsskrankeskal ikke tegnes

INF1300 – 8.9.2014

Page 35: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

35

Impliserte skranker skal ikke tegnes

Implisert ulikhetsskrankeskal ikke tegnes

Impliserte delmengde-skranker skal ikke tegnes

Page 36: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

36

Mengdelikhetsskranke over flere roller er vanligvis ikke lov

Page 37: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

37

UnderbegreperKjernespørsmål: Kan alle tenkelige forekomster av et begrep spille alle roller som er knyttet til begrepet?Hvis nei: Kan få en mer presis modell ved å innføre underbegreper

B er et underbegrep av A hvis vi alltid har at pop(B) pop(A)

Notasjon:

Page 38: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

38

Underbegrepsskranke

Page 39: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

39

Underbegreper• Underbegreper arver representasjon og roller fra

superbegrepet. I tillegg har de sine egne roller• Underbegrepsskranker brukes til å bestemme hvilket

underbegrep hver enkelt forekomst tilhører• Underbegreper kan overlappe eller være disjunkte• Underbegrepene kan, men må ikke, være uttømmende

mhp. sitt superbegrep• Resonnementer over entydighetsskranker, totale roller

og underbegrepsskrankene avslører om underbegrepene er overlappende og/eller uttømmende

Page 40: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

40

Eksempel på overlappende og ikke-uttømmende underbegreper

Page 41: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

41

Underbegreper i flere nivåerDet transitive underbegrepet tegnes ikke inn!

Page 42: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

A skal ha enten rollen r1 eller rollen r2.pop(r1) pop(r2) = pop(A) for alle tilstander

42

Kombinert total rolle

Page 43: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

43

Eksempel på kombinert total rolle og underbegrep

Page 44: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

44

Generell kombinert total rolle

pop(r1) pop(r2) ... pop(rk) = pop(A)

Page 45: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

45

Se opp for manglende totale roller

Mangel på totale roller kan indikere et underbegrep

Page 46: UNIVERSITETET INF1300 Introduksjon til databaser€¦ · Dagens tema: • Begrepsdannelse • Eksterneentydighetsskranker • Verdiskranker • Mengdeskranker • Underbegreper og

46

Spesialisering og generalisering