Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Like dokumenter
Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til 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 databasesystem

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve 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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

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

Oppgave 1 Datamodellering 25 %

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Løsning til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Oppgave 1 ER- og relasjonsmodell 10 %

EKSAMENSOPPGÅVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER

Oppgave 1 Datamodellering 22 %

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

Miniverden og ER- modell

1. SQL datadefinisjon og manipulering

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

Eksamensoppgave i MA1202/MA6202 Lineær algebra med anvendelser

Øving 5: Transaksjonshåndtering, logging og normalisering

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

Eksamensoppgave i TIØ4120 Operasjonsanalyse, gk.

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

Eksamensoppgave i PSY2019 Arbeids- og organisasjonspsykologi

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Minikompendium TDT4145 databasemod og dbsys

Eksamensoppgave i SØK3514 / SØK8614 Anvendt økonometri

UNIVERSITETET I OSLO

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i SØK1010 Matematikk og mikroøkonomi

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

Eksamensoppgave i TMA4320 Introduksjon til vitenskapelige beregninger

Det matematisk-naturvitenskapelige fakultet. Kontroller at oppgavesettet er komplett før du begynner å besvare det.

EKSAMEN Løsningsforslag

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i MA2401/MA6401 Geometri

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

Repetisjon: Normalformer og SQL

Eksamensoppgave i PED3544 Matematikkproblemer

INF3100 V2016 Obligatorisk oppgave nr. 1

Matematikk 2, 4MX25-10

Eksamensoppgave i TMA4320 Introduksjon til vitenskapelige beregninger

Eksamensoppgave i SØK3006 Valuta, olje og makroøkonomisk politikk

EKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Mandag 13. desember 20010, kl

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Normalisering. ER-modell

Eksamensoppgave i PSY2016/PSYPRO4316 Personlighetspsykologi II

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

HØGSKOLEN I SØR-TRØNDELAG

SKOLEEKSAMEN I. SOS4010 Kvalitativ metode. 19. oktober timer

Andre sett obligatoriske oppgaver i INF3100 V2013

INF3100 V2015 Obligatorisk oppgave nr. 1

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

Eksamensoppgave i SOS1000 Innføring i sosiologi

Fysikkolympiaden 1. runde 26. oktober 6. november 2015

Flerveis søketrær og B-trær

INF september Relasjonsmodellen funksjonelle avhengigheter og nøkler Realisering: Fra ORM til relasjoner

Eksamensoppgave i PSY2019 Arbeids- og organisasjonspsykologi

5602 DATABASER Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.

Ny EKSAMEN. Operativsystemer og nettverk

TDT4225 Lagring og behandling av store datamengder

Forelesning 9 mandag den 15. september

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamen i IBE Databaser H 2008

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

EKSAMEN 6102 / 6102N DATABASER

Systemutvikling fra kjernen og ut, fra skallet og inn

Eksamensoppgave i PSY2016/PSYPRO4316 Personlighetspsykologi II

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

HØGSKOLEN I SØR-TRØNDELAG

Transkript:

Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4145 Datamodellering og databasesystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 995 39 963 Roger Midtstraum: 995 72 420 Eksamensdato: 4. august 2015 Eksamenstid (fra-til): 15:00-19: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: 5 Antall sider vedlegg: 0 Kontrollert av: Svein-Olaf Hvasshovd (sign.) Dato 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 (20 %) a) (6 %) Under er det vist et ER-diagram. I tillegg er det kjent at flere personer kan ha samme telefonnummer (PhoneNo). Vis hvordan du vil oversette dette til en ekvivalent relasjonsdatabase (vis hvilke tabeller du ønsker å ha, med attributter, primær- og fremmednøkler). Forklar kort hvilke alternative løsninger som finnes og begrunn ditt valg. b) (14 %) Lag en ER-modell (du kan bruke alle virkemidler som er med i pensum) for følgende situasjon: Det arrangeres et sykkelløp, Fosen Rundt, som består av et antall etapper. Det er bare en klasse, og den som har den laveste totaltiden til slutt er sammenlagtvinner. For hver etappe har vi dato, starttid, startsted, målsted og lengde i kilometer. Det lages en resultatliste for hver etappe, rangert etter (korteste) kjøretid. Deltakere som ikke starter på en etappe, får statusen DNS (Did Not Start) for denne etappen. De som starter en etappe, men bryter underveis, får statusen DNF (Did Not Finish) for etappen. En syklist kan bli disket på en etappe og får i så fall statusen DSQ (DiSQualified) for etappen. Syklister med DNS, DNF eller DSQ på en eller flere etapper er ute av sammenlagtkonkurransen, men kan fortsette i Fosen Rundt og konkurrere om plasseringer på de gjenstående etappene. Syklistene er registrert som deltakere i Fosen Rundt, med unikt lisensnummer, navn, fødselsår og nasjonalitet. Hver syklist har et (unikt) startnummer og kjører for et lag Side 2 av 5

som har en unik lagkode på tre bokstaver og et fullstendig lagnavn. For hvert lag skal vi vite navn og mobiltelefonnummer for lagets race director. Det lages en resultatliste etter hver etappe med kjøretid (evt. status) for alle syklistene på denne etappen. Når det gjelder sammenlagtkonkurransen har vi en resultatliste som holdes fortløpende oppdatert (etter hver etappe), med total sykletid så langt i rundturen. Når den siste etappen er ferdig vil dette være den endelige resultatlisten for Fosen Rundt. Deltakere som ikke har pådratt seg DNS, DNF eller DSQ på noen etappe, har statusen Aktiv og tas med i sammenlagtlisten. Deltakere som pådrar seg DNS, DNF eller DSQ, får statusen Brutt og tas ikke med i sammenlagtlisten. Gjør kort rede for eventuelle forutsetninger som du finner det nødvendig å gjøre. Oppgave 2 Relasjonsalgebra og SQL (21 %) Ta utgangspunkt i følgende relasjonsdatabase (primærnøkler er understreket) for en enkel bildedelings-database: Photos(PhotoID, PhotoDescription, PhotographerID) PhotographerID er fremmednøkkel mot Users-tabellen. PhotographerID kan ikke ha NULLverdi. Users(UserID, UserName, UserDescription) Likes(PhotoID, UserID) PhotoID er fremmednøkkel mot Photos-tabellen. UserID er fremmednøkkel mot Userstabellen. Comments(PhotoID, UserID, SeqNo, Content) PhotoID er fremmednøkkel mot Photos-tabellen. UserID er fremmednøkkel mot Userstabellen. Hashtags(TagID, Tag) Metadata(PhotoID, TagID, UserID) PhotoID er fremmednøkkel mot Photos-tabellen. TagID er fremmednøkkel mot Hashtagstabellen. UserID er fremmednøkkel mot Users-tabellen. Relasjonsalgebra kan formuleres som tekst eller grafer. Hvis du behersker begge notasjonene foretrekker vi at du svarer med grafer, men du blir ikke trukket for å svare med tekst. a) (5 %) Lag et ER-diagram (du kan bruke alle virkemidler som er med i pensum) som i størst mulig grad samsvarer med relasjonsskjemaet. Gjør rede for eventuelle antagelser du finner det nødvendig å gjøre. b) (4 %) Lag en spørring i relasjonsalgebra som finner PhotoID, PhotoDescription og UserName for fotografen, for alle bilder som er tagget med emneknaggen (eng: hashtag) #Trondheim. c) (4 %) Lag en spørring i SQL som finner TagID og Tag for alle emneknagger som inneholder Trondheim. Resultatet skal ordnes etter Tag i alfabetisk rekkefølge. Side 3 av 5

d) (4 %) Brukeren (eng: user) med UserID xyz00 har røket uklar med brukeren abc11 og ønsker å fjerne alle likes som hun har gitt til bilder tatt av abc11. Lag en SQL-setning som ordner dette. e) (4 %) Lag en spørring i SQL som finner UserID for alle brukere som har kommentert bilder som er merket med emneknaggen #Beiarn. Oppgave 3 Teori (19 %) a) (5 %) Definer funksjonell avhengighet (eng: functional dependency). Lag en tabell og gi ett eksempel på en funksjonell avhengighet som gjelder i denne tabellen, og ett eksempel på en funksjonell avhengighet som ikke gjelder i denne tabellen. Du må begrunne hvorfor du mener det er slik. b) (5 %) Hva vil det si at en dekomponering (eng: decomposition) har tapsløst-joinegenskapen (eng: lossless join property)? Vis ett eksempel på en dekomponering som har tapsløst-join-egenskapen, og ett eksempel på en dekomponering som ikke har den. Du må begrunne hvorfor du mener det er slik. c) (3 %) Gitt R = {A, B, C, D, E} og F = {B -> C, E -> D}. Gå ut fra at R oppfyller 1. normalform. Bestem den høyeste normalformen som oppfylles av R. Svaret må begrunnes. d) (6 %) Gitt R = {A, B, C, D, E} og F = {A -> D, B ->D, C -> D, E -> D}. Gå ut fra at R oppfyller 1. normalform. Finn en god dekomponering av R slik at alle komponenttabellene er på Boyce-Codd normalform (BCNF). Svaret må begrunnes. Oppgave 4 Lagring og indeksering (10 %) List opp noen alternative lagrings- og indekseringsmetoder brukt i databasesystemer for å lagre og indeksere en tabell. Forklar når de forskjellige metodene er fordelaktige å bruke. Oppgave 5 B+-trær (10 %) Anta følgende tabell som er opprettet som et clustered B+-tre med søkenøkkel lastname. CREATE TABLE Employee (empno INT, lastname CHAR(30) PRIMARY KEY, firstname CHAR(30), email CHAR(30), startyear INT, salary INT); Anta B+-treet har en blokkstørrelse på 8192 bytes. a) Anta at tabellen er tom og så kjøres følgende følgende SQL-setning: INSERT INTO Employee VALUES (123, Hansen, Hans, hans@email.org,2012,100000), (124, Hanssen, Jens, jens@email.org,2013,90000), (125, Olsen, Ole, ole@mail.com,2008,80000), (126, Berntsen, Bernt, bernt@mail.com,2015,200000); Forklar hvordan B+-treet ser ut etter at denne setningen er utført. Dvs. tegn opp B+-treet med blokker og poster. Side 4 av 5

b) I en blokksplitt senere blir det splittet mellom Hansen og Hanssen. Vis hvordan B+-treet ser ut nå, med fokus på posten som det splittes på. Vis blokker på både løvnivå (level 0) og nivået over (level 1) i B+-treet. Oppgave 6 Transaksjoner - serialiserbarhet (5 %) Anta følgende historier: H1: r1(a); w1(a); r2(b); r2(a); w2(a); H2: r1(a); w1(a); w2(a); H3: r1(a); r2(c); r1(c); r3(a); r3(b); w1(a); w3(b); r2(b); w2(c); w2(b); Tegn opp presedensgrafen for disse historiene og bestem hvilke som er konfliktserialiserbare. Oppgave 7 Transaksjoner - recovery (15 %) a) I ARIES brukes det et begrep som kalles PageLSN. Hva brukes dette til? b) Hvilke fordeler har man ved å bruke NO-FORCE framfor FORCE? c) Når det i ARIES skal skrives «dirty» blokker fra databufferet til disk, hvilken sjekk og evt. hvilke aksjoner i forhold til loggen må den som skriver ut datablokkene gjøre? Side 5 av 5