Institutionen för datavetenskap Linköpings universitet TETAME TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18 Jourhavande lärare: Lena Strömbäck (Patrick Lambrix, 0703-492066) 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(5)
Praktisk del (16 poäng) Uppgift 1 (6p): Datamodellering med EER diagram Bonden Pettson föder upp kor och har kor som levererar mjölk. Han ska modernisera sin ladugård. I samband med detta kommer det att bli möjligt för honom att hålla ordning på exakt vad varje ko äter, hur mycket mjölk den levererar och om den varit sjuk. Han hoppas att detta ska kunna öka produktiviteten på hans ladugård. För att hålla reda på all information behöver han hjälp att skapa en databas. Följande information måste finnas med. För alla kor som han äger måsta han lagra namn, ett unikt id-nummer för kon, födelseår, ras och information om kons härstamning. För att kunna lagra härstamningen behöver han också lagra id-nummer, ras och föräldrar för hans kors förfäder, så långt tillbaka som information finns. Vid varje mål sparas information i databasen om exakt hur mycket hö och kraftfoder som varje ko fått. Om en ko blir sjuk lagras information om vilket datum det var, vilken sjukdom och vilken behandling kon fick. För kor i mjölkproduktion lagras mängd och kvalité på mjölken varje gång kon mjölkas. För kalvar lagras dess vikt för varje vecka. Hjälp Pettson att skapa en EER-modell för hans kossor. Var noga med att motivera och skriva ned alla antagande som du gör. Uppgift 2 (1 + 1 + 2 + 2 = 6p): SQL Givet följande relationsschema: Kund CID Å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 kunder yngre än 25 år och vars namn börjar med S. b) Vilka lån har inte fått någon betalning? c) Vilket lån har det största beloppet? Lista kundens namn och lånedetaljerna. d) Hur mycket är det kvar att betala för varje lån? (Du kan anta att alla lån har minst en betalning.) 2(5)
Uppgift 3 (4p): EER till relationsschema. Följande EER-diagram beskriver en frisörsalongs bokningar. Översätt EER-diagrammet till relationstabeller. För full poäng på uppgiften måste du motivera varför du valt att översätta diagrammet på det sätt du gjort för alla subklassrelationer och vanliga relationer. Markera primärnycklar med enkel understrykning, främmande nycklar med streckad understrykning och en pekare till det attribut som nyckeln refererar till. Datum Tid Kund 1 Bokar Bokning Med 1 Frisör Telefon r För M Behandling d Klippning Färgning Permanent 3(5)
Teoretisk del (18 poäng) Uppgift 4 (1 + 2 = 3p): ormalisering. Given universalrelation R={A, B, C, D, E, F} och mängden funktionella beroenden F={{C A}; {A BCD}; {CE F}} a) Vilka är kandidatnycklarna för R? Visa hur du kommer fram till din lösning (genom att använda inferensreglerna för funktionella beroenden). b) Dela upp R i relationer r i i BCF. Uppgift 5 (0.5 + 0.5 + 2 = 3p): Datastrukturer Antag att vi har en tabell med 500 000 poster. Varje post är 500 byte lång. Databasen använder blockstorleken B = 4 096 byte och posterna lagras non-spanning. a) Hur många block behövs för att lagra tabellen i exemplet? b) Antag att vi nu skapar en primärindex där varje indexpost tar upp 8 byte i minnesutrymme (4 byte för nyckeln och 4 byte för diskpekaren). Hur många block behövs för att lagra indexet? a) Hur många block måste access:as för att hitta en post givet nyckeln när man inte använder något index alls, när man använder en primärindex. 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 Uppgift 6 (1.5 + 2 + 0.5 = 4p): Transaktioner och samtidighetskontroll a) Förklara tvåsfaslåsning. Ge ett exempel. Varför används detta? b) Ge 4 anomalier som man vill undvika genom att ha samtidighetskontroll i ett databassystem där man tillåter flera samtidiga transaktioner. Ge ett exempel m.h.a ett tidsschema för varje anomali. c) Vad är svältning (starvation) i transaktionssammanhang? Uppgift 7 (2p): Information retrieval En modell för information retrieval beskrivs med hjälp av 4 komponenter. D: hur representeras dokumenten? Q: vilka frågor kan ställas och hur representeras frågorna? F: hur kopplar man ihop frågorna och dokumenten för att få svar på frågorna? R: gör man en rankning av svaren och i så fall, hur? Ange och ge exempel för D, Q, F och R för vektormodellen. 4(5)
Uppgift 8 (2 + 1 + 1 = 4p): Databasåterställning a) Beskriv metoden för återställning med omedelbar uppdatering (eng. recovery with immediate 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.) b) Visa alla steg som görs vid återställningen av databasen. c) Ger användningen av kontrollpunkter (checkpoints) någon fördel i metoden för återställning med omedelbar uppdatering? Förklara. Part of system log: Start-transaction T1 Write-item T1, A, 10 Start-transaction T2 Write-item T1, B, 10 Write-item T2, C, 10 Commit T1 Start-transaction T3 Start-transaction T4 Write-item T3, D, 20 Write-item T4, E, 5 Write-item T2, C, 30 Commit T2 system crash Uppgift 9 (2p): Ange 4 skillnader mellan ett schema för databaser och en data guide för semi-strukturerad data? 5(5)