1 / 42

Datamodellering/database

Datamodellering/database. Forelesningsnotater basert på læreboka: ’Innføring i informasjonsteknologi’. Litterarurreferanse: Kjos, B.: Innføring i Informasjonsteknologi, 4 Utgave, Kap. 8. Tar fag studentnr: 010899 fagnr: dat100. Student studentnr: 010899. Fag fagnr: dat100.

lefty
Download Presentation

Datamodellering/database

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. Datamodellering/database Forelesningsnotater basert på læreboka: ’Innføring i informasjonsteknologi’ Litterarurreferanse: Kjos, B.: Innføring i Informasjonsteknologi, 4 Utgave, Kap. 8

  2. Tar fag studentnr: 010899 fagnr: dat100 Student studentnr: 010899 Fag fagnr: dat100 Datamodeller - database Forelesningsnotater basert på læreboka: ’Innføring i informasjonsteknologi’ Litterarurreferanse: Kjos, B.: Innføring i Informasjonsteknologi, 4. Kap.8

  3. Representasjon av informasjon • Informasjon i en organisasjon eller bedrift bør være tilgjengelig for de personer som trenger den og på en slik måte at informasjonen er lett tilgjengelig. • Bedriftene bør m.a.o. tenke gjennom hva slags informasjonssystem de trenger, hvordan de ønsker at informasjonen skal være representert

  4. Data - Metadata - Informasjon • Metadata brukes om data som beskriver andre data, for eksempel hvilken type en verdi er av. • Metadata kan også beskrive hvordan en datamengde er strukturert og hvordan verdiene i en datamengde henger sammen. • Et informasjonssystem er avhengig av metadata for å kunne håndtere data som informasjon

  5. Metadata • Metadata kan deles opp etter hvordan de beskriver tre aspekter ved data: • Datatype: tall, tekst, bilder, dato osv. • Datanavn: navn, adresser, telfonnr. Stud.nr. osv • Datastruktur: hvilke data hører logisk sammen • er navn, adresse og telefonnr forbundet på noen måte

  6. Tar fag studentnr: heltall 6 siffer fagnr: tekst, 6 tegn Student studentnr: heltall, 6 siffer etternavn: tekst, 30 tegn fornavn: tekst, 30 tegn adresse: tekst, 60 tegn studpost: heltall, 3 siffer Fag fagnr: tekst 6 tegn navn: tekst, 60 tegn Datarepresentasjon Metadata beskriver data og strukturer

  7. Datanavn~mengder/verdier Student studentnr: 010899 etternavn: Hansen fornavn: Jens adresse: Storgata 5 studpost: 101 Tar fag studentnr: 010899 fagnr: dat100 Fag fagnr: dat100 navn: Informasjons- og kommunikasjons- teknologi Grunnkurs Metadata setter data i sammenheng

  8. Lagring av data • En stor utfordring for alle informasjons-systemer er lagring av data • lagre slik at vi beholder informasjonsverdien • lagre slik at vi lett finner informasjonen • Metadata spiller en sentral rolle i dette arbeidet ettersom det er metadata som definerer hvordan data skal tolkes og forstås i et informasjonssystem

  9. Databaser • Svært vanlig å registrere datamengder i databaser. • Databasebetegnelsen blir vanligvis brukt om: • samling av data (ikke presis nok) • en samling av relatert informasjon • data som er lagret på et masselager og kan brukes og sees på flere måter • en datakilde for forskjellige deler av et informasjonssystem • data som er systematisk ordnet og strukturert

  10. En database Data tilhørende person 1 Data tilhørende person 2 Data tilhørende person 3 Delte data Hva er en database ? En database inneholder data. I en database kan vi tillegge dataene eierforhold eller tilgangsrettigheter. Typisk for en database er at data deles mellom ulike eiere eller at ulike brukere har tilgang til felles data i tillegg til egne data.

  11. Hva består en database av ? En database kan vi dele i følgende tre hoved-deler: - Selve databasen hvor dataene ligger lagret. - Data Dictionary (System-kataloger) hvor det ligger lagret informasjon om databasens struktur (eierforhold, tilgangsrettigheter, tabeller, relasjoner, …) - DBMS (Database Management System). Dette er program (software) til bruk ved operasjoner (lesing, oppdatering, innsetting, sletting, …) på databasen. • Selve databasen med lagrede data • Data Dictionary (System-kataloger)med alle nødvendige opplysninger om databasens struktur • DBMS- DataBase Management SystemDatabase software til operasjoner på databasen

  12. Databaser ~ skjemaer • En database integrerer en datamengde som alle deler av et informasjonssystem kan benytte. • Hvert delsystem ser bare den datamengden det har behov for • Et skjema er en beskrivelse av hele databasestrukturen • Et delskjema er beskrivelse av en del av databasestrukturen som er tilgjengelig for en del av informasjonssystemet

  13. Database ~ applikasjonsprogram • Et viktig aspekt ved databaser er kontroll med data og spesielt sensitive data (personopplysninger) • Vi skiller gjerne mellom database og applikasjonsprogram som vi bruker for å hente ut data fra databasen. • En applikasjon som skriver ut lønnsslipp har tilgang til personopplysninger, mens en applikasjon som lister ut beholdning av bestemt varetype ikke har det

  14. Database-system Til høyre vises databasens tre hoved-deler: Selve dataene, DD (Data Dictionary) og DBMS. Brukere av databasen benytter ulike applikasjons-program ved operasjoner mot databasen. Disse applikasjons-programmene opererer ikke direkte på databasen, men henvender seg til DBMS. DBMS fungerer altså som et slags mellomledd mellom brukernes applikasjons-program og selve dataene i databasen. Database Bruker Appl. DBMS Bruker Appl. DD Bruker Appl.

  15. Ulik tilgang til informasjon • Vi regner med at selve databasen er mer stabil enn de applikasjonsprogrammene som bruker databasen. Vi kan med andre ord ha en mengde applikasjonsprogram som henter ut ulik informasjon fra en database. • Applikasjonsprogrammene kan sette sammen informasjon på ulike måter: • Per Hansen, adressen, postnr og sted • Per Hansen, personnr, lønnsplassering, lønn, skattetrekk • Per Hansen, arbeidsnr, avdeling, stilling • etc

  16. Fleksibilitet • Hvis vi lar databasen være mest mulig uavhengig av applikasjonsprogrammene, trenger vi ikke å gjøre endringer i databasen hver gang vi har behov for nye kombinasjoner av opplysninger. • Vi kaller dette datauavhengighet og skiller mellom to typer: • fysisk datauavhengighet • logisk datauavhengighet

  17. Datauavhengighhet • Fysisk datauavhengighet: • mulighet for å endre databasen uten å måtte endre de applikasjonene som bruker basen • dette gjøres ved at applikasjonene jobber ’mot’ databasens skjema som viser hvordan databasen er bygd opp konseptuelt, og ikke hvordan den fysisk er bygd opp. • Logisk datauavhengighet • mulighet for å endre databasens konseptuelle skjema uten å måtte endre applikasjonene som bruker den. Endringer kan være utvidelser eller krymping.

  18. Databaseverktøy • Databaseverktøy er en samling programmer som gjør det mulig å lage og vedlikeholde en database. • Databaseverktøy gjør det mulig å • definere en database (spesifisere metadata for de data som skal lagres: datatyper, navn, strukturer) • konstruere en database (legge inn og lagre data i databasen) • manipulere en database (spørre etter spesifikke data og oppdatere basen)

  19. Logiske database konstruksjoner • Ved bruk av databaseverktøy ser de enkelte programmene den logiske konstruksjonen av databasen, ikke den fysiske. • Denne logiske konstruksjonen av databasen kalles en databasemodell. • Flere forskjellige databasemodeller (hierarkisk, nettverksmodell, relasjonsmodell) • Den dominerende i dag er relasjonsmodellen

  20. Hierarkisk database modell Den hierarkiske modellen gir god oversikt over hvilke biler hver av selgerne har brukt, men er vanskeligere å finne alle selgerne som har brukt en spesiell bil Databasen inneholder opplysninger om selgernr, person, alder,bilnr,biltype,bilnavn og hvor lenge selgeren har brukt den spesielle bilen

  21. S1 Hansen 39 B1 Personbil Opel 27 B2 Varebil Ford 33 B3 Varebil Volvo 14 S2 Jensen 26 B4 Personbil Volvo 17 B2 Varebil Ford 11 B3 Varebil Volvo 23 S3 Nilsen 54 B5 Varebil Opel 16 B2 Varebil Ford 12 B4 Personbil Volvo 30 Hierarkisk modell - eksempel

  22. Databasemodeller Relasjonsdatabaser • basert på begrepet relasjon • viser sammenhenger mellom verdier på ulike datafelt • bruker tabeller, som blir omtalt som relasjoner. • Relasjonsdatabasen i eksemplet har tre relasjoner: student - tar fag - fag

  23. Relasjonsdatabase - eksempel Student studentnr: 010899 etternavn: Hansen fornavn: Jens adresse: Storgata 5 studpost: 101 Tar fag studentnr: 010899 fagnr: dat100 fagnr: dat230 Fag fagnr: dat100 navn: Informasjons- og kommunikasjons- teknologi Grunnkurs

  24. KOLONNE (et felt) RAD (en post) Tabell - poster • En tabell består av kolonner og rader • Hver kolonne inneholder bestemt informasjon • Kolonnene har et navn som identifiserer hva slags opplysninger kolonnen skal inneholde • Hver rad vil være som et ”arkivkort” med opplysninger

  25. Nøkkelfelt • For en tabell er det nødvendig å definere en kolonne (eller felt) som skal gi en entydig verdi for hvert ”arkivkort” eller rad (post) • Dette for å unngå forveksling av data • Som nøkkelfelt kan vi for eksempel bruke: • Personnummer (finnes ingen like i hele verden) • Bilnummer, telefonnummer, postnummer mv. • Pasientnummer (kan være et fortløpende nummer som ikke brukes til mer enn 1 pasient i sykehuset)

  26. Dobbeltlagring av data • Det er fort gjort å definere en tabell, slik at vi kan begynne å legge inn opplysninger i databasen • Kanskje tenker vi ikke så nøye over hvilke opplysninger vi legger inn og hvordan dette gjøres • I tabellen pasienter ser vi at mange pasienter bor på samme Postnummer og Poststed • Dette gir oss en dobbeltlagring av informasjon

  27. Oppsplitting av tabeller • Vi kan få en entydig adresse til pasientene ved bare å registrere Postnummeret til pasientens adresse • Det er en kjent og entydig sammenheng mellom • Postnummer og Poststed • Da bør vi opprette en ny tabell som inneholder denne oversikten – vi lager en Postnummer-tabell Vi benytter Postnummer som nøkkelfelt, og legger inn aktuelle opplysninger i tabellen

  28. Endring av Pasient-tabellen • For å unngå sløsing med plass (et problem i store databaser), skal vi nå endre tabellen over pasienter • Det er tilstrekkelig å lagre bare Postnummer • Databasen vår består nå av 2 tabeller • Vi vet at det er en entydig sammenheng mellom Postnummer i pasient-tabellen, og tilhørende Poststed

  29. Koblinger • Det vil være ulike relasjoner mellom data i tabellene • To tabeller som inneholder informasjon som henger sammen må kobles til hverandre ved å opprette en relasjon mellom tabellene • For å kunne opprette relasjoner, må tabellene ha felter med felles eller identisk informasjon • For eksempel kan en tabell med pasientopplysninger ha et felt som heter Postnummer • En annet tabell med oversikt over alle poststeder vil også ha et felt som heter Postnummer • Vi kan da opprette en relasjon mellom disse tabellene, hvor feltet Postnummer er identisk i begge tabellene

  30. Definere en kobling • I database programmet må vi nå definere en kobling mellom de feltene som har samhørende verdier, i dette eksemplet feltene ”Postnummer” • Når vi skal vise de aktuelle pasientopplysningene, kan vi også få frem Poststed, selv om dette ligger i en annen tabell enn pasientopplysningene Linjen mellom tabellene viser at det er en kobling som refererer til Postnummer

  31. Oppnådde fordeler • Når du lager en tabell, bør hvert felt (kolonne) inneholde unik informasjon • I den første tabellen ”Pasienter” hadde feltet Poststed gjentatt den samme informasjon mange ganger. Overflødige data - Redundans • Vi opprettet da en ny tabell, hvor det samme postnummer og postssted kun ble lagret én gang • Dette medfører mindre behov for lagringsplass • Dataregistreringen går raskere • Du kan raskt hente frem allerede lagret informasjon • Svartider ved bruk av applikasjonen blir raskere

  32. Databaseverktøy - applikasjoner • Databaseverktøyet fremstiller databasen som en logisk databasemodell for applikasjonene som benytter basen • Databaseverktøyet tilbyr et generelt grensesnitt som applikasjonene bruker for å kommunisere med databasen • Standard grensesnitt for relasjonsdatabaser er SQL (Structured Query Language)

  33. Databaseverktøy • Vi oppnår lagdeling av informasjonssystemet ved bruk av database verktøy. Brukerne ser data slik de blir presentert av applikasjonene • Applikasjonene ser data som en logisk databasemodell • Databaseverktøyet har programvare for å tolke og utføre operasjoner samt programvare for å aksessere selve databasen • Databaseverktøyet ser data slik de er organiserte på et masselager

  34. Lagdeling Applikasjonene gir definerte brukergrensesnitt • Ulike applikasjoner som: • Utfører definerte operasjoner • Bestemmer tilgang til informasjon Applikasjon Nr 1 Applikasjon Nr 2 Applikasjonene ser data som en logisk modell • Databaseverktøy • Programvare for å tolke og utføre operasjoner • Programvare for å aksessere database Programtolker Database aksess Leser databasen slik den er organisert på disken Lagrede data Database bestående av metadata og informasjon

  35. Separasjon • Separasjon av applikasjonene og databasen gjør at vi oppnår begge former for datauavhengighet (fysisk og logisk) • En slik separasjon gjør det enkelt for oss å endre applikasjoner, lage nye uten at vi trenger å endre databasen.

  36. Database - informasjonssystemer • Utvikling av database inngår gjerne som del av utviklingen av et informasjonssystem. • Denne prosessen har flere faser: • analyse, konstruksjon og implementasjon • I analysefasen må en definere den del av ’verden’ som får konsekvenser av informasjonssystemet. Denne delen kaller vi miniverden • Deretter identifiserer vi de dataelementene og deres struktur og betydning i systemets miniverden

  37. Analysefasen • I analysefasen må vi ta tak i de krav som har relevans for utvikling av databasen • Kravene organiserer vi i to grupper. • Databasekrav : hvilke data må informasjonssystemet kunne lagre i databasen • Funksjonelle krav: hvilke operasjoner ønsker informasjonssystemet å gjøre mot databasen

  38. Konstruksjonsfasen • I konstruksjonsfasen jobber vi med kravene fra analysefasen og utvikler en konseptuell konstruksjon av databasen som vi kaller en datamodell. • Vi kaller dette datamodellering og bruker gjerne et datamodelleringsspråk

  39. Datamodell • Datamodellen er en klar beskrivelse av databasekraveneog inkluderer • detaljerte beskrivelser av dataenes typer, begrensninger og innbyrdes relasjoner • Inneholder ingen detaljer rundt selve implementeringen • Skal være lett å forstå - også for teknisk ukyndige

  40. Implementasjon • Når datamodellen er klar, kommer implementeringsfasen. • Første ledd er å overføre den konseptuelle datamodellen til en databasemodell • (den logiske modellen av databasen som databaseverktøyet presenterer for applikasjonene i informasjonssystemet)

  41. Datamodeller • Datamodeller er et godt hjelpemiddel for å konstruere databaser. • De gjør det mulig entydig å diskutere forslag til databasens struktur, samt verifisere de krav som ble stilt i analysefasen • Gir oversikt slik at databasen blir mest mulig konsistent og hindrer redundans (dobbeltlagring)

  42. Fordeler med databaser • Det er mange fordeler med å opprette databaser for å samle informasjon av ulike typer • Du kan få en samlet oversikt over informasjon • Informasjonen kan deles av flere personer • Den gir rask registrering av data og unngår dobbeltlagring • Lagringsbehovet blir optimalt, og tilgangen til data sikres • Enkelt å vedlikeholde opplysninger • Du kan tilrettelegge ulike skjemaer som samler viktig informasjon for brukeren (skreddersydd brukergrensesnitt) • Du kan lage gode rapporter med nødvendig oversikt

More Related