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

Tentamen i Databasteknik

Databaser och Datamodellering Foreläsning IV

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

Konceptuella datamodeller

NORMALISERING. Mahmud Al Hakim

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

Lösningsförslag till Exempel tentamen

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

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

Lösningar till tentamen i EDAF75

Exempel-Tentamen III

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Övningar i SQL. SQLAccess.doc Ove Lundgren

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

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 ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen i Databasteknik

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

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

Databaser Design och programmering

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

Analytisk relationsdatabasdesign

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

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

Design och underhåll av databaser

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

Tentamen för DD1370 Databasteknik och informationssystem

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

Lösningsförslag, tentamen i Databaser

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

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

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

Webbprogrammering, grundkurs 725G54

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

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Logisk databasdesign

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

Karlstads Universitet, Datavetenskap 1

Tentamen i Databasteknik

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

Databaser. Vad du ska lära dig: Ordlista

Tentamen i. Databasteknik

TDDI 60 Tekniska databaser

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

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

Tentamen. TDDB38 - Databasteknik

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

Tentamen DATABASTEKNIK - 1DL116

Universitetet: ER-diagram

Karlstads Universitet, Datavetenskap 1

Föreläsning 6: Normalisering & funktionella beroenden

TDDI60 Tekniska databaser

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

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

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

Tentamen plus lösningsförslag

Tentamen DATABASTEKNIK - 1DL116, 1MB025

Databasdesign. E-R-modellen

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

Lösningsförslag Tentamen, 25 april 03

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

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

Ett arbetsexempel Faktureringsrutin

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

Lite om databasdesign och modellering

Lösningsförslag till Tentamen,

Funktionella beroenden - teori

Karlstads Universitet, Datavetenskap 1

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

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.

Databasspråket SQL - online.

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

Structured Query Language (SQL)

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

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

Databasspråket SQL - online.

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Idag. Hur vet vi att vår databas är tillräckligt bra?

ÖVERVAKNING AV SQL SERVER

Databasspråket SQL - online.

Databasutveckling Introduktion till SQL och TSQL

Transkript:

Institutionen for datavetenskap CTH- TIN 140 Goteborg GU- INN 12 mw DATABASER D4 och GU HT -97 Andra omtentamen i DATABASER Obs! Larare-version, med losningar DAG: lo, 22 aug 1998 TID: kl. 8.45 { 12.45 SAL: VV 11 Ansvarig: Martin Weichert Forfragningar: Martin Weichert, tel. 772 10 68 Resultat: anslas den 12 sep 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. Doktorander: Godkand 28 p. Hjalpmedel: 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. 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") { 3p. (b) Vad ar skillnaden mellan SQL-satserna drop table ANSTALLDA och delete from ANSTALLDA? delete tommer (rensar) tabellen ANSTALLDA, d v s tar bort hela innehallet ur tabellen, men lamnar kvar tabellstrukturen (namn och typer pa falt, nyckel-, referensoch andra villkor). Med drop tas bort aven allt information om tabellstrukturen. { 1p. 4poang. Uppgift 2. Givet ar tabellerna r(a B)och s(b C A)medfoljande innehall: r: A B a1 a2 b1 b2 s: B C A b2 c1 a2 b3 c2 a1 b2 c2 a2 Berakna resultatet pa foljande relationsalgebra-uttryck. I denna uppgift antar vi att det ar NAMN som galler nar vi identierar kolumnerna. Obs! Beakta att det alltid ar mangder det handlar om! (a) C=c2(s) (b) AB (s) ; r (c) r C (s) C=c2(s) B C A b3 c2 a1 b2 c2 a2 Poangavdrag om det nns dubletter. {(a)1p. {(b)2p. {(c)2p. AB (s) ; r A B a1 b3 r C (s) A B C a1 b1 c1 a1 b1 c2 a2 b2 c1 a2 b2 c2 5poang. Uppgift 3. Lat r(a B C D) vara tabellen med foljande innehall: 2

r: A B C D a b c d a b c 0 d a 0 b 0 c d a 0 b 0 c 00 d a b 0 c d 0 a b 0 c 00 d 0 Vilka av de foljande funktionella beroenden och ervardeberoenden uppfyller r, vilka inte? (a) (b) (c) A! D B! D AB! D (a) A! D nej { 1p. (b) B! D nej { 1p. (c) AB! D ja { 1p. 5poang. (d) (e) B! C B! D (d) B! C ja { 1p. (e) B! D nej { 1p. Uppgift 4. En cykelaar vill halla reda pa sina varor och anvander en databas med foljande tabeller: CYKEL(MODELL, TYP, PRIS) En lista over alla cykelmodeller. TILLBEH OR(DEL NR, BESKRIVNING, TILLVERKARE, PRIS) En lista over tillbehordelar, med ett unikt DEL NR for varje tillbehordel. INGAR(MODELL, DEL NR, ANTAL) Lista over alla tillbehordelar som ingar i nagon cykelmodell. MODELL ar referens till CYKEL, DEL NR ar referens till TILLBEH OR. ANTAL anger hur manga exemplar av denna tillbehordel ingar i en cykel av denna modell. SALDA(MODELL, AR, MANAD, ANTAL) En lista over hur manga exemplar av varje modell som saldes i MANAD i AR. MODELL ar referens till CYKEL. Skriv SQL-satser for foljande uppgifter: (a) Lista (utan dubletter) modell och pris pa alla cyklar dar nagon tillbehordel kostar mer an 1000 kronor. Med samkorning: select distinct C.MODELL, C.PRIS from CYKEL C, INGAR I, TILLBEHOR T where C.MODELL = I.MODELL and I.DEL_NR = T.DEL_NR and T.PRIS > 1000 Obs { inga samkorningsvillkor far glommas! Eller nastlat: 3

select distinct MODELL, PRIS from CYKEL where MODELL in (select MODELL from INGAR where DEL_NR in (select DEL_NR from TILLBEHOR where T.PRIS > 1000)) (b) Lista (utan dubletter) modell och pris pa alla cyklar dar alla tillbehordelar kostar hogst 1000 kronor. Enklast: select distinct MODELL, PRIS from CYKEL where MODELL not in ( svar fran uppgift (a) ) Eller nastlat: select distinct MODELL, PRIS Eller: from CYKEL where MODELL not in (select MODELL from INGAR select distinct MODELL, PRIS from CYKEL C where 1000 >= all (select PRIS (c) Ange manad och ar da mest cyklar saldes. create view MANADSANTAL as where DEL_NR in (select DEL_NR from TILLBEHOR from TILLBEHOR T, INGAR I where T.DEL_NR = I.DEL_NR and MODELL = C.MODELL) select MANAD, AR, sum(antal) as TOTAL from SALDA group by MANAD,AR where T.PRIS > 1000)) select MANAD, AR from MANADSANTAL where TOTAL = ( select max(total) from MANADSANTAL ) 4

(d) Ta bort ur tillbehorslistan alla delar som inte forekommer i nagon cykel i databasen. delete from TILLBEHOR 8poang. where DEL_NR not in (select DEL_NR from INGAR) Uppgift 5. Betrakta relationen r(projekt, Artikel, Leverantor) med funktionella beroenden 1. Leverantor! Artikel 2. Projekt, Artikel! Leverantor Beroendena skall alltsa uttrycka att: 1. Varje Leverantor levererar bara en viss Artikel. 2. Inom varje Projekt bestalls samma Artikel alltid av samma Leverantor. Ett Projekt kan alltsa bestalla olika Artiklar (givetvis av olika Leverantor). (a) Bestam alla nycklar till relationen r. fp Ag och fp Lg. (b) Uppfyller r Boyce-Codd-normalformen? Motivera! Nej. Beroendet 1. L! A bryter mot BCNF, eftersom (L) inte ar nagon (over)nyckel. { 1p. (c) Uppfyller r tredje normalformen? Motivera! Ja. Beroendet 1. L! A uppfyller 3NF, eftersom A ar ett nyckelattribut (ingar i nyckeln fp Ag). (Beroendet 2. PA! L uppfyller 3NF eftersom det redan uppfyller det starkare BCNF.) { 1p. (d) Om vi delar upp relationen r for att uppfylla en battre (d.v.s. strangare) normalform, vilka delrelationer far vi? Vad forlorar vi? Vilka felaktiga data ar mojliga att mata in i tabellen utan att det forhindras av nycklar och referenser? (Med \felaktiga data" avses data som bryter mot nagot av de givna funktionella beroendena inte data som ar felaktiga pa nagot annat satt.) Vi delar upp med beroendet 1. L! A, ochvifar relationer r1(l A)och r2(p L). Vi forlorar beroendet 2. PA! L. Felaktiga data kan matas in som bryter mot beroendet 2., d.v.s. samma projekt som har tva olikaleverantor for samma artikel. { 3p. (e) Om vi inte delar upp relationen r, vilka felaktiga data ar da mojliga att mata in i tabellen? 8poang. Felaktiga data kan matas in som bryter mot beroendet 1. L! A, d.v.s. samma leverantor levererar olika artikel. { 1p. 5

Uppgift 6. Tva transaktioner T 1 och T 2 skall utfora foljande operationer i en databas: T 1:las A, sen skriv dess varde till B T 2:las B, sen skriv dess varde till A A har vardet 50 i borjan, och B har vardet 100. Nar de tva transaktionerna genomfors blir deras operationer sammanatade i foljande operationsfoljd: T1: begin T1: read A T2: begin T2: read B T2: write A T1: write B (a) Vad ar eekten av denna operationsfoljd? Ar den serialiserbar? Visa varfor! Nej, den ar icke serialiserbar, eftersom det nns krockande operationer som kraver olika logisk foljd. T1: read A kommer fore T2: write A och kraver "T1 fore T2", medan T2: read B kommer fore T1: write B och kraver "T2 fore T1". Vi far en cirkel T 1! T 2! T 1 i serialiserbarhetsgrafen. Eekten ar att vardena pa A och B byter plats. (b) Vad hander om vi anvander 2-fas-lasning? Visa vantegrafen! Deadlock. Mera precist: T 1borjar, laser A, laser A. T 2borjar, laser B, laser B vill lasa A som ar last av T 1,! maste vanta,! pil T 2! T 1 i vantegrafen. T 1 vill lasa B som ar last av T 2,! maste vanta,! pil T 1! T 2ivantegrafen! cirkel! = deadlock! (c) Vad hander om vi anvander konservativ 2-fas-lasning? Vilken eekt har transaktionerna? T 1 borjar, laser A och B, laser A. T 2 vill borja och lasa bade A och B men kan inte,! maste vanta. T 1 jobbar fardig, sen ocksa T 2. Logisk foljd: T 1! T 2 eekt: A = B =50. 6poang. Uppgift 7. En biograf vill halla reda pa sinalmvisningar med hjalp av en databas. Foljande informationer skall nnas med: Varje lm har en titel. Vi antar att olika lmer inte kan ha samma titel. En lm kan ha ett obegransat antal utmarkelser (Oscar,... ). I en lm kan en eller era (eller ibland inga) skadespelare medverka. En skadespelare maste vara med i nagon lm for att upptas i databasen. Biografen har era salar. Varje sal har ett nummer och en storlek(antal platser). Varje sal har era stolar, som ar numrerade. Samma stolnummer kan anvandas i olika salar. For varje stol skall dess lage lagras. Biografen har forstas era lmvisningar. Varje visning galler en viss lm i en viss sal och vid en viss tid. Tiden anges som datum och klockslag. 6

Varje biljett har ett unikt biljettnummer och anger vilken visning och vilken stol den galler. Priset pa en lmvisning kan vara olika for samma lm beroende pa sal och tid. Det ar dock alltid samma pa pris pa alla stolar i samma sal. Om det kanns nodvandigt eller lampligt kan aven egna nya nyckelattribut (lopande nummer eller dyl.) inforas. (a) Rita ett ER-diagram som motsvarar ovanstaende beskrivning. Varje punkt i foljande lista, om det ar ratt anvant, 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) (nns ej har) ett "maste"-samband (dubbelstreck) attribut pa ett samband (oval pa ruta) (nns ej har) 1:1-samband (tva pilhuvuden) (nns ej har) 1:N-samband (ett pilhuvud maste vara at ratt hall!) M:N-samband (inget pilhuvud) svag entitet (dubbel rektangel) med partiell nyckel (punkterad understruket) och identierande samband (dubbelruta maste vara 1:N) till identierande agare. {(Ger2p. om allt ar ratt!) 7

FilmNr Titel Namn Utmärk Film med Skådesp. av VisnNr Pris SalNr Storlek Tid Visning i Sal Datum Klockslag för tillhör Biljett på Stol BiljettNr StolNr Läge Obs! Skadespelare behover inte vara en egen entitet { det kan istallet vara ett ervardesattribut sasom Utmarkelser. { 12p. (b) Oversatt ditt ER-diagram till relationsmodellen: Ange vilka relationer som nns, vilka attribut de har, vilka nycklar och vilka referenser relationerna emellan som galler. (De som inte klarar foregaende uppgift kan borja direkt med denna.) lm(filmnr, Titel) utmark(filmnr, Utmarkelse) utmark.filmnr! lm medverkar(filmnr, Skadespelare) medverkar.filmnr! lm visning(visnnr, FilmNr, Datum, Klockslag, SalNr, Pris) 8

visning.filmnr! lm visning.salnr! sal biljett(biljettnr, VisnNr, SalNr, StolNr) biljett.visnnr! visning biljett.(salnr,stolnr)! stol stol(salnr, StolNr, Lage) stol.salnr! sal sal(salnr, Storlek) { 12p. 24 poang. 9