Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Like dokumenter
Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Skisse til løsning av eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 1 Datamodellering 22 %

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 1 Datamodellering 25 %

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

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

Oppgave 1 ER- og relasjonsmodell 10 %

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

EKSAMENSOPPGÅVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

EKSAMEN 6102 / 6102N DATABASER

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i MA1202/MA6202 Lineær algebra med anvendelser

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Miniverden og ER- modell

Normalisering. ER-modell

Repetisjon: Normalformer og SQL

Databaser: Relasjonsmodellen, del I

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

EKSAMEN DATABASER

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

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

Normalisering. Hva er normalisering?

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Databaser. - Normalisering -

Normalisering. Hva er normalisering?

1. SQL datadefinisjon og manipulering

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Datamodellering og databaser SQL, del 2

1. Innføring i bruk av MySQL Query Browser

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

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

Dagens tema: Oppdateringsanomalier Normalformer

Eksamensoppgave i PED3544 Matematikkproblemer

Metaspråket for å beskrive grammatikk

Eksamensoppgave i TMA4240 Statistikk

Datamodellering og databaser SQL, del 2

DBS18 - Strategier for Query-prosessering

Oppgaver Oppgave a: Sett opp mulige relasjoner

Eksamensoppgave i SOS1000 Innføring i sosiologi

Andre sett obligatoriske oppgaver i INF3100 V2013

UNIVERSITETET I OSLO

Integritetsregler i SQL. Primærnøkler

Eksamensoppgave i TMA4150 Algebra

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

Integritetsregler i SQL

Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

Andre sett obligatoriske oppgaver i INF3100 V2012

Normalformer or Normalisering 1NF, 2NF, 3NF, BCNF

Datamodellering og databaser SQL, del 2

Repetisjonsforelesning, SQL og utover

Relasjonsdatabasedesign

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Relasjonsdatabasedesign

Normalisering. Hva er normalisering?

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

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

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

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

Eksamensoppgave i TMA4320 Introduksjon til vitenskapelige beregninger

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

EKSAMEN 6102 / 6102N DATABASER

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

Øving 5: Transaksjonshåndtering, logging og normalisering

Utvikling fra kjernen og ut

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

INF1300 Introduksjon til databaser

Eksamensoppgave i TMA4140 Diskret matematikk

Oppgaver INF3100. Oversikt over innholdet

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Oppdateringsanomalier Normalformer

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

HØGSKOLEN I SØR-TRØNDELAG

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Eksamensoppgave i ST0103 Brukerkurs i statistikk

Transkript:

Institutt for datateknikk og informatikk Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Roger Midtstraum: 995 72 420 Svein Erik Bratsberg: 995 39 963 Eksamensdato: 7. august 2017 Eksamenstid (fra-til): 09:00-13:00 Hjelpemiddelkode/Tillatte hjelpemidler: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt, enkel kalkulator tillatt. Annen informasjon: Målform/språk: Norsk bokmål Antall sider (uten forside): Antall sider vedlegg: Informasjon om trykking av eksamensoppgave Originalen er: 1-sidig 2-sidig sort/hvit farger skal ha flervalgskjema Dato Kontrollert av: Sign Merk! Studenter finner sensur i Studentweb. Har du spørsmål om din sensur må du kontakte instituttet ditt. Eksamenskontoret vil ikke kunne svare på slike spørsmål.

Oppgave 1 Datamodeller og relasjonsdatabaser (15 %) a) Alternativ 1 er enklest og viser tydelig at R representerer en relasjonsklasse mellom attributter i entitetsklassene A og B. Mellom en bestemt entitet i A og en bestemt entitet i B kan det bare finnes en relasjon i relasjonsklassen R. Alternativ 2 er mer omfattende, bruker flere symboler og det er ikke like entydig at entitetsklassen R representerer en relasjon mellom entiteter i A og B. Det vil ofte være nødvendig å legge til et ekstra nøkkelattributt. Fordeler med dette alternativet er at det kan finnes flere ulike relasjoner mellom samme entiteter i A og B. R kan også inngå i egne relasjonsklasser, dette er ikke mulig i alternativ 1. b) Siden spesialiseringen av A er total, trenger vi ikke en egen tabell for A. Hvis vi velger en slik løsning blir relasjonsdatabase-skjemaet: B(a1, b1, b2, e1) e1 er fremmednøkkel mot E, kan være NULL. C(a1, c1, c2, e1) e1 er fremmednøkkel mot E, kan være NULL. E(e1, e2) F(f1, f2) CF(a1,f1) a1 er fremmednøkkel mot C, kan ikke være NULL. f1 er fremmednøkkel mot F, kan ikke være NULL. Oppgave 2 Teori (10 %) a) Redundans vil i denne sammenhengen bety at vi har et databaseskjema der vi lagrer den samme informasjonen flere ganger. Dette åpner i alminnelighet for inkonsistens i databasen. I tillegg kan vi oppleve såkalte anomalier knyttet til innsetting, oppdatering og sletting av data i databasen. I en normaliseringsprosess vil vi fjerne redundans gjennom å splitte dataene over flere tabeller. Gjennom en slik prosess søker vi å vi oppnå et relasjonsdatabaseskjema der vi har eliminert muligheten for inkonsistens og blitt kvitt anomaliene. Ulempene med en slik tilnærming er at vi kan ende opp med et databaseskjema med mange tabeller og stort behov for å joine tabeller når vi skal finne de dataene vi trenger. Ved å tillate (noe) redundans kan vi noen ganger få et enklere relasjonsskjema som gir enklere og mer effektive spørringer, men ulempen vil være at vi må håndtere redundansens bivirkninger. I tillegg til skjema-basert -redundans som vi har diskutert over, kan redundant lagring av de samme dataelementene i noen sammenhenger være hensiktsmessig for å oppnå tilgjengelighet, ytelse og sikkerhet. b) En NULL-verdi er en spesiell verdi som kommer i tillegg til en verdimengdes (datatypes) ordinære verdier. Den brukes når et attributt ikke har en verdi eller denne verdien er ukjent. Uten NULL-verdien ville vi måtte tilordne denne spesielle oppgaven til en av verdiene i verdimengden dette ville vært mindre standardisert, krevd mer dokumentasjon og forutsatt kjennskap til denne tilordningen blant alle som bruker

databasen. I tillegg ville den verdien som ble valgt være utilgjengelig for sitt opprinnelige formål. Oppgave 3 Relasjonsdatabaser, ER-modeller, Relasjonsalgebra og SQL (20 %) a) ER-modell: b) Relasjonsalgebra: c) SELECT VID, VNavn, count(lid), sum(areal), sum(folketall) FROM Verdensdel INNER JOIN Land On VID = VDelID GROUP BY VID, Vnavn d) SELECT BNavn, By.Folketall, LNavn, VNavn FROM By INNER JOIN Land ON LandID = LID INNER JOIN Verdensdel ON VDelID = VID WHERE By.Folketall > 5000000 ORDER BY By.Folketall DESC, BNavn ASC

e) CREATE TABLE Land ( LID INTEGER NOT NULL, LNavn VARCHAR(30), Areal DOUBLE, Folketall INTEGER, VDelID INTEGER NOT NULL, CONSTRAINT pk1 PRIMARY KEY (LID), CONSTRAINT fk1 FOREIGN KEY (VDelID) REFERENCES Verdendel(VID) ON DELETE CASCADE ON UPDATE CASCADE) Oppgave 4 - Normaliseringsteori (15 %) a) S må ha verdien 2. T kan ha alle verdier, unntatt 4 og kan bare være 5 hvis V er 1. U kan ikke ha verdien 2. Paret (V,W) kan ikke ha verdiene (1,2) eller (6,1). Vi kan heller ikke ha (V,W) = (1,U). b) Kandidatnøklene er: AC og EC. Ikke-nøkkelattributtene er dermed: BD. Andre normalform er oppfylt fordi det ikke finnes funksjonelle avhengigheter fra en del av en kandidatnøkkel til et ikke-nøkkelattributt. Tredje normalform er oppfylt siden det for alle funksjonelle avhengigheter er slik at venstresiden er en supernøkkel (AC BD og EC BD) eller høyresiden er nøkkelattributter (A E og E A). Boyce-Codd Normalform er ikke oppfylt siden det finnes funksjonelle avhengigheter (A E og E A) der venstreside-attributtene ikke er en supernøkkel. c) Når F = Φ har vi ingen restriksjoner mellom radene. Vi kan da ha så mange ulike rader som verdimengdene tillater, i dette tilfellet 3x3x3, altså 27 ulike rader. Når F = {A BC} gjelder må alle rader med samme A-verdi ha samme verdier for B og C. Vi har tre mulige verdier for A og kan derfor ikke ha flere enn 3 rader i tabellen. d) En dekomponering av en tabell, R, i to (komponent-)tabeller, R1 og R2, har tapsløst-join egenskapen når vi for alle mulige forekomster av R, kan fordele dataene på R1 og R2, og sammenstilling (join) av R1 og R2 vil gi den tabellforekomsten vi startet med. Dersom en dekomponering ikke har tapsløst-join-egenskapen, vil sammenstillingen kunne generere (nye) rader som ikke var med i den opprinnelige tabellforekomsten. De nye radene vil være søppeldata og viser at dekomponeringen ikke er ekvivalent med utgangstabellen. e) Den funksjonelle avhengigheten A B representerer en restriksjon om at (alle) rader med samme verdi for A, må ha samme verdi for B. Hvis vi for eksempel har Personnr Fornavn betyr dette at en person kan ha bare en verdi for fornavn, det betyr ikke at personnummeret fører til eller bestemmer en persons fornavn.

Oppgave 5 Statisk hashing (5 %) 27 MOD 4 = 3 = 11 (binært) 18 MOD 4 = 2 = 10 9 MOD 4 = 1 = 01 7 MOD 4 = 3 = 11 16 MOD 4 = 0 = 00 13 MOD 4 = 1 = 01 11 MOD 4 = 3 = 11 16 00 Overflow 01 9 13 11 10 11 18 27 7 Oppgave 6 Lagring, indeksering og queries (10 %) Vi har en database som lagrer webclicks i en tabell: Click (clickid, user, url, time) Hver post (record) i tabellen er 100 byte lang og hver blokk er 8 KB (8192 bytes). Vi har registrert 300 000 klikk i databasen. a) Vi ønsker å lagre tabellen i et clustered B+-tree med clickid (8 byte) som søkenøkkel. Hvor mange blokker er det på hvert nivå i B+-treet? Beskriv eventuelle antagelser du tar. Løsning: Level 0: Plass til 81 poster per blokk, men 2/3 fyllgrad gir 54 poster per blokk. Da er det 300 000 / 54 = 5556 blokker. Level 1: Hver post er 8 byte (ClickId) + 4 byte (BlockId) = 12 byte. 2/3 fyllgrad gir 455 poster per blokk. Dvs. 13 blokker til sammen (5556 poster). Level 2: 1 blokk (rotblokk) b) Vi ønsker å utføre følgende query: SELECT url, count(*) AS clickcount FROM Click GROUP BY url ORDER BY clickcount DESC; Hvordan vil du indeksere tabellen for å kunne svare på queriet? Begrunn svaret ditt.

Løsning: Bør ha indeks på URL, med en liste av ClickId per URL (variabel lengde post). Kjører Index-only query på denne og teller opp antall ClickId per URL og lagrer i temp-fil. Sorterer denne etterpå på antall ClickId. Vi trenger ikke en clustered indeks her, det holder med unclustered. Da kan selve klikkene lagres et annet sted, f.eks. i B+-treet. Oppgave 8 Transaksjoner (15 %) a) Forklar de fire begrepene som forkortes ACID. Løsning: Se kap 20.3 i E&N. b) Vi har en historie: H 1: r 1(A); w 2(A); w 2(B); w 3(B); w 1(B); C 1; C 2; C 3; Vi innfører tofaselåsing (rigorous 2PL). Skriv om historien slik at den bruker 2PL. Innfør operasjonene wl(x) write_lock(x) og rl(x) read_lock(x). Løsning: (burde vært spesifisert at unlock også skulle være med) T1 T2 T3 --- --- --- rl1(a) r1(a) wl3(b) w3(b) C3; unlock(b) wl1(b) w1(b) C1; unlock(a,b) wl2(a) w2(a) wl2(b) w2(b) C2; unlock(a,b) c) For hver klasse av samtidighetsproblemer gitt under, hvilke ser du i historien H1 i b) og hvorfor / hvorfor ikke? - Dirty read: Nei, ingen lesning av «skitne» verdier her. - Lost update: Ja, r1(a).. w1(b). Her er det sannsynligvis en sammenheng. w2(a); w2(b) har også en sammenheng. Dermed «overlever» verdien til A, mens T2s B- verdi blir overskrevet. - Unrepeatable read: Nei. - Incorrect summary: Nei.

Oppgave 9 Transaksjoner: Recovery ARIES (10 %) a) Beskriv og forklar hva som skjer i de tre fasene av recovery etter krasj i ARIES. Løsning: Se kap 22.5 i E&N. b) Hva er PageLSN og hvorfor er dette en viktig oppfinnelse? Løsning: I hver datablokk/page (både i buffer og på disk) lagres det er felt som kalles PageLSN, som viser hvilken loggpost som sist ble gjort på blokka. PageLSN er en svært viktig oppfinnelse fordi den forenkler testing av om REDO er nødvendig. Hvis en logget operasjon er allerede gjort mot ei blokk, vil dette være reflektert i blokkas PageLSN. Da slipper man å undersøke blokka for å finne ut om operasjonen er allerede gjort ved å se på data i blokka.