Tietokannan hallinta, kevät 2001, Harjoitus 1 (26.-30.3.)

Läsnäolo: 3 tehtävää        (**)-merkitty tehtävä lasketaan kahdeksi

Tehtävien 1-2 tavoitteena on palauttaa lyhyesti mieleen SQL-kielen piirteitä. Ks. tarvittaessa Tietokantojen perusteet -kurssin materiaali ja harjoitukset tai Elmasri-Navathen (E&N) luku 8. SQL-kyselyt liittyvät luennolla hieman yksinkertaistettuna esitettyyn E&N:n esimerkkitietokantaan. Kurssikansiossa on kopio alkuperäisen tietokannan määrittelystä (eroilla ei ole tässä merkitystä).

1. Selosta seuraavan SQL-kyselyn merkitys.

select x.NAME, y.NAME
from EMPLOYEE x, EMPLOYEE y
where x.SUPERSSN = y.SSN
union select x.NAME, z.NAME
from EMPLOYEE x, EMPLOYEE y, EMPLOYEE z
where x.SUPERSSN = y.SSN and y.SUPERSSN = z.SSN. 
2. Laadi SQL-kyselyt, joilla saat selville:
a) niiden työntekijöiden nimet ja osoitteet, jotka työskentelevät jossakin hallinto-osaston projektissa vähintään 10 tuntia viikossa.
b) työntekijät, joilla ei ole lapsia;
c) kunkin projektin työntekijöiden lukumäärät, projektit aakkosjärjestyksessä.

3. Hahmottele TKTL:n ilmoittautumisjärjestelmän tietokannan rakennetta sen verran, että voit arvioida suuruusluokan tarkkuudella sen tilantarpeen yhden lukukauden ilmoittautumisten hoitamiseksi. Oletetaan seuraavaa: opiskelijoita 3000, kursseja (tai vastaavia; laboratorioryhmiä ja seminaareja ei käsitellä erikseen) 100, kurssilla harjoitusryhmiä keskimäärin 4 (max 20), loppukokeita 120, kurssi-ilmoittautumisia 10000 ja loppukoeilmoittautumisia 2000.

Ilmoittautumisjärjestelmä perustuu levymuistissa olevaan tietokantaan (Oracle). Olisiko järjestelmä tietokannan koon kannalta toteutettavissa keskusmuistipohjaisena (edut, haitat)?

4. Toteutetaan luennolla (luku 1, s. 2-4) esitetyn henkilöstötietokannan EMPLOYEE-relaatio kasarakenteisena tiedostona. Työntekijöitä on 10000. Levyjakson koko on 4 KB.

a) Määrittele tietueen (monikon) esitysmuoto ainakin kahdella olennaisesti erilaisella tavalla.

b) Arvioi tiedoston tilantarve (jaksojen lukumäärä).

5. (**) Sijoitetaan 120000 jaksoa käsittävä tiedosto optimaalisesti levykölle, jossa on 12 levypintaa, levypinnalla 4000 uraa ja uralla 24 jaksoa.

a) Paljonko aikaa vie koko tiedoston läpiluku, kun jaksot luetaan sijaintijärjestyksessä? Levyn kohdistusaika on 1-12 ms (keskimäärin 6 ms) ja jakson siirtoaika 0.2 ms. (Sektorivälejä ei huomioida.)

b) Kuinka paljon vie aikaa kaikkien jaksojen haku erikseen (mielivaltaisessa järjestyksessä)?

c) Millä jaksolukumäärällä X koko tiedoston läpiluku on erillisiä hakuja tehokkaampaa?

d) Mitkä levymuistille esitetyistä parametreista vaikuttavat tuloksiin eniten? (Arvioi esim. kunkin parametrin 20 %:n parannuksen vaikutus kokonaisuuteen.)