Läsnäolo: 2 tehtävää
Huom. Välikoe on keskiviikkona 3.11. klo 15-18 salissa Porthania I. Koealue käsittää luentojen sivuilla 1-181 tai harjoituksissa 1-5 esitetyt asiat. Viikolla 44 (1.-5.11.) ei pidetä luentoja eikä harjoituksia.
1. Tarkastellaan yritystietokantaan kohdistuvaa kyselyä select e.LNAME, s.LNAME from EMPLOYEE e, EMPLOYEE s, DEPARTMENT d where e.SUPERSSN = s.SSN and e.DNO = d.DNUMBER and d.DNAME = "Research" and e.SALARY > 30000. a) Anna kyselyä suoraan vastaava projektio-valinta-tulo-tyyppinen relaatiolauseke ja tätä vastaava kaavapuu. Assosioi karteesiset tulo-operaatiot tavalla, jonka arvelet tuottavan parhaan optimointituloksen. b) Optimoi kysely käyttäen heuristiikkaa "suorita valinnat mahdollisimman aikaisin". Anna optimoitua kyselyä vastaava kaavapuu ja relaatiolauseke. 2. Miten lasket edellisen tehtävän kyselyn, kun relaatioon EMPLOYEE on hakemisto attribuutilla SSN ja relaatioon DEPARTMENT on hakemisto attribuutilla DNAME? 3. Luentojen sivuilla 194-195 esitetyssä, sisäkkäisiin silmukoihin perustuvassa liitosalgoritmissa kumpi tahansa relaatioista r ja s voitaisiin valita ulommassa silmukassa läpikäytävän relaation rooliin. Kannattaako ulompaan silmukkaan valita suurempi vai pienempi näistä relaatioista? 4. Tarkastellaan relaatioiden r(A,B) ja s(B,C) luonnollisen liitoksen laskentaa järjestämisliitosmenetelmällä, kun liitosattribuutti B on relaation s avain (vrt. luentojen sivu 197). Luonnostele lomitusvaiheen algoritmi. Algoritmi toimii kolmen sivun puskuritilassa. 5. Tarkastellaan relaatiolausekkeen P (r * s * t) (P on siis projektio-operaattori) BD laskentaa, kun relaatiot r(AB), s(BC) ja t(CD) ovat seuraavansisältöisiä: r = {(i,1) | i = 1,...,n}, s = {(1,j) | j = 1,...,n}, t = {(k,2) | k = 1,...,n}. Mikä on tuloksen koko, so. kuinka monta monikkoa lausekkeen arvo sisältää? Entä minkä kokoisia välitulosrelaatioita syntyy, kun lauseke lasketaan muodossa a) P (r * P (s * t)), b) P (P (r * s) * t) BD BD BD BC Oletetaan, että tietokannan hallintajärjestelmän kyselynoptimoijalla on käytettävissään relaatioiden koot ja attribuuttien arvojoukkojen koot (äskettäin suoritetun analyysi/tilastointi-ajon jäljiltä). Millaista heuristiikkaa käyttämällä kyettäisiin tässä tapauksessa valitsemaan kyselyn kahdesta laskentatavasta tehokkaampi?