TENTAMEN För kursen DATUM: 2014-08-20 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. (2+2 p) Vid införande av databassystem i organisationer som tidigare haft flera separata system för olika uppgifter eller verksamhetsdelar sker ett paradigmskifte, som har med förhållandet mellan data och applikationer att göra. a) Beskriv detta paradigmskifte i ord. b) Antag att vi har en säljande verksamhet med tre olika funktioner: 1) ta emot beställningar från kunder 2) lagerhållning och 3) fakturering. Illustrera skillnaden mellan de två ansatserna till design av informationssystem genom att schematiskt visa hur systemen ser ut före och efter införande av en databasbaserad lösning. 2. (2+2 p) En central del i ANSI/SPARC-modellen är dataoberoende. a) Definiera och beskriv de två typerna av dataoberoende som finns i ANSI/SPARC. Observera att du inte skall redogöra för hela modellen, utan endast det som har med dataoberoende att göra. b) Illustrera betydelsen av dataoberoende genom att välja ett konkret exempel på en databas och beskriva hur dataoberoendet underlättar underhåll och drift av databasen. Du skall beskriva två situationer, en för vardera typen av dataoberoende. 3. (2 p) a) Definiera begreppet vy och redogör för hur vyer förhåller sig till basrelationer. b) Vilka principer gäller för uppdatering av vyer? RELATIONSMODELLEN 4. (3 p) Betrakta följande relation, som innehåller uppgifter om studenter vid Högskolan i Borås: R=(persNr, login, förnamn, efternamn, gatuadress, postnr, ort, mobiltfn) a) Ange minst 3 supernycklar i relationen, som samtliga innehåller attributet login. b) Ange minst 2 kandidatnycklar till relationen. c) Ange vilken du anser vara den mest lämpliga primärnyckeln i relationen. Motivera ditt val! 5. (2 p) Vilka överväganden måste göras när domänen till ett attribut skall definieras? Ge en generell förklaring och illustrera med ett exempel.
REALISERING 6. (2 p) Vilka två typer av index finns det och vad är skillnaden mellan dem? 7. (3 p) Ett av de största hoten mot ett databassystem är att hårdvaran där data lagras fallerar, till exempel genom en hårddiskkrasch. Vilka åtgärder kan vidtas, dels för att skydda sig mot detta och dels för att garantera att ingen data förloras vid en krasch? Ge en utförlig redogörelse! MODELLERING 8. (2 p) Ange och beskriv de faser som ingår i databasdesignprocessen enligt Connolly och Begg. 9. (4+2p) Din uppgift är att skapa en databas för en nätauktionsplats (budet.net). Du ska representera ägare, kunder, varor som auktioneras ut och de bud som kommer in för en viss vara och sambanden mellan dessa. För ägare ska du registrera ägarid, mailadress och kontonummer. För de varor som ska auktioneras ska du registrera varunummer, kategori (bil, cykel, elektronik, musik, bok, heminredning, kläder eller annat), ägare, utgångspris och de bud som kommit in för just den varan. För dessa bud ska du registrera vilken vara budet gäller, budnummer (löpande nummer från 1 och uppåt), ankomsttid, kunden som gett budet och det erbjudna priset. För kunderna ska du registrera kundnummer, kundsignatur och kundens mailadress. 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. (1p) Ge ett exempel på en relation som uppfyller 2NF, men inte 3NF. 11. (1+4 p) Relationen R innehåller uppgifter om fjärilsobservationer i projektet Svensk Dagfjärilsövervakning. Projektet har ett antal frivilliga personer runt om i landet som regelbundet inventerar fjärilar i ett visst område. Uppgifterna rapporteras in och skall lagras i en databas för att ge underlag till forskning om fjärilarnas utbredning i Sverige. Den onormaliserade relationen R ser ut på följande sätt: R(platsId, platsnamn, datum, väderkod, rappid, rappnamn, artid, artnamn, antalm, antalf) platsid (t.ex. P171) identifierar unikt en inventeringsplats och platsnamn (t.ex. Östra bangården, Sveg) är benämningen på platsen. datum anger när en viss inventering gjordes och väderkod används för att ange hur vädret på platsen var vid observationstillfället. rappid är unikt för de frivilliga rapportörerna, vars namn såklart finns i rappnamn. En fjärilart definieras av ett artid (exv. A87) och artnamn är det svenska namnet (exv. Nässelfjäril). antalm och antalf, slutligen, anger hur många hanar respektive honor av arten som observerades. Följande funktionella beroenden, och inga andra, gäller i relationen: platsid platsnamn rappid rappnamn platsid rappid artid artnamn artid, platsid, datum antalm, antalf platsid, datum väderkod 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 enkelt hyrbilsbokningssystem, där en Kund kan boka ett Fordon från ett visst Uthyrningsställe och måste återlämna fordonet till samma uthyrningsställe. En Bokning har ett fråndatum och ett tilldatum vilka består av både datum och tid. Varje Fordon har en viss dagshyra. I schemat står PK för Primary Key (primärnyckel) samt FK för Foreign Key (främmande nyckel), där pilarna i schemat visar vilken tabell som
den främmande nyckeln refererar till. Ett kolumnnamn med fet stil i schemat indikerar att kolumnen inte accepterar NULL, annars accepterar kolumnen NULL. Använd databasschemat för att besvara nedanstående frågor. 12. (2 p) Skriv en SQL-sats som returnerar antalet bokningar per fordon. Endast de fordon som har bokats minst 2 gånger skall var med i listan. Visa Registreringsnummer samt antal bokningar per fordon, uttryckt som [Antal Bokningar], i resultatet. Sortera på Registreringsnummer i fallande ordning. 13. (2 p) Skriv en SQL-sats som listar vilka fordon som var uthyrda (bokade) någon gång mellan '2013-05-01 08:00' och '2013-05-31 20:00' (dvs. inte tillgängliga för uthyrning till andra kunder under perioden). Dessutom skall endast fordon som bokades från uthyrningsställen med en webbsida (dvs. där Webbsida inte är lika med NULL) finnas med i resultatet. Visa uthyrningsställets Namn, kundens Efternamn och Fornamn, Registreringsnummer, Modell, FranDatum samt TillDatum i resultatet. 14. (2 p) Skriv en SQL-sats som returnerar samtliga fordon som inte har några bokningar från kunder som bor på en ort som börjar på 'B'. Registreringsnummer och Modell skall finnas med i resultatet. Sortera på Registreringsnummer i stigande ordning. OBS! Frågan skall även visa de fordon för vilka det inte finns några bokningar i tabellen Bokning.