1 / 45

Databaseteori

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 definisjoner Hva kan vi bruke databaser til?. Databaseverktøy. Vi trenger et program for å opprette og kommunisere med en database

ata
Download Presentation

Databaseteori

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Databaseteori

  2. Hva er en database? • Oppgave: • Gi en beskrivelse av hva ordet betyr • Bruk gjerne et oppslagsverk (f eks www.dictionary.com) 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. Bil Modell av en entitetstype • Entitetstyper kan visualiseres som en boks med navnet på entitetstypen inni

  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 er gift med MANN KVINNE er gift med

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

  25. Oppgave • Lag en modell over klasser og eleverforutsetninger: • 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 STUDENT FAG velges av

  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. alle attributter skal ha en enkelt verdiDet 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

  33. det må opprettes entiteter for attributter som ikke er entydig avhengig av entitetens identifikatorI 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

  34. det skal være slik at ingen attributter er avhengige av hverandre slik at de alltid opptrer sammenSlike 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.

  35. eventuelle mange-til-mange relasjoner må fjernesDersom 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.

  36. 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!

  37. 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

  38. 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 Forslag til framgangsmåte,(gjentas til vi er fornøyd)

  39. Oppgave 2 • Lag en datamodell for et medlemsregisterforutsetninger: • 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

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

  41. Medlemsregister, versjon 1 medlem verv

  42. Medlemsregister, versjon 2 medlem-verv verv medlem

  43. 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?

  44. 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

More Related