TENTAMEN För kursen DATUM: 2014-11-07 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p, Max 40 p Inga Instruktioner: Skriv tydligt. Börja varje ny uppgift på ett nytt blad. Använd bara en sida av varje papper. Motivera dina svar väl. Om du anser att en fråga är svår att förstå eller felaktigt ställd, skriv ner din tolkning av frågan tillsammans med svaret. Skriv födelsedatum på varje blad som lämnas in. Lycka till! Cecilia, Anna & Patrick
ALLMÄNT 1. (3 p) Databaser har både fördelar och nackdelar, jämfört med den tidigare ansatsen med olika applikationsprogram som vart och ett definierar och hanterar sin egen data, s.k. filbaserade system. Välj ut den du anser vara mest betydelsefulla fördelen respektive nackdelen och beskriv dessa utförligt. Motivera också varför dessa fördelar och nackdelar är betydelsefulla och jämför mot situationen när filbaserade system används. 2. (3+3 p) a) Ge en beskrivning av ANSI/SPARC-modellen för databasarkitektur. Alla delar skall vara med och du skall ge en kortfattad (1-2 meningar) beskrivning av varje del. Ge också en kort redogörelse för hur delarna hänger ihop. b) Antag att vi har en viss databas som är i drift och som är designad utifrån ANSI/SPARC. För var och en av åtgärderna nedan, ange vilken eller vilka delar i ANSI/SPARC-modellen som påverkas. i) Införande av indexering i en relation ii) Skapande av en ny användare och en egen vy för denne iii) Denormalisering av en relation 3. (1 p) Ge exempel på en situation när en databasadministratör ger stöd till eller arbetar tillsammans med en applikationsprogrammerare. RELATIONSMODELLEN 4. (2+1 p) a) Vad är en primärnyckel och vilka krav ställs på den? b) Varför är det viktigt att primärnyckeln är en kandidatnyckel? 5. (1+1 p) a) Kan man ha två relationer i ett databasschema som har samma primärnyckel? Svara ett tydligt ja eller nej, samt förklara eller exemplifiera. b) Kan man ha en främmande nyckel i ett databasschema som innehåller NULL-värden? Svara ett tydligt ja eller nej, samt förklara eller exemplifiera. REALISERING 6. (3 p) Backup är en de mest grundläggande säkerhetsmekanismerna i databaser. Ge en detaljerad redogörelse för de verktyg och procedurer i DBMS som är inblandade i backup och återställande. 7. (2 p) Beskriv och diskutera ett etiskt problem som kan uppstå vid användning av databaser. Din diskussion skall innehålla en tydlig motivering av varför det kan anses vara ett problem, samt en redogörelse för två eller flera olika perspektiv på problemet, t.ex. systemägarens, användarnas eller allmänhetens perspektiv.
MODELLERING 8. (2 p) Ofta kan verkliga affärsregler (organisationella begränsningar) inte genomföras med hjälp av restriktioner (constraints), utan i stället används triggers. Vad är en trigger och beskriv vilka delar den består av? 9. (4+2p) Flygklubben Flygande tunnan behöver din hjälp med att skapa en databas för att bland annat hålla reda på flygplan, flygplansägare och piloter. Flygplanen är stationerade i ett mindre antal små hangarer som finns uppförda på ett gammalt nedlagt flygfält. För varje hangar skall följande uppgifter finnas: hangarnummer, kapacitet och placering. För varje flygplan vill man veta registreringsnummer, modellnummer, kapacitet och vikt. Varje flygplan förvaras i en hangar. Vilka som äger planen är också viktigt att ha grepp om. Ett plan ägs av en ägare och en ägare kan äga flera plan. För varje ägare vill man veta namn, adress och telefonnummer (mobil, hem, arbete...). Man vill också ha ordning på de piloter som anlitas, och vilka behörigheter piloterna har av att flyga olika flygplanstyper. Likaså vill man veta hur många flygtimmar en viss pilot har flugit ett visst plan. Uppgiften om flygtimmar vill man sedan automatiskt kunna summera för varje pilot. Dessutom vill man för varje pilot veta lön och flyglicensnummer med giltighetstid. En av piloterna är chefspilot och basar över de andra piloterna. a) Skapa en konceptuell datamodell med attributlista utifrån beskrivningen ovan. Ni får själva fylla i med fler attribut än de som nämns ovan om det behövs. b) Skapa, baserat på den konceptuella datamodellen i uppgift a), en logisk datamodell med attributlista. Ni behöver inte skriva modellen som relationsschema, utan UMLdiagram räcker. Främmande nycklar skall inte markeras och ni skall inte heller normalisera modellen. NORMALISERING Ange i dina lösningar om du utgår från Codds definitioner av normalformerna, eller Connolly & Beggs förenklade definitioner. 10. (2 p) Det finns två olika varianter på åtgärder för att hantera brott mot 1NF som innebär att det finns flera värden i en cell. Beskriv de två åtgärderna i ord och utför dem på nedanstående tabell, naturligtvis i två skilda svar, så att tabellen uppfyller 1NF. Ni kan anta att boktitlar är unika i den ursprungliga tabellen. boktitel författare ämne Database Systems Thomas Connolly, Carolyn Begg Databaser Database Solutions Carolyn Begg, Thomas Connolly Databaser A First Course in Database Systems Jeffrey D. Ullman, Jennifer Widom Databaser Introduction to Database Systems C.J. Date Databaser
11. (1+3 p) Betrakta relationen R, som innehåller uppgifter om kampanjer på varor. R = (kampanjnr, veckonr, artnr, artnamn, ordpris, kpris, säsong) Följande funktionella beroenden, och inga andra, gäller i relationen: fd1. kampanjnr, artnr veckonr, kpris fd2. artnr artnamn, ordpris fd3. veckonr säsong Utgå från de funktionella beroendena ovan (och inga andra) och normalisera relationen R genom att utföra följande uppgifter: a) Vilken/vilka kandidatnycklar finns i R? b) Normalisera stegvis relationen till BCNF. För varje normalform som ej uppfylls, ange vilket eller vilka beroenden som strider mot normalformen och vilka åtgärder som vidtas i form av nya relationer och förändringar i existerande relationer. SQL Nedan visas databasschemat för ett schemaläggningssystem för kurser på en högskola. Högskolans Kurser har ett antal Kursdeltagare som består två typer av Deltagare. Dessa två Deltagartyper är; student och lärare. Föreläsningarna ges i högskolans Lokaler enligt de Scheman som lagts upp av högskolans personal. I nedanstående databasschema står PK för Primary Key (primärnyckel), FK för Foreign Key (främmande nyckel) samt pfk indikerar att en kolumn är både en primärnyckel och en främmande nyckel, där pilarna i schemat går från tabellen som innehåller den främmande nyckeln, och till tabellen som innehåller primärnyckeln som den främmande nycklen refererar till (observera att Scheman.LärarID refererar till Deltagare.DeltagarID). En kolumn markerad med en asterisk (*) indikerar att kolumnen inte accepterar NULL. Använd databasschemat för att besvara nedanstående frågor.
12. (2 p) Skriv en SQL sats som returnerar de scheman för vilka Scheman.Moment inte är lika med NULL och för vilka det inte finns några Kursdeltagare. Visa samtliga kolumner från Scheman i resultatet. Sortera på KursID stigande, efterföljt av Starttid fallande. 13. (2 p) Skriv en SQL sats som returnerar antalet deltagare per kurs där kolumnen Deltagartyper.Deltagartyp = 'Student' eller där strängen 'sson' finns någonstans i kolumnen Deltagare.Efternamn. Kolumnen Kurser.Kursnamn och antalet deltagare per kurs, uttryckt som [Antal Deltagare], skall visas i resultatet. Dessutom skall endast kurser med minst 3 deltagare visas i resultatet. Inga delfrågor får användas! 14. (2 p) Skriv en SQL sats som skapar tabellen Scheman enligt databasschemat. Skriv därefter en ALTER TABLE sats som lägger till villkoret att Starttid ska vara mindre än Sluttid.