UNIVERSITETET I OSLO INF1300 Introduksjon til databaser Dagens tema: Ringskranker Informasjonsbærende representasjoner Behandling av tid Tommelfingerregler Institutt for informatikk INF1300 21.09.2015 1
Ringskranker 2
Refleksiv skranke x pop(r1) pop(r2) (x,x) pop(r1,r2) 3
Symmetriskranke (x,y) pop(r1,r2) (y,x) pop(r1,r2) 4
Transitiv skranke (x,y) pop(r1,r2) (y,z) pop(r1,r2) (x,z) pop(r1,r2) 5
Irrefleksiv skranke (x,x) pop(r1,r2) 6
Antisymmetriskranke (x,y) pop(r1,r2) x y (y,x) pop(r1,r2) 7
Asymmetriskranke = antisymmetri + irrefleksivitet 8
Intransitiv skranke (x,y) pop(r1,r2) (y,z) pop(r1,r2) (x,z) pop(r1,r2) 9
Asyklisk skranke (x 1,x 2 ) pop(r1,r2)... (x n-1, x n ) pop(r1,r2) (x n, x 1 ) pop(r1,r2) 10
Kombinerte ringskranker asyklisk og intransitiv asymmetrisk og intransitiv symmetrisk og intransitiv symmetrisk og irrefleksiv 11
Representasjoner Alle begreper må kunne representeres Begrepsforekomster kan ikke lagres; det vi lagrer, er representasjonsforekomster Skal vi kunne realisere modellen som en relasjonsdatabase, må vi representere alle begrepene entydig Identifikator = representasjon hvor det er en uforanderlig en-til-en-bro mellom begrep og representasjon 12
Representasjonstyper navn, koder, forkortelser boolske verdier tellbare størrelser tids- og romlige verdier Fritekst... 13
Ikke-informasjonsbærende representasjoner Representasjonen til begrepet identifiserer en forekomst av begrepet Det fins ingen innkodet informasjon i representasjonen 14
Delvis informasjonsbærende representasjoner Deler av representasjonen til et begrep identifiserer en forekomst av et annet begrep Dette kan, men behøver ikke, være synlig i modellen 15
Totalt informasjonsbærende representasjoner Representasjonen til begrepet består av en samling elementer der hvert element identifiserer en forekomst av et annet begrep 16
Synliggjøring eller ikke av informasjonsbærende representasjon i modellen? Hvis det er en mulighet for at brukeren etterspør denne informasjonen, bør den vises i modellen 17
Representasjon via superbegrep Underbegreper arver alltid representasjonen til sitt superbegrep 18
Representasjon via en-til-en-faktatype Et begrep med en påkrevd rolle i en en-til-enfaktatype til et annet begrep kan identifiseres indirekte gjennom det andre begrepet Eksempel: En hovedstad kan identifiseres med det landet den er hovedstad i 19
Behandling av tid Versjonering Hva er et tidspunkt Hva skal et tidsstempel reflektere Praktisk versjonsmodellering 20
Versjonering Hvis vi ønsker at databasen skal vise historiske opplysninger, lagrer vi tidsstemplede versjoner av informasjonen Med en versjon mener vi her et øyeblikksbilde av all informasjon De tidsstemplede versjonene kan ordnes langs en tidsakse 21
Versjoner med tidsstempel ansatt avdeling 120 salg 110 salg 081 produksjon 230 økonomi prosjekt ansatt prosj.timer Alfa 120 200 Beta 120 250 Alfa 110 75 Alfa 081 150 Beta 230 100 ansatt avdeling 120 salg 110 salg 081 produksjon 2007 03 23007 økonomi prosjekt ansatt prosj.timer Alfa 120 207 Beta 120 250 Alfa 110 81 Alfa 081 157 Beta 230 106 ansatt avdeling 120 salg 110 salg 081 produksjon 2007 230 03 08 salg prosjekt ansatt prosj.timer Alfa 120 207 Beta 120 256 Alfa 110 88 Alfa 081 164 Beta 230 113 2007 03 09 t 22
Hva er et tidspunkt Tidsaksen består i praksis alltid av tidsintervaller i informasjonsmodellen Granulariteten til intervallene avhenger av behovet for nøyaktighet. Granularitet avgjør hvordan tidsintervallene skal representeres Hvert tidsintervall identifiseres ved et tidsstempel, f.eks. år+måned, år+ukenummer, år+mnd+dag, år+mnd+dag+time+minutt hva som er «samtidig» Hendelser innen samme tidsintervall kan ikke skilles i tid En informasjonsmodell kan ha flere tidsakser med ulik oppdeling og granularitet 23
Tidsmessig isomorfi Utviklingen av versjonene må gjenspeile virkeligheten på en hensiktsmessig måte Hvilken type tidspunkter tidsstempelet skal inneholde, må velges etter hva modellen skal reflektere Versjonene må registreres i databasen slik at forsinkelsen fra hendelse til registrering er akseptabel 24
Hva skal tidsstempelet reflektere? 1. Når en hendelse faktisk inntraff? 2. Når versjonen ble lagt inn? 3. Når versjonen skal tre i kraft? 4. Når versjonen ble ugyldig? 5.... Maks én av disse! (men neppe nr. 4) Merk: De fleste modeller ligger etter virkeligheten, f.eks. nr.1 (og nr. 2): Det tar tid før en hendelse i virkeligheten kan gjenfinnes som en versjon i databasen (mikrosekunder til dager, avhengig av registreringsprosess) Noen modeller må ligge «foran» virkeligheten, f.eks. nr.3 25
Tidsmessig kontinuitet Det er maksimalt én versjon pr. mulig tidsstempel Dersom det legges inn færre enn en versjon pr. mulig tidsstempel, så må det være mulig å avlede ikke-materialiserte versjoner for de tidsstemplene som ikke har en tilhørende versjon 26
Tidsmessig kontinuitet ansatt avdeling 120 salg 110 salg 081 produksjon 230 økonomi prosjekt ansatt prosj.timer Alfa 120 200 Beta 120 250 Alfa 110 75 Alfa 081 150 Beta 230 100 ansatt avdeling 120 salg 110 salg 081 produksjon 230 2007 03 07 økonomi prosjekt ansatt prosj.timer Alfa 120 204 Beta 120 253 Alfa 110 82 Alfa 081 157 Beta 230 107 ikke-materialisert versjon ansatt avdeling 120 salg 110 salg 081 produksjon 2007 03 08 230 salg prosjekt ansatt prosj.timer Alfa 120 207 Beta 120 256 Alfa 110 88 Alfa 081 164 Beta 230 113 2007 03 09 t 27
Film- eller lysbildeprinsippet? lysbildeprinsippet filmprinsippet 28
Film- og lysbildeprinsippet Filmprinsippet: Én ny versjon for hvert nytt mulig tidsstempel Trenger mye lagerplass ved fin granularitet Lysbildeprinsippet: Observerer og registrerer virkeligheten bare av og til Bygg inn nok kunnskap til at de ikkematerialiserte versjonene kan utledes 29
Begrepsdannelse med tidsaksen 30
Eksempel 31
Eksempel: Hvor lenge varer det? 32
Angivelse av opphør 33
Angivelse av varighet 34
Tommelfingerregler 1. Vær skeptisk overfor «mange-til-mange» (lange piler) og «en-tilen» (to korte piler) 2. Total rolle står vanligvis på samme side som entydighetsskranken 3. Entydighetsskranken omfatter sjelden mål, vekt, antall o.l. 4. Entydighetsskranken omfatter (nesten) aldri to tidspunkter 5. Manglende total rolle kan skjule et underbegrep 6. Dersom flere stier fører fra et begrep til et annet, sjekk om det finnes overflødige faktatyper eller om vi har ekvivalente stier/ joinskranker 7. Ikke formaliser fritekst det ikke skal søkes i 8. Vær skeptisk overfor begrepsdannelser og underbegreper uten grupperende roller 35
Tommelfingerregler (forts.) 9. Roller som spilles av begrepsdannelser har som oftest en entydighetsskranke (intern eller ekstern) 10. Bruk standardiserte referansemåter hvis de finnes 11. Dersom to begreper har samme referansemåte, bør de sannsynligvis tilhøre samme underbegrepsfamilie 12. Ikke baser informasjonsbærende referansemåter på ustabile fakta 13. Gjør informasjonsmodellen robust mot forretningsmessige og politiske endringer (av forretningsreglene i interesseområdet) 36