Datamodellering/database

HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Datamodellering/database
Forelesningsnotater basert på læreboka:
’Innføring i informasjonsteknologi’
Litterarurreferanse:
Kjos, B.: Innføring i Informasjonsteknologi, 4 Utgave, Kap. 8
HiA, Bodil Ask, 2004
1
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Datamodeller - database
Forelesningsnotater basert på læreboka:
’Innføring i informasjonsteknologi’
Tar fag
Student
studentnr: 010899
studentnr: 010899
fagnr:
dat100
Fag
fagnr: dat100
Litterarurreferanse:
Kjos, B.: Innføring i Informasjonsteknologi, 4. Kap.8
HiA, Bodil Ask, 2004
2
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
3
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
4
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
5
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Datarepresentasjon
Student
Tar fag
studentnr: heltall, 6 siffer
etternavn: tekst, 30 tegn
fornavn: tekst, 30 tegn
adresse: tekst, 60 tegn
studpost: heltall, 3 siffer
studentnr: heltall 6 siffer
fagnr: tekst, 6 tegn
Fag
fagnr: tekst 6 tegn
navn: tekst, 60 tegn
Metadata beskriver data og strukturer
HiA, Bodil Ask, 2004
6
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Datanavn~mengder/verdier
Tar fag
studentnr: 010899
fagnr:
dat100
Student
studentnr: 010899
etternavn: Hansen
fornavn: Jens
adresse: Storgata 5
studpost: 101
Fag
fagnr: dat100
navn: Informasjons- og kommunikasjonsteknologi Grunnkurs
Metadata setter data i sammenheng
HiA, Bodil Ask, 2004
7
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Lagring av data
• En stor utfordring for alle informasjonssystemer 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
HiA, Bodil Ask, 2004
8
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
9
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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.
En database
Data tilhørende person 1
Data tilhørende person 2
Data tilhørende person 3
Delte data
HiA, Bodil Ask, 2004
10
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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 System
Database software til operasjoner på databasen
HiA, Bodil Ask, 2004
11
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
12
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
13
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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.
Bruker
Appl.
Bruker
Appl.
Bruker
Appl.
HiA, Bodil Ask, 2004
DBMS
Database
DD
14
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
15
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
16
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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.
HiA, Bodil Ask, 2004
17
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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)
HiA, Bodil Ask, 2004
18
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
19
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
20
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Hierarkisk modell - eksempel
S1
S2
S3
Hansen 39
B1
Personbil
B2
Varebil
B3
Varebil
Opel
Ford
Volvo
27
33
14
Jensen
B4
B2
B3
26
Personbil
Varebil
Varebil
Volvo
Ford
Volvo
17
11
23
Nilsen
B5
B2
B4
54
Varebil
Varebil
Personbil
Opel
Ford
Volvo
16
12
30
HiA, Bodil Ask, 2004
21
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
22
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Relasjonsdatabase - eksempel
Tar fag
studentnr: 010899
fagnr:
dat100
fagnr:
dat230
Student
studentnr: 010899
etternavn: Hansen
fornavn: Jens
adresse: Storgata 5
studpost: 101
HiA, Bodil Ask, 2004
Fag
fagnr: dat100
navn: Informasjons- og kommunikasjonsteknologi Grunnkurs
23
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
KOLONNE (et felt)
opplysninger
RAD
(en post)
HiA, Bodil Ask, 2004
24
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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)
HiA, Bodil Ask, 2004
25
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
26
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
27
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
28
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
29
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
30
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
31
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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)
HiA, Bodil Ask, 2004
32
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
33
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Lagdeling
Applikasjonene gir definerte brukergrensesnitt
Ulike applikasjoner som:
Applikasjon
Applikasjon
Nr 1
Nr 2
• Utfører definerte operasjoner
• Bestemmer tilgang til informasjon
Applikasjonene ser data som en logisk modell
Programtolker
Databaseverktøy
• Programvare for å tolke og utføre operasjoner
Database aksess
• Programvare for å aksessere database
Leser databasen slik den er organisert på disken
Lagrede data
HiA, Bodil Ask, 2004
Database bestående av
metadata og informasjon
34
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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.
HiA, Bodil Ask, 2004
35
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
36
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
37
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
38
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
Datamodell
• Datamodellen er en klar beskrivelse av
databasekravene og 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
HiA, Bodil Ask, 2004
39
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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)
HiA, Bodil Ask, 2004
40
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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)
HiA, Bodil Ask, 2004
41
HØGSKOLEN I AGDER
Agder University College
Databasemodeller
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
HiA, Bodil Ask, 2004
42