Tietokannan hallinta, syksy 2001, Harjoitus 3 (2.-5.10.)

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

1. Olkoon tiedostossa 1 000 000 tietuetta, tietueen pituus 200 tavua ja sivun koko 4 KB. Käytetään ISAM-rakennetta luentojen sivulla 15 (luku 3) olevan laskelman osoittamassa muodossa (avainkenttä 12 tavua, sivunumero 4 tavua ja hakemistotietue kokonaisuudessaan 20 tavua). Arvioi tiedoston tilantarve jaksoina, kun tehdään luentojen laskelmaan verrattuna seuraavat muutokset:

a) perustason jaksot täytetään vain puoliksi (50 %),
b) säilytetään perustietueet kasassa ja rakennetaan sen päälle tiheä ISAM-hakemisto (hakemiston lehtitason sivujen täyttöaste tässä 50 %),
c) kuten b, mutta täyttöaste 80 %.

2. Toteutetaan relaatio WORKS_ON kasana ja rakennetaan sille hajautusrakenteinen oheishakemisto avaimena ESSN.

a) Mikä on tämän ratkaisun suhde viikon 2 tehtävässä 4 esitettyyn hajautusrakenteiseen tiedostoon (parempi/huonompi, missä suhteessa?).

b) Millaisen toteutustavan valitsisit relaatiolle, jos tarvitaan ryhmittelyä sekä projekteittain että henkilöittäin?

3. (**) Oletetaan, että henkilöstötietokannan relaation EMPLOYEE rivejä säilytetään kasana ja relaatiolle luodaan seuraavat hakemistot:
- ISAM-hakemisto attribuuttiparin (LNAME, FNAME) perusteella,
- ISAM-hakemisto attribuutille SSN,
- hajautusrakenteinen hakemisto attribuutille DNO.

a) Millainen tiedostorakenne on tuloksena? Hahmottele rakennetta riittävän täsmällisesti havainnollistava kuva tai esimerkki.

b) Selitä, miten hakemistoja voidaan käyttää hyväksi. Onko olemassa joitakin tyypillisiä EMPLOYEE-relaation käyttötilanteita, joita tämä hakemistorakenne ei palvele? Mistä muista hakemistoista voisi olla hyötyä? (selitä käyttötilanne ja hakemiston rakenne).

4. (**) Oletetaan, että relaatiolle EMPLOYEE on rakennettu tehtävässä 3 mainitut hakemistot. Mitä tietuehakuja ja -päivityksiä sisältyy seuraaviin operaatioihin?

insert into EMPLOYEE values (...);
delete from EMPLOYEE where SSN = '123456789' or SSN = '333445555';
update EMPLOYEE set SALARY = SALARY * 1.1 where SSN = '123456789';
update EMPLOYEE set DNO = 4 where FNAME = 'John' and LNAME = 'Smith';

5. (**) Oletetaan, että kertaluokan 5 B+ -puuhun (kaikissa solmuissa 2..4 avainta) lisätään järjestyksessä avainarvot 23, 65, 37, 60, 46, 92, 48, 71, 56, 59, 18, 21, 10, 74, 78, 15, 16, 20, 24.

a) Esitä rakenteen muodostuminen vaihe vaiheelta.

b) Tarkastele rakenteen muutoksia, kun siitä poistetaan avaimet 24, 23, 10 ja 20.

Huom. B+ -puun lisäys- ja poisto-operaatiot on esitelty luentomateriaalissa vain viittaamalla B-puun vastaaviin operaatioihin. Operaatioissa ei ole suurta eroa; on huomattava se, että B+ -puussa avaimia on vain lehtitasolla.

6. Arvioi dynaamiseen ja laajentuvaan hajautukseen perustuvien hakemistojen tilantarve ja levyhakujen määrä tehtävän 1 mukaiselle tiedostolle. (Tehtävän päätarkoituksena on käydä läpi mainittujen rakenteiden pääpiirteet. Tilantarve ja levyhakujen määrät selviävät helposti, kun rakenteen ymmärtää.)