Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18 Jourhavande lärare: Patrick Lambrix (013/28 26 05) Poäng: Tentan består av 2 delar. För godkänd krävs 50% av maxpoäng på båda delar. Betygsräkningen baseras på det totala resultatet och inte på de olika delarna. Anvisningar: Förutom anvisningarna på skrivningsomslaget gäller följande. Skriv klart och tydligt. Antaganden utöver de som står i uppgiften måste anges. (Gjorda antaganden får naturligtvis inte förändra den givna uppgiften.) Hjälpmedel: lexikon, miniräknare LYCKA TILL! 1(6)
Praktisk del (16 poäng) ppgift 1 (5p): EER-modellering Biologiforskare försöker kartlägga de olika proteinerna och hur de reagerar genom olika försök, men det finns också ett stort behov av datorbaserade verktyg för att försöka se större sammanhang. Just i det här fallet vill man bygga en databas för att lagra informationen. Följande objekt och information måste finnas med: Substanser, dessa är de ämnen som på olika sätt är inblandade i de reaktioner som finns i cellen. För varje substans måste vi lagra en unik identitet och ett namn. De substanser som vi är mest intresserade av är proteiner, men det finns även andra typer av substanser som är intressanta att lagra i databasen. Gener. För varje gen lagrar vi ett unikt namn och vilken kromosom den tillhör. Interaktioner, dvs. information om hur substanserna reagerar med varandra. För alla interaktioner måste vi lagra ett unikt namn. Interaktioner kan vara en av tre typer: En transkription där en gen tillverkar ett protein; en konversion där ett antal substanser reagerar med varandra och skapar ett antal nya substanser; eller en modulering där ett protein styr en annan interaktion. För en konversion är det viktigt att skilja på vilka av ämnena som reagerar och vilka som är produkter i interaktionen. För en modulering måste vi också lagra hur styrningen sker, dvs. om den ökar eller minskar hastigheten på den reaktion den styr. Verifikat. Varje interaktion verifieras av ett eller flera försök. Ett verifikat hör alltid ihop med en interaktion och identifieras genom namnet på interaktionen och ett eget löpnummer. För ett verifikat lagrar vi också namn på det försök som genomförts och vilket forskningslaboratorium som genomfört detta försök. Din uppgift blir nu att hjälpa biologiforskarna genom att bygga en EER-modell för proteiner och proteininreaktioner, så att de sedan kan skapa en databas för att analysera sina försök. Var noga med att skriva ned dina val och antaganden i de fall du finner något oklart i den information som finns ovan. 2(6)
ppgift 2 (5 p): EER till relationsschema PNR månadslön årtal poäng namn Anställd N gick M Kurs namn RegNr Bil 1 1 äger d Säljare Tekniker d Extern Intern kod d Senior Junior 1 har assistent N Översätt ovanstående EER-diagram i relationer. I de fall som du valt att inte använda standardreglerna som dom finns beskrivna i kursboken så ska anledningen till att du gjort ett annat val motiveras! Annars gäller: Primärnyckel ska vara understruken. Främmande nycklar ska understrykas med streckad linje. Den refererade tabellen och attributet måste anges. Exempel: TABELL1 Attribut1 Attribut2 TABBELL2 Attribut3 Attribut4 Tabell1(Attribut1) 3(6)
ppgift 3 (1 + 1 + 2 + 2 = 6p): SQL Givet följande relationsschema: Kund CID Namn Ålder Lån LID Belopp Datum CID CID är främmande nyckel som refererar till CID i kundrelationen Betalning BID Belopp Datum LID LID är främmande nyckel som refererar till LID i lånrelationen a) Lista alla lån med belopp mindre än 20000. b) Lista alla lån med en låntagare (kund) som är yngre än 25 år. c) Lista för varje kund det totala beloppet för alla hans/hennes lån. d) Vilken kund ska fortfarande betala tillbacka mest pengar? 4(6)
Teoretisk del (20 poäng) ppgift 4 (2 + 1 = 3p): Normalisering a) Ge definitionen av 2NF och 3NF. Ge ett exempel på en tabell som är i 2NF, men inte i 3NF. Visa hur man kan normalisera tabellen så att man får 3NF. b) Given universalrelation R = { A, B, C, D, E, F } och mängden funktionella beroenden F = { C A, AB DC, C BD, E F}. Vad är kandidatnycklarna för R? ppgift 5 (1 + 3 = 4p): Datastrukturer I en tabell med 10000 rader är följande information lagrad för varje rad: PERSONNAME (char(20)), PERSONNMBER (char(10)) och JOBCODE (char(2)). PERSONNMBER-värdena är unika. Olika personer kan ha samma JOBCODE-värde. I medelfallet har 10 personer samma JOBCODE-värde. Antag en blockstorlek på 4096 bytes och obrutna (eng. unspanned) lagringsposter. Antag att en pekare är 4 bytes lång. a) Hur många block behövs för att lagra tabellen i exemplet? b) Skapa ett primärt index för tabellen. Du får själv välja vilket fält är indexfältet och om och hur tabellen är sorterad. Ange detta! (Du får dock inte ändra uppgifterna om tabellen ovan.) Hur många blockaccesser behövs i medelfallet för att hitta en post (eng. record) med givet värde för indexfältet? Visa hur du får fram ditt resultat. Påminnelse om logaritmer: y = log a x x=a y (a>0, a 1) x 1 2 3 4 5 6 7 8 9 10 2 x 2 4 8 16 32 64 128 256 512 1024 ppgift 6 (2 + 1 = 3p) a) Ge 4 egenskaper av semistrukturerad data och förklara dessa. b) Vad representerar tf och idf i definitionen av vikterna i vektormodellen? 5(6)
ppgift 7 (2 + 2 + 1 = 5p): Samtidighet Givet nedanstående transaktioner. TRANSAKTION 1 read-item(other-account); read-item(my-account); other-account := other-account + 2000; my-account := my-account + 2000; write-item(other-account); write-item(my-account); TRANSAKTION 2 read-item(my-account); my-account := my-account + 1000; write-item(my-account); a) Ange alla möjliga konflikter och rita ett serialiserbart (men ej seriellt) schema. Bevisa att schemat är serialiserbart. b) Lägg till read-lock-, write-lock- och unlock-operationer i transaktionerna som är tillåtna av tvåfaslåsningsprotokollen. c) Kan en deadlock uppstå i ett schema med enbart de två givna transaktionerna? ppgift 8 (3 + 2 = 5p): Databasåterställning a) Beskriv metoden för återställning med uppskjuten uppdatering (eng. recovery with deferred update). Använd systemloggen nedan för att exemplifiera metoden. (Observera att för varje write-item lagras bara 1 värde i systemloggen nedan.) Visa alla operationer som görs vid återställningen av databasen. (I rätt ordning!) b) Ge alla steg vid hanteringen av en kontrollpunkt (eng. checkpoint). Givet nedanstående systemlogg, vad skrevs till skivan vid kontrollpunkten? Part of system log: Start-transaction T1 Write-item T1, A, 10 Commit T1 Start-transaction T2 Start-transaction T3 Write-item T3, B, 10 Write-item T2, C, 10 Checkpoint Commit T2 Start-transaction T4 Start-transaction T5 Write-item T4, D, 20 Write-item T5, E, 5 Write-item T3, C, 30 Commit T3 system crash 6(6)