Tentamen. TDDB38 - Databasteknik

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

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

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

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

Tentamen i Databasteknik

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

An English version of the questions is found at the back of each page.

Databasteknik för D1, SDU1 m fl

Databasteknik för D1, SDU1 m fl

Lösningsförslag, tentamen i Databaser

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

Tentamen för DD1370 Databasteknik och informationssystem

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

TDDI60 Tekniska databaser

TENTAMEN DATABASKUNSKAP ITEK12

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

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen i. Databasteknik

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

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

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

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

Tentamen för DD1370 Databasteknik och informationssystem

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

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

Tentamen för DD1370 Databasteknik och informationssystem

Exempel-Tentamen III

Starta MySQL Query Browser

Structured query language (SQL)

Tentamen i Databasteknik

Fiktiv tentamen för DD1370 Databasteknik och informationssystem

TENTAMEN TDDB77 Databaser och Bioinformatik 17 mars 2005, kl 8-12

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Lösningsförslag till Exempel tentamen

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen DATABASTEKNIK - 1DL116

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Databashantering och Beslutsstöd

1.Lär känna MS SQL Observera. Tips. Förberedelse

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

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

732G16: Databaser - Design och programmering

Lösningar till tentamen i EDAF75

TDDI 60 Tekniska databaser

Karlstads Universitet, Datavetenskap 1

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

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Sample exam questions. Database exam TIG058

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

Tentamen i Databasteknik

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Dagens föreläsning. KTH & SU, CSC Databasteknik Föreläsning 10 sid 1

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Databaser. Vad du ska lära dig: Ordlista

Databaser - Design och programmering

Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Dokumentation för VLDIT AB. Online classroom

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

Design och underhåll av databaser

Laborationer - databaser, EDAA20 Programmering och databaser

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

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

Tentamen Databasteknik

Analytisk relationsdatabasdesign

Vad du skall komma ihåg från tidigare föreläsningar. Dagens föreläsning. Evaluering av frågor. Data dictionary

Relationell databasdesign

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

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

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Tentamen plus lösningsförslag

DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:

Databaser design och programmering. Design processen ER- modellering

Relationsmodellen och syntetisk databasdesign

Reducering till relationsscheman

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Transkript:

Tekniska Högskolan i Linköping, Institutionen för datavetenskap Almut Herzog / Olof Johansson / Patrick Lambrix / Cecile Åberg Tentamen TDDB38 - Databasteknik (Svensk version) Datum: Fredag 12:e januari 2001 Tid: 14:00-18:00 Jourhavande lärare: Olof Johansson, teoretiska delen, tel. 28 2390 Cécile Åberg, praktiska delen, tel 28 8986 Instruktioner Tentamen är indelad i två delar: en praktisk och en teoretisk" del. Den praktiska delen handlar om EER, ER, relationsscheman, mappning av EER till relationsscheman och SQL. Den teoretiska delen behandlar resten av kursen. Du måste klara båda delarna för att bli godkänd på tentamen, dvs för godkant krävs 8 poäng för den praktiska delen och 13 poäng för den teoretiska delen. Läs igenom hela examen och notera eventuella oklarheter innan du börjar lösa uppgifterna. Förutom instruktionerna på försättsbladen gäller följande: Skriv tydligt och klart. Lösningar som inte går att läsa kan naturligtvis inte ge några poäng, och oklara formuleringar kommer att misstolkas. Antaganden utöver de som står i uppgifterna måste anges. Gjorda antaganden får förstås inte förändra den givna uppgiften. Skriv endast på ena sidan av pappret, och max en uppgift per sida. Använd ej röd penna. Hjälpmedel: Lexikon LYCKA TILL! 1

Praktisk del(16 poäng) 1) Rita ett EER-diagram för musikskolans nya databas. (6 poäng) Skolan ger grupplektioner samt individuella lektioner. För varje lektion vill skolan lagra: Lektionsdatum (dag och tid). Lektionslängden (antal timmar). Lektionsämne (en sträng). Läraren (precis en). Rummet. Dessutom: för en grupplektion: Lektionsnivån (antal år av praktik som studenten måste ha för att delta). Maximalt antal studenter som kan delta. Studenterna som är registrerade för lektionen. för en individuell lektion: Studenten som deltar i lektionen. För varje lärare lagrar skolan: Lärarens namn. Personnummer. Lönen. Musikinstrument han/hon kan spela. (Han/hon kan spela mer än ett musikinstrument). Ämnena som han/hon kan undervisa i. Året som han/hon påbörjade sin anställning (anställningsår). För varje student lagrar skolan: Studentens namn. Födelsedatum. Musikinstrument han/hon kan spela. (Han/hon kan spela mer än ett musikinstrument). För varje musikinstrument som studenten kan spela ska hans/hennes nivån (antal år) också lagras. Obs: Tank på att vissa begränsningar kan inte realiseras i ett EER-diagram. 2

2) Översätt diagrammet nedan till ett schema i BCNF. (4 poäng) Stryk under attributen som är primärnycklar. Gör en streckad understryckning av attributen som är främmande nycklar och skriv referensen under. Till exempel: TABLE1 Attribute1 Attribute2 TABLE2 Attribute3 Attribute4 Table1(Attribute1) num brand Vehicle color flying altitude Car Plane n has-an engine number m has-engines n 1 Engine num category strength 3

3) Formulera några SQL frågor. (6 poäng) Följande tre tabeller är en del av scheman för en databas för en klädbutik. Attributen som är primärnycklar är understrykna. Tabellen Anställd: nummer namn lön anställningsdatum 1 John 100000 10/10/1999 2 Nikki 120000 01/03/1997 Tabellen Plagg: nummer namn leverantör antal i lager antal sålda 100 jeans Levis 25 20 101 sommarklänning Kookai 15 6 Tabellen Plagg-Anställd: Knummer Anummer antal 100 2 5 101 2 3 Anummer = främmande nycklar för Anställd(nummer) Knummer = främmande nycklar för Klädesplagg(nummer) Tabellen Plagg-Anställd anger hur många plagg av en viss sort en anställd har sålt. Den första raden ger tex informationen att anställd 2 (Nikk) sålde 5 (antal) klädesplagg med Knummer = 100 ( jeans från leverantör Levis ). 4

Övning: Skriv SQL frågor för a), b) och c). Skapa gärna vyer om du tycker det är användbart. a) Vilka klädesplagg (namn och leverantör) har Nikki sålt? b) Hur många klädesplagg har varje anställd sålt? Varje rad av resultatet ska innehålla numret och namnet av den anställde samt det totala antalet klädesplagg som han eller hon har sålt. (Tips: en anställd kan sälja olika klädesplagg). c) För varje klädesplagg levererat av leverantör Kookai, vill vi veta - Klädesplaggets namn. - Antal sålda klädesplagg (hur många som har sålts totalt). - Antal anställda som har sålt detta plagg. 5

Teoretisk del (26 poäng) 4) Vilka problem kan man få om man använder en onormaliserad databas? (4p) (Namn på problemet 0,5p, korrekt beskrivning 0,5p) 5) Specificera de funktionella beroendena för följande tabell. (2p) SUPPLIER_INFO(SUPP_NAME,ITEM_NAME,SUPP_ADDRESS,ITEM_PRICE) 6) Datastrukturfråga (6p). 6a) Antag att du använder en hashtabell (eng. hash table) med 7 hinkar (eng. buckets) för intern hashing av poster (eng. records) med fält (eng. field) NAME (char(10)), PNUM (int) och JOBCODE (char(4)). Du använder hashfunktionen h. Antag att du vill lagra följande poster i hashtabellen: post 1: NAME=John, PNUM=1234, JOBCODE=mang, h(post 1) = 4 post 2: NAME=Jeff, PNUM=1244, JOBCODE=cemp, h(post 2) = 4 (i) Förklara hur öppen adressering (eng. open adressing) fungerar och visa hur man lagrar post 1 och post 2 med denna strategi. Rita den resulterande hashtabellen. (ii) Förklara hur en kedja (eng. chaining) fungerar och visa hur man lagrar post 1 och post 2 med denna strategi. Rita den resulterande hashtabellen. 6b) Förklara vad ett sekundärindex (eng. secondary index) är och visa hur man kan skapa ett sådant index för en fil av poster med fält NAME (char(10)), PNUM (int) och JOBCODE (char(4)). Du bestämmer själv vilket fält är nyckelfältet och om och hur posterna är sorterade i filen. Skriv ner dina antaganden. 7) Beskriv önskade egenskaper för transaktioner. (2p) 8) Vad är syftet med tvåfas commit protokollet. Beskriv hur det fungerar. (3p) 9a) Namnge upp till fyra mjukvarustandardiseringsorganisationer, och ge exempel på standarder de tagit fram. (2p) 9b)Förklara med några få meningar varför standarder är så viktiga för mjukvaruindustrin. (1p) 10) Det stora mjukvaruföretaget där du arbetar har fått en ny VD som vill belöna de mest samarbetsvilliga kunderna med en 50 procentig rabatt på uppgraderingar till nya mjukvarureleaser. Företaget har ett felrapporteringssystem med tabeller enligt följande SQL-schema : create table product ( p_id INTEGER NOT NULL, p_name VARCHAR(20), CONSTRAINT p_pk PRIMARY KEY (p_id) ); -- Contains about 100 tuples 6

create table customer ( c_id INTEGER NOT NULL, c_name VARCHAR(20), CONSTRAINT c_pk PRIMARY KEY (c_id) ); -- Contains about 10000 tuples create table bugreport ( b_id INTEGER NOT NULL, b_heading VARCHAR(20), b_date TIMESTAMP, b_customer_id INTEGER NOT NULL, b_problem_description VARCHAR(2000), b_product_id INTEGER NOT NULL, CONSTRAINT b_pk PRIMARY KEY (b_id) ); -- Contains about 200000 tuples Din chef, som vill ha en god relation med VD, har skrivit följande SQL-fråga för att generera en rapport enligt VD:s önskemål. select p_name, c_name, count(*) as bugreport_count from product, customer, bugreport where p_id = b_product_id and c_id = b_customer_id and b_date > 20000101000000 group by p_name, c_name order by p_name, 1000-bugreport_count, c_name VD blev dock något ursinnig när svarstiden var längre än en minut. Nu har din chef bett dig hjälpa honom för att slippa få sparken. 10a) Rita ett heuristiskt optimerat frågeträd för SQL-frågan ovan (2p). 10b) Lägg till vilka index du önskar för att förbättra svarstiden, och skriv eventuellt om frågan med en vy. Skriv SQL-kommandona för detta (2p). 10c) Rita ett heuristiskt optimerat frågeträd för SQL-frågan med index mm som du lade till i 10b (2p). 7