Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Databaseteori. Hva er en database?  Oppgave:  Gi en beskrivelse av hva ordet betyr  Bruk gjerne et oppslagsverk (f eks www.dictionary.com) og se andres.

Liknende presentasjoner


Presentasjon om: "Databaseteori. Hva er en database?  Oppgave:  Gi en beskrivelse av hva ordet betyr  Bruk gjerne et oppslagsverk (f eks www.dictionary.com) og se andres."— Utskrift av presentasjonen:

1 Databaseteori

2 Hva er en database?  Oppgave:  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 –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 MANNKVINNE er gift med

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

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  Oppgave:  Utvid modellen til også å vise atributter  Foreslå primærnøkler og fremmednøkler tar velges av STUDENTFAG

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. 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: medlemsnr FN: postnr FN: idretts_id FN: medlemsnr PN: idretts_id PN: nummer FN: medlemsnr PN: postnr PN = primærnøkkel FN = fremmednøkkel

39 Forslag til framgangsmåte, (gjentas til vi er fornøyd) 1.Bestem målet for databasen 2.Bestem hva som skal være med (tabeller, entitetstyper) 3.Bestem hvilke egenskaper som skal beskrives (felter, attributter) 4.Bestem relasjoner 5.Vurder relasjonstyper (en-til-en, en-til-mange, mange-til-mange) 6.Ev. mange-til-mange relasjoner må splittes opp til en-til-mange 7.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 medlemverv

43 Medlemsregister, versjon 2 medlem verv medlem-verv

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. Hva er en database?  Oppgave:  Gi en beskrivelse av hva ordet betyr  Bruk gjerne et oppslagsverk (f eks www.dictionary.com) og se andres."

Liknende presentasjoner


Annonser fra Google