Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Like dokumenter
Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Oppgave 1 ER- og relasjonsmodell 10 %

Løsningsskisse til 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øsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 1 Datamodellering 25 %

Oppgave 1 Datamodellering 22 %

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

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.

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

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

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

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

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystemer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

EKSAMENSOPPGÅVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER

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

Repetisjon: Normalformer og SQL

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

DBS18 - Strategier for Query-prosessering

Normalisering. ER-modell

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

Eksamensoppgåve i TDT4145 Datamodellering og databasesystem

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

EKSAMEN DATABASER

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

Minikompendium TDT4145 databasemod og dbsys

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

EKSAMEN 6102 / 6102N DATABASER

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

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i MA1202/MA6202 Lineær algebra med anvendelser

Øving 5: Transaksjonshåndtering, logging og normalisering

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

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

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

Databasemodellering og DBMS. Oppsummering

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

Normalisering. Hva er normalisering?

HØGSKOLEN I SØR-TRØNDELAG

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Normalisering. Hva er normalisering?

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

Eksamensoppgave i TDT4186 Operativsystemer

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

Plenum: Nøkler, normalformer og funksjonelle avhengigheter

UNIVERSITETET I OSLO

Eksamensoppgave i MA1201 Lineær algebra og geometri

Eksamensoppgave i PED3544 Matematikkproblemer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

TDT4225 Lagring og behandling av store datamengder

UNIVERSITETET I OSLO

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

1. Normalisering Kommentarer til læreboka

Isolasjon i postgres og mysql

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Relasjonsdatabasedesign

TDT4145 Datamodellering og databasesystemer

Effektiv eksekvering av spørsmål

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Eksamensoppgave i SOS1000 Innføring i sosiologi

Oppdateringsanomalier Normalformer

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Oppgave: Finn navn og tittel på alle som har arbeidet på prosjektet «Vintersalg»

INF3100 V2018 Obligatorisk oppgave nr. 2

Eksamensoppgave i MA1101/MA6101 Grunnkurs i analyse I. LØSNINGSFORSLAG

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

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

EKSAMEN 6102 / 6102N DATABASER

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

UNIVERSITETET. Relasjonsdatabasedesign

Eksamensoppgave i PED3582 Mediedanning og mediepedagogikk

Dagens tema: Oppdateringsanomalier Normalformer

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

INFO122 Innføring i databaser. Oblig 2. av Frode H. Pedersen, Kjartan B. Michalsen og Kristin Breivik

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Normalisering. Hva er normalisering?

Transkript:

Institutt for datateknikk og informasjonsvitenskap Løsningsskisse til eksamensoppgave i TDT4145 Datamodellering og databasesystemer Eksamensdato: 12. august 2013 Eksamenstid (fra-til): 15:00-19:00 Hjelpemiddelkode/Tillatte hjelpemidler: D Ingen trykte eller håndskrevne hjelpemidler tillatt. Bestemt, enkel kalkulator tillatt. Annen informasjon: 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 %) Side 2 av 6

Oppgave 2 Relasjonsalgebra og SQL (20 %) a) Vi gjør følgende forutsetninger: En person kan være leder for flere avdelinger, men trenger ikke å være leder. En avdeling har minst en ansatt. En avdeling trenger ikke å ha noe rom. Et rom trenger ikke å ha noen arbeidsplass, men kan ha flere. Et rom trenger ikke å ha en telefon, men kan ha flere. Et telefonnummer trenger ikke å være tilknyttet en arbeidsplass, men kan være tilknyttet flere. En arbeidsplass trenger ikke å ha en tilknyttet person, men kan ha flere. b) Relasjonsalgebra: Side 3 av 6

c) SQL: UPDATE Department SET LeaderID = 100 WHERE Name = Økonomi ; d) SQL: CREATE VIEW Okonomi AS SELECT PID, P.Name, RoomNo FROM Person AS P, Department AD D WHERE DepartmentID = DID AND D.Name = Økonomi ; e) SQL: SELECT RoomNo, count(pid) FROM Person GROUP BY RoomNo HAVING count(pid) > 4 ORDER BY count(pid) DESC; Oppgave 3 Teori (20 %) a) ID er den eneste kandidatnøkkelen for tabellen. Siden vi ikke har en sammensatt nøkkel, kan vi ikke ha delvise avhengigheter av nøkkelen. Tabellen vil derfor være på andre normalform (2NF). Vi har to avhengigheter, Club Region og PostalCode City, der venstresideattributtene ikke er en supernøkkel og høyresideattributtene ikke er nøkkelattributter. Tabellen er derfor ikke på tredje normalform (3NF). b) Clubs(Club, Region), PostalCodes(PostalCode, City) og Athletes(ID, Name, BirthYear, Sex, Club, PostalCode). Komponent-tabellene er på BCNF siden alle funksjonelle avhengigheter har venstresider som er supernøkkel aktuell tabell. Dekomponeringen har attributtbevaring siden alle attributter i utgangspunktet er med i minst en tabell. Alle avhengighetene i F er ivaretatt i minst en komponent-tabell. Dette sikrer bevaring av funksjonelle avhengigheter. Athletes joiner tapsløst med Clubs siden det felles attributtet (Club) er supernøkkel i Clubs. Resultatet av denne foreningen joiner tapsløst med PostalCodes siden det felles attributtet (PostalCode) er supernøkkel i PostalCodes. Resultatet av denne foreningen er lik Athlete-tabellen som vi startet med. Dekomponeringen med andre ord tapsløst join egenskapen. Dekomponeringen har god kvalitet siden den oppfyller alle de fire kravene som bør oppfylles ved dekomponering av en tabell. Side 4 av 6

c) Utfylt tabell, nye verdier er markert med grønn bakgrunnsfarge: I tillegg vil det være slik at b55 ikke kan være lik 5 eller 6. Kombinasjonen av b33 og b34 kan ikke ha verdien (4,6) eller (4, b55). Oppgave 4 Lagring, indekser og queryutføring (20 %) a) Hvis du bare setter inn, er heapfil veldig greit da du ikke trenger å søke. b) Her vil de fleste poster sannsynligvis kvalifisere og en heapfil er da grei nok da alle postene må inspiseres. c) Her kan et B+-tre organisert på søkenøkkel (exerno, studno) være en god løsning. Da er postene clustret omkring exerno. Ellers er en heapfil et mulig svar her også. Det er exerno som det spørres etter primært, så enten en hash på exerno (neppe lurt da det er få øvinger) eller et clustered B+-tre på (exerno, studno). Kanskje ikke så supergunstig det heller? I og med at det er få øvinger sannsynligvis, vil en indeks på exerno være lite effektiv. Så kanskje en heapfil er greit her? d) Her kan et B+-tre med søkenøkkel med studno evt. (studno, exerno) være en god løsning. Eller en hash på studno, slik at alle rader for en student sannsynligvis havner i samme hashblokk. e) Her kan et B+-tre med søkenøkkel (studno, exerno) være en god løsning. Scan sideveis i B+-treet og tell opp hvor mange godkjente det er for hver student, for de kommer etterhverandre pga. leksikalsk sortering. Oppgave 5 Transaksjoner (10 %) a) Det ene eksempelet bør være om flerbrukerproblematikk. Det andre eksempelet bør være om abortering og halvgjorte transaksjoner. b) De fire isolasjonsnivåene i SQL forklares som regel ved den følgende tabellen: Level Dirty read Unrepeatable read Phantom Side 5 av 6

READ UNCOMMITTED Maybe Maybe Maybe READ COMMITTED No Maybe Maybe REPEATBLE READ No No Maybe SERIALIZABLE No No No Oppgave 6 Join (10 %) a) Nested loop join. For bruk av buffer kan vi ha ei blokk til resultat og ei blokk til den ene tabellen og 6 til den andre. Vi må da lese inn Fakultet i to runder (antar 5 i hver) og for hver runde må hele Student leses: 2 * (5 + 2000) = 4010 I/Oer. b) Sort-merge join. Bruker notasjonen fra læreboka Elmasri/Navathe. Sorterer Fakultet. b = 10. n B = 8. n r = Ceiling (10/8) = 2 sorterte delfiler. Merge: d M = n B -1 = 7. Ceiling (log 7 (2)) = 1 pass. 2 * 10 + 2*10*1 = 40 I/Oer. Sorter Student. b = 2000, n B = 8. n r = ceiling(2000/8) = 250 sorterte delfiler. Merge: d M = n B -1 = 7. Ceiling(log 7 (250)) = 3 pass. 2 * 2000 + 2*2000*3 = 16000 I/Oer. Join av sorterte delfiler: 10 + 2000 = 2010 I/Oer, Totalt: 40+16000 + 2010 = 18050 I/Oer. Side 6 av 6