databaser

Report
1
ITGK - H2010, Matlab
Dagens tema : Teori - Databaser
2
I dag…
• Teori: Databaser
Bok: 8.1 – 8.2 (8.1-8.4 i gamle bøker)
• Læringsmål
– Lære det grunnleggende om databaser
– Lære det grunnleggende om databasedesign
Kai Olav Ellefsen, NTNU, 2010
3
Data og Informasjon
•
Data
–
–
•
Metadata
–
•
en serie målbare/kvantifiserbare opplysninger
For eks. A B C E eller 5 10 12 34 45 0 1
data som forklarer/beskriver annen data
Informasjon
–
data + metadata
•
•
•
•
Karakterer i students Ola Norman sine emner i høsten 2008: A B C E
Nedbør i trondheim uke 45: 5 10 12 34 45 0 1
Informasjon er personavhengig, må informere for å være informasjon
Kunnskap
–
informasjon + metainformasjon
•
•
Hvorfor, hvordan?
Kunnskap er også person- og konteksavhengig
Kai Olav Ellefsen, NTNU, 2010
4
107
TDT4110
Normann
Peder
010849
020621
Ola
Jonny
203
Nonnegata. 18
010321
354
Pedersen
Studentov
Fjordgt. 4
060326
382
IT1409
TDT4735
IT Grunnkurs
Programvarearkitektur
TDT4240
Jonsen
Dronningensgt. 7b
Smirnof
Ladev. 3
Student
Studentnr
Etternavn
Fornavn
Adresse
Stud.post
Heltall, 6 siffer
Tekst, 30 tegn
Tekst, 30 tegn
Tekst, 50 tegn
Heltall, 3 siffer
Student
Student
Student
Studentnr
010849
Student
Studentnr
010849
Studentnr
010849
Etternavn
Smirnof
Studentnr
010849
Etternavn
Smirnof
Etternavn
Smirnof
Fornavn
Studentov
Etternavn
Smirnof
Fornavn
Studentov
Fornavn
Studentov
Adresse
Ladev.
3 3
Fornavn Ladev.
Studentov
Adresse
Adresse
Ladev.
3 3
Stud.post
107
Adresse 107 Ladev.
Stud.post
Stud.post
107
Stud.post
107
Tar Fag
Studentnr
Fagnr
Fag
Heltall, 6 siffer
Tekst, 7 tegn
Tar
Fag
Tar
Fag
Tar
Fag
Studentnr
010849
Tar
Fag
Studentnr
010849
Studentnr
010849
Fagnr
TDT4110
Studentnr
010849
Fagnr
TDT4110
Fagnr
TDT4110
Fagnr
TDT4110
Fagnr
Navn
Fag
Fag
Fagnr
Fag
Fagnr
Navn
Fagnr
Navn
Navn
Tekst, 7 tegn
Tekst, 7 tegn
TDT4110
IT TDT4110
Grunnkurs
IT TDT4110
Grunnkurs
IT Grunnkurs
Kai Olav Ellefsen, NTNU, 2010
5
Hva er en database
• En database er en samling strukturerte data
– Vi kan lagre data, på en strukturert måte i en database
• Data som Personnummer (tall), navn (tekst), osv
– I tillegg har databasen metadata som forteller oss noe om våre data
• Typer av data, relasjoner mellom data, navn på data osv…
(Metadata beskriver struktur og begrensninger på databasen)
– Eksepler på databaser:
• Folkeregisteret, telefonkatalogen på nett, studieinformasjon på NTNU,
oversikt over bøkene på biblioteket…
Kai Olav Ellefsen, NTNU, 2010
6
Hva er en database (2)
•
En database integrerer en datamengde som alle deler av et
informasjonssystem kan benytte
•
Skjema:
•
–
Beskrivelsen av hele databasestrukturen
Delskjema:
–
Beskrivelse av en del av databasen som er tilgjengelig for en gitt del av informasjonssystemet
•
En database kontrollerer tilgang til sensitive data
•
Data i en database brukes ofte på forskjellige måter av de forskjellige delene av
et informasjonssystem
–
Eksempel skattelistene
•
Skatteetaten har et annet skjema enn de som ser på listene fra internett
Kai Olav Ellefsen, NTNU, 2010
7
Datauavhengighet
• En database bør være uavhengig av applikasjonene slik
at vi unngår…
– Å måtte endre i databasen ved nye applikasjoner
– Å endre applikasjoner når strukturen i databasen endres
• Vi skiller mellom to typer datauavhengighet
– Fysisk datauavhengighet - kan endre måten data er fysisk
representert i databasen uten å endre på applikasjoner
– Logisk datauavhengighet - kan endre databasens konseptuelle
skjema uten å måtte endre på applikasjoner
Kai Olav Ellefsen, NTNU, 2010
8
Databaseverktøy
database management system (DBMS)
• En samling av programmer for å lage og vedlikeholde en
database:
– Definere en database
• spesifisere metadata for de data som skal lagres: datatyper, datanavn,
datastrukturer og verdibegrensninger
– Konstruere en database
• legge inn og lagre data i databasen
– Manipulere en database
• spørre etter spesifikke data og oppdatere databasen
• Finnes ulike typer databaserprogrammer, men mest vanlig
er relasjonsdatabaser som mySQL, Oracle, Microsoft
Access, Sybase, DB2, etc.
Kai Olav Ellefsen, NTNU, 2010
9
Databasedesign
• Database design består vanligvis av fire steg:
1.
Kravanalyse
Innsamling og analyse av krav til databasesystemet
2.
Konseptuelt design
Modellere databasens informasjonsinnhold som en konseptuell datamodell
3.
Logisk design:
Strukturere informasjonsinnholdet i form av en logisk databasemodell
4.
Fysisk design
Konfigurere databasemodellen som et databaseskjema for et spesifikt DBMS
Kai Olav Ellefsen, NTNU, 2010
10
Steg 1: Kravanalyse
• Mål: Finne ut og forstå hvilken informasjon som
applikasjonen skal håndtere.
• Prosess:
– Funksjonelle krav
Finne ut hva applikasjonen (programmet) skal gjøre og hvilke operasjoner
applikasjonen skal gjøre mot databasen.
– Databasekrav
Bestemme hvilken informasjon fra den virkelige verden som man trenger
å gjøre seg bruk av i programmet.
Kai Olav Ellefsen, NTNU, 2010
11
Finne databasekrav
• Fra en beskrivelse av den virkelige verden, må man finne
miniverden (domenet) som beskriver den informasjon
applikasjonen skal bruke.
• Miniverden =
– Del av virkeligheten som databasen skal beskrive
– Eks: Alle bøkene i bokhylla di med tittel, forfatternavn og hvem som
har lånt dem
• Bruker beskrivelse av miniverden til å lage en datamodell
som er utgangspunktet for selve databasen
Kai Olav Ellefsen, NTNU, 2010
12
Steg 2: Konseptuelt design
(modellering)
2.1 Definere området som skal analyseres, avgjør modellens miniverden
2.2 Definer entiteter
2.3 Definere relasjoner mellom entitetene
2.4 Avgjør hva som skal være nøkkelattributt(er)
2.5 Fullfør hver entitet ved å finne samtlige attributter
2.6 Sikre at databasen kan brukes til det som er ønsket (at alt vi ønsker å
hente ut av informasjon er mulig)
Kai Olav Ellefsen, NTNU, 2010
13
Steg 2.1 Miniverden
• Identifisere informasjon som er sentral
for domenet som det fokuseres på
– Film, skuespiller, filmselskap, manus…
– Husk også at det som ikke er viktig må utelukkes
Kai Olav Ellefsen, NTNU, 2010
14
Steg 2.2. Definer Entiteter (1)
• Entitet:
–
–
ting i miniverden som vi har opplysninger om, eks: kunde, konto, sted, vare...
De viktigste substantivene
•
–
–
Skuespiller, regisør, film, filmselskap
Det er vanlig å bruke navn i entall
En entitet representeres senere som en tabell i en database
• Attributt:
–
–
en enkeltstående opplysning om/egenskap til en entitet:
Eks: Navn, fødselsdato, nasjonalitet
Kai Olav Ellefsen, NTNU, 2010
15
Steg 2.2 Definer Entiteter (2)
Skuespiller
Film
Kai Olav Ellefsen, NTNU, 2010
16
Steg 2.3 Avgjør Relasjoner (1)
• Relasjon: en sammenheng mellom entiteter (ting)
– En bok er skrevet av en forfatter
– En student tar et fag
Kai Olav Ellefsen, NTNU, 2010
17
Steg 2.3 Avgjør Relasjoner (2)
Filmselskap
Film
Lages av
Kai Olav Ellefsen, NTNU, 2010
18
Kardinalitet (1)
• 1 til 1
Filmselskap
Film
Lages av
Kai Olav Ellefsen, NTNU, 2010
19
Kardinalitet (2)
• 1 til n = 1 til mange
Filmselskap
Film
Lages av
• Leses: 1 filmselskap kan lage mange filmer
Kai Olav Ellefsen, NTNU, 2010
20
Kardinalitet (3)
• m til n = mange til mange
Skuespiller
Film
Spiller i
• 1 film kan ha mange skuespillere og 1
skuespiller kan være med i mange filmer
Kai Olav Ellefsen, NTNU, 2010
21
Steg 2.4 Finn Nøkkelattributt (1)
• Entitet
Abstrakt begrep
– Venn
• Instans En fysisk/faktisk realisering av en entitet
– Erlend
– Gry
Venn
Navn
Antall DVDer
Erlend
25
Gry
12
Kai Olav Ellefsen, NTNU, 2010
22
Steg 2.4 Finn Nøkkelattributt (2)
• Alle instanser av en entitet må kunne identifiseres unik
• Derfor må alle instanser ha et attributt som aldri kan være den
samme for to forskjellige instanser
– Kalles nøkkelattributt
• Personnummer
• Studentnummer
• Telefonnummer
Venn
Persnr
Navn
Telefonnr
122386 22312 Erlend
5555 5555
241289 13313 Gry
2525 2525
Kai Olav Ellefsen, NTNU, 2010
23
Steg 2.4 Finn Nøkkelattributt (3)
• En skuespiller kan identifisere vha personnummer
Skuespiller
Personnr
Kai Olav Ellefsen, NTNU, 2010
24
Steg 2.5 Fyll ut Attributter
• Fyll på alle andre attributter på hver enkelt entitet
Skuespiller
Personnr
Fornavn
Etternavn
Adresse
Kjønn
Nasjonalitet
Fødselsdag
Kai Olav Ellefsen, NTNU, 2010
25
Steg 2.6 Sikre krav
• Forsikre deg om at modellen din kan støtte alle krav
som stilles til databasen
– Sjekker om at modellen du har kommet fram til kan brukes til det
den er tenkt:
• Eks. at du kan få svar på de spørringene du vil gjøre mot databasen.
Kai Olav Ellefsen, NTNU, 2010
26
Steg 3: Logisk design
• Beskrive den konseptuelle modellen som en logisk
databasemodell, ofte som tabeller:
Student
Studerer
Studnr Etternavn Fornavn
Studnr Fagkode
1
Biff
Mør
1
TDT4105
2
Eplekjekk
Jo
2
TDT4240
3
Smør
Kari
3
TDT4105
Fag
Fagkode
Navn
TDT4105
IT Grunnkurs
TDT4240
Kai Olav Ellefsen,
Prog.arkitektur
NTNU, 2010
27
Steg 3: Logisk design (2)
• Tabeller beskrives helst som logisk skjema.
• Et logisk skjema beskrives ofte som et tabellnavn i
store bokstaver, der attributtnavn beskrives i
etterkant i parenteser hvor nøkkelattributter er
understreket:
– STUDENT(studnr, etternavn, fornavn)
– FAG(fagkode, navn)
– STUDERER(studnr, fagkode)
Kai Olav Ellefsen, NTNU, 2010
28
Steg 4: Fysisk design
• Fysisk design av en database er å spesifisere hvordan
databasen skal representeres i en konkret DBMS.
• Spesifiseringen gjøres ofte i et databasespørrespråk som
heter SQL: Structured Query Language
• Spesifiseringen innebærer at man oppretter tabeller med
ulike attributter, der man spesifiserer datatype for hvert
attributt, hva som er nøkkerattribut osv.
Kai Olav Ellefsen, NTNU, 2010
29
Steg 4: Fysisk design (2)
• Eksempel på SQL for å opprette databaser:
CREATE TABLE fag (
fagkode VARCHAR(10) NOT NULL PRIMARY KEY,
navn VARCHAR(20)
);
CREATE TABLE student (
studnr INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
etternavn VARCHAR(20),
fornavn VARCHAR(20)
);
Kai Olav Ellefsen, NTNU, 2010
30
Oppsummering
• Databaser brukes til å håndtere store datamengder
• Databaser modelleres ved hjelp av:
– Entiteter: substantiver som f.eks. person, konto, film, bok, etc.
– Relasjoner: forbinder substantivene som f.eks. bok har forfatter
– Attributter: beskriver substantivene som f.eks. personnummer
Kai Olav Ellefsen, NTNU, 2010
31
Oppsummering (2)
• Database design består vanligvis av fire steg:
1.
Kravanalyse: Innsamling og analyse av krav til databasesystemet
2.
Konseptuelt design: Modellere databasens informasjonsinnhold
som en konseptuell datamodell
3.
Logisk design: Strukturere informasjonsinnholdet i form av en
logisk databasemodell
4.
Fysisk design: Konfigurere databasemodellen som et
databaseskjema for et spesifikt DBMS
Kai Olav Ellefsen, NTNU, 2010
32
Oppgave: ER-diagram
• Lag et ER-diagram for en filmdatabase
• Relevante tabeller er film, regissør og skuespiller
• Attributter:
– Film: Navn, årstall
– Skuespiller: Navn, fødselsår
– Regissør: Navn, fødselsår
• Velg relasjoner, primærnøkler og kardinalitet selv
Kai Olav Ellefsen, NTNU, 2010
33
Løsningsforslag
Spiller i
Skuespiller
-id
-Navn
-Fødselsår
Regissør
Film
-id
-Navn
-Fødselsår
-id
-Navn
-Årstall
Regisserer
Kai Olav Ellefsen, NTNU, 2010

similar documents