Tiedonhallinta I, 2. välikoe 15.12.1999

Korjaus: 1 & 2: Anna Pienimäki, 3: Merja Alaluoma, 4: Sami Andberg

1. a)

Vastauksessa tuli käydä ilmi, että tietää mitä alku- ja jälkikuva ovat,
kertoa missä operaatioissa ja millaisten transaktioiden elvytyksessä niitä
tarvitaan ja samoin miten tarve suhtautuu päivityskäytäntöihin.
(luennot, ss. 217-221)

Arvostelu (max. 4 p):

-Jälkikuva puuttuu kokonaan -1p
-Päivityskäytännöt puuttuu -1p
-Transaktioiden tila ja niistä seuraavat operaatiot puuttuu -1p
-Termien sisältö jätetty selittämättä ja ei käy vastauksessa ilmi
ymmärretäänkö -1p
-Ei puhuttu elvytyksestä undon yhteydessä -1/2p
-Ei ymmärretty termejä lainkaan ja arvottu puuta heinää -> 0p

b)

Checkpointeista tuli käydä ilmi termin merkitys, mitä sen yhteydessä
tehdään ja miksi niin tehdään (elvytyksen nopeutuminen). (luennot, s. 223)

Arvostelu (max. 2 p):

-Ei puhuta elvytyksestä lainkaan -1p
-Ei mainita sitoutuneita transaktioita vaan puhutaan kaikista
transaktioiden tekemistä muutoksista ja lisätään että elvytys ulottuu vain
checkpointiin asti -1/2p (hyvin yleinen virhe)

2. a)

Lukot otetaan ennen luku- ja kirjoitusoperaatioita ja vapautetaan
commitin jälkeen. 

Arvostelu (max. 3 p):

-Lyhytaikaiset lukulukot -1p
-Lyhytaikaiset kirjoituslukot -1p
-Vapautus ennen committia ja ei mainittu "commitin yhteydessä" -1p
-Ei vapautettu lainkaan -1 1/2p -> ei näe onko ymmärtänyt mitä on 2pl
-Turhat lukot -1p

b)

Useita eri vaihtoehtoja, kunhan ei konfliktoi missään kohti.
Esim. 
	T1: read-lock(X)
	    read-item(X)
				T2: read-lock(X)
				    read-item(X)
				    Y:=X
	    read-lock(Y)
	    read-item(Y)
	    Y:=Y+X
	    write-lock(Y)
	    write-item(Y)
	    commit
	    unlock(X)
	    unlock(Y)
				    write-lock(Y)
				    write-item(Y)
				    commit
				    unlock(X)
				    unlock(Y)

Arvostelu (max. 4 p):

-Jos ei vapautettu(mutta varattu kyllä) mutta tilanne muuten virheetön -1p
-Lyh. luku- ja kirjoituslukot -1p kumpikin
-Kirjoituslukko jos toisella lukulukko jo varattuna -1p

Tehtävä 3

4.       Kaavion R(A,B,C,D) riippuvuusjoukko on F = {AB -> C, AD -> C, C -> 
BD}. Perustele lyhyesti vastauksesi kaikissa kohdissa.

 a)     Mitkä ovat R:n avaimet?

   Kaavion avaimia ovat AB, AC ja AD, sillä  AB -> ABC -> ABCD
                                             AC -> ABD -> ABCD
                                             AD -> ACD -> ABCD

   Avaimista AB ja AD 0.25p ja AC 0.5p
   Perusteluista yht. 1p (max. 2p)

 b)     Onko kaavio R kolmannessa normaalimuodossa (3NF)?
        Entä Boyce-Codd-normaalimuodossa (BCNF)?

 On 3NF:  AB ja AD avaimia, ja
          C -> BD ja B sekä D kuuluvat avaimiin (AB ja AD)

 Ei BCNF: C -> BD ja C ei ole avain

    Oikeista vastauksista 0.5p / kohta
    Perusteluista 1p / kohta (max. 3 p)

 c)     Ositetaan R kaavioiksi ABC ja ACD. Säilyvätkö riippuvuudet 
 osituksessa?

   p   (F) = {AB -> C, C -> B}
    ABC

   p   (F) = {AD -> C, C -> D}
    ACD

   p   (F) OR p   (F) = {AB -> C, AD -> C, C -> B, C -> D} = F
    ABC        ACD

    AB ja AD riippuvuuksien jakautuminen osituksessa 0.5p
    C riippuvuuden jakautuminen kahtia 1p
    Oikea vastaus perusteluineen (kyllä) 0.5p (max. 2 p)