Fra uryddig verden til strukturert stoppestedsdatabase Gerhard Skagestein 6. juni 2005 INF 220 7-Jun-05 INF220 Prosjekt i modellering
Vi ser bare rapportene... Rapport Rapport3 Rapport2 INF 220 Informasjonssystem Hvordan finne fram til en korrekt relasjonsdatabasestruktur ut fra rapportene? 7-Jun-05 INF220 Prosjekt i modellering 2
Ulike veier til optimal normalform Virkeligheten (interesseområdet) analyse intuisjon INF 220 gruppering normalisering elementære utsagn optimal normalform universalrelasjonen 7-Jun-05 INF220 Prosjekt i modellering 3
Gå via en datamodell! Rapport Rapport2 Gruppering Konseptualisering INF 220 Rapport3 7-Jun-05 INF220 Prosjekt i modellering 4
Ogdens trekant Vi ser representasjonene, ikke alltid begrepene Thoughts of Reference Begreper INF 220 Symbol Lingvistiske elementer representasjoner Referent Fenomener i interesseområdet 7-Jun-05 INF220 Prosjekt i modellering 5
37.txt (utsnitt) 30234 Gullhaugveien 598844 6647044 3023 4 Nydalen T [ buss] 598750 6647083 HPLNR ST NAVN XK YK ------------------------------------------------------------------------------------------------------- 3023 2 Nydalen T [ buss] 598720 6647080 300427 Badebakken 598329 6646669 300420 Bjølsen (i Bergensgata) 598307 6646348 300423 Advokat Dehlis plass 598275 6645974 300425 2 Bentsebrua 598298 6645753 30040 24 Sagene (i Kierschowsgt) 597868 6645765 300345 Lindern 597447 6645423 300336 Tannlegehøyskolen 597366 6645237 300335 Lovisenberg 597400 6644978 300326 Colletts gate 59786 6644562 300320 St. Hanshaugen (v/ Markus krk) 597256 6644226 300323 Stensberggata 597345 6643999 300324 Nordahl Bruns gate (i Oslo) 597487 6643650 30008 Apotekergata 597507 6643247 300050 3 Stortorvet (ved Glasmagasinet) 597595 6643007 30002 Jernbanetorget T (Biskop Gunn.gt) 597963 6642925 INF 220 7-Jun-05 INF220 Prosjekt i modellering 6
stoplist.xml (utsnitt) - <Stop> <DISID>TVBE</DISID> <StopName>Tveita bedriftsområde</stopname> </Stop> - <Stop> <DISID>ELEV</DISID> <StopName>Fretex</StopName> </Stop> - <Stop> <DISID>HALB</DISID> <StopName>Hallagerbakken</StopName> </Stop> - <Stop> <DISID>ØSTV</DISID> <StopName>Øvre Stabburvei</StopName> </Stop> INF 220 7-Jun-05 INF220 Prosjekt i modellering 7
Dynamisk informasjon fra http://xxx.x.xx.xxx/xxxxxxx?disid=s$jert - <DISDeviation TimeStamp="2005-06-06T09:26:53.877+02:00"> <TripID>37:7</TripID> <DISID>S$JERT</DISID> <StopSeqCount>0</StopSeqCount> <LineID>37</LineID> <DirectionID>2</DirectionID> <LineText>37</LineText> <DirectionText>2</DirectionText> <DestinationStop>Helsfyr T</DestinationStop> <TripStatus>Real</TripStatus> <ScheduledDISArrivalTime>2005-06- 06T09:53:00.000+02:00</ScheduledDISArrivalTime> <ExpectedDISArrivalTime>2005-06- 06T09:53:00.000+02:00</ExpectedDISArrivalTime> <ScheduledDISDepartureTime>2005-06- 06T09:53:00.000+02:00</ScheduledDISDepartureTime> <ExpectedDISDepartureTime>2005-06- 06T09:53:00.000+02:00</ExpectedDISDepartureTime> </DISDeviation> INF 220 7-Jun-05 INF220 Prosjekt i modellering 8
Sammenheng representasjon - begrep Enkel representasjon (ikke informasjonsbærende) Sammensatt representasjon (ikke informasjonsbærende) Informasjonsbærende representasjon Husk: Vi ønsker uforanderlige representasjoner! Let etter begreper i tabelloverskrifter, ledetekster og XML-markeringer INF 220 7-Jun-05 INF220 Prosjekt i modellering 9
Stoppestedsmodellen Navn navn {id} 0.. Holdeplass 0.. hplnr {id} {immutable} Kortnavn kortnavn {id} Stopp_på_linje INF 220 Linje linjenr {id} [sequence] Stoppested st {id} Koordinat x,y {id} 7-Jun-05 INF220 Prosjekt i modellering 0
Stoppestedsmodellen oppløsning av - Navn navn {id} {immutable} 0.. Holdeplass 0.. hplnr {id} Kortnavn kortnavn {id} Linje linjenr {id} Stopp_på_linje Stoppested st {id} Koordinat x,y {id} INF 220 [sequence] 7-Jun-05 INF220 Prosjekt i modellering
Usynlige begreper Husk at forekomstene i en relasjon er en mengde Foreligger det noe sorteringsbehov? I så fall trenger vi noe å sortere! INF 220 7-Jun-05 INF220 Prosjekt i modellering 2
Stoppestedsmodellen legge til sorteringsbegrep Navn navn {id} {immu- 0.. 0..table} Holdeplass hplnr {id} Kortnavn kortnavn {id} Linje linjenr {id} Stopp_på_linje Stoppested st {id} Koordinat x,y {id} INF 220 Sekvensnr sekvensnr {id} 7-Jun-05 INF220 Prosjekt i modellering 3
Stoppestedsmodellen alternativ identifisering Navn navn {id} {immutable} 0.. Holdeplass 0.. hplnr {id} Kortnavn kortnavn {id} Linje linjenr {id} Stopp_på_linje sekvensnr{id} Stoppested st {id} Koordinat x,y {id} INF 220 7-Jun-05 INF220 Prosjekt i modellering 4
Stoppestedsmodellen gruppert «Navn navn {id} {immutable} 0.. Holdeplass 0.. hplnr {id} kortnavn {fk} {imm.} navn {fk} Kortnavn kortnavn {id} Linje linjenr {id} Stopp_på_linje linjenr{fk}{id} sekvensnr{id} hplnr{fk} sk {fk} Stoppested hplnr{fk}{id} st {id} x,y {fk} Koordinat x,y {id} INF 220 7-Jun-05 INF220 Prosjekt i modellering 5
Stoppestedsmodellen fjerning av unyttige klasser Navn navn {id} {immutable} 0.. Holdeplass hplnr {id} kortnavn {imm.} navn 0.. Kortnavn kortnavn {id} Linje linjenr {id} Stopp_på_linje linjenr{fk}{id} sekvensnr{id} hplnr {fk} st {fk} Stoppested hplnr{fk}{id} st{id} x,y Koordinat x,y {id} INF 220 7-Jun-05 INF220 Prosjekt i modellering 6