33
1 ITGK - H2010, Matlab Dagens tema : Teori - Databaser

ITGK - H2010, Matlab

  • Upload
    wray

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser. 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. Data og Informasjon. Data en serie målbare/kvantifiserbare opplysninger - PowerPoint PPT Presentation

Citation preview

Page 1: ITGK - H2010, Matlab

1

ITGK - H2010, Matlab

Dagens tema : Teori - Databaser

Page 2: ITGK - H2010, Matlab

2

Kai Olav Ellefsen, NTNU, 2010

I dag…

• Teori: DatabaserBok: 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

Page 3: ITGK - H2010, Matlab

3

Kai Olav Ellefsen, NTNU, 2010

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

Page 4: ITGK - H2010, Matlab

4

Kai Olav Ellefsen, NTNU, 2010

Programvarearkitektur010849 010321

020621

060326Fjordgt. 4

Dronningensgt. 7b

Nonnegata. 18

Ladev. 3

Jonny

Peder

Ola

Studentov

Smirnof

Pedersen

Jonsen

Normann

107203

354

382

TDT4110

TDT4240

TDT4735IT1409

IT Grunnkurs

Ust ruk tur ert d ata

StudentStudentnr Heltall, 6 siffer Etternavn Tekst, 30 tegn Fornavn Tekst, 30 tegn Adresse Tekst, 50 tegn Stud.post Heltall, 3 siffer

Tar FagStudentnr Heltall, 6 siffer Fagnr Tekst, 7 tegn

FagFagnr Tekst, 7 tegn Navn Tekst, 7 tegn

Met a dat a

Tar FagStudentnr 010849 Fagnr TDT4110

Tar FagStudentnr 010849 Fagnr TDT4110

Tar FagStudentnr 010849 Fagnr TDT4110

StudentStudentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107

StudentStudentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107

StudentStudentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107

StudentStudentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107

Tar FagStudentnr 010849 Fagnr TDT4110

FagFagnr TDT4110 Navn IT Grunnkurs

FagFagnr TDT4110 Navn IT Grunnkurs

FagFagnr TDT4110 Navn IT Grunnkurs

St ruk t ur ert da ta

Page 5: ITGK - H2010, Matlab

5

Kai Olav Ellefsen, NTNU, 2010

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…

Page 6: ITGK - H2010, Matlab

6

Kai Olav Ellefsen, NTNU, 2010

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

Page 7: ITGK - H2010, Matlab

7

Kai Olav Ellefsen, NTNU, 2010

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

Page 8: ITGK - H2010, Matlab

8

Kai Olav Ellefsen, NTNU, 2010

Databaseverktøydatabase 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.

Page 9: ITGK - H2010, Matlab

9

Kai Olav Ellefsen, NTNU, 2010

Databasedesign

• Database design består vanligvis av fire steg:1. Kravanalyse

Innsamling og analyse av krav til databasesystemet

2. Konseptuelt designModellere databasens informasjonsinnhold som en konseptuell datamodell

3. Logisk design: Strukturere informasjonsinnholdet i form av en logisk databasemodell

4. Fysisk designKonfigurere databasemodellen som et databaseskjema for et spesifikt DBMS

Page 10: ITGK - H2010, Matlab

10

Kai Olav Ellefsen, NTNU, 2010

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.

– DatabasekravBestemme hvilken informasjon fra den virkelige verden som man trenger

å gjøre seg bruk av i programmet.

Page 11: ITGK - H2010, Matlab

11

Kai Olav Ellefsen, NTNU, 2010

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

Page 12: ITGK - H2010, Matlab

12

Kai Olav Ellefsen, NTNU, 2010

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)

Page 13: ITGK - H2010, Matlab

13

Kai Olav Ellefsen, NTNU, 2010

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

Page 14: ITGK - H2010, Matlab

14

Kai Olav Ellefsen, NTNU, 2010

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

Page 15: ITGK - H2010, Matlab

15

Kai Olav Ellefsen, NTNU, 2010

Steg 2.2 Definer Entiteter (2)

Skuespiller Film

Page 16: ITGK - H2010, Matlab

16

Kai Olav Ellefsen, NTNU, 2010

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

Page 17: ITGK - H2010, Matlab

17

Kai Olav Ellefsen, NTNU, 2010

Steg 2.3 Avgjør Relasjoner (2)

Filmselskap Film

Lages av

Page 18: ITGK - H2010, Matlab

18

Kai Olav Ellefsen, NTNU, 2010

Kardinalitet (1)• 1 til 1

Filmselskap Film

Lages av

Page 19: ITGK - H2010, Matlab

19

Kai Olav Ellefsen, NTNU, 2010

Kardinalitet (2)• 1 til n = 1 til mange

• Leses: 1 filmselskap kan lage mange filmer

Filmselskap Film

Lages av

Page 20: ITGK - H2010, Matlab

20

Kai Olav Ellefsen, NTNU, 2010

Kardinalitet (3)• m til n = mange til mange

• 1 film kan ha mange skuespillere og 1 skuespiller kan være med i mange filmer

Skuespiller Film

Spiller i

Page 21: ITGK - H2010, Matlab

21

Kai Olav Ellefsen, NTNU, 2010

Steg 2.4 Finn Nøkkelattributt (1)

• Entitet Abstrakt begrep– Venn

• Instans En fysisk/faktisk realisering av en entitet– Erlend – Gry

Navn Antall DVDerErlend 25

Gry 12

Venn

Page 22: ITGK - H2010, Matlab

22

Kai Olav Ellefsen, NTNU, 2010

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

Persnr Navn Telefonnr122386 22312 Erlend 5555 5555

241289 13313 Gry 2525 2525

Venn

Page 23: ITGK - H2010, Matlab

23

Kai Olav Ellefsen, NTNU, 2010

Steg 2.4 Finn Nøkkelattributt (3)• En skuespiller kan identifisere vha personnummer

SkuespillerPersonnr

Page 24: ITGK - H2010, Matlab

24

Kai Olav Ellefsen, NTNU, 2010

Steg 2.5 Fyll ut Attributter

• Fyll på alle andre attributter på hver enkelt entitet

SkuespillerPersonnrFornavn

EtternavnAdresseKjønn

NasjonalitetFødselsdag

Page 25: ITGK - H2010, Matlab

25

Kai Olav Ellefsen, NTNU, 2010

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.

Page 26: ITGK - H2010, Matlab

26

Steg 3: Logisk design

• Beskrive den konseptuelle modellen som en logisk databasemodell, ofte som tabeller:

Kai Olav Ellefsen, NTNU, 2010

Studnr Etternavn Fornavn1 Biff Mør

2 Eplekjekk Jo

3 Smør Kari

Studnr Fagkode1 TDT4105

2 TDT4240

3 TDT4105

Fagkode NavnTDT4105 IT Grunnkurs

TDT4240 Prog.arkitektur

Student Studerer

Fag

Page 27: ITGK - H2010, Matlab

27

Kai Olav Ellefsen, NTNU, 2010

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)

Page 28: ITGK - H2010, Matlab

28

Kai Olav Ellefsen, NTNU, 2010

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.

Page 29: ITGK - H2010, Matlab

29

Kai Olav Ellefsen, NTNU, 2010

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)

);

Page 30: ITGK - H2010, Matlab

30

Kai Olav Ellefsen, NTNU, 2010

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

Page 31: ITGK - H2010, Matlab

31

Kai Olav Ellefsen, NTNU, 2010

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

Page 32: ITGK - H2010, Matlab

32

Kai Olav Ellefsen, NTNU, 2010

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

Page 33: ITGK - H2010, Matlab

33

Kai Olav Ellefsen, NTNU, 2010

Løsningsforslag

Film-id-Navn-Årstall

Regissør-id-Navn-Fødselsår

Skuespiller-id-Navn-Fødselsår

Spiller i

Regisserer