Tentamen DATABASTEKNIK - 1DL116

Relevanta dokument
Tentamen DATABASTEKNIK - 1DL116, 1MB025

Svar till tentamen DATABASTEKNIK - 1DL poäng

Tentamen DATABASTEKNIK - 1DL116, 1MB025, 1DL124

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

Karlstads Universitet, Datavetenskap 1

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

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

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

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

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

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

Karlstads Universitet, Datavetenskap 1

Konceptuella datamodeller

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

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 För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

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

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

Grunderna för relationsmodellen!

Databaser - Design och programmering

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

NORMALISERING. Mahmud Al Hakim

732G16: Databaser - Design och programmering

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

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

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

Inga hjälpmedel är tillåtna

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

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

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

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

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

Design och underhåll av databaser

Databaser. Vad du ska lära dig: Ordlista

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

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

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

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

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Databasteknik för D1, SDU1 m fl

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

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

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

TDDI60 Tekniska databaser

Föreläsning 6: Normalisering & funktionella beroenden

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

Relationell databasdesign

Föreläsning 2: Översikt över ett databassystem

Database course summary

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

Logisk databasdesign

TDDI 60 Tekniska databaser

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

Databaser och Datamodellering Foreläsning IV

Databasdesign. E-R-modellen

Tentamen i. Databasteknik

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

Tentamen Databasteknik

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen

Databasteknik för D1, SDU1 m fl

Informationssystem och Databasteknik

Tentamen i Databasteknik

Föreläsning 5: Relationsmodellen

Databaser Design och programmering Minnesteknik Minnesteknik, forts Utvecklingen Hårddisk Hårddisk, forts

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Relationsmodellen och syntetisk databasdesign

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

Databaser Design och programmering. Fysisk design av databasen att ta hänsyn till implementationsaspekter: minnesteknik filstrukturer indexering

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

Minnesteknik. Minnen lämpliga för databaser. Minnesteknik, forts. Databaser design och programmering. temporärt/flyktig Snabbt Dyrt

Tentamen. TDDB38 - Databasteknik

Fillagring och indexering

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

Datalager och datautvinning

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Tentamen DATABASTEKNIK - 1DL116

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

Webbprogrammering, grundkurs 725G54

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Databaser Design och programmering

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Sample exam questions. Database exam TIG058

IT i organisationer och databasteknik

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

Lösningar till tentamen i EDAF75

Tentamen plus lösningsförslag

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

Frågebearbetning. Thomas Padron-Mc Carthy

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

Transkript:

Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-05-20 DATABASTEKNIK - 1DL116 Datum...Tisdagen den 20 Maj, 2003 Tid...12:00-17:00 Jourhavande lärare...kjell Orsborn, tel. 471 11 54 eller 070 425 06 91 Hjälpmedel...Inga 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. DB terminologi: 4p Förklara kortfattade följande begrepp i databassammanhang (det går bra med definitioner där sådana finns). (a) referensnyckel (eng. foreign key) (b) transaktion (c) dödlig låsning (eng. dead lock) (d) BCNF - Boyce-Codd Normal Form (a) En referensnyckel är en mängd av attribut (rk) i relationsschema R1 som refererar till en mängd attribut av samma värdedomän och som samtidigt utgör primärnyckel (pk) i relationsschema R2. Värdet av rk för tupel t1 i en relation r1(r1) är detsamma som värdet av pk för någon tuple t2 i en relation r2(r2), eller NULL. (b) En databastransaktion är en atomisk och logisk enhet av databas processering som accessar och eventuellt uppdaterar olika data items. En transaktion genomförs alltid antingen i sin helhet eller inte alls (vilket garanteras av transaktionshanteraren som ser till att transaktioner hanteras som en odelbar mängd av operationer). (c) Dödlig låsning (eng. dead lock) är en situation som kan uppstå när alla transaktioner i en mängd av två eller flera transaktioner väntar på att få accessrättinghet till någon dataartikel som är låst av någon annan av transaktionerna. (d) BCNF - Boyce-Codd Normal Form säger att ett relationsschema uppfyller BCNF om det uppfyller 1NF samt att varje determinant (dvs vänsterled i ett funktionellt beroende) skall vara en kandidatnyckel. 2. Databassystem - konventionell filprocessering: 4p Nämn och motivera fyra fördelaktiga egenskaper hos ett databassystem som normalt skiljer sig från egenskaperna hos ett programsystem som baseras på konventionell filprocessering. Exempelvis: Metadata..., Dataoberoende..., Vyer..., Datadelning och fleranvändar-transaktionshantering..., Kontroll av redundans..., Begränsning av otillbörlig access..., Persistens..., Aktiva regler..., Multipla gränssnitt..., Representation av komplexa datasamband..., Integritetskontroll..., Backup och recovery... 3. Datamodeller: 4p (a) Hur representerar man begreppen entitetstyp (eng. entity type) och attribut (eng.attribute) från en E-R modell i relationsmodell? (1p) 2

(b) Hur kan man representera binära relationstyper i relationsmodellen (notera att det finns flera binära relationstyper)? (3p) (a) E-R modellens begrepp entitetstyp representeras som en tabell (relation) i relationsmodellen och attribut representeras som en namngiven kolumn (attribut) i en tabell (relation) (1p) (b) En 1-1 relationstyp mellan två entitetstyper representeras genom att inkludera primärnyckeln från tabellen som representerar den ena entitetstypen som en främmande nyckel i tabellen för den andra entitetstypen; en 1-N relationstyp mellan två entitetstyper representeras genom att inkludera 1-sidans primärnyckeln som en främmande nyckel på N-sidan; en M-N relationstyp mellan två entitetstyper representeras som en egen tabell (relation) med två främmande nycklar (3p) 4. Fysisk databasdesign - indexering: 4p Förklara för vilka ändamål (typer av databasfrågor) som följande index kan, och inte kan, effektivisera exekveringen: (a) hashindex (b) B + -träd (a) Hashindex är effektiva för sökning av godtyckliga poster med avseende på värdet av hashfältet. Hashindex är mindre lämpliga (kan jämföras med sökning i oordnad fil) för att söka efter värden med avseende på något annat fält än indexeringsfältet. De är normalt heller ej lämpliga för sökning av ordnade poster då det kan krävas en diskaccess för varje post. (b) B + -träd är effektiva för sökning av poster i ordning baserad på indexeringsfältet och för frågor som inbegriper sökvillkor baserat på indexeringsfältet. Exempelvis villkor som inbegriper <, >,, och betyder att posterna som uppfyller villkoret lagras kontinuerligt efter varann. Frågor som innebär access av godtyckliga poster eller av poster ordnade efter något annat fält än indexeringsfältet ges inga speciella fördelar av ett trädindex. 5. Aktiva databaser: 4p (a) Vad består komponenterna i ECA-modellen av i en relationsdatabas? (3 p) 3

(b) Varför är det ofta svårt att implementera komplexa integritetsvillkor m.h.a. triggers? (1 p) (a) E = Event = Uppdatering av tabellrad (insert, delete, update) C = Condition = Databasfråga som ger icke-tomt svar om triggern skall utlösas A = Action = en eller flera uppdateringar eller abort (3 p) (b) Det är svårt att identifiera alla möjliga situationer och triggerutlösningar kan ofta leda till svåröverskådliga kedjereaktioner (1 p) 6. Objekt-orienterade databaser: 4p (a) Vilka tre sorters användardefinerade databasutvidgningsmekanismer finns i ett objekt-relationellt databashanteringssystem? (b) Vilka av ovanstående utvidgningsmekanismer saknas eller är svaga i enkla objekt-orienterade databashanterare (dvs. i s.k. object stores)? 6a. Användardefinerade datatyper Användardefinerade index Användardefinerad frågeoptimering 6b. Det saknas stöd för användardefinerad frågeoptimering Det saknas stödp för användardefinerade index 7. Databasapplikationsgränssnitt: 4p (a) Vad är JDBC? (1 p) (b) Beskriv JDBCs arkitektur med text och bild. (2 p) (c) Vad är skillnaden mellan JDBC och ODBC? (1 p) 7a. Ett standardgränssnitt mellan Java och en eller flera samtidigt tillgängliga relationsdatabaser 7b. Se kompendium 7c. ODBC är programmeringsspråks- och plattformsoberoende. 8. Frågeoptimering: 4p En stor firma har en relationsdatabastabell över hur bra deras försäljare är: SALES(PNR, SALES, NAME,...) 4

Tabellen innehåller försäljning (SALES) i kr för varje försäljare med nyckel personnummer (PNR). Det finns klustrat primärindex på PNR och oklustrat sekundärindex (B-träd) på SALES. Det finns 10000 försäljare i tabellen. Det får plats 10 tabellrader och 100 indexnoder i varje diskblock. Företagsledningen behöver ofta veta de 10 bästa försäljarna och du ombeds att designa ett applikationsprogram som snabbt finner dessa stjärnor. För sådana frågor tillhandahåller SQL nuförtiden en utvidgad syntax: select ssn, sales stop after 10 rows from sales order by sales descending Klausulen stop after 10 rows betyder att bara de 10 första raderna i frågan kommer att returneras. Vilken är den optimala exekveringsplanen uttryckt som utvidgad relationsalgebra innehållande stopafter(x,n) operator? Visa varför den är optimal. Vilken betydelse har stop after 10 rows klausulen för effektiviteten av exekveringsplanen? 8. Två huvudalternativ: 1: stopafter(indexscandescending(sales.sales),10) 2: stopafter(sort(segmentscan(sales), 10) 3: topsort(segmentscan(sales), 10) 1. traverserar indexet från slutet sekevntiellt och plockar upp raderna. Ingen sortering behövs. 12 diskaccesser. (2 indexnoder + 10 radnoder) 2. Söker igenom hela filen 5 ggr, dvs 5000 diskaccesser för sorteringen. 3. Söker igenom hela filen 1 gång och håller 10 största i primärminnet. 10000 diskaccesser. Plan 1 är optimal. Utan stop after 10 kan inte optimeraren veta att sökningen skall avbrytas efter 10 första raderna. plan 2 kan då bli effektivare eftersom det går åt ca 10000 diskaccesser att hämta alla tabellraderna via det oklustrade indexet på SALES.SALES. Lycka till! / Kjell och Tore 5