490 likes | 664 Views
Datamodellering. Man is a knot, a web, a mesh into which relationships are tied. Only those relationships matter Saint-Exupéry. Datamodellering. En teknikk for å modellere data En grafisk representasjon av en database Målet er å identifisere opplysningene som skal lagres i databasen
E N D
Datamodellering Man is a knot, a web, a mesh into which relationships are tied. Only those relationships matter Saint-Exupéry
Datamodellering • En teknikk for å modellere data • En grafisk representasjon av en database • Målet er å identifisere opplysningene som skal lagres i databasen • Datamodellering er et samarbeid mellom kunden og den som analyserer
Byggeblokker • Entitet (ting, sted, person, hendelse , beskrivelse, rolle, ..) • Attributt (egenskap) • Sammenheng (hvordan entitetene henger sammen) • Identifikator (hvilke attributter skiller entitetene fra hverandre)
Kvalitet i datamodeller • En godt utformet datamodell • Et bilde som avspeiler en del av virkeligheten
En godt utformet datamodell • Følger konstruksjonsreglene • Er ikke tvetydig • Alle entiteter, attributter, sammenhenger og identifikatorer er definert • Navn er meningsfulle for kunden
Et speilbilde av en del virkeligheten • Er en virkelighetstro beskrivelse av den delen av verden modellen representerer • Sammenhenger har korrekt kardinalitet • Datamodellen er avgrenset, men komplett, forståelig og nøyaktig • Datamodellen gir mening for kunden
Kvalitetsforbedring • Er detaljeringsgraden korrekt? • Er alle unntak håndtert • Er modellen nøyaktig • Er avgrensningen korrekt
Systemdefinisjon (Checkland) • Client - Hvem er "kunden" som det går utover hvis systemet svikter • Actor - Hvilke aktører er involvert i systemets daglige bruk • Transformation process - Hva må gjøres med input for å produsere output • Weltanschauung - Hvilket verdenssyn gjør definisjonen meningsfull • Owner Hvem har makt til å fjerne systemet • EnivironmentalFactors - Begrensninger i form av lovverk, etikk Dette er viktige faktorer å tenke gjennom tidlig i en systemutviklingsprosess.
Bruksanvisning • De neste lysarkene inneholder modelleringseksempler • Diskusjon av eksemplene finnes i boka på side 163-183 • Diskusjonen er sentral i fagområdet datamodellering • Krever bearbeiding og modning.
Bibliotek En bok er ikke en bok!
Problem • Leasing av fly til flyselskaper • Et fly kan leases av flere flyselskaper gjennom sin levetid • Flyselskapet leaser flere fly • Leasingavtalen formidles av en agent • Agenten formidler flere fly • Agenten formidler fly til flere flyselskaper • Samme fly kan ha blitt formidlet gjennom flere agenter
Trekantforhold for entiteter 2.versjon Leieavtalen ”LEASE”binder sammen agent, fly og flyselskap. Slik er det også i virkeligheten. NB! Dette er en ny form for entitetisering. Den entitetiserer tre M:M sammenhenger. Samme prinsipp kan brukes når flere entiteter skal knyttes sammen, men må være begrunnet i virkelige sammenhenger.
Problem • Prosjektplanlegging • Plan og virkelighet • En ansatt kan være involvert i flere prosjekter • Et prosjekt gjøres av flere ansatte • Et prosjekt består av flere aktiviteter • En aktivitet hører til nøyaktig ett prosjekt • Den ansatte registrerer timer på prosjekt og aktivitet • Følgende eksempler fokuserer på timeregistrering • Hvor detaljert er planleggingen?
Plan og gjennomføring ver 1. Hva om planleggingen er mer detaljert – fra dag til dag per ansatt?
Entitetstyper • Uavhengige • Avhengige (Svake) • Assosiative • (aka entitetiseringer eller intersection) • Aggregater • Underordnete
Uavhengige entieter • Vanligvis startpunktet • Framstående i kundens tankegang • Ofte knyttet til andre og avhengige entiteter
Avhengige entiteter • Avhenger av en annen entitet for å kunne eksistere og identifiseres • Kan gjøres uavhengig ved hjelp av en vilkårlig identifikator
Assosiative entiteter • Et bi-produkt av en m:m sammenheng • Typisk mellom uavhengige entiteter • Kan lagre gjeldende eller historiske data • Kan gjøres uavhengige med en vilkårlig identifikator
Aggregat-entiteter • Skapes av mange forskjellige entiteter med felles prefix eller suffix • Brukes ofte ved navn og adresser • fornavn, mellomnavn, etternavn, kallenavn • postadresse, gateadresse, leveringsadresse • hjemmetelefon, mobiltelefon, fax, kontortelefon
Underordete entiteter • En entitet som varierer mellom instanser De underordnede entitetene utelukker hverandre Streken betyr at identifikator i overordnet er identifikator i underordnet Underordnede eller uavhengige?
Generalisering • En sammenheng mellom en mer generel og en spesiell entitet
Generalisering • Map med en tabell per entitet • For hver av subtypeentitetene er primærnøkkelen den samme som i supertypen • Denne kolonnen må også være en fremmednøkkel så subtypen ikke kan settes inn uten en matchende supertype • Det vil si at du må sikre at det finnes en rad i dyretabellen før du setter inn tilsvarende rad i hestetabellen.
Aggregering • Aggregering er et del/hele-forhold
Delt aggregering • En entitet eier en annen entitet, men andre entiteter kan også eie den.
Kompositt aggregering • En entitet har eksklusivt eierskap til en annen entitet
Tips om datamodellering • Modellen vil utvide seg og trekke seg sammen • Finn opp identifikatorer om nødvendig • Identifikatorer har kun et formål – identifisering • Identifikatorer skal ikke brukes til å kode annen informasjon • En datamodell forutsetter ingen rekkefølge • Lag en ranking-attributt hvis ordning av instanser er påkrevet • En attributts betydning må være konsistent
Navn og adresser • Spørringstesten • Om en attributt har deler, er det sannsynlig at noen av delene noen gang vil delta i en spørring? • Finn en løsning for hvordan navn, adresser og telefonnumre skal lagres i databasen Eksempel med viktige detaljers.182
Tips om datamodellering • Entiteter med bare en instans er i orden (firma) • Bruk omtanke når du velger navn på entiteter og attributter - navnene må gi klar mening • Synonymer - forskjellige ord med samme betydning • Oppnå enighet blant kundene eller bruk view • Homonymer - samme ord med forskjellig mening • Vær oppmerksom så unngår du forvirring • Lag mer presise uttrykk: • salgsdato ->salgsdato, kontraktdato, leveringsdato • Navnsetting for assosiasjonsentiteter • Sett sammen entitetsnavnene hvis du ikke finner noe begrep som passer. studentkurs vs. deltakelse
Tips om datamodellering • Oppdag alle unntak!? • Still spørsmål: Er det alltid slik? Har det noen gang vært unntak? Hva kan endre seg i framtida? • Sett navn på sammenhenger for å unngå tvetydighet • Hold datamodellen nøyaktig og velformet • Er det en god idé å begynne fra scratch?
Meningsbærende identifikator • En identifikator er meningsbærende når noen av entitetens attribtter kan utledes av identifikatorens verdi f.eks flight BU240
Anbefalinger • Ingentig går tapt og mye kan vinnes ved å bruke identifikatorer som ikke er meningsbærende • Ikke meningsbærende identifikatorer er hensiktsmessige • Hensikten er unik identifisering av entiteten • Attributtter brukes for å beskrive entiteten nærmere • Et klart skille mellom rollen til identifikatorer og attributter skaper færre problemer knyttet til administrasjon av data
Sju vaner hos gode eksperter på datamodellering • Treng inn i det som skal modelleres • Utfordre • Generalisere • Test • Begrens • Integrer • Fullfør
Datamodelleringsoppgave • Entiteten destinasjon • Skriv ned attributter i samarbeid med sideperson • Skriv ned eksempel på verdier • Skift samarbeidspartner • Finn homonymer og synonymer