Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Relevanta dokument
Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Uppgift 1.8p (a) Ange tre orsaker hur felaktigheter i en databas kan uppstνa. Till varje av dem, ange en lämplig metod som används som νatgärd mot des

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

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

Uppgift 1. (a) Till vad anvands NULL-varden? Nar ett akta varde: { inte nns (inte ar tillampbart), { ar okant, { ar annu inte bestamt. { 1p. (b) Vilka

Databaser och Datamodellering Foreläsning IV

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

Konceptuella datamodeller

Tentamen för DD1370 Databasteknik och informationssystem

Övningar i SQL. SQLAccess.doc Ove Lundgren

Databaser. Vad du ska lära dig: Ordlista

Tentamen i Databasteknik

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

NORMALISERING. Mahmud Al Hakim

Lösningsförslag till Exempel tentamen

Exempel-Tentamen III

Tentamen för DD1370 Databasteknik och informationssystem

Design och underhåll av databaser

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

Tentamen för DD1370 Databasteknik och informationssystem

Lösningar till tentamen i EDAF75

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen i. Databasteknik

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

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

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

Analytisk relationsdatabasdesign

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

Databaser Design och programmering

Tentamen för DD1370 Databasteknik och informationssystem

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

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

Lösningsförslag, tentamen i Databaser

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

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

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

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

Logisk databasdesign

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

TDDI 60 Tekniska databaser

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

Webbprogrammering, grundkurs 725G54

Karlstads Universitet, Datavetenskap 1

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

WCMS-15, Webbutvecklare CMS

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

Tentamen DATABASTEKNIK - 1DL116

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

Databasdesign. E-R-modellen

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

Sample exam questions. Database exam TIG058

Tentamen i Databasteknik

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Tentamen. TDDB38 - Databasteknik

Universitetet: ER-diagram

Grunderna i SQL del 1

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

Tentamen i Databasteknik

ÖVERVAKNING AV SQL SERVER

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

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

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

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

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

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

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

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

TDDI60 Tekniska databaser

Lösningsförslag till Tentamen,

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Karlstads Universitet, Datavetenskap 1

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Relationell databasdesign

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

Karlstads Universitet, Datavetenskap 1

Lite om databasdesign och modellering

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

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

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

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

Föreläsning 6: Normalisering & funktionella beroenden

Föreläsning 6 Databaser och säkerhet

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

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

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

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

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

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

Transkript:

Institutionen for datavetenskap CTH- TIN 140 Goteborg GU- INN 12 mw DATABASER D4 och GU HT -98 Omtentamen i DATABASER Obs! Larare-version, med losningar DAG: lo, 28 nov 1998 TID: kl. 8.45 { 12.45 SAL: MG Ansvarig: Martin Weichert Forfragningar: Martin Weichert, tel. 772 10 68 Resultat: anslas den 17 dec 1998 Poangantal: sammanlagt maximalt 60 poang. Betygsgranser: CTH: 3:a 24 p., 4:a 36 p., 5:a 48 p. GU: Godkand 28 p., Val godkand 48 p. Hjalpmedel: utdraget ur Oracle7 Server SQL Language resp. Appendix B Syntax ur referensmanualen for Oracle SQL samt SQL*Plus Quick Reference. Observera: Skriv tydligt och disponera pappret pa ettlampligt satt. Borja varje uppgift pa nytt blad. Skriv endast pa en sida av pappret. Alla svar skall val motiveras! Ange pa tentan om du gar pa GU eller CTH. For CTH ange aven vilken linje du gar! Lycka till! 1

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa. (5p.) Redundans, motsagande data pa olika stallen! Normaliseringar Nonsens-data, t ex "31 juni"! typvillkor, undertypvillkor, inklusionsvillkor Tomma referenser! referensvillkor Ofullstandiga andringar! transaktionskonceptet Datorkrasch! loggl, aterstallningsmetoder (fordrojd/omedelbar andring) Parallellism, era anvandare samtidigt! lasning (2-fas-, konservativ, strikt,...), serialiserbarhet Obehorigt tilltrade! sakerhetsmekanismer (\discretionary", \mandatory") { 5p. (b) For vilket syfte anvander man kvorum-konsensus-metoden? fungerar. (3p.) 8poang. Beskrevs i forelasning F12. { 3p. Uppgift 2. Lat r(a B C) och s(b D) vara tabeller med foljande innehall: r: A B C s: B D a1 b1 c2 b1 a1 b2 c1 b1 a3 b1 c3 b2 Berakna resultatet av foljande relationsalgebra-uttryck! (a) r 1 s (naturlig samkorning) (b) A (r) D ( B=b 1 (s)) (Beakta att resultatet ar mangder!) (a) r 1 s : 2p. (b) A (r) D ( B=b 1 (s)) : 3p. d1 d2 d3 Forklara kort hur den r 1 s: A B C D a1 b1 c2 d1 a1 b1 c2 d2 a3 b1 c3 d1 a3 b1 c3 d2 a1 b2 c1 d3 Kolumnerna i (a) far vara i annan ordning. Poangavdrag (; 1p.) om det nns dubletter. 5poang. A (r) D ( B=b 1 (s)): A D a1 d1 a1 d2 a3 d1 a3 d2 Uppgift 3. En hyresgastforening vill halla reda pa fastighetsbolaget Monopol och anvander en databas med foljande tabeller: 2

fastighet(gata, GNr, Byggd) En lista over hyreshus, med Gata och gatunummer GNr, som tillsammans unikt identierar varje hus, samt artalet Byggd nar huset byggdes. lagenhet(lnr, Gata, GNr, Typ, Storlek, Hyra) En lista over alla lagenheter, med ett unikt lagenhetsnummer LNr, adressen som bestar av Gata och GNr, som tillsammans utgor en referens till fastighet, lagenhetens Typ ("etta", "tvaa" eller dyl.) och Storlek (yta i m 2 )ochmanadshyran Hyra. bor(person, LNr, Sedan) Lista over hyresgaster som bor i dessa lagenheter. LNr ar referens till lagenhet, och Sedan ar artalet sedan Person har bott i LNr. reparation(fel, LNr, Ar, Pris) En lista over reparationer som har atgardats eller skall atgardas i lagenheterna. For varje reperationsatgard registreras det vilket Fel och vilken lagenhet LNr (referens till lagenhet) det handlar om, samt vilket Ar reparationen har genomforts eller planeras att genomforas och till vilket Pris. Skriv SQL-satser for foljande uppgifter: (a) Lista alla personer som bor i nagon etta pa Hornsgatan. eller select PERSON from BOR B, LAGENHET L where B.LNr = L.LNr and Typ = 'etta' and Gata = 'Hornsgatan' select PERSON from BOR where LNr in (select LNr from LAGENHET L where Typ = 'etta' and Gata = 'Hornsgatan') Obs { villkoret B.LNr = L.LNr far inte glommas! Tabellen FASTIGHET behovs inte! { 2p. (b) Ange alla fastigheter pa Valhallavagen dar nagra reparationer gjordes eller planeras sedan aret efter att huset byggdes (d.v.s. aret efter att det byggdes och alla efterfoljande ar). select F.Gata, F.GNr from FASTIGHET F, REPARATION R, LAGENHET L where R.LNr = L.LNr and L.Gata = F.Gata and L.GNr = F.GNr and L.Gata = 'Valhallavagen' and R.AR > F.Byggd eller varianter med nastlade SELECT-satser. Obs! Inga samkorningsvillkor far glommas! { 2p. 3

(c) Lista lagenhetsnummer och kvadratmeterhyra pa alla lagenheter pa gatan Diplomatstaden som ar storre an alla lagenheter pa Odengatan. eller select LNr, Hyra/Storlek from LAGENHET where Gata = 'Diplomatstaden' and Storlek > ( select max(storlek) from LAGENHET where Gata = 'Odengatan' )... and Storlek > all ( select Storlek from... ) { 3p. (d) Ange det sammanlagda priset pa alla reparationer for lagenheter pa Narvavagen under tiden 1980 { 1984. select sum(pris) { 2p. from REPARATION R, LAGENHET L where R.LNr = L.LNr and Gata = 'Narvavagen' and AR between 1980 and 1984 (e) Skapa en vy statistik( Person i Lag, Antal Lag) som anger hur manga lagenheter som nns med 1 person i, hur manga med 2 personer i, osv. (Rader som innehaller noll behover inte tas med.) Skriv sedan ut denna vys innehall i fallande ordning, d.v.s. sorterad fran storsta till minsta antal personer. Endast relationen BOR behovs. Den maste grupperas efter LNr, och resultatet maste grupperas igen efter antalet personer. (Man behover alltsa 2 ggr. GROUP BY!) Har man SQL-92 sa kan man skriva mellanresultatet som en SELECT-sats i FROM-delen av en annan SELECT-sats: create view STATISTIK as select PERSON_I_LAG, count(*) as ANTAL_LAG from ( select LNr, count(*) as PERSON_I_LAG from BOR group by LNr ) group by PERSON_I_LAG select * from STATISTIK order by PERSON_I_LAG desc Har man inte SQL-92, sa maste man skapa en hjalpvy for mellanresultatet. ORDER BY kan inte nnas i vy-denitionen! { 4p. 4

(f) Enligt uppgifter fran fastighetsbolaget kommer alla reparationer for lagenhet nummer L123 som planerades for 1998 eller senare att bli 50% dyrare och skjutas upp i ett ar. Skriv in dessa andringar i databasen! update REPARATION { 2p. 15 poang. set PRIS = PRIS * 1.5 AR = AR + 1 where LNr = 'L123' and AR >= 1998 Uppgift 4. En bankkund har tre konton vid en bank. Iborjan nns det 2000:- pa konto A, 1000:- pa konto Boch 1000:- pa konto C. Kunden vill transferera 200:- fran konto C till konto B. For detta ska foljande transaktion T1 genomforas: T1: C:=C-200 { (minska konto C:s innehall med 200) T1: B:=B+200 { (oka konto B:s innehall med 200) Ungefar samtidigt borjar en transaktion T2 for ranteberakning som ska hoja alla kontobelopp med 10 procent: T2: A:=A*1.1 { (oka konto A:s innehall med 10%) T2: B:=B*1.1 { (oka konto B:s innehall med 10%) T2: C:=C*1.1 { (oka konto C:s innehall med 10%) Nar de tva transaktionerna genomfors sa kan deras operationer sammanatas pa olika satt. Betrakta foljande tva operationsfoljder: OF1: T2: A:=A*1.1 T1: C:=C-200 T2: B:=B*1.1 T2: C:=C*1.1 T1: B:=B+200 OF2: T1: C:=C-200 T2: A:=A*1.1 T1: B:=B+200 T2: B:=B*1.1 T2: C:=C*1.1 (a) Ar operationsfoljd OF1 serialiserbar? Om ja, vilken logisk foljd av transaktionerna motsvarar den? Vilket blir slutresultatet? Nej, den ar icke serialiserbar, eftersom det nns krockande operationer som kraver olika logisk foljd. (C- kommer fore C* och kraver "T1 fore T2", medan B+ kommer efter B* och kraver "T1 efter T2"). Slutresultatet blir: A=2200, B=1300, C=880 summa 4380 kronor. { 2p. (b) Ar operationsfoljd OF2 serialiserbar? Om ja, vilken logisk foljd av transaktionerna motsvarar den? Vilket blir slutresultatet? Ja, den ar serialiserbar och motsvarar den logiska foljden "T1 fore T2" (alla operationer av T1 som krockar med nagra av T2 kommer fore dessa: C- fore C* och B+ fore B* ). Slutresultatet blir: A=2200, B=1320, C=880 summa 4400 kronor. { 2p. (c) Hur mycket pengar forlorar kunden till banken vid den felaktiga operationsfoljden? 4400-4380 = 20 kronor. { 1p. 5

(d) Vilka av de foljande metoderna kan garantera korrekt genomforing av transaktionerna? Med vilken av dessa metoder kan ett annat problem uppsta? { Vilket? Motivera! lasning: varje dataobjekt (A, B och C) blir last precis innan det anvands och slappt direkt darefter. 2-fas-lasning konservativ 2-fas-lasning lasning: hjalper ingenting (samma operationsfoljder ar fortfarande mojliga). 2-fas-lasning: Forhindrar felaktig andring istallet blir det dock deadlock: Efter de forsta 3 stegen i OF2 ar C last av T1ochBlast av T2.Nu vill T1 lasa B och T2lasa C och de far inte slappa de objekt de redan har lasta! omsesidigt vantande :-( konservativ 2-fas-lasning: (Alla dataobjekt maste lasas pa en gang, i borjan.) Forhindrar felaktig andring och deadlock. { 4p. 9poang. 6

Uppgift 5. Givet relation r(a B C D E) med funktionella beroenden 1. AB! C 2. EB! A 3. C! E 4. E! DB (a) Bestam alla nycklar till relationen r. 3p. fa Bg, fcg och feg. (b) Uppfyller r Boyce-Codd-normalformen? Motivera! 2p. Ja. Alla givna beroenden uppfyller BCNF, eftersom alla vanstersidor ar overnycklar. (c) Uppfyller r tredje normalformen? Motivera! 2p. Ja. BCNF medfor 3NF. (d) Vi vill skapa ovanstaende tabell r i SQL med: create table R ( A char, ) B char, C char, D char, E char, *** I stallet for *** ska det nnas rader som garanterar alla nyckelvillkor fran uppgift (a). Hur ser dessa rader ut? primary key (A,B), unique (C), unique (E) (eller ocksa med C eller E som primarnyckel istallet). 3p. (e) Nar vi nu har lagt in dessa rader fran uppgift (d), ar det da mojligt att mata in data som bryter mot nagot av de funktionella beroendena ovan? 1p. Nej (p.g.a. att vi har BCNF). 11 poang. Uppgift 6. Anvand Entity-Relationship-modellen for att beskriva en databas. Valj ett lampligt exempel pa en databas (t. ex. en skola, ett foretag, en idrottsforening,... ). (a) Gor en beskrivning av databasen i vanliga ord: vad den innehaller, hur innehallet inbordes hanger ihop, vilka riktighetsvillkor som ska galla. 7

(b) Oversatt din beskrivning fran del (a) till ER-diagram. Visa tydligt hur de enskilda pastaenden i textbeskrivningen motsvaras av elementen i ER-diagrammet. Obs! Exemplet ska vara lagom stort for att visa att du kan ER-modellen och dess uttrycksmojligheter det ska inte ta upp hela din tid pa den har tentan. En textbeskrivning pa ca.en halv till en sida, och omkring 3 till 6 entiteter i diagrammet blir nog lagom mycket. Det blir full poang om de esta av ER-modellens uttryckselement nns med och om det framgar ur texten och anvandningssattet att eleven har forstatt hur dessa element anvands i ER-modellen. Om det ar tveksamt huruvida eleven "kan ER-modellen" som jag uttryckte i uppgiften, da kan aven varje punkt i foljande lista raknas som 1p. entiteter (rektanglar) attribut (ovaler) samband (rutor) unika attribut = nyckelattribut (attributnamn understruket) sammansatta attribut (ovaler pa oval) ervarde-attribut (dubbeloval) ett harlett attribut (punkterad oval) ett "maste"-samband (dubbelstreck) attribut pa ett samband (oval pa ruta) 1:1-samband (tva pilhuvuden) 1:N-samband (ett pilhuvud maste vara at ratt hall!) M:N-samband (inget pilhuvud) ternart samband (ruta mellan tre rektanglar) rekursivt samband (ruta mellan en rektangel och sig sjalv) svag entitet (dubbel rektangel) med partiell nyckel (punkterad understruket) och identi- erande samband (dubbelruta maste vara 1:N) till identierande agare. { (Ger 2p. om allt ar ratt!) 12 poang. 8