Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18 Jourhavande lärare: Patrick Lambrix, 2605 Poäng: Tentan består ut 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! Praktisk del (16 poäng) 1(5)
I den praktiska delen kommer ni att modulera ett problem i uppgift 1. Denna model ska sedan ligga till grund för de svar ni ska ge i uppgifterna 2 och 3, så läs alla tre uppgifter innan ni börjar lösa uppgift 1! Uppgift 1 (6p): Datamodellering med EER diagram Kursledningen för en större databaskurs har fått problem. Då de databaskurser de ger blivit väldigt populär så är det väldigt många studenter som läser kurserna varje år. Tyvärr har antalet studenter nu blivit så många att kurssekreteraren har svårt att hålla koll på vilka som läst vilken kurs, och om dom blivit godkända eller underkända. Godkänd på kursen är man om alla moment är godkända. Kurserna kan innehålla tre moment, en teoridel (betyg 0, 3, 4, 5), en lab del (godkänd/icke godkänd) och ett projekt (godkänd/icke godkänd) och det är viktigt för kurssekreteraren att kunna tala om för en student vilket moment som saknas om studenten inte blivit godkänd på kursen. Mindre kurser kan naturligvis bestå av bara en teoridel eller en teoridel och en lab serie eller en teoridel och ett projekt, eller någon annan kombination av moment. Eftersom kurserna utvecklas så skulle det vara bra att hålla koll på när en student tog en kurs och vilken version av projekt, lab serie och tenta som studenten har gjort. Det räcker med att hålla koll på årtal och period. Det är inte heller nödvändigt att alla kurser har samma lab serie och naturligtvis har dom olika projekt och tentor. Kurssekreteraren är inte intresserad av att hålla koll på de studenter som för tillfället går en kurs då aktuell lärare sköter detta. I slutet av varje tenta period så får kurssekreteraren en lista med resultat och det är denna lista som ligger till grund för den information som behöver lagras i databasen. Naturligtvis skulle någon av de som undervisar kurserna skapa den här databasen åt kurssekreteraren men då alla är fullt upptagna med att undervisa så ber nu kurssekreteraren dig om hjälp. Skapa ett EER diagram för en databas som skulle lösa kurssekreterarens problem. Var noga med att skapa ett korrekt EER diagram och att förklara alla antaganden och eventuella begränsningar noga så att databasen ska bli enkel att underhålla i framtiden. Betänk dock att kurssekreteraren ska kunna använda den i sitt arbete så var noga med att inte göra förändringar som gör systemet oanvändbart för honom (se t.ex. fråga 3) Uppgift 2 (4p): Översätt EER diagrammet tabeller i BCNF. I de fall som ni valt att inte använda standard reglerna som dom finns beskrivna i kursboken så ska anledningen till att ni gjort ett annat val motiveras! Annars gäller: Primärnyckel ska vara understrukna. Främmande nycklar ska understrykas med streckad linje. Den refererade tabellen och attributet måste anges. Exempel: TABLE1 Attribute1 Attribute2 TABLE2 Attribute3 Attribute4 Table1(Attribute1) 2(5)
Uppgift 3 (1 + 2 + 3 = 6p): SQL Nu när kurssekreteraren fått sin databas visar det sig att han inte är så duktig på SQL. Hjälp kurssekretraren med att formulera följande tre frågor i SQL så att han kommer igång med sin nya databas. 1. Vilka studenter läste kursen TDDB77 under period 3 2002. 2. Vilka studenter läste TDDB77 under period 3 2002 och fick godkänt på projektet. 3. Vilken kurs hade högst medelbetyg under period 3 2002. 3(5)
Teoretisk del (18 poäng) Uppgift 4 (2p): Normalisering. Vad innebär det att en tabel är i 3NF? Ge ett exempel på en tabell som är i 2NF men inte i 3NF. Uppgift 5 (1.5 + 1.5 = 3p): Datastrukturer Antag att du använder en hashtabell med 7 hinkar för intern hashning av poster med fält NAME (varchar(10)), PNUM (int) och JOBCODE (char(2)). Använd hashfunktionen h. Antag att du vill lagra följande poster i hashtabellen: Post 1: NAME=Almut, PNUM=1234, JOBCODE=Te, h(post1)=4 Post 2: NAME=Patrick, PNUM=2134, JOBCODE=Ex, h(post2)=5 Post 3: NAME=Henrik, PNUM=2144, JOBCODE=Gu, h(post3)=5 Post 4: NAME=Jessica, PNUM=1134, JOBCODE=Ad, h(post4)=4 a) Förklara hur öppen adressering (eng. Open addressing) fungerar och visa hur man lagrar posterna med denna strategi. Rita den resulterande hashtabellen. b) Förklara hur kjedjehashning (eng. Chaining records) fungerar och visa hur man lagrar posterna med denna strategi. Rita den resulterande hashtabellen. Uppgift 6 (2p): Ge 4 anomalier man vill undvika genom att ha samtidighetskontroll i ett databassystem där man tillåter flera samtidiga transaktioner. Ge ett exempel för varje anomali. Uppgift 7 (2p): Beskriv metoden för återställning med omedelbar uppdatering (eng. recovery with immediate update). Ange vilken variant du använder. Använd systemloggen nedan för att exemplifiera metoden. Förutom systemloggen vilken information behöver systemet lagras? System log: Start-transaction T1 Write-item T1, A, 10, 20 Checkpoint Start-transaction T2 Write-item T1, B, 10, 20 Write-item T2, C, 10, 30 Commit T1 Start-transaction T3 Start-transaction T4 Write-item T3, D, 20, 30 Write-item T4, E, 5, 10 Write-item T2, C, 30, 40 Commit T2 Æ system crash 4(5)
Uppgift 8 (0.5+1.5 +1=3p): datamodeller Antag att den booleska modellen för representation av textdokument används. Antag att man är intresserad i orden gen, enzym, protein och signal. a) Visa hur man representerar dokument i den booleska modellen. b) Ange sökfrågan som representerar alla dokument som innehåller gen och enzym eller gen och protein, men inte signal. (Obs. Du får inte förenkla frågan.) Visa även den kompletterade DNF (Disjunktiv NormalForm) av frågan. c) Vilka fördelar och nackdelar har den booleska modellen för representation av och sökning i textdokument. Uppgift 9 (1+2=3p): databankintegration a) Vilka problem uppstår när man vill ställa komplexa frågor där information ska hämtas från flera biologiska databanker? b) Beskriv en model för integrering av biologiska databanker med hjälp av vyintegration. Vilka problem löses genom användning av denna model? Uppgift 10 (1+1.5+0.5=3p): a) Vad representerar tf och idf i definitionen av vikterna i vektormodellen? b) Förklara tvåfaslåsning. Ge ett exempel. Varför används detta? c) Vad är rotationsförsening? 5(5)