500 likes | 698 Views
Kap 04 Datamodellering. Datamodellering. - Et språk for å analysere og beskrive virkeligheten. - En metode for å beskrive naturlige sammenhenger i data som skal benyttes i et informasjons-system. Objekt.
E N D
Datamodellering - Et språk for å analysere og beskrive virkeligheten. - En metode for å beskrive naturlige sammenhenger i data som skal benyttes i et informasjons-system.
Objekt • Et Objekt er en gjenstand eller et begrep som er entydig identifiserbar.Eks: En Bil er et objekt. Denne bilen kan vi identifisere eller gjenkjenne ved identifikasjonen bilnummer siden biler har ulikt bilnummer. Vi sier at ID = bilnummer En Person er et objekt. Personen kan vi identifisere ved hjelp av navn hvis den gruppe personer vi betrakter er slik at ingen har samme navn. Eller vi kan sette ID = fødselsnummer siden dette er unikt. En Vare (eller produkt) er et objekt. ID kan være et varenummer. En Avdeling kan vi betrakte som et objekt. ID kan være avdelingsnummer. Et Tidspunkt kan vi betrakte som et objekt. Her kan vi sette ID = Dato + Klokkeslett.
Attributt • Attributt: Med Attributt mener vi en egenskapknyttet til et objekt.Eks: Attributter (egenskaper) knyttet til en Bilkan være: Farge, Vekt, Pris, Årsmodell, ... Attributter knyttet til en Personkan være: Alder, Høyde, Vekt, Yrke, ... Attributter knyttet til Avdelingkan være: Avdelingsnavn, Salgsbudsjett, Etasje, ...
Verdi • Med Verdi mener vi verdier som et attributt kan anta.Eks: Attributtet Fargekan anta verdiene: Rød, Blå, Grønn, ... Attriubuttet Yrkekan anta verdiene: Fisker, Lege, Snekker, ... Attributtet Høydekan anta verdiene: 180 cm, 150 cm, ...
Entitet • Med en Entitetmener vi et objekttilknyttet dets attributter og verdier.
Objekt / Attributt / Verdi / Entitet Begrep Figur Definisjon Eks Objekt En gjenstand eller et begrep som er entydig identifiserbar Bil ID = BilNr Attributt Egenskap knyttet til et objekt Farge Verdi Verdi Verdien til et attributt Rød Entitet Et objekt tilknyttet dets attributter og verdier PC 12345 Rød
Relasjoner ( Sammenhenger ) Eier Eies av Nils PC23718
Relasjoner Eier Eies av Person Bil Objekter Eier Eies av Entiteter Person Bil
Relasjoner En-til-en 1:1 1 1 En-til-mange 1:n 1 n Mange-til-mange n:m n m
1:n relasjon 1 n Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen Olsen Nilsen PC23718 PN11900 DA30980 PN12000 PC10550
1:n relasjon 1 n Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen Olsen Nilsen PC23718 PN11900 PC23718 PN12000 PC10550 Galt: Samme bilnummer forekommer flere ganger
1:n relasjon n 1 Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen PC23718 PN11900 PC23718
1:n relasjon n 1 Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Nilsen PC23718 PN11900 PN12000 Galt: Samme navn forekommer flere ganger
n:m relasjon n m Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen Olsen Nilsen Knutsen PC23718 PN11900 DA30980 PN12000 PC10550 PN11900
n:m relasjon n m Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen Olsen Nilsen Knutsen PC23718 PN11900 DA30980 PN12000 PC23718 PN11900 Galt: Samme kombinasjon av navn og bilnummer forekommer flere ganger
1:1 relasjon 1 1 Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Andersen Knutsen PC23718 PN11900 DA30980 LH20000
1:1 relasjon 1 1 Person (Navn) Bil (BilNr) Navn BilNr Nilsen Olsen Nilsen Knutsen PC23718 PN11900 DA30980 PN11900 Galt: Samme navn forekommer flere ganger Galt: Samme bilnummer forekommer flere ganger
Relasjoner 1:1 1:n n:m
Objektering av relasjoner Person (Navn) Bil (BilNr) Navn BilNr Ved en mange-til-mange-relasjon ( n:m ) mellom to objekter lager vi et nytt objekt av relasjonen. ID i det nye objektet vil være samlingen av ID-ene fra de to opprinnelige objektene. Dette nye objektet vil seinere gi opphav til en ny entitet og en ny tabell i relasjons-databasen.
n:m relasjon Eksempel Person Bil PC 11111 Ford PC 22222 Volvo PC 33333 Renault PC 44444 Saab PC 55555 Ford PC 66666 Ford PC 77777 Toyota Nilsen Storgt 3 Olsen Havnegt 7 Hansen Ekornv 8 Knutsen Tiurv 9 1 BilEier 1 Nilsen PC 33333 01.01.95 Hansen PC 11111 07.07.93 Nilsen PC 22222 03.05.96 Olsen PC 44444 12.09.94 Olsen PC 22222 14.10.96 n n
Objektering av relasjoner Firma Vare Lev F V L En n:m relasjon mellom Firma og Vare gir opphav til et nytt objekt FV. Lev (Leverandør) inngår i en n:m relasjon til FV. Slutt-resultatet blir som vist i figuren til høyre.
Entiteter - Tabeller Navn Adr Person (PNr) Avd (ANr) Navn Budsj. 1. Grupper sammen objekter til entiteter 2. Overfør entitetene og relasjonene mellom disse til tabeller.
Entiteter - Tabeller Person Avd PNR navn adr ANR navn budsjett PNR anr Person Avd PNR navn adr avd ANR navn budsjett
Datamodell / Entiteter / Tabeller - Eks 1 F E D C A B G A B A c d e B f g a B A c d e B f g a B A
Datamodell / Entiteter / Tabeller - Eks 2 F E D H C A B G A H B A c d e A B B f g A c d e A B B f g
Datamodell / Entiteter / Tabeller - Eks 3 C F E H I D A B G C C h A A d e IC A B C B B f g Tabellene blir de samme som entitetene
Datamodell / Entiteter / Tabeller - Eks 4 C H F J I E K D A B G A K A d e f A B C j B g H i C B H A A d e f K A B c C j C B B g h H H i
KinoEt litt større eksempel - Involverte objekter Alders- grense Pris Kino Film Kinosal Varighet Tidspunkt Hoved- rolle Bi- rolle
KinoEt litt større eksempel - Starter med Kinosal og film Film Kinosal
KinoStarter med objektene Kinosal og Film Film Kinosal K1 K2 K3 K1 F1 F2 F3 F2 Feil iflg. datamodell. Medfører at en kinosal ikke kan vise en film hvis det tidligere er blitt vist film i samme kinosal. Feil iflg. datamodell. Medfører at en film ikke kan vises om igjen hvis den tidligere er vist et eller annet sted.
KinoStarter med objektene Kinosal og Film Film Kinosal K1 K2 K3 K1 F1 F2 F3 F2 Feil iflg. datamodell. Medfører at en kinosal ikke kan vise en film hvis det tidligere er blitt vist film i samme kinosal.
KinoStarter med objektene Kinosal og Film Film Kinosal K1 K2 K3 K1 F1 F2 F3 F2 Feil iflg. datamodell. Medfører at en film ikke kan vises om igjen hvis den tidligere er vist et eller annet sted.
KinoStarter med objektene Kinosal og Film Film Kinosal
KinoStarter med objektene Kinosal og Film Feil iflg. datamodell. Medfører at en kinosal ikke kan vise samme film mer enn en gang. Kinosal Film K1 K2 K3 K1 K2 F1 F2 F1 F1 F1 T1 T2 T3 T4 T4 Tid Feil iflg. datamodell. Medfører at en film ikke kan vises til et gitt tidspunkt hvis det vises film andre steder til samme tidspunkt.
KinoStarter med objektene Kinosal og Film Feil iflg. datamodell. Medfører at en kinosal ikke kan vise samme film mer enn en gang. Kinosal Film K1 K2 K3 K1 K2 F1 F2 F1 F1 F1 T1 T2 T3 T4 T4 Tid
KinoStarter med objektene Kinosal og Film Kinosal Film K1 K2 K3 K1 K2 F1 F2 F1 F1 F1 T1 T2 T3 T4 T4 Tid Feil iflg. datamodell. Medfører at en film ikke kan vises til et gitt tidspunkt hvis det vises film andre steder til samme tidspunkt.
KinoStarter med objektene Kinosal og Film Kinosal Film Tid
KinoStarter med objektene Kinosal og Film Film Kinosal Tid K F T
KinoStarter med objektene Kinosal og Film K F T K1 K2 K3 K4 K4 F1 F2 F1 F2 F1 T1 T2 T3 T2 T2 Ok iflg datamodell. Men medfører at to forskjellige filmer kan vises samtidig i samme kinosal. Konklusjon: Uakseptabel datamodell
KinoStarter med objektene Film og Tid Film Tid F1 F2 F3 F1 T1 T2 T3 T2 Feil iflg. datamodell. Medføret at en film kan ikke vises mer enn en gang
KinoStarter med objektene Film og Tid Film Tid F1 F2 F3 F4 T1 T2 T3 T2 Feil iflg. datamodell. Medfører at en kinosal ikke kan vise en film hvis det på samme tidspunkt vises film i en annen kinosal.
KinoStarter med objektene Film og Tid Film Tid Kinosal
KinoStarter med objektene Film og Tid Film Tid F T K Kinosal Ok iflg datamodell. Men medfører at to forskjellige filmer kan vises samtidig i samme kinosal. F1 F2 F3 T1 T2 T2 K1 K2 K2 Konklusjon: Uakseptabel datamodell
KinoStarter med objektene Kinosal og Tid Forestilling Kinosal Tid
KinoStarter med objektene Kinosal og Tid - Grunnleggende datamodell Forestilling Kino Kinosal Tid Hovedregel: Hvis vi skal unngå at to ulike begivenheter inntreffer på samme sted til samme tid, start med objektene Sted og Tid (her Kinosal og Tid). Film