Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Databaseteori.

Liknende presentasjoner


Presentasjon om: "Databaseteori."— Utskrift av presentasjonen:

1 Databaseteori

2 Hva er en database? Oppgave: Hva kan vi bruke databaser til?
Gi en beskrivelse av hva ordet betyr Bruk gjerne et oppslagsverk (f eks og se andres definisjoner Hva kan vi bruke databaser til?

3 Databaseverktøy Vi trenger et program for å opprette og kommunisere med en database DBMS Database Management System Eksempler på databaseverktøy Access, Oracle, Sybase og MySQL (som vi skal benytte)

4 Datamodellering

5 Hva er datamodellering?
La oss gjøre en liten omskrivning: Modellering av data Datamodellering handler altså om å lage en modell over dataene Når vi er fornøyd med modellen vår, kan vi bruke den som grunnlag for å utvikle databasen vår

6 Interesseområde Før vi lager en datamodell, må vi finne ut hvilke data som er interessante De data som skal avbildes i datamodellen Den del av verden som er interessant for vårt informasjonssystem På engelsk: Universe of Discourse (UoD) Også kalt samtaleunivers

7 Entiteter En entitet er et objekt innen vårt interesseområde
Eksempler: En person En bil En entitet er en rad i en tabell Kalles også en forekomst

8 Entitetstyper En entitetstype er en samling entiteter Eksempler:
Entitetstypen person inneholder alle personer Entitetstypen bil inneholder alle biler Merk forskjellen fra forrige lysark hvor det var snakk om en bestemt bil/person

9 Modell av en entitetstype
Entitetstyper kan visualiseres som en boks med navnet på entitetstypen inni Bil

10 Atributter Et atributt er en egenskap ved en entitet
Alle atributter må ha en type Tekst, tall … Når vi lager et informasjonssystem må vi vurdere hvilke attributter som er relevante Dvs de som er innenfor vårt interesseområde Eksempel: Entitetstypen person kan ha atributtene: personnummer, navn og alder

11 Entitetstyper med attributter
Dersom vi har informasjon om hvilke attributter som bør tilhøre de forskjellige entitetstypene, kan vi angi dette i modellen

12 Oppgave Finn fem ting i rommet vi er som du mener er naturlige entitetstyper Velg en av disse, og lag en modell av denne, og atributtene du mener hører til Gi eksempler på entiteter av denne entitetstypen

13 ER-modellering Den modellen vi vil benytte heter ER-modellen
Entity-Relationship model Så langt har vi sett på modellering av entiteter Entitetene utgjør dataene Nå skal vi se på relasjonene mellom dataene

14 Relasjoner Relasjoner er det som binder entitetene sammen
Vi skal se på tre typer relasjoner: En-til-en relasjoner En-til-mange relasjoner Mange-til-mange relasjoner

15 En-til-en relasjoner En-til-en relasjoner indikerer at en entitet i den ene entitetstypen er relatert til ingen eller en (og maks en) entitet i den andre entitetstypen En mann kan bare være gift med en kvinne En kvinne kan bare være gift med en mann Noen menn og kvinner er ugift

16 En-til-mange relasjoner
En en-til-mange relasjon indikerer at en entitet i den ene entitetstypen er relatert til ingen, en eller flere entiteter i den andre entitetstypen Dette gjelder ikke den andre veien. En entitet i den andre entitesgruppen er relatert til ingen eller en (og maks en) entitet i den førstnevnte entitetstypen En person kan eie mange biler En bil kan bare ha en eier

17 Mange-til-mange relasjoner
En mange-til-mange relasjon indikerer at en entitet i den ene entitetstypen er relatert til ingen, en eller flere entiteter i den andre entitetstypen Det samme gjelder den andre veien Et fag kan ha mange elever En elev kan ta mange fag

18 Oppgave Hvorfor har vi relasjoner?

19 Hvordan lager vi relasjoner?
For å lage relasjoner trenger vi En primærnøkkel En fremmednøkkel

20 Primærnøkler Primærnøkkel – et attributt eller en samling attributter som entydig identifiserer en entitet Primærnøkkelen angis med en strek under attributtnavnet

21 Fremmednøkler Fremmednøkkel – et attributt som settes inn i en entitetstype for å angi en referanse til en annen entitetstype Eksempel: I dette tilfellet er eier fremmednøkkelen som lager koblingen til entitetstypen Person

22 Modellering Entitet Relasjoner Understreking indikerer primærnøkkel
* indikerer fremmednøkkel Relasjoner En-til-en En-til-mange Mange-til-mange Null eller en En og bare en Null, en eller flere En eller flere

23 Relasjon: en-til-en Oppgave: Utvid modellen til også å vise atributter
er gift med MANN KVINNE er gift med Oppgave: Utvid modellen til også å vise atributter

24 Relasjon: en-til-mange
eies av BIL PERSON eier Oppgave: Utvid modellen til også å vise atributter Foreslå primærnøkler og fremmednøkler

25 Oppgave Lag en modell over klasser og elever forutsetninger:
en elev kan bare gå i en klasse en klasse har mange elever

26 Relasjon: mange-til-mange
tar STUDENT FAG velges av Oppgave: Utvid modellen til også å vise atributter Foreslå primærnøkler og fremmednøkler

27 Mange-til-mange relasjoner
Mange-til-mange relasjoner gir oss et referanseproblem Hvor skal vi plassere fremmednøkkelen? Ingen av de nedenstående løsningene er tilfredsstillende I hvilken av tabellene kan vi registrere når faget ble tatt?

28 Løsning: entitetisering
Også kalt begrepsdannelse Når vi har en mange-til-mange relasjon, må vi danne en ny entitet (eller et nytt begrep) En modell av typen over (mange-til-mange relasjon) kan alltid gjøres om til en modell av typen under

29 Eksempel på entitetisering
En elev kan ta mange fag og et fag kan tas av mange elever Entitetiserer

30 Etter entitetiseringen
Ofte kan den nye entiteten tillegges flere attributter Det vil kanskje være ønskelig å vite hvilket studieår en elev har deltatt i et fag Merk i modellen over at studieår er en del av primærnøkkelen Kan du tenke deg hvorfor?

31 Eksempel (se de 7 nest lysarkene)
et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes navn, fødselsdato, adresse, telefonnr, innmeldingsår og idrettsgren. Et enkelt forslag til en datamodell kunne være (se neste lysark):

32

33 alle attributter skal ha en enkelt verdi Det betyr f. eks
alle attributter skal ha en enkelt verdi Det betyr f.eks. at man bare kan fylle inn ett telefonnr for hvert medlem i idrettsklubben i eksemplet forrige lysark. Hvis man ønsker å lagre flere telefonnr (f.eks. privat, arbeid og mobil) for hvert medlem, må man innføre en ny entitet med en-til-mange relasjon til entiteten medlem, slik som vist på dette lysarket

34 det må opprettes entiteter for attributter som ikke er entydig avhengig av entitetens identifikator I eksemplet på forrige lysark betyr det at f.eks. at idrettsgren ikke er noe som entydig kobles til hvert medlem. Idrettsgren skal derfor opprettes som en egen entitet, som vist i figuren på dette lysarket

35 det skal være slik at ingen attributter er avhengige av hverandre slik at de alltid opptrer sammen Slike attributter skal også gis en egen entitet. I eksemplet vårt opptrer attributtene poststed og postnr alltid sammen, og vi fjerner det ved å innføre en ny entitet.

36 eventuelle mange-til-mange relasjoner må fjernes Dersom klubben tillater et medlem å drive med flere av klubbens idrettsgrener samtidig, har vi en mange-til-manger relasjon på forrige lysark. I så fall må vi endre relasjonen mellom medlem og idrettsgren til en mange-til-mange relasjon.

37 Siste steg: konvertering til tabeller i en database
Hver entitet gis en egen tabell. Hvert attributt gis en kolonne i entitetens tabell. Bestem attributtenes datatype (integer, desimaltall, tekst, dato..osv) Alle tabellene gis en primærnøkkel. Enten brukes en kolonne med et felt som er entydig (f.eks. en kode, varenr, etc). Hvis ikke et slikt entydig attributt finnes, opprettes en ny kolonne som bare har til hensikt å være en identifikator for hver post i tabellen. Relasjoner legges inn med fremmednøkler. Det betyr at entiteten som har "mange"-enden (den enden med "kråkefoten") får en kolonne som skal inneholde verdien i kolonnen som er primærnøkkel til entiteten i den andre enden av relasjonen. PRØV Å SETT OPP ET ENDELIG FORSLAG!

38 PN: nummer FN: medlemsnr PN: postnr PN: idretts_id FN: idretts_id FN: medlemsnr PN: medlemsnr FN: postnr PN = primærnøkkel FN = fremmednøkkel

39 Forslag til framgangsmåte, (gjentas til vi er fornøyd)
Bestem målet for databasen Bestem hva som skal være med (tabeller, entitetstyper) Bestem hvilke egenskaper som skal beskrives (felter, attributter) Bestem relasjoner Vurder relasjonstyper (en-til-en, en-til-mange, mange-til-mange) Ev. mange-til-mange relasjoner må splittes opp til en-til-mange Bestem primærnøkler og fremmednøkler

40 Oppgave 2 Lag en datamodell for et medlemsregister forutsetninger:
modellen skal inneholde data om nåværende medlemmer og tillitsverv et medlem kan ha ett eller flere tillitsverv hvert tillitsverv kan bare være besatt av ett medlem

41 Oppgave 2b et medlem kan ha ett eller flere tillitsverv
hvert tillitsverv kan være besatt av ulike medlemmer i forskjellige perioder

42 Medlemsregister, versjon 1
verv

43 Medlemsregister, versjon 2
medlem-verv verv medlem

44 Diskusjonsoppgave: datamodell for materialstyring
databasen skal holde oversikt over hvilket materiell som finnes, hva som trengs til forskjellige oppgaver, hvordan det skaffes til veie, evt foreldelsesdatoer, andre frister ol. hvilke entitetstyper skal datamodellen inneholde?

45 Hjemmeoppgave: Lag en datamodell for et klassebibliotek
datamodellen skal inneholde data om elever, bøker og bokanmeldelser forutsetninger: hver elev kan eie flere bøker og hver bok har en eier en elev kan bare låne en bok om gangen hver elev kan skrive mange bokanmeldelser og hver bok kan ha flere anmeldelser, en anmeldelse er skrevet av en elev og handler om en bok om hver bok skal det finnes opplysninger om forfatter og tittel om hver elev skal finnes opplysninger om navn om hver anmeldelse skal selve teksten finnes modellen skal vise hvem som eier en bok, hvem som låner en bok, anmeldelser knyttet til en bok og hvem som har skrevet en anmeldelse


Laste ned ppt "Databaseteori."

Liknende presentasjoner


Annonser fra Google