Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124

Relevanta dokument
Tentamen DATABASTEKNIK - 1DL116, 1MB025

Tentamen DATABASTEKNIK - 1DL116

Svar till tentamen DATABASTEKNIK - 1DL poäng

Database course summary

Tentamen DATABASE TECHNOLOGY - 1MB025

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Final Exam DATABASE TECHNOLOGY - 1DL300

Tentamen DATABASTEKNIK - 1DL116, 1MB025

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

Tentamen. TDDB38 - Databasteknik

Tentamen i Databasteknik

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

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

Karlstads Universitet, Datavetenskap 1

Tentamen i Databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

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

Tentamen för DD1370 Databasteknik och informationssystem

Databaser. Vad du ska lära dig: Ordlista

Structured query language (SQL)

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

Lösningsförslag, tentamen i Databaser

Databasteknik för D1, SDU1 m fl

Frågeoptimering. Frågeoptimering kapitel 14

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Databasdesign. E-R-modellen

Exempel-Tentamen III

Datalager och datautvinning

Relationell databasdesign

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

Lösningsförslag till Tentamen,

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen i Databasteknik

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

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

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

Tentamen DATABASTEKNIK - 1DL116

Lösningsförslag till Exempel tentamen

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

Tentamen för DD1370 Databasteknik och informationssystem

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

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

Konceptuella datamodeller

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

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

Classes och Interfaces, Objects och References, Initialization

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

Föreläsning 5: Relationsmodellen

Grunderna för relationsmodellen!

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

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

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

Lösningar till tentamen i EDAF75

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

TDDI60 Tekniska databaser

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

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

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

Databasteknik för D1, SDU1 m fl

TENTAMEN DATABASKUNSKAP ITEK12

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Sample exam questions. Database exam TIG058

Introduktion till Entity Framework och LINQ. Källa och läs mer

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

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

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

Klientprogrammering mot databaser

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Tentamen för DD1370 Databasteknik och informationssystem

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

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

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

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

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

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

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

NORMALISERING. Mahmud Al Hakim

Tentamen i. Databasteknik

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

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

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

Tentamen. Databasmetodik Lördag 27 september 2014 kl

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

Databaser och SQL - en kort introduktion

Introduktionsmöte Innehåll

(Data)Modellering. nikos dimitrakas rum 2423

Transkript:

Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn, Tore Risch Tentamen 2004-08-23 DATABASTEKNIK - 1DL116, 1MB025, 1DL124 Datum...Tisdagen den 23 Augusti, 2005 Tid...8:00-13:00 Jourhavande lärare...kjell Orsborn, tel. 471 11 54 eller 070 425 06 91 Hjälpmedel...miniräknare Anvisningar: Läs igenom hela skrivningen och notera eventuella oklarheter innan du börjar lösa uppgifterna. Förutom anvisningarna på skrivningsomslaget så 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 kan dessutom misstolkas. Antaganden utöver de som står i uppgiften måste anges. Gjorda antaganden får förstås inte förändra den givna uppgiften. Skriv endast på en sida av papperet och använd ett nytt papper för varje uppgift för att underlätta rättning och minska risken för missförstånd. För godkänt krävs det cirka 50% av maxpoäng. 1

1. Databasterminologi: 4 p Förklara följande databasbegrepp: (a) referensintegritet (eng. referential integrity) Referensintegritet kräver att om en tupel i en relation refererar till en annan relation så måste den referera till en existerande tupel. (b) entitetsintegritet (eng. entity integrity) Entitetsintegritet uttrycker att ingen primärnyckel får anta värdet NULL så att alla tupler i en relation kan identidieras unikt. (c) supernyckel (eng. super key) En supernyckel är varje delmängd av en relations attribut som unikt kan identifiera alla tupler i relationen (notera att det normalt finns fler än en supernyckel för samma relation). (d) naturlig join (eng. natural join) En naturlig join är en sammansättningsoperation mellan två relationer (tabeller) där villkoret för att kombinationen av två tupler (en från varje relation) skall ingå i den resulterande och sammansatta relationen är ett likhetsvillkor mellan ett/flera attribut. De attribut från den högra relationen som deltar i likhetsvillkoret ingår ej i den resulterande tabellen, dvs redundanta attribut elemineras. 2. Datamodeller: 4 p I utvidgad entititets-relationsmodellering (eng. enhanced entitity-relationship, EER, modeling), stöds gruppering av entiteter i olika grad. Förklara vilken information de två följande mekanismerna representerar och hur de kan representeras i EER: (a) generalisering (eng. generalization) (2p) Generalisering är processen att specificera en superklass utifrån ett antal subklasser där man finner ett antal gemensamma egenskaper som kan extraheras och defineras att utgöra egenskaperna i en gemensam superklass. Dessa egenskaper ärvs sedan till subklasserna. (b) aggregering (eng. aggregation) (2p) Aggregation is an abstraction concept to group entities into composite objects from their components. In three cases can aggregation be related to the EER model. The 1st case is an aggregation of attribute values of an object to form the whole object. The 2nd case is the representation of an aggregation relationship using an ordinary relationship. The 3rd case is not explicitly supported in EER but involve the possibility to combine related objects using a particular relationship instance into a higher-level aggregate object. 3. SQL: 4 p Anta att vi har en databas för byggsatser med två relationer (tabeller) med följande scheman: BYGGSATS(BID, BNAMN) DEL(DID, DNAMN, PRIS, FÄRG, BGID), där xid s representerar nycklar. 2

(a) Formulera en fråga i relationsalgebra som återfinner byggsatsens id och namn samt delens id, namn och pris för byggsatsen Starship Enterprise. (2p) (b) Formulera en SQL fråga som återfinner id, namn, och antal delar för varje byggsats (alltså hur många delar som varje byggsats består av). (2p) π <BID,BNAMN,DID,DNAME,F ARG> (σ BNAME= StarshipEnterprise (BY GGSAT SX <P ID=BGID>DEL)) SELECT B.BID,B.BNAMN, COUNT(*) AS ANTAL_DELAR FROM BYGGSATS B, DEL D WHERE B.BID = D.DID GROUP BY BID,BNAME 4. Fysisk databasdesign: 4 p Beskriv kortfattat organisationen av och funktionen för hash-filer (svaret skall bland annat innefatta hur man återfinner (söker) en datapost för en specifik söknyckel där datafilen är en hash-fil ) En hash-fil består av ett statiskt eller dynamiskt antal datablock som hanteras av olika typer av hashningstekniker. Hash-filer hanterar adressering av dataposter till datablock genom att applicera en hash-funktion till hash-fältet (dvs sökfältet) vilken returnerar adressen till ett datablock för insättning eller återsökning av dataposten. En vanlig form av hashfunktion har formen h(f(p)) = f(p) mod M, där hash-funktionen h(f(p)) tillhandahåller addressen för det datablock där dataposten p skall lagras genom att beräkna hashfältet f(p) modulo (mod) antalet datablock M. Man hittar alltså var (i vilket block) en datapost finns för en specifik söknyckel genom att beräkna hash-funktionen för nyckeln som ger adressen till blocket. 5. Samtidighetskontroll (eng. concurrency control): 4p Beskriv principerna för låshanteringen i samband med transaktioner för ett tvåfas låsningsprotokoll (eng. two-phase locking protocol). En transaktion sägs följa ett två-fas låsningsprotokoll om alla låsningsoperationer föregår den första upplåsningsoperationen (unlock) i transaktionen. Alltså en sådan transaktion genomgår en expanderande fas där nya lås kan utfärdas men inga lås kan släppas; och en krympande fas där existerande lås kan låsas upp men inga nya lås kan erhållas. Två-fas låsningsprotokoll garanterar serialiserbara transaktionsscheman. 6. Databasapplikationsgränssnitt: 4 p (a) Vad är JDBC? (1 p) JDBC = Java DataBase Connectivity är ett standardgränssnitt mellan programmeringsspråket Java och en eller flera samtidigt tillgängliga SQL-baserade relationella databaser. 3

(b) Vad är skillnaden mellan JDBC och ODBC? (1 p) ODBC = Open DataBase Connectivity är ett programmeringsspråksoch plattformsoberoende gränssnitt till SQL-baserade relationella databaser. (c) Vad står O för i ODBC? (1 p) O står för open och syftar på programmeringsspråksoberoende och operativsystemoberoende. (d) På vilket sätt tillåter JDBC frågor som returnerar mycket stora datamängder? (1 p) JDBC hanterar frågeresultat som resultatströmmar genom ett ResultSet objekt som representerar en resultattabell där en rad i taget kan genereras och bearbetas genom att stega sig igenom resultattabellen. 7. Frågeoptimering: 4 p (a) Vad kallas de tre viktigaste join algoritmerna och hur mycket minne behöver de när de körs? (3p) Sort-merge join: I princip behövs endast minne för att hantera två poster samtidigt för jämförelse. Nested-loop join: I princip behövs endast minne för att hantera två poster samtidigt för jämförelse. I praktiken så läses flera poster in samtidigt från båda tabellerna i varsin buffert och dessutom finns en resultatbuffert. Alltså behövs minnesutrymme för tre minnesbuffertar. Hash join: Här behövs minnesutrymme för en hashtabell över ena tabellen samt för att hantera en post för den andra tabellen. Även här hanteras i praktiken buffertar med flera poster samtidigt för data- och resultatströmmar. (b) Hur hanterar embedded SQL den höga kostnaden att optimera SQLfrågor (1p) Inbäddade SQL-frågor i värdspråket extraheras av en prekompilator och förkompileras vid kompileringen av applikationen. Den kompilerade frågan ersätts av motsvarande databasanrop som länkas samman med applikationen och vid exekveringen sker databasanrop från applikationen. Vid senare (eventuellt upprepad) exekvering behövs ej någon kompilering vilket eleminerar onödig frågeoptimering. 8. Datalager: 4 p Ett konsult behöver analysera sin verksamhet och tänker därför utnyttja datalagerteknik. Man vill analysera uppdragens inkomster per kund och typ av uppdrag (t.ex. seminarium, design, implementering, testning). (a) Hur ser datakuben ut som sammanfattar ovanstående? Ge exempel. (1 p) Uppdrag \ Kund abb sca s:a ---------------------------------- seminarium 100 90 190 design 75 80 155 implementering 125 120 245 4

testning 50 65 115 ---------------------------------- s:a 350 355 705 (b) Designa ett stjärnschema för att lagra datakuben i en relationsdatabas. Ge exempel på tabellinnehåll. (2 p) Kund(kundid, namn, + andra egenskaper) Uppdrag(uppdragid, namn, + andra egenskaper) Kunsultinkomster(kundid, uppdragid, inkomst) (c) Hur uttrycker man fråga i SQL m.h.a. cube-operatorn för att konstruera datakuben från relationsdatabasen? Hur ser resultattabellen ut? (1 p) select kundid, k.namn as knamn, uppdragid, u.namn as unamn, sum(inkomst) from Kund k, Uppdrag u, Konsultinkomster ki where k.kundid = ki.kundid and u.uppdragid = ki. uppdragid group by kundid, k.namn, uppdragid, u.namn with cube; resultattabell: kundid knamn uppdragid unamn inkomst ------------------------------------------------------ k1 abb u1 seminarium 100 k1 abb u2 design 75 k1 abb u3 implementering 125 k1 abb u4 testning 50 k2 sca u1 seminarium 90 k2 sca u2 design 80 k2 sca u3 implementering 120 k2 sca u4 testning 65 null null u1 seminarium 190 null null u2 design 155 null null u3 implementering 245 null null u4 testning 115 k1 abb null null 350 k2 sca null null 355 null null null null 705 ------------------------------------------------------ Lycka till! / Kjell och Tore 5