Tentamen för DD1370 Databasteknik och informationssystem

Relevanta dokument
Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Del 2: ER-modellering och överföring till Databasstruktur v0.9

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

11/11/13. Databasteknik och informationssystem DD1370. Dagens föreläsning. Dagens föreläsning: ERmodeller Jmf: Relationer i Base

16/12/14. Databasteknik och informationssystem DD1370. Dagens föreläsning (den sista!) Motivera med kokbok! Idag: Inga knappar L. Dagens föreläsning

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

16/11/14. Databasteknik och informationssystem DD1370. Information. Dagens föreläsning: ERmodeller Dagens föreläsning. Påminnelse: Kursens mål

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Introduktion till frågespråket SQL (v0.91)

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

ER-Diagram. Databasutveckling Diagram

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

07/11/14. Databasteknik och informationssystem DD1370 F2. Allmänna frågor. Är Lab0 svårbegriplig? Nu: Clickers. Är Kurswebben svårbegriplig?

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

Tentamen för 1E1601. Måndag 10 mars 2003, kl Alla hjälpmedel tillåtna

Tentamen i Databasteknik

04/11/14. Välkomna till kursen: Databasteknik och informationssystem DD1370. Kursanvarig. Dagens föreläsning. Vad är en Databas?

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Databaser och Datamodellering Foreläsning IV

Databasdesign. E-R-modellen

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Exempel-Tentamen III

Föreläsning 4 Dagens föreläsning går igenom

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

Databaser. Vad du ska lära dig: Ordlista

Tentamen i Databasteknik

Lösningsförslag till tentamen för DD1370 Databasteknik och informationssystem

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Webbprogrammering, grundkurs 725G54

Relationsmodellen och syntetisk databasdesign

Tentamen i Datorteknik och - kommunikation, 2D1522/4K1522. Läs detta innan du börjar:

Introduktion till MySQL

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

TENTAMEN DATABASKUNSKAP ITEK12

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Tentamen i. Databasteknik

Datalager och datautvinning

Föreläsning 3 Dagens föreläsning går igenom

Laborationer - databaser, EDAA20 Programmering och databaser

Idag. Exempel. Exempel modellen (1) Exempel...

Konceptuella datamodeller

Relationsdatabasdesign

Lösningsförslag till Tentamen,

Informationssystem och Databasteknik

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Karlstads Universitet, Datavetenskap 1

Structured query language (SQL)

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Vinjett 1: Relationsdatabas för effektivaste vägen

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Databaser design och programmering. Design processen ER- modellering

Webprogrammering och databaser. Begrepps-modellering. Exempel: universitetsstudier Kravspec. ER-modellen. Exempel: kravspec forts:

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Laboration SQL. Kom igång.

UPPGIFT 1 V75 FIGUR 1.

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Tentamen i Databasteknik

Lösningsförslag Tentamen, 25 april 03

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Databasteknik för D1, SDU1 m fl

Föreläsning 3.1: Datastrukturer, en översikt

Databasteknik för D1, SDU1 m fl

Informationssystem och databasteknik

Datalogi, grundkurs 1

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

TDDA94 LINGVISTIK, 3 poäng tisdag 19 december 2000

Tentamen. TDDB38 - Databasteknik

Datalogi, grundkurs 1

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Karlstads Universitet, Datavetenskap 1

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Transkript:

Tentamen för DD1370 Databasteknik och informationssystem 13 Mars 2014 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje blad. Skriv namn och personnr på varje blad. Uppgifterna kommer inte i svårighetsordning. Skriv tydligt, motivera svaren endast begriplig och läsbar lösning ger poäng. Maximal poäng finns angiven inom parentes vid varje uppgift. Totalt ger tentamen en poäng (max 65), som sedan läggs ihop med era bonuspoäng. En summa på 40 ger säkert godkänt. (lösningsförslag kommer på kurswebben) Lycka till, Petter

1. (Totalt: 16p) a) (2p) Förklara kopplingen mellan en vy (view), och härledda attribut. En vy är påminner om en tabell, men har inga egna data. Istället beräknas vyn från data i andra tabeller genom en sql-fråga som uppdateras varje gång data uppdateras. Ett härlett attribut är ett attribut som beräknas utifrån andra data. Således kan en vy med fördel användas för att beräkna ett härlett attribut. b) (2p) Förklara skillnaden mellan group by, sort by, och order by? group by är ett SQL-uttryck som används för att gruppera data för aggregerade funktioner så som sum eller avg. sort by är inte ett SQL-uttryck. order by är ett SQL-uttryck för att sortera en tabell. c) (3p) Vad är en svag entitetstyp? Förklara nyttan, ge exempel och visa/beskriv hur de ritas i ER-diagram. En svag entitet är en entitet som är beroende av en annan entitet. T.ex. kan de olika rummen i en lägenhet sägas vara beroende av själva lägenheten. yttan är att man då tvingas ta bort rummen, om man tar bort lägenheten. Svaga entiteter ritas med dubbelstreck-fyrkant. Se även boken s.37. d) (2p) Förklara förkortningarna, och beskriv skillnaden mellan OLAP och OLTP och ge exempel på användning. OLAP - On Line Analytical Processing. OLTP - On Line Transaction Processing. OLAP används för beslutsstödssystem, mycket data som ändras sällan, komplexa frågor som skapas efter hand. Ex: aktiekurser eller fastighetspriser. OLTP används för driftdatabaser, data ändras ofta, återkommande frågor. Ex: varulager, kund- och order-hantering. e) (2p) Vad är en objektifiering av ett samband? Förklara, ge ett exempel, och rita ett ER-diagram hur det ser ut före och efter objektifieringen. Person Har sett Film Person Var med Biobesök Tittades på Film Biograf Figur 1: Överst ett vanligt samband. ederst ett exempel hur det kan se ut då sambandet objektifieras. 1 av 7

Se figur 1. Genom att objektifiera sambandet har sett till entiteten Biobesök kan vi t.ex. lagra flera olika tillfällen då samma person har sett samma film. f) (5p) Antag att tabellerna X och Y är givna enligt nedan. Rita tabellen man får som resultat av SELECT * FROM X,Y. amn ummer amn ummer X= Kalle 2 Y= Adam 2 Lisa 5 Anna 4 Resultatet blir följande amn ummer amn ummer Kalle 2 Adam 2 Kalle 2 Anna 4 Lisa 5 Adam 2 Lisa 5 Anna 4 otera att antalet kolumner är 2+2, dvs 4, och antalet rader är 2*2, dvs 4. 2. (Totalt: 10p) En hästuppfödare/tränare i travbranchen använder en databas för att administrera sin verksamhet. Databasen har följande struktur: Ägare(Pr, amn, ÄgarAdress) Travhäst(HästId, Födelseår, FarHästId, MorHästId, Ägare) Tävlar(HästId,KuskId,Tävlingsr,Anmäld, Placering, Prispengar) Kusk(KuskId, Knamn) Tävling(Tävlingsr, Tnamn, Datum) Email(Emailadress, Pnr) a) (5p) Rita upp en ER-modell som skulle resultera i ovanstående Databasstruktur. Motivera varje steg genom angivande av vilka regler i kokboken som använts. Se figur 2. Steg 1 i kokboken (Varje vanlig entitetstyp blir en tabell, attribut blir kolumner) verkar ha tillämpats på Ägare, Travhäst, Kusk och Tävling. Gör vi dem till egna entiteter med attribut så får vi ungefär rätt databasstruktur för dessa fyra. Dock väntar vi lite med FarHästId, MorHästId och Ägare, vilka kanske är resultat av samband. Steg 2 i kokboken (Varje 1:-samband blir referensattribut i många -sidans tabell) verkar ha tillämpats på FarHästId, MorHästId och Ägare under Travhäst. Tävlar ser ut som resultatet av steg 5 (Varje flervägssamband blir en egen tabell, med sammansatt primärnyckel bestående av primärnycklarna från de ingående tabellerna). Email ser ut som resultatet av steg 9 (Varje flervärt attribut blir en egen tabell. Primärnyckeln består av entitetstypens primärnyckel, kombinerad med det flervärda attributet.) 2 av 7

Tillämpar vi reglerna i kokboken på ER-modellen i figur 2 kommer nr 1,2, 5 och 9 ge den givna databasstrukturen. De övriga reglerna resulterar inte i några förändringar av databasstrukturen. (Detta är en minimal förklaring. Det viktiga är att ni anger vilka regler som tillämpas och vad de leder till, samt vilka regler som inte leder till någon åtgärd. Det går även utmärkt att gå igenom reglerna lite mer strukturerat). HästId Födelseår Pnr amn Email Travhäst Äger 1 Ägare ÄgarAdress 1 1 Är far till Är mor till Anmäld Tävlar Placering Prispengar Intjänade pengar Kusk Tävling Datum Knamn KuskId Tävlingsr Tnamn Figur 2: En ER-modell som skulle ge upphov till den givna databasstrukturen. otera att Intjänade pengar tillkommer i deluppgift c b) (3p) Ange för varje attribut i Databasstrukturen vilken datatyp som passar. Motivera dina svar. Varchar (text): amn, ÄgarAdress, Knamn, Tnamn, Emailadress, Pr Integer (heltal): HästId, Födelseår, FarHästId, MorHästId, KuskId, Tävlingsr, Placering Float (flyttal): Prispengar Date: Datum Boolean (sant/falskt): Anmäld Man får även poäng om man har valt Prispengar som Integer och/eller Pnr som Integer. otera dock att vissa system kan ha problem med att hantera heltal som är 10 siffror långa. c) (2p) Hur skulle ER-modell och databasstruktur ändras om man lade till ett härlett attribut Intjänade pengar till Kuskarna? I figuren skulle vi få en ny sträckad oval som det står Intjänade pengar i, med enkelstreck till Kusk-entiteten, se figur 2. Databasstrukturen ändras inte eftersom de härledda attributen inte innehåller någon egen data. Istället kan man lägga till en vy för att beräkna det härledda attributet. 3 av 7

3. (Totalt: 24p) Givet samma databasstruktur som i frågan ovan, dvs Ägare(Pr, amn, ÄgarAdress) Travhäst(HästId, Födelseår, FarHästId, MorHästId, Ägare) Tävlar(HästId,KuskId,Tävlingsr,Anmäld, Placering, Prispengar) Kusk(KuskId, Knamn) Tävling(Tävlingsr, Tnamn, Datum) Email(Emailadress, Pnr) Skriv SQL-frågor som löser följande uppgifter. a) (1p) Lista alla Tävlingar (namn) som genomförs under Juni 2014. SELECT "Tnamn" FROM "Tävling" WHERE "Datum" <= 2014-06-30 AD "Datum" >= 2014-06-01 b) (2p) Lista alla hästar (HästId) som saknar både mor och far i databasen. SELECT "HästId" FROM "Travhäst" WHERE "FarHästId" IS ULL AD "MorHästId" IS ULL c) (2p) Skapa en sorterad tabell över hästarna i fallande ordning efter hur många andra hästar de är mor till. Låt de två kolumnerna i listan vara MorHästId och Antal barn. SELECT "MorHästId", COUT( * ) AS "Antal barn" FROM "Travhäst" GROUP BY "MorHästId" ORDER BY "Antal barn" d) (1p) Lista namn på Tävlingar vars namn innehåller antingen mästerskap eller cup. SELECT Tnamn FROM Tävling WHERE Tnamn LIKE %cup% OR Tnamn LIKE %mästerskap% e) (1p) Ta fram Tävlingsr för Elitloppet. SELECT "Tävlingsr" FROM "Tävling" WHERE "Tnamn" = Elitloppet f) (3p) Ta fram KuskId och placering på alla kuskar som deltog i Elitloppet. 4 av 7

SELECT "KuskId", "Placering" FROM "Tävlar" WHERE "Tävlingsr" I ( SELECT "Tävlingsr" FROM "Tävling" WHERE "Tnamn" = Elitloppet ) g) (5p) Ta fram namn och placering på alla kuskar som deltog i Elitloppet. Lös uppgiften genom att använda JOI på minst ett ställe. SELECT "Knamn", "Placering" FROM "Tävlar" JOI "Kusk" O "Tävlar"."KuskId" = "Kusk"."KuskId" WHERE "Tävlingsr" I (SELECT "Tävlingsr" FROM "Tävling" WHERE "Tnamn" = Elitloppet ) h) (3p) Ta fram namn och placering på alla kuskar som deltog i Elitloppet. Lös uppgiften helt utan att använda JOI. SELECT "Knamn", "Placering" FROM "Tävlar", "Kusk" WHERE "Tävlar"."KuskId" = "Kusk"."KuskId" AD "Tävlingsr" I (SELECT "Tävlingsr" FROM "Tävling" WHERE "Tnamn" = Elitloppet ) i) (1p) Lista namn och Pnr på de ägare som har en adress som slutar på 1, byt namn på namnkolumnen till Ettagluttare. SELECT "amn" AS "Ettagluttare", "Pnr" FROM "Ägare" WHERE "ÄgarAdress" LIKE %1 j) (2p) Skapa en lista på alla Hästar (HästId), sorterad med avseende på hur mycket prispengar hästen dragit in. SELECT "HästId", SUM( "Prispengar" ) AS "Inkomst" FROM "Tävlar" GROUP BY "HästId" ORDER BY "Inkomst" k) (3p) Skapa en lista på alla Hästar (HästId), sorterad med avseende på antalet tävlingar repektive häst har deltagit i under 2014. SELECT "HästId", COUT( * ) AS "Tävlingar2014" FROM "Tävlar" WHERE "Tävlingsr" I 5 av 7

( SELECT "Tävlingsr" FROM "Tävling" WHERE "Datum" <= 2014-12-31 AD "Datum" >= 2014-01-01 ) GROUP BY "HästId" ORDER BY "Tävlingar2014" 4. (Totalt: 15p) Betrakta Skärmdumpen från Open Office Base i figur 3. Figur 3: En grafisk beskrivning av en databas i Base. a) (2p) Det finns en liten otydlig symbol framför bl.a. orden StugId, Veckor och Kundr i bilden. Vad betyder denna symbol? Gör det något om man tar bort den? Symbolerna skall föreställa nycklar. De sitter framför de kolumner i tabellerna som tillsammans utgör primärnyckel, och måste fyllas i. Varje rad i tabellen måste sedan ha ett unikt värde i denna kolumn (dessa kolumner tillsammans). b) (2p) Det finns fyra stora rutor i figuren, Stuga, Kontrakt, Vecka och Kund. Vad symboliserar dessa? Rutorna är namn på tabeller i databasen. c) (2p) Det finns tre streck mellan de rutorna. Vad symboliserar dessa? Strecken symboliserar att nyckelattributen i Kontrakt är kopplade till nyckelattributen i de tre entiteterna på så sätt att om man lägger till en ny rad i Kontrakt, så måste de nyckelattribut man fyller i redan finnas i de andra tabellerna. Det går alltså inte att lägga till ett kontrakt på en stuga som inte finns i tabellen Stuga, eller med en Kund som inte finns i tabellen Kund. 6 av 7

d) (2p) Antag att man tänker köra ett antal SQL-frågor. Vad förändras om man tar bort strecken och sedan kör frågorna, jämfört med om man inte tagit bort strecken? SQL-frågorna påverkas inte alls av strecken. De funkar precis som vanligt oavsett om man tar bort, eller har kvar strecken. e) (2p) Antag att man tänker lägga till data i databasen. Vad förändras om man tar bort strecken och sedan lägger till sitt data, jämfört med om man inte tagit bort strecken? Om strecken är borta kan inte Base hjälpa till och kolla att den nya datan är korrekt. Som beskrivs ovan så går det utan strecken t.ex. att lägga till nya kontrakt på stugor som inte finns i databasen. f) (3p) Rita upp en ER-modell som motsvarar databasen i figur 3. Se figur 4. StugId Postr StugAdress Stuga Kontrakt Vecka Kund Veckor StartDatum SlutDatum Kundr Adress Figur 4: En ER-modell som svarar mot figur 3. g) (2p) Ta fram databasstrukturen som svarar mot figur 3. Antingen kan man gå via ER-modellen i uppgift 4f. Eller så kan man helt enkelt skriva ned de tabeller som står i de vita rutorna. Svaret blir Stuga(StugId, StugAdress, Postr) Kontrakt(StugId,Veckor,Kundr) Vecka(Veckor,StartDatum,SlutDatum) Kund(Kundr, Adress) 7 av 7