UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

Oppgaver INF3100. Oversikt over innholdet

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppgaver INF3100. Oversikt over innholdet

Relasjonsdatabasedesign

UNIVERSITETET I OSLO

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

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

INF3100 V2015 Obligatorisk oppgave nr. 1

INF3100 V2016 Obligatorisk oppgave nr. 1

Andre sett obligatoriske oppgaver i INF3100 V2013

UNIVERSITETET I OSLO

Andre sett obligatoriske oppgaver i INF3100 V2012

Relasjonsdatabasedesign

Relasjonsdatabasedesign

UNIVERSITETET. Relasjonsdatabasedesign

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

UNIVERSITETET I OSLO. Oppskriftsbok. FDer og MVDer Relasjonsalgebra. Institutt for Informatikk. INF3100 Ellen Munthe-Kaas 1

INF3100 V2018 Obligatorisk oppgave nr. 1

Dagens tema: Oppdateringsanomalier Normalformer

INF1300 Introduksjon til databaser

Relasjonsdatabasedesign

Oppdateringsanomalier Normalformer

Relasjonsdatabasedesign

Oppskriftsbok. FDer og MVDer - oversikt: se s. 3 Relasjonsalgebra - oversikt: se s. 45

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Det matematisk-naturvitenskapelige fakultet

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Relasjonsdatabasedesign

Andre sett obligatoriske oppgaver iinf3100v2011

Relasjonsdatabasedesign

UNIVERSITETET I OSLO

Oppdateringsanomalier. Normalformer. Institutt for informatikk INF

Andre sett obligatoriske oppgaver i INF3100 V2010

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Relasjonsdatabasedesign

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

Andre sett obligatoriske oppgaver i INF3100 V2009

UNIVERSITETET I OSLO

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Relasjonsdatabasedesign

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

UNIVERSITETET I OSLO

Normalformer utover 4NF (ikke pensum)

Relasjonsdatabasedesign. Ekstramateriale: Normalformer utover 4NF (ikke pensum)

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Relasjonsdatabaseteori

Andre sett obligatoriske oppgaver i INF3100 V2008

INF3100 Databasesystemer

INF3100 V2018 Obligatorisk oppgave nr. 2

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

1. Relasjonsmodellen Kommentarer til læreboka

Relasjonsdatabasedesign

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Spørsmålskompilering del 1

Løsningsforslag for Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF212 - Databaseteori. Kursinnhold

Hva kjennetegner god relasjonsdatabasedesign? Eksempel: Grossistdatabase versjon 1

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Relasjonsdatabasedesign, ekstramateriale (ikke pensum)

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Oppgave 1 ER- og relasjonsmodell 10 %

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

U N I V E R S I T E T E T I O S L O

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

God Databasedesign: På vei mot Normalformer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Relasjonsdatabasedesign (forts.)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1300 Introduksjon til databaser

Databasesystemer, oversikt

UNIVERSITETET I OSLO RELASJONSALGEBRA. Regning med relasjoner. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3100 Databasesystemer Eksamensdag: 11. juni 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 5 sider. Vedlegg: Ingen Tillatte hjelpemidler: Kalkulator og ordbok Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Les oppgavene nøye, og lykke til! Supermarkedkjeden Rama består av stormarkeder som selger mat, klær, bøker, leketøy, elektroniske artikler og mye annet. Hver butikk består av flere avdelinger; to typiske avdelinger er grønnsakavdelingen og skotøyavdelingen. Vi skal se på en liten database som holder orden på varene i en av butikkene. Alle varene er plassert i reoler; hver reol har 4 8 hyller. For enkelhets skyld antar vi at det på hver hylle bare er én type varer. Dessuten skal det aldri være varer fra to avdelinger i samme reol. Hver avdeling administrerer sine varer, dvs. avdelingen holder orden på varene i sine reoler og sørger for å kjøpe inn flere når det trengs. Informasjon om varenes plassering i butikken og innkjøp av varer er samlet i følgende to relasjoner der primærnøklene er understreket: Vareplassering(reolnr, hyllenr, vare, antall, avdeling) Innkjøp(vare, dato, antall, enhetspris, bestiller, avdeling) I relasjonen Vareplassering er hver hylle identifisert ved hvilken reol (reolnr) den befinner seg i og hvilket hyllenummer (hyllenr) den har (nederste hylle er alltid nummer 1). vare og antall angir hvilken vare og hvor mange eksemplarer av varen som ligger i hyllen. Det er forøvrig ikke noe i veien for at det er så mye av en vare at den opptar mer enn én hylle. avdeling angir hvilken avdeling som har ansvar for reolen. IrelasjonenInnkjøp beskriver hvert tuppel ett innkjøp/én bestilling av en vare, hvilkettidspunktbestillingenbleforetatt(dato), hvor mye som er (Fortsettes på side 2.)

Eksamen i INF3100, 11. juni 2012 Side 2 bestilt av varen (antall) ogenhetspris for denne bestillingen. Videre står det hvilken ansatt (bestiller)somforetok bestillingen,og hvilken avdeling som har ansvaret for bestillingen. For at databasen skal ha de rette egenskapene, må Vareplassering oppfylle følgende funksjonelle avhengigheter (FDer): reolnr avdeling vare avdeling ItilleggskalInnkjøp oppfylle følgende regler: Hver vare er underlagt én avdeling, så det er alltid en og samme avdeling som har ansvaret for bestilling av en bestemt vare. Hver person er ansatt på én avdeling. Oppgave 1 FDer og normalformer (30%) (i) (10%) Finn ut hvilken normalform hver enkelt av FDene i Vareplassering har. Begrunn svaret. (ii) (5%) Dekomponer Vareplassering tapsfritt til BCNF. Er dekomposisjonen FD-bevarende? (iii) (5%) Angi hvilke funksjonelle avhengigheter som gjelder i Innkjøp. Gitt en relasjon R(A, B, C, D, E, F, G, H) med FDene AE D, AF G C, B E, C AB, CD H, EF CDG. (iv) (10%) Gitt dekomposisjonen {ABF G, ACF G, CDE, EF H} av R.Finn ut om dekomposisjonen er tapsfri. Oppgave 2 SQL (25%) Ta utgangspunkt i relasjonene Vareplassering og Innkjøp. Besvar spørsmålene under ved hjelp av SQL. Du kan bruke views som del av besvarelsene. (i) (5%) Finn den eller de varene som tar opp mest hylleplass. Skriv for hver ut navnet på varen og antall hyller varen befinner seg på. (Fortsettes på side 3.)

Eksamen i INF3100, 11. juni 2012 Side 3 (ii) (5%) Finn gjennomsnittlig innkjøpspris pr. kilo for bananer i 2011. (Når det gjelder bananer og frukt generelt, inneholder attributtet antall i Innkjøp antall kilo som bestillingen omfatter.) (iii) (5%) Finn den eller de reolene der summen av alle varenes verdi i reolen er den høyeste. Vi måler en vares verdi ved å bruke nyeste innkjøpspris (enhetspris) for varen. (iv) (5%) Finn ut om det er noen reol der bestilling av alle varene som finnes i reolen, er foretatt av én person. Det kan være null, en eller flere slike reoler. Skriv ut reolnummeret til disse. (v) (5%) Finn ut om det er noen personer som har stått for mer enn ti innkjøp/bestillinger og der alle vedkommendes bestillinger gjelder forskjellige varer. Oppgave 3 Relasjonsalgebra og optimering av spørringer (20%) (i) (10%) Bruk relasjonsalgebra til å skrive en spørring som for hver vare sjekker at den avdelingen som står oppført i Vareplassering, stemmer overens med den avdelingen som står oppført i Innkjøp. Uttrykket under finner de varene hvor der er færre enn fem eksemplarer i en hylle og hvor det er blitt foretatt en bestilling på minst ti eksemplarer av varen i mai eller senere. π Vareplassering.vare ( σ Vareplassering.antall<5 and Innkjøp.dato> 2012-04-30 and Innkjøp.antall>10 ( σ Innkjøp.vare=Vareplassering.vare (Innkjøp Vareplassering))) (ii) (10%) Uttrykket utgjør en logisk spørreplan. Optimer den logiske spørreplanen (tegn den nye planen i form av et uttrykkstre). Oppgave 4 Transaksjonsprotokoller (25%) Idenneoppgavenskalvisepåtransaksjoneroglåsingietflerbrukersystem. En minimal relasjonsdatabase for å håndtere bestilling av flybilletter ser slik ut, der primærnøkler er understreket: Rute(rutenr, fra, til) Flyavgang(rutenr, dato, antallseter, ledigeseter) Bestilling(rutenr, dato, passasjernavn) (Fortsettes på side 4.)

Eksamen i INF3100, 11. juni 2012 Side 4 Vi skal anta at kundebruk av systemet skjer via en app som har tilgang til følgende transaksjonstyper: Type 1 Bestilling(rutenr, dato, passasjernavn): Finn den aktuelle flyavgangen i Flyavgang. Hvis ledigeseter > 0, så sett inn et nytt tuppel i Bestilling og minsk verdien til ledigeseter med 1 i Flyavgang. Type 2 Avbestilling(rutenr, dato, passasjernavn): Fjern den aktuelle bestillingen fra Bestilling. Finn den aktuelle flyavgangen i Flyavgang og øk ledigeseter med 1. Anta at transaksjoner av de to typene ser slik ut fra transaksjonshåndtererens ståsted: Type 1: r(a); w(b); w(a) Type 2: r(b); w(b); r(a); w(a) Her representerer a et tuppel i Flyavgang. I type 1-transaksjonen representerer w(b) innsetting av et nytt tuppel b i Bestilling.Itype2-transaksjonen representerer r(b); w(b) oppleting av og deretter sletting av tuppelet b i Bestilling. Itilleggtildetransaksjonstypenesomertilgjengeligeforkundeappen,fins noen administrative transaksjoner som vi ikke skal se nærmere på her, men som gjør at vi velger et låseregime som kan forhindre fantomtupler. Derfor skal vi bruke varsellåser. Vi har to låsbare enheter: relasjoner og tupler. Når vi i type 1 og 2-transaksjonene skal oppdatere, sette inn eller slette et tuppel, setter vi først varsellås på hele relasjonen, deretter setter vi en vanlig lås på det aktuelle tuppelet. Kompatibilitetsmatrisen for varsellåser er som følger: IS IX S X (ønsket lås) IS Ja Ja Ja Nei (holdt lås) IX Ja Ja Nei Nei S Ja Nei Ja Nei X Nei Nei Nei Nei Her er IS og IX varsellåser, mens S og X er vanlige lese- og skrivelåser. En skrivevarsellås på relasjonen Flyavgang angis f.eks. ved IX(Flyavgang). Opplåsing av et element c angis ved U(c) (hvor c er en relasjon eller et tuppel). (Fortsettes på side 5.)

Eksamen i INF3100, 11. juni 2012 Side 5 (i) (15%) Anta at vi bruker tofaselåsing. Vis hvordan hver av transaksjonstypene ser ut når transaksjonshåndtereren har lagt inn låser på passende steder. To personer prøver å gjøre følgende samtidig: Person 1 bestiller en billett Oslo-Tromsø Person 2 avbestiller en billett Oslo-Tromsø (ii) (10%) Kan denne situasjonen gi vranglås (deadlock)? Begrunn svaret. (Hvis du ikke har besvart spørsmål (i), kan du prøve å besvare spørsmål (ii) under antakelsen av at vi har vanlige eksklusive låser l(c) istedet.) Ellen Munthe-Kaas