LiTH, Tekniska högskolan vid Linköpings universitet 1(5) IDA, Institutionen för datavetenskap Juha Takkinen Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 Lokal T2 och U1. 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 Juha Takkinen, tel. 0731-50 03 93, som besöker tentamenslokalen kl. 15 och 17. Instruktioner Ge relevanta och motiverade svar på endast det som efterfrågas. Poängavdrag kan ges för svar som ej är direkta svar på frågan. Du kan svara på svenska eller engelska. Du måste även läsa instruktionerna på det allmänna tentamensomslaget innan du lämnar in dina svar. Lycka till!
2(5) Del 1: Praktik 1. EER-modellering (4 p. totalt): Politikerna i landet Homulien vill införa en databas. Den ska innehålla information om varje riksdagsmedlems namn, hemkommun och partitillhörighet, hur länge han eller hon har varit medlem i det aktuella partiet och när personen ifråga blev invald i riksda-gen. En riksdagsmedlem som har varit med i tre år eller mer räknas som senior, annars junior. Databasen ska också lagra varje ärende som man röstar om: ärendenamn, röstningsdatum, godkänt-eller-ej (med {JA, NEJ} som domän) och ansvarig riksdagsledamot som skrev förslaget som man röstar om. För varje medlem ska också registreras hur denne röstade i varje förslag som har lagts fram (domänen är {JA, NEJ, BLANK, FRÅNVARANDE}). Skapa en EER-modell för detta. Motivera val av entiter och relationstyper samt attribut, skriv ned alla antaganden och ange alla kardinaliteter. 2. Översättning till relationer (6 p. totalt): a. Översätt ovanstående EER-diagram över en bokklubbs verksamhet till relationer. Markera primärnycklar med heldragen understrykning och främmande nycklar med streckad understrykning i ditt schema; den refererade tabellen och attributet måste anges. Om du har valt att inte använda standardreglerna från kursboken för översättning så måste du motivera ditt val. För full poäng är det viktigt att du bevarar alla villkor som impliceras av EER-diagrammet. b. Ange ett annat sätt att översätta förhållandet Member, Gold och Regular än det du valde i a) ovan. Ge också en motivering för vilket av sätten som är bäst att välja i detta sammanhang och varför. c. Utöver böcker ska guldmedlemmar (och endast guldmedlemmar) kunna köpa bokhyllor (eng. Bookshelf), som har ett pris, id och en färg. Dessutom vill bokklubben lagra fakta om varje medlems favoritboktyper (eng. Topic), som t.ex. historia, thriller, biografi och deckare. Utöka diagrammet med denna nya information. Du behöver inte rita om hela diagrammet, utan ange hur dina nya entiteter m.m. är kopplade till diagrammet.
3(5) 3. SQL (5 p. totalt). Antag att följande schema är givet: Member Name Birthdate Phone Senior Activity Name Date Participant Member Foreign key referring to Member(Name) Activity Foreign key referring to Activity(Name) Skriv SQL-frågor för följande fall: a. Lista namn på alla aktiviteter där seniora medlemmar deltar (har true i fältet Senior). b. Lista för varje aktivitet dess namn och antal deltagare från riktnummerområde 011. c. Lista namnen på alla aktiviteter som hålls den 11 augusti 2008 där det ej finns minst en deltagare som är senior (har true i fältet Senior). 4. Normalisering (5 p. totalt): a. Konvertera tabellen nedan till en relation som är i 1NF. Döp relationen till R1. b. Lista de funktionella beroendena i R1 och bestäm en kandidatnyckel. c. I din nya relation R1, ge ett exempel på en insättningsanomali och en borttagningsanomali. d. Vilken normalform har R1 efter din undersökning i b) ovan? e. Konvertera R1 till 3NF (om det behövs). Visa och motivera varje eventuell uppdelning i nya relationer som du gör. Artikelnr Beskrivning Försäljare Adress Pris 1324 Vevparti Cykelkomponenter Cykel & Sport 5768 Framgaffel Cykelkomponenter Larssons Cykel Cykel & Sport Karlstad Stockholm Karlstad Borås Stockholm 5460 1750 690 2545 3950
4(5) Del 2: Teori 5. Relationsmodellen (3 p. totalt): Ange om respektive påstående nedan är sant eller falskt. Du ska inte motivera. Du får +0,5 p. för varje korrekt svar och 0,5 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. Ett primärattribut kan tillhöra en kandidatnyckel. b. Antag att relationen R(A, B, C, D, E, F) har kandidatnycklarna A och AB. Då är ACF och ABCDEF exempel på supernycklar. c. För att hämta värdet på ett attribut för alla tupler i en relation så ska en selectoperation användas i relationsalgebrans frågespråk. d. För valfri relation R gäller att R * R = R. e. Ordningen på attributen i en relation är inte viktig. f. Ordningen på tuplerna i en relation är inte viktig. 6. Index (6 p. totalt) a. Studera tabellerna i SQL-uppgiften ovan (uppgift 3). Antag att Participant-tabellen är sorterad efter namn och de övriga är osorterade. Databasdesignern vill skapa index för Name i Member-tabellen och Member i Participant-tabellen. Vilket index är lämpligt i respektive fall? För varje fall, gör en enkel skiss som förklarar hur indexet ska designas. (4 p.) b. Beräkna antal diskaccesser som behövs för dina båda index i a) ovan. Antag att det finns 10 000 medlemmar och att varje medlemspost är 90 byte stor. För Participanttabellen existerar 100 000 deltagare och varje post är 50 byte stor. Diskblockstorleken är 500 byte och posterna lagras obrutna (eng. unspanning). Indexfältet är i båda fallen 10 byte stort. 7. Transaktioner (7 p. totalt) a. Förklara tvåfaslåsning (eng. two-phase locking). Ge ett exempel. Varför används denna teknik? b. Ge exempel på fyra problem som skulle kunna uppstå om man tillät samtidiga transaktioner att exekvera på ett okontrollerat sätt och som motiverar att man inför samtidighetskontroll (eng. concurrency control) i ett databassystem. Ge ett exempel för varje problem. (4 p.) c. Vad menas med svältning (eng. starvation) i transaktionssammanhang? 8. Databasåterställning (4 p. totalt)
5(5) Givet följande transaktioner: T1 T2 T3 T4 (skulle ha velat fortsätta) checkpoint systemkrasch Tid a. Hur ser datafilen ut vid kraschen, d.v.s. vad kan du säga om vilken data som finns lagrad på hårddisken om uppskjuten (eng. deferred) uppdatering används? om omedelbar (eng. immediate) uppdatering används? För omedelbar uppdatering kan du välja valfri variant. b. Hur sker återställning (eng. recovery) för de olika transaktionerna i de fall som du har beskrivit i a) ovan?