ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

Like dokumenter
Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Introduksjon til fagfeltet

OM DATABASER DATABASESYSTEMER

Databaser: Relasjonsmodellen, del I

1. SQL datadefinisjon og manipulering

1. Innføring i bruk av MySQL Query Browser

INF1300 Introduksjon til databaser

Datamodellering 101 En tenkt høgskoledatabase

Miniverden og ER- modell

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2007

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

2 of :19 1 of :19 [Kurssidene] [ ABI - fagsider bibin ]

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2008

IN2090 Introduksjon til databaser

INF1300 Introduksjon til databaser

INF130: Datahåndtering og analyse

Fag TDT4145 Datamodellering og databasesystemer Øving 3: Relasjonsalgebra og SQL

INF212 - Databaseteori. Kursinnhold

Eksamen i Internetteknologi Fagkode: IVA1379

Modeller for design av Web-Applikasjoner

1. Relasjonsmodellen Kommentarer til læreboka

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

Databaser & objektorientering.

UNIVERSITETET I OSLO

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

UML 1. Use case drevet analyse og design Kirsten Ribu

INF3100 Databasesystemer

Utvikling fra kjernen og ut

INF3100 Databasesystemer

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

Kunnskapsorganisasjon og gjenfinning 1.1. Introduksjon til databaseteori. Tine L. Frost, Jørn Helge B. Dahl og Kim Tallerås

Databaser fra et logikkperspektiv

Informasjonssystemer, DBMSer og databaser

1. Datamodellering Kommentarer til læreboka

Det gjenstår nå kun å definere hva som skal være primærnøkkel i rolle rabellen.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

Produktrapport Gruppe 9

Databaser kort intro. Tom Heine Nätt

Datamodellering med E/R

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Utvikling fra kjernen og ut

Tabeller og enkle spørringer

Oppgaver Oppgave a: Sett opp mulige relasjoner

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

UNIVERSITETET I OSLO

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Oppsummering. Thomas Lohne Aanes Thomas Amble

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Hvordan databasesystemene kan hjelpe RAM-produsentene

Databaser: Introduksjon til databaser og filsystemer

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og sets (mengder) Utgave 3: Kap. 9. Terje Rydland - IDI/NTNU

IN3020 V2019 Obligatorisk oppgave nr. 1

Databaser. - Normalisering -

IN2090 Databaser og datamodellering. Databasedesign og normalformer

1. SQL server. Beskrivelse og forberedelse til installasjon

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

Sikkerhet og tilgangskontroll i RDBMS-er

MENGDER (SETS) Læringsmål og pensum. Kapittel 9.2

UNIVERSITETET I OSLO

SQL Introduksjonskurs. Oversikt

Parallelle og distribuerte databaser del III

TDT4110 Informasjonsteknologi grunnkurs: Tema: Dictionaries og mengder (sets) - Kapittel 9. Professor Alf Inge Wang

Del 3: Noark 5-basert databasestruktur

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

EKSAMEN DATABASER

EKSAMEN 6102 / 6102N DATABASER

Kapittel 7 & 8. Kravspesifikasjoner & Data design. Thomas Tjøstheim og Thomas Edvinsen. 20 September Kapittel 7 & 8 p.1/20

Repetisjon: Normalformer og SQL

Utvikling fra kjernen og ut

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

1. SQL spørringer mot flere tabeller

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

>>21 Datamodellering i MySQL Workbench

Kunnskapsorganisasjon og gjenfinning 1

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

TDT4110 IT Grunnkurs Høst 2014

En liten rekap. Spørrespråk. I dag SELECT

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner

Transkript:

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

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

4 107 TDT4110 020621 Jonny Ola 203 Normann 010849 Peder 010321 Nonnegata. 18 354 Pedersen Programvarearkitektur Fjordgt. 4 060326 382 IT Grunnkurs Studentov TDT4240 Jonsen IT1409 TDT4735 Ladev. 3 Dronningensgt. 7b Smirnof 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 Student Student Studentnr Studentnr 010849 Etternavn Studentnr 010849 Etternavn Studentnr Smirnof 010849 Smirnof 010849 Fornavn Etternavn Fornavn Etternavn Studentov Smirnof Studentov Smirnof Adresse Fornavn Adresse Fornavn Ladev. Studentov Ladev. Studentov 3 3 Stud.post Adresse Stud.post Adresse 107 Ladev. 3 107 Ladev. 3 Stud.post Stud.post 107 107 Tar Tar Fag Tar Fag Tar Fag Fag Studentnr Studentnr 010849 Fagnr Studentnr 010849 Fagnr Studentnr TDT4110 010849 Fagnr TDT4110 010849 Fagnr TDT4110 TDT4110 Fag Fagnr Fag Fag Navn Fagnr Navn Fagnr Navn TDT4110 IT TDT4110 Grunnkurs IT TDT4110 Grunnkurs IT Grunnkurs

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

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

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

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.

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

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.

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

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)

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

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

15 Steg 2.2 Definer Entiteter (2) Skuespiller Film

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

17 Steg 2.3 Avgjør Relasjoner (2) Filmselskap Film Lages av

18 Kardinalitet (1) 1 til 1 Filmselskap Film Lages av

19 Kardinalitet (2) 1 til n = 1 til mange Filmselskap Film Lages av Leses: 1 filmselskap kan lage mange filmer

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

21 Steg 2.4 Finn Nøkkelattributt (1) Entitet Venn Abstrakt begrep Instans En fysisk/faktisk realisering av en entitet Erlend Gry Venn Navn Antall DVDer Erlend 25 Gry 12

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

23 Steg 2.4 Finn Nøkkelattributt (3) En skuespiller kan identifisere vha personnummer Skuespiller Personnr

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

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.

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 Eplekjekk Jo 3 Smør Kari Fag Fagkode TDT4105 TDT4240 Kai Olav Ellefsen, NTNU, 2010 Studnr Fagkode 1 TDT4105 2 TDT4240 3 TDT4105 Navn IT Grunnkurs Prog.arkitektur Studerer

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)

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.

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) );

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

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