Tentamen. i Databasteknik. lördagen den 13 mars 2004. Tillåtna hjälpmedel: Allt upptänkligt material



Relevanta dokument
Tentamen i Databasteknik

Tentamen i Databasteknik

Tentamen i. Databasteknik

Tentamen i Databasteknik

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Idag. Exempel. Exempel modellen (1) Exempel...

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till tentamen för 1E1601

Tentamen i Datorteknik och - kommunikation, 2D1522/4K1522. Läs detta innan du börjar:

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Tentamen i Databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Tentamen för DD1370 Databasteknik och informationssystem

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till. tentamen för 1E1601

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Lösningsförslag till tentamen för DD1370 Databasteknik och informationssystem

Dagens föreläsning. KTH & SU, CSC Databasteknik Föreläsning 10 sid 1

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Vad du skall komma ihåg från tidigare föreläsningar. Dagens föreläsning. Evaluering av frågor. Data dictionary

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Lösningar till tentamen i EDAF75

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Karlstads Universitet, Datavetenskap 1

TDDI60 Tekniska databaser

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Tentamen. TDDB38 - Databasteknik

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Logisk databasdesign

Databasteknik. Vad är. Vad är databaser bra till? data? föreläsare: Kjell Lindqvist. och NADA. databaser? och. vad är de bra för?

Tentamen plus lösningsförslag

Tentamen Databasteknik

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Idag. Hur vet vi att vår databas är tillräckligt bra?

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Exempel-Tentamen III

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Lösningsförslag till Exempel tentamen

Universitetet: ER-diagram

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Tentamen DATABASTEKNIK - 1DL116

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

An English version of the questions is found at the back of each page.

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Databaser design och programmering. Design processen ER- modellering

Karlstads Universitet, Datavetenskap 1

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Lösningsförslag Tentamen, 25 april 03

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Konceptuella datamodeller

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Databasteknik NADA, KTH & SU

Lösningsförslag, tentamen i Databaser

Informationssystem och databasteknik

Systemutvecklare SU14, Malmö

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

Grunderna för relationsmodellen!

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Introduktion till frågespråket SQL (v0.91)

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Design och underhåll av databaser

Karlstads Universitet, Datavetenskap 1

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

IT i organisationer och databasteknik

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Övningar i SQL. SQLAccess.doc Ove Lundgren

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Databaser - Design och programmering

Idag. Exempel. Exempel modellen (1) Exempel...

732G16: Databaser - Design och programmering

Databaser. Vad du ska lära dig: Ordlista

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Databasteknik för D1, SDU1 m fl

Lite om databasdesign och modellering

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

Relationsmodellen och syntetisk databasdesign

Transkript:

Tentamen i lördagen den 13 mars 2004 Tillåtna hjälpmedel: Allt upptänkligt material Använd bara framsidan på varje blad. Skriv max en uppgift per blad. Motivera allt, dokumentera egna antaganden. Oläslig/obegriplig lösning ger noll poäng. Max poäng = 50 + bonus Betygsgränser : KTH SU 3 30 G 33 4 39 VG 45 5 48 Lycka till! Kjell

Tentamen i 1. Ett företag som säljer IT-utbildning vill datorisera sin verksamhet. Företaget har ett 30- tal lärare och kan hantera upp till 70 elever i varje kurs. Företaget tillhandahåller 5 st avancerade kurser som lärs ut av ett team av 2 eller flera lärare. Varje lärare ingår i maximalt två lärarteam men kan även syssla med kursutveckling. Varje kurs består av ett antal lektioner, praktiska övningar och hemuppgifter. Företaget vill hålla reda på kurser och dess innehåll, lärare och dessas teamtillhörighet, kursdeltagare och deras resultat. Även lärarnas tjänstgöring skall gå att lagra i systemet. (10p) a. Gör en modell som beskriver verksamheten. (2p) (2p) b. Gör en T-Matris till modellen c. Gör en databasstruktur som motsvarar modell och T-matris. 2. Ett bemanningsföretag som hyr ut hotellpersonal till hotell i hela landet har ett manuellt register med följande innehåll: Pnr KontraktsNr AntalTimmarPerVecka Namn Tel HotellNr HotellAdr HotellPostnr HotellOrt Sysselsättning pnr för en anställd. Identifierar företagets kontrakt med ett hotell. Antal timmar den anställde är kontrakterad på det aktuella hotellet. Den anställdes namn. Den anställdes telnr. Unikt nummer för varje hotell. Hotellets adress. Hotellets postnummer. Hotellets ort. Vad den anställde skall göra på hotellet. En anställd kan arbeta på mer än ett hotell samtidigt och kan vara kontrakterad för kort eller lång tid. Ett hotell kan hyra flera anställda samtidigt och en viss anställd vid flera olika tillfällen. a (2p) Utred vilka funktionella beroenden som finns i strukturen. b (1p) En första ansats är att lägga alla termer i en enda tabell. Vilka för och nackdelar har en sådan lösning i det aktuella fallet? c (6p) Normalisera successivt till 1NF, 2NF, 3NF och motivera alla åtgärder. Sid 1

Tentamen i 3. Antag att en transaktion förlöper enligt nedanstående tabell. Tabellen inneåller även loggens innegåll. C-A betyder Copy A till arbetsminnet, D-A betyder kopiera A till Disk, Read(A, t) betyder kopiera dataobjektet A till/från en programvariabel t, Write(A, t) betyder kopiera t till dataobjektet A och Output(A) betydar att dataobjektet A skrivs till databasen. Transaktion T 1 Logg C-A C-B D- A D-B t <start T 1, 123> Read(A, t) <Read(A, T 1, 125)> 8 8 t t*2 16 Write(A, t) <Write(A, T 1, 8, 16, 130> 16 16 16 Read(b, t) <Read(B, T 1, 135)> 10 10 t t*2 20 Write(B, t) Output(A) <Write(B, T 1, 10, 20, 140> 20 20 20 20 Output(B) 20 Rollback a (2p) Beskriv vad som händer vid sista operationen (rollback)? b (2p) Om vi har ytterligare en transaktion T 2 som exekverar samtidigt som T 1. Betrakta följande operationsföljd: T 1 :R(A), T 2 :R(A), T 2 :W(C), T 1 :W(A), T 1 :R(B), T 2 :R(B), T 1 :W(B), Är operationsföljden serialiserbar? c (2p) Kan man råka ut för utsvältning då man använder optimistisk transaktionshantering? 4. Index är viktiga i databassammanhang. a) (1p) Vilka termer bör indexeras i en databas? b) (1p) Finns det några nackdelar med index? c) (1p) Beskriv för- och nackdelar med index på varje term i en relation. d) (1p) Under vilka förutsättningar kan man ha ett glest index på ett attribut? e) (1p) I vilka fall är det bättre att välja ett B-trädsindex i stället för ett hash-index? För resten av uppgifterna gäller följande databasstruktur: Anställd ( ( namn ), lön, chef, avd ) ; Försäljning ( ( avd, varunr ), volym ) ; Leverantör ( ( företag ), adress ) ; Lager ( ( företag, avd, varunr ), volym ) ; Avdelning ( ( avd ), våning ) ; Vara ( ( varunr ), typ ) ; där varunr, våning och volym är av typen integer och övriga av typen string(30). 5. Antag att man definierat följande vy: CREATE view tmp(namn, lön, chefslön, våning, företag) AS (SELECT A.namn, A.lön, C.lön, Av.våning, L.företag FROM Anställd A, Anställd C, Avdelning Av, Lager L WHERE A.chef = C.namn AND A.avd = Av.avd AND A.avd = L.avd; och att man vill ha svar på frågan vilka leverantörer levererar till de avdelningar på våning 2 där någon tjänar mer än sin chef? SELECT företag FROM tmp WHERE lön > chefslön AND våning = 2; a) (1p) Vilka väsentliga principer används av en optimerare? b) (3p) Visa hur en optimerare kommer att bygga om frågan. c) (2p) Varför skall man inte kompilera eller kompilera och exekvera vyn? Sid 2

Tentamen i 6. Översätt till begriplig svenska: a. (2p)create view U(avd, n) as select A.avd, count(distinct A.namn) from Anställd A, Lager L where A.avd = L.avd and L.företag = Addidas group by A.avd; select V.typ from Försäljning F, Vara V, U where F.varunr = V.varunr and F.avd = U.avd and U.n = (select max(n) from U) b. (2p)(P företag, avd(s typ = fotboll (Lager ÍVara))) P avd(s typ = sportskor (Vara ÍFörsäljning)); c. (2p){n ($c)($a)($x)(anställd(nxca) Ÿ ($v)(avdelning(av) Ÿ v = 2 Ÿ ($y)( Anställd (cyzb) Ÿ y < x)))} d. (2p){t.varunr Vara(t) Ÿ ÿ($a)(avdelning(a) Ÿ (ÿ($s)(försäljning(s) Ÿ s.varunr = t.varunr Ÿ s.avd = a.avd)))} e. (2p) Anställd Namn Lön Chef Avd Avdelning Avd Våning P. _x _c _a _a _v1 _c _y _b _b _v2 conditions _v1=_v2 AND _x < _y Sid 3

Tentamen i Lösningsförslag till Tentamen i lördagen den 13 mars 2004 Sid 0

Lösningsförslag till Tentamen i 1. a Lektion Uppgift HarUppgift HarLektion Datum Kurs Deltar Deltagare HarLaboration Laboration Undervisar b Lärare T-matris Typ Namn I-term(er) E-term(er) Obj Uppgift Unr UppgTyp, Lydelse Obj Datum Datum Obj Laboration Lid Lydelse Obj Lektion Lnr Innehåll Obj Kurs Knr Namn Obj Deltagare Pnr Namn, Adr, Tel Obj Lärare Pnr Namn, Adr, Tel Samb HarUppgift Unr, Datum, Knr Samb HarLaboration Lnr, Knr, Datum Samb HarLektion Knr, Lnr LektNr Samb Deltar Pnr, Knr Resultat Samb Undervisar Knr, Datum, Pnr AntalTim c Regel a: Uppgift Laboration Lektion Kurs Deltagare Lärare Regel b: Datum försvinner Regel c: ((Unr) UppgTyp, Lydelse) ((Lid) Lydelse) ((Lnr) Innehåll) ((Knr) Namn) ((Pnr) Namn, Adr, Tel) ((Pnr) Namn, Adr, Tel) HarUppgift ((Unr, Datum, Knr)) HarLaboration ((Lnr, Knr, Datum)) Undervisar ((Knr, Datum, Pnr)) AntalTim) Regel d: Deltar ((Pnr, Knr) Resultat) Regel e: HarLektion försvinner men Knr och LektNr blir E-term i Lektion: Lektion ((Lnr) Innehåll, Knr, LektNr) Regel f: Finns inga Sid 1

Lösningsförslag till Tentamen i Slutlig struktur: Uppgift Laboration Lektion Kurs Deltagare Lärare HarUppgift HarLaboration Undervisar Deltar ((Unr) UppgTyp, Lydelse) ((Lid) Lydelse) ((Lnr) Innehåll, Knr, LektNr) ((Knr) Namn) ((Pnr) Namn, Adr, Tel) ((Pnr) Namn, Adr, Tel) ((Unr, Datum, Knr)) ((Lnr, Knr, Datum)) ((Knr, Datum, Pnr)) AntalTim) ((Pnr, Knr) Resultat) Strukturen är i 3NF. 2. a b c Pnr Æ Namn, Tel KontraktsNr Æ Pnr, AntalTimmarPerVecka, HotellNr, Sysselsättning HotellNr Æ HotellAdr, HotellPostnr HotellPostnr Æ HotellOrt Insättningsproblem: vi kan inte lagra information om en anställd om denne inte kontrakterats ännu. Borttagningsproblem: Om en anställd endast har arbetat på ett hotell och hotellet tas bort så försvinner även uppgifter om den anställde. Uppdateringsproblem: Om en anställd byter telnr så måste ett okänt antal tupler uppdateras. Vissa FD kommer inte att impliceras av strukturen t ex Pnr Æ Namn Hitta alla kandidatnycklar: Den enda är KontraktsNr. 1NF: ((KontraktsNr) Pnr, Namn, Tel, AntalTimmarPerVecka, HotellNr, HotellAdr, HotellPostnr, HotellOrt, Sysselsättning) 2NF: Bryt ut det som inte är FFD. Det finns inga sådana! 3NF: Bryt ut det som är transitivt beroende. ((Pnr,) Namn, Tel) ((HotellNr) HotellAdr, HotellPostnr, HotellOrt) men här måste vi dela ytterligare: ((HotellNr) HotellAdr, HotellPostnr) ((HotellPostnr) HotellOrt) ((KontraktsNr) Pnr, AntalTimmarPerVecka, HotellNr, Sysselsättning) Slutlig struktur: ((Pnr,) Namn, Tel) ((HotellNr) HotellAdr, HotellPostnr) ((HotellPostnr) HotellOrt) ((KontraktsNr) Pnr, AntalTimmarPerVecka, HotellNr, Sysselsättning) Konstruera motsvarande modell. Vi kan se att modellen är rimlig så vi är klara. Sid 2

Lösningsförslag till Tentamen i 3. a Loggen läses från slutet. Den första operationen är Write(B, t) B återställs till sitt gamla värde: 10, Read(b, t) har inte ändrat något i databasen. Nästa operation är Write(A, t) A återställs till sit gamla värde: 8. Transaktionen är nu ogjord. b Rita serialiserbarhetsgraf så ser man att operationsföljden är serialiserbar. c Ja om andra transaktioner hinner uppdatera sådant som den en viss transaktion så blir denna aldrig klar. 4. a) Primär och främmande nycklar, attribut som ingår i predikat vid sökning, under förutsättning att man inte har hög frekvens av modifierande operationer (motivera). b) Insättning, borttagning och uppdatering tar längre tid (motivera). Optimeraren får mer att göra. c) Redundansen ökar, optimeraren får mer att göra, insättning, borttagning och uppdatering tar längre tid. d) Om relationen är sorterad på attributet. e) Då man vill kunna komma åt föregående/nästa post. 5. a) Reduktion av datamängden så nära relationerna som möjligt. Hantera minsta datamängderna först. b) Initialt evalueringsträd: Slutligt evalueringsträd: π Företag s lön > chefslön Ÿ våning = 2 tmp tmp π A.namn, A.lön, C.lön, Av.våning, L.företag s A.chef=C.namn Ÿ A.avd=Av.avd Ÿ A.avd=L.avd π företag π avd π avd s våning = 2 π avd, företag Lager X X X Avdelning Anställd A Anställd C Avdelning Av Lager L Anställd A Anställd C F c) Kompilera: Vi kan inte optimera. Kompilera och exekvera: Vi får redundans, jobbar med gamla data och saknar möjlighet att optimera. 6. a Vilka typer av varor säljs av den avdelning med störst personaltäthet som har störst utbud av varor från Addidas? b. Vilka företag levererar fotbollar till samtliga avdelningar som säljer sportskor? c. Vilka anställda på andra våningen tjänar mer än sin chef? d. Vilka varor säljs av alla avdelningar? e. Vilka är de anställda som arbetar på samma våning som sin chef och tjänar mindre än denne? A.chef = C.namn Ÿ A.lön > C.lön Sid 3