330 likes | 475 Views
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
E N D
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 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 Kai Olav Ellefsen, NTNU, 2010
107 TDT4110 020621 Ola Jonny 203 Normann Peder Nonnegata. 18 010849 010321 354 Pedersen Ustrukturert data Studentov TDT4240 Fjordgt. 4 Jonsen 060326 IT1409 382 TDT4735 Ladev. 3 Smirnof Dronningensgt. 7b IT Grunnkurs Student Studentnr Heltall, 6 siffer Etternavn Tekst, 30 tegn Fornavn Tekst, 30 tegn Adresse Tekst, 50 tegn Stud.post Heltall, 3 siffer Metadata Tar Fag Studentnr Heltall, 6 siffer Fagnr Tekst, 7 tegn Fag Fagnr Tekst, 7 tegn Navn Tekst, 7 tegn Fag Fagnr TDT4110 Navn IT Grunnkurs Student Studentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107 Fag Fagnr TDT4110 Navn IT Grunnkurs Student Studentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107 Tar Fag Studentnr 010849 Fagnr TDT4110 Student Studentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107 Tar Fag Studentnr 010849 Fagnr TDT4110 Fag Fagnr TDT4110 Navn IT Grunnkurs Student Studentnr 010849 Etternavn Smirnof Fornavn Studentov Adresse Ladev. 3 Stud.post 107 Tar Fag Studentnr 010849 Fagnr TDT4110 Tar Fag Studentnr 010849 Fagnr TDT4110 Strukturert data Programvarearkitektur 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… 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 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 Kai Olav Ellefsen, NTNU, 2010
Databaseverktøy database management system (DBMS) • En samling av programmer for å lage og vedlikeholde en database: • Definereen database • spesifisere metadata for de data som skal lagres: datatyper, datanavn, datastrukturer og verdibegrensninger • Konstruereen database • legge inn og lagre data i databasen • Manipulereen 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
Databasedesign • Database design består vanligvis av fire steg: • Kravanalyse Innsamling og analyse av krav til databasesystemet • Konseptuelt design Modellere databasens informasjonsinnhold som en konseptuell datamodell • Logisk design: Strukturere informasjonsinnholdet i form av en logisk databasemodell • Fysisk design Konfigurere databasemodellen som et databaseskjema for et spesifikt DBMS 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. • Databasekrav Bestemme hvilken informasjon fra den virkelige verden som man trenger å gjøre seg bruk av i programmet. 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 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 Definererelasjonermellom 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
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
Steg 2.2. Definer Entiteter (1) • Entitet: • tingi 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
Steg 2.2 Definer Entiteter (2) Skuespiller Film Kai Olav Ellefsen, NTNU, 2010
Steg 2.3 Avgjør Relasjoner (1) • Relasjon: en sammenheng mellom entiteter (ting) • En boker skrevet av en forfatter • En student tar et fag Kai Olav Ellefsen, NTNU, 2010
Steg 2.3 Avgjør Relasjoner (2) Filmselskap Film Lages av Kai Olav Ellefsen, NTNU, 2010
Kardinalitet (1) • 1 til 1 Filmselskap Film Lages av Kai Olav Ellefsen, NTNU, 2010
Kardinalitet (2) • 1 til n = 1 til mange • Leses: 1 filmselskap kan lage mange filmer Filmselskap Film Lages av 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 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 Venn 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 Venn Kai Olav Ellefsen, NTNU, 2010
Steg 2.4 Finn Nøkkelattributt (3) • En skuespiller kan identifisere vha personnummer Skuespiller Personnr Kai Olav Ellefsen, NTNU, 2010
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
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
Steg 3: Logisk design Student Studerer Fag Beskrive den konseptuelle modellen som en logisk databasemodell, ofte som tabeller: 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) 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. 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) ); 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 Kai Olav Ellefsen, NTNU, 2010
Oppsummering (2) • Database design består vanligvis av fire steg: • Kravanalyse: Innsamling og analyse av krav til databasesystemet • Konseptuelt design: Modellere databasens informasjonsinnhold som en konseptuell datamodell • Logisk design: Strukturere informasjonsinnholdet i form av en logisk databasemodell • Fysisk design: Konfigurere databasemodellen som et databaseskjema for et spesifikt DBMS 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 Kai Olav Ellefsen, NTNU, 2010
Løsningsforslag Spiller i Regissør -id -Navn -Fødselsår Film -id -Navn -Årstall Skuespiller -id -Navn -Fødselsår Regisserer Kai Olav Ellefsen, NTNU, 2010