Transcript databaser
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
– en serie målbare/kvantifiserbare opplysninger – For eks. A B C E eller 5 10 12 34 45 0 1 •
Metadata
– 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 010849 107 Normann Fjordgt. 4 IT Grunnkurs 382 Jonny TDT4110 Ola 020621 203 Pedersen TDT4735 Peder 060326 010321 Studentov Nonnegata. 18 354 TDT4240 Programvarearkitektur Jonsen IT1409 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
Tar Fag
Studentnr Fagnr Heltall, 6 siffer Tekst, 7 tegn
Fag
Fagnr Navn Tekst, 7 tegn Tekst, 7 tegn
Student Student Tar Fag Tar Fag
Fagnr 010849 Fagnr TDT4110
Fag Fag
Navn
Fag
Navn Navn TDT4110 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
har lånt dem og
hvem
som • 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
Lages av
Film
Kai Olav Ellefsen, NTNU, 2010
19
Kardinalitet (2)
• 1 til n = 1 til mange
Filmselskap
Lages av
Film
• Leses: 1 filmselskap kan lage mange filmer
Kai Olav Ellefsen, NTNU, 2010
20
Kardinalitet (3)
• m til n = mange til mange
Skuespiller
Spiller i
Film
• 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
– Venn
Abstrakt begrep • Instans
– Erlend – Gry
En fysisk/faktisk realisering av en entitet Venn
Navn Antall DVDer
Erlend Gry 25 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 241289 13313 Gry 5555 5555 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
Studnr Etternavn Fornavn
1 Biff Mør 2 3 Eplekjekk Smør Jo Kari Studerer
Studnr Fagkode
1 2 3 TDT4105 TDT4240 TDT4105 Fag
Fagkode
TDT4105 TDT4240
Navn
IT Grunnkurs 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
Film
-id -Navn Årstall Regisserer
Regissør
-id -Navn Fødselsår
Kai Olav Ellefsen, NTNU, 2010