Tentmen i Dtsteknik lördgen den 22 oktoer 2005 Tillåtn hjälpmedel: Allt upptänkligt mteril Använd r frmsidn på vrje ld. Skriv mx en uppgift per ld. Motiver llt, dokumenter egn ntgnden. Oläslig/oegriplig lösning ger noll poäng. Mx poäng = 60 + onus Betygsgränser : G 30 VG 45 Lyck till! Kjell
Tentmen i Dtsteknik 1. En ornitologklu hr en dts med uppgifter om kluens medlemmr och de fågelrter som medlemmrn hr oservert på olik pltser. Dtsen innehåller följnde ttriut: Attriut Exempel/Förklring Medlemsnummer 112 Nmn Ev Ek Gtudress Storgtn 5 Ort Lillköping Postnummer 43211 ArtNmn Fågelrtens nmn LtinsktNmn Fågelrtens ltinsk nmn PltsNmn Nmnet på den plts där fågeln ikttogs Koordinter Pltsens koordinter Dtum Det dtum fågeln ikttogs på en plts v en medlem Initilt hr mn smlt ll ttriut i en end tell. (2p) Utred vilk funktionell eroenden som finns i strukturen. (3p) Vilk prolem får mn om mn inte normliserr strukturen. (Ge exempel med nvändnde v den givn universell reltionen) c (8p) Normliser successivt till 1NF, 2NF, 3NF och motiver ll åtgärder. 2. (4p) I viss reltionsdtssystem finns det möjligheter tt definier s k integritetstvång. Vilk olik typer v integritetstvång kn mn definier med hjälp v SQL och vrför ehövs dess? (2p) CREATE VIEW tillåter definition v virtuell reltioner. Behövs denn meknism i DBMS? c (2p) S k virtuell fält (fält med härledd värden) nvänds oft i dtsppliktioner. Vrför? sid 1
Tentmen i Dtsteknik 3 (8p) Betrkt följnde trnsktioner: T 1 T 2 T 3 T 4 red(x) write(x) red(x) red(y) write(y) red(z) write(z) red(z) write(z) är opertionsföljden seriliserr? Motiver nog. Om den är seriliserr vilken logisk trnsktionsföljd får mn? Om den inte är seriliserr kn något v protokollen wit-die, wound-wit eller cutious witing vhjälp prolemen? 4 (3p) I reltionen R(A, B, C, D, E, F) gäller följnde funktionell eroenden: AB C A D D AE E F Bestäm smtlig kndidtnycklr till reltionen. (5p) Ett stort företg hr fler vdelningr. På vrje vdelning retr ett ntl nställd, och vrje vdelning hr ett ntl registrerde kunder. En nställd kn ret på mer än en vdelning och en kund kn vr registrerd på mer än en vdelning. All informtion hr smlts i en end reltion: AvdelningsDt(AvdelningsNmn, nställdnmn, kundnmn) Vis tt reltionen är i 3NF. Kn vi få redundnsprolem trots tt reltionen är normliserd till 3NF? Vilk? För resten v uppgiftern gäller följnde dtsstruktur: Anställd ( ( nmn ), lön, chef, vd ) ; Försäljning ( ( vd, vrunr ), volym ) ; Leverntör ( ( företg ), dress ) ; Lger ( ( företg, vd, vrunr ), volym ) ; Avdelning ( ( vd ), våning ) ; Vr ( ( vrunr ), typ ) ; där vrunr, våning och volym är v typen integer och övrig v typen string(30).
Tentmen i Dtsteknik 5. Följnde vy hr definierts: crete view x s select F.vd, F.vrunr, F.volym, A.våning from Försäljning F, Avdelning A where F.vd = A.vd; och mn vill vet vilk vror som sålts på 3e våningen till en volym överstignde 100 enheter: select vrunr from x where våning = 3 nd volym > 100; (2p) Rit det initil evlueringsträdet. (4p) Vis hur du tycker tt DBMS skll optimer frågn. c (5p) För tt sn upp selektionern kn mn indexer. Vilk ttriut kn det ev lön sig tt indexer? Vilken typ v index är det lämpligt tt nvänd (per ttriut)? 6. Översätt till god svensk: (2p) (2p) select A.nmn from Anställd A, Anställd B where A.chef= B.chef nd A.vd = B.vd nd A.nmn <> B.nmn nd not exists (select * from Anställd where vd = A.vd nd chef <> A.chef; C(vd) Π vd (σ företg = Dg (Lger)); Π typ, vd ((Försäljning C) Vr); c (2p) {t.nmn Anställd(t) ( s)(lger(s) s.vd = t.vd ( u)(lger(u) u.företg = s.företg ( v)(vr(v) v.typ = cykel u.vrunr = v.vrunr)))} d (2p) {t ( )Anställd(tuc) ( v)(avdelning(v) ( )(Avdelning(v) ( w)(försäljning(wx) ( y)(vr(wy) y = ost }
Tentmen i Dtsteknik e (2p) Anställd Nmn Lön Chef Avd P. _c _c _ Avdelning Avd Våning _ 3 Försäljning Avd Vrunr Volym v Vr Vrunr Typ _v cykel f (2p) VIEW t( IS LITERAL) <- Avdelning WHERE [vd = ] [våning]; VIEW q <- *(A:Lger, B:Lger) WHERE [(A.vd <> B.vd) AND (A.vrunr = B.vrunr) AND (t(a.vd) EQUALS t(b.vd))][företg]; store q; print q;
Lösningsförslg till Tentmen i Dtsteknik lördgen den 22 oktoer 2005
Lösningsförslg DBT 1. c Medlemsnummer Nmn, Gtudress, Ort, Postnummer Postnummer. Ort Gtudress, Ort Postnummer ArtNmn LtinsktNmn LtinsktNmn ArtNmn Koordinter PltsNmn En ny medlem kn inte läggs in utn tt hn gjort en oservtion. Om en medlem flyttr måste ett okänt ntl tupler uppdters Om en fågel endst ikttgits v en medlem och denn medlem stryks ur registret så förlorr mn ll uppgifter om fågeln. Kndidtnycklr: Medlemsnummer, ArtNmn, Koordinter, Dtum Medlemsnummer, LtinsktNmn, Koordinter, Dtum Är de end kndidtnycklrn. 1NF ((Medlemsnummer, LtinsktNmn, Koordinter, Dtum) Nmn, Gtudress, Ort, Postnummer, PltsNmn, ArtNmn) Till 2NF: Medlemsnummer Nmn, Gtudress, Ort, Postnummer Medför tt Nmn, Gtudress, Ort, Postnummer ryts ut Koordinter PltsNmn Medför tt PltsNmn ryts ut 2NF: ((Medlemsnummer, LtinsktNmn, Koordinter, Dtum) ArtNmn) ((Medlemsnummer) Nmn, Gtudress, Ort, Postnummer) ((Koordinter) PltsNmn) Till 3NF ((Medlemsnummer, LtinsktNmn, Koordinter, Dtum) ArtNmn) Klr ((Koordinter) PltsNmn) Klr ((Medlemsnummer) Nmn, Gtudress, Ort, Postnummer) Postnummer. Ort (ev Gtudress, Ort Postnummer) nvänds för tt del upp reltionen: ((Medlemsnummer) Nmn, Gtudress, Ort) ((Gtudress, Ort) Postnummer) Här hr vi två lterntiv nycklr: Gtudress, Ort och Gtudress, Postnummer Så vi hr 3NF. Sid 1
Lösningsförslg DBT 2. c 3 (8p) Betrkt följnde trnsktioner: T 1 T 2 T 3 T 4 4 Bestäm smtlig kndidtnycklr till reltionen. 5 c 6. c d e f Vilk jor på en vdelning som hr fler än en nställd men r en chef? Vilk är de vdelningr och de vrutyper de säljer för vdelningr som hr levernser från Dg? Vilk nställd jor på vdelningr som hr levernser från leverntörer som inte levererr cyklr? Vilk nställd jor på vdelningr som ligger på de våningr där mn inte säljer ost? Vilk nställd hr en chef som jor på en vdelning på 3:e våningen där mn säljer cyklr Vilk företg hr lger på en våning där ett nnt eller smm företg också hr lger v smm vr men på en nnn vdelning. Sid 2