Institutionen för datavetenskap Linköpings universitet TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 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 En avdelning inom ett Linköpingsbaserat läkemedelsföretag känner att man skulle behöva hjälp med att utveckla en databas som kan hjälpa dem med att hålla ordning på deras verksamhet. Det finns tre intressenter till systemet som alla vill få ut olika information ur det. Intressent 1: Företaget har ett antal viktiga projekt som alla rör framtagandet av nya läkemedel. Eftersom risken för spionage från företagets konkurenter är mycket stor så vill företagets säkerhetsansvarig kunna på ett enkelt sätt se vilka som jobbar med varje projekt. Då projekten drivs i olika lokaler kan säkerhetsavdelningen se vem som har tillgång till de olika lokalerna. Intressent 2: Varje projekt resulterar i en stor mängd olika experiment. Företagets forskningschef vill ha hjälp med att samla all information om de olika experimenten och vilka projekt de ingår i. Allt för att kunna se vilka experiment som gjorts, vilka som är plannerade och vad resultaten blivit. Experimentet bör innehålla en textuel beskrivning, en hypotes och möjlighet att spara en slutsats. Varje enskilt experiment kan dessutom bestå av ett stort antal del experiment eller tester, här är det viktigt att lagra om testen lyckades eller inte. För att underlätta uppföljningsarbetet önskar man också att lagra vem som är ansvarig för varje test. Intressent 3: Löneavdelningen på företaget har fått grönt ljus ifrån företagsledningen om att införa en ny lönemodel som innebär lönepåslag för ökat ansvar, så löneavdelningen är intresserade av att hålla koll på vilka som är ansvariga för experimenten. Gör rimliga antaganden på ett minimum av vilka attribut som måste finnas med för att systemet ska bli användbart och tänk på att förklara hur du tänkt så att det blir möjligt att enkelt bygga ut det i framtiden. Skapa ett ER/EER diagram för en databas som löser problemet. Var noga med att skapa ett korrekt ER/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 databasen ska gå att använda så var noga med att inte göra förändringar som gör systemet oanvändbart (se t.ex. fråga 3). 2(5)
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) Uppgift 3 (1 + 2 + 3 = 6p): SQL Nu databasen är implementerad hjälp företaget genom att skapa de första tre, och i någon mening, viktigaste SQL frågorna som man behöver. 1. Vilka personer har tillgång till lokalerna där projektet Fenix bedrivs? 2. Vilka personer har utfört tester inom ramen för Akilles projektet? 3. Vilka personer som arbetar inom Fenix har inte utfört några tester inom Fenix? 3(5)
Teoretisk del (18 poäng) Uppgift 4 (1+1=2p): Normalisering. a) Vad innebär normalisering och varför utför man det? b) Ge exempel på en orsak till att man i vissa fall väljer att inte ha så hög normaliseringsgrad på sina relationer. Uppgift 5 (3 + 1 = 4p): Datastrukturer a) I en tabell med 10000 rader är följande information lagrad för varje rad: PERSONNAME (char(20)), PERSONNUMBER (char(10)) och JOBCODE (char(2)). PERSONNUMBER-värdena är unika. Olika personer kan ha samma PERSONNAME-värde. Olika personer kan ha samma JOBCODE-värde. Antag en blockstorlek på 4096 bytes och obrutna (eng. unspanned) lagringsposter. Antag att en pekare är 4 bytes lång. Förklara vad ett primärindex är och visa hur man kan skapa ett sådant index för tabellen ovan. Hur många blockaccesser behövs för att hitta en post (eng. record) med givet PERSONNUMBER? Visa hur du får fram ditt resultat. Beskriv problem och lösningar på dessa problem vid insättning av poster i en fil som är indexerad med ett primärindex. b) Kan höjden på ett B+-träd ändras vid insättning och borttagning av poster. Om svaret är ja, ge ett exempel. Om svaret är nej, motivera varför. Uppgift 6 (4p): Beskriv ACID-egenskaperna för transaktioner. Ange för varje egenskap hur man uppnår egenskapen. Uppgift 7 (2p): Beskriv metoden för återställning med uppskjuten uppdatering (eng. recovery with deferred update). 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 (1.5 + 0.5 = 2p): a) Förklara shadow paging. Ge ett exempel. b) Vad är ett delad lås? Uppgift 9 (2 + 2 = 4p): datamodeller a) Beskriv nedanstående information med hjälp av semistrukturerad data. Rita modellen. Entry name: O03238 Primary accession number: O03238 Protein name: Cytochrome b References Gimeno C., Belshaw R.D., Quicke D.L.J.; "Phylogenetic relationships of the Alysiinae/Opiinae (Hymenoptera: Braconidae) and the utility of cytochrome b, 16S and 28S D2 rrna."; Insect Mol. Biol. 0:0-0(0). b) Ge 4 egenskaper av semistrukturerad data och förklara dessa. 5(5)