Juha Takkinen 2008-05-22
Skriftlig tentamen i kurserna
TDDD12 och TDDB48 Databasteknik 2008-05-24 kl. 14–18
Lokal
KÅRA, T1 och T2.
Tillåtna hjälpmedel
Inga.
Resultat
Resultatet publiceras inom tolv arbetsdagar i LADOK.
Poänggränser
Du kan få maximalt 40 poäng. För att få godkänt, betyg 3, krävs minst 10 poäng i respektive tentamensdel (Praktik och Teori). För betygen 4 och 5 krävs totalt 28 respektive 36 poäng.
Lärarjour
Under tentamenstiden finns möjlighet att ställa frågor och få förtydliganden från dels Juha Takkinen, tel. 0731-500 393, som besöker tentamenslokalen kl. 15, och dels Lena Strömbäck, tel. 0709-396 776, som besöker salen kl. 17.
Instruktioner
Ge relevanta och motiverade svar på endast det som efterfrågas. Poängav- drag kan ges för svar som ej är direkta svar på en fråga. Du kan svara på svenska eller engelska. Läs även instruktionerna på tentamensomslaget.
Lycka till!
1. EER-modellering (6 p. totalt): Företaget IT.nu har specialiserat sig på att leverera IT-kurser som håller en avancerad, forskningsnära
utbildningsnivå. Företaget har 30 lärare, alla med doktorstitel, och kan hantera upp till och med 100 deltagare per utbildningsperiod. Man har fem avancerade kurser i IT-teknik, som var och en hålls av ett lärarlag
bestående av två eller flera lärare. Varje lärare kan vara med i max två lärarlag åt gången. Uttagningen av lärarlagen före varje utbildningsperiod baseras på respektive lärares specialkunskaper. När en lärare inte
undervisar så håller han eller hon på med forskning på företaget. Varje kursdeltagare kan gå max en avancerad kurs per utbildningsperiod.
Skapa en EER-modell som håller reda på det som företaget IT.nu sysslar med enligt ovanstående beskrivning. Var noga med att motivera dina val av entiter och relationstyper samt attribut. Skriv ned alla antaganden som du gör om företagets data. Ange alla kardinaliteter.
2. Översättning till relationer (4 p. totalt): Se EER-diagrammet överst på nästa sida till relationer. Diagrammet föreställer en minivärld med
hyresobjekt (strandtomt eller bergstomt), hyrestagare och avtal.
a. Översätt EER-diagrammet till relationer. (3 p.)
b. Föreslå en constraint som förhindrar att man hyr samma hyresobjekt två gånger under en och samma tidsperiod. (1 p.)
För full poäng måste du motivera varför du har valt att översätta
diagrammet på det sätt som du har gjort samt redovisa alla antaganden om bland annat constraints. Markera primärnycklar med heldragen
understrykning och främmande nycklar med streckad understrykning i schemat, med en pekare från den främmande nyckeln till det/de attribut som den främmande nyckeln refererar till.
3. SQL (6 p. totalt): Företaget Sjung.nu säljer nedladdningsbar musik (”enheter”) och har implementerat följande relationer i sin databas.
Primärnycklar är dubbelheldraget understrukna medan främmande nycklar är enkelheldraget understrukna.1
KUND(Kundnr, Namn, Epost, Operativsystem, DefaultFilformat2) KUNDORDER(Ordernr, Kundnr, Orderdatum, Ordertid,
KolladAvAnstalldId, ForlagId, FilNedladdad3, NedladdadDatum, NedladdadKlockslag)
FORLAG(ForlagId, Namn, Pris)
ANSTALLDA(AnstalldId, Namn, BorjatAr4, SlutatAr5, NarmasteChef6) ORDERENHET(Ordernr, Enhetnr, Antal)
ENHET(Enhetnr, Namn, Pris, Storlek7)
Formulera SQL-frågor för följande fall:
1. Relationen mellan främmande nycklar och primärnycklar anses här självförklarande, där inget är an- givet. Fråga annars jourhavande lärare!
2. mp3, wma m.fl.
3. Boolesk ja/nej 4. Startår för anställd 5. Sista anställningsår
6. Närmaste chef är också anställd 7. Storlek i antal byte
(0, N)
(1, 1)) (0,N)
(1, 1)
WinXP, Vista eller MacOS. (1 p.)
c. Antag att tabellen ORDERENHET finns i databasen men saknar informationen att Enhetnr ska vara främmande nyckel till Enhetnr i ENHET. Ange SQL-rad som inför detta. (1 p.)
d. Lista namnet på varje musikfil som har sålts, tillsammans med antalet nedladdningar och intäkter för respektive fil. (3 p.)
4. Normalisering (4 p. totalt): För att vidareutbilda professionella golfspelare, som ju reser mycket och inte kan gå på ett universitet på normalt sätt, har Linköpings universitet för dessa personer börjat erbjuda distansundervisning. Golfspelarna kommer att kunna läsa flera olika
inriktningar samtidigt. Nedan syns ett utdrag ur relationen i databasen som man kommer att använda.
a. Ange primärnyckeln för relationen. (1 p.)
b. Identifiera alla funktionella beroenden. OBS! Alla namn är unika i relationen. (1 p.)
c. Är relationen i 3NF? Motivera ditt svar. Om inte, konvertera den till 3NF.
(1 p.)
d. Är relationen i BCNF? Motivera ditt svar. Om inte, konvertera den till BCNF. (1 p.)
Namn Inriktning Lärare
Lee Janzen Datalogi Donald Knuth
Bobby Jones Datorsystem John von Neumann Horace Rawlins Datalogi Alan Turing
Payne Stewart Kognitionsvetenskap George Boole Jack Nicklaus Datalogi Donald Knuth Payne Stewart Systemvetenskap Herbert Simon
Del 2: Teori
5. Relationsmodellen (4 p. totalt): Ange om respektive påstående nedan är sant eller falskt. Motivera gärna. Du får +1 p. för varje korrekt svar och –1 p. för varje felaktigt svar, dock aldrig lägre än 0 p. totalt. Avstår du från att svara får du 0 p.
a. SQL-fråganSELECT * FROM R; ger samma tupler i svaret som SELECT * FROM R ORDER BY a; antaget att a finns i R.
b. antag att relationen R(A, B, C, D, E) har de funktionella beroendena AB-->C, C-->B och D-->E. Då är en av supernycklarna ABD.
c. SQL-fråganSELECT a, c FROM T WHERE b=c;motsvaras av uttrycket
π
b, c(σ
a=c(T)) i relationsalgebra.d. SELECT * FROM R NATURAL JOIN S; ger samma resultat som SELECT * FROM R LEFT NATURAL JOIN S; antaget att R(a, b) och S(b, c) gäller.
6. Transaktioner (4 p. totalt):
a. Vad menas med en serialiserbar transaktionsplan (eng. serializable transaction schedule)? Exemplifiera. (2 p.)
b. I nedanstående transaktionsplan, lägg in läs- och skrivlås på sådant sätt att schemat följer ett tvåfaslåsningsprotokoll. Redogör också steg-för-steg vad som händer när schemat exekveras. Rita gärna. Notation: r1 =
transaktion 1 läser, w1 = transaktion 1 skriver o.s.v. (2 p.)
r1(C), r2(B), r3(A), w1(B), w2(A), w3(D)
7. Index (8 p. totalt): Ett företags kunddatabas innehåller 400 000 kunder (d.v.s. antal poster i kundtabellen). Varje kundpost är 1000 byte och
nyckelfältet är personnumret. Blockstorleken är 4096 byte, filen lagras non- spanning.
a. Vad blir blockfaktorn och hur många block behövs för att lagra filen?
(2 p.)
b. Hur många blockaccesser behövs för att hitta data om en kund givet att du har personnumret om filen är osorterad? (1 p.)
c. Hur många blockaccesser krävs för att hitta en kund givet att du har personnumret om filen är sorterad på personnumret? (1 p.)
Man vill förbättra prestandan genom att skapa ett index på fältet
personnummer för tabellen. En indexpost har storleken 100 byte. Vilken typ av index kan användas och hur många blockesser krävs för att hitta en post om:
d. Kunddatafilen är sorterad? (2 p.) e. Kunddatafilen är osorterad? (2 p.)
8. Databasåterställning (4 p. totalt): Ett företag har råkat ut för en databaskrasch och måste återställa sin databas. Företaget använder omedelbar uppdatering där transaktionerna kan skriva till databasen före commit (variant 2). Följande loggfil finns sparad efter kraschen som
beskriver allt som hänt sedan senaste backup av databasen:
start_transaction A write A x 3 7
write A y 4 10 commit A
checkpoint
start_transaction B write B z 3 5
commit B
start_transaction C write C x 3 8
crash
Beskriv processen för återställning i följande fall. För full poäng måste du tala om vad som händer med varje transaktion i loggfilen:
a. Hårddisken är intakt och all data som fanns på den finns kvar. (2 p.) b. All data från databasen som fanns på hårddisken, förutom loggfilen, är
förstörd (2 p.)