Tiedonhallinta I, syksy 1999, Harjoitus 5 (25.-28.10.)

Läsnäolo: 3 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. Luentojen hakemistorakenteita koskevan osuuden alussa mainittiin
alustavana esimerkkinä kirjan lopussa usein esiintyvä sanahakemisto.
Oletetaan, että kirjan sisältö ja mainittu hakemisto on toteutettu
relaatiotietokantana. Hahmottele tarvittavat relaatiot ja esitä
SQL-kysely, jolla saadaan selville, millä kirjan 'X' sivuilla kerrotaan
a) kissoista, b) kissoista ja koirista. (Huom. Tässä ei siis ole vielä
tarkoitus käyttää tietokannan varsinaisia hakemistoja, vaan pelkästään
tavallisia relaatioita.) 

2.  Luodaan harva ISAM-hakemistorakenne avainarvoin 3, 5, 7, 9, 11, 13,
15, 17, 19 ja 21 varustetuista tietueista.  Oletetaan, että sivulle
sopii kaksi perustietuetta tai kolme hakemistotietuetta.  Rakenteen
luontivaiheessa käytetään 100 %:n täyttösuhdetta.  Anna rakenteen
luontivaiheen jälkeinen sisältö.  Selosta, miten rakenteesta poistetaan
avainarvolla 15 varustettu tietue ja miten rakenteeseen lisätään
avainarvolla 1 varustettu tietue. 

3.  Luodaan henkilöstötietokannan EMPLOYEE-relaatioon hakemistorakenne
seuraavin komennoin:

modify EMPLOYEE to isam on LNAME, FNAME
create unique index XSSN on EMPLOYEE(SSN)
modify XSSN to hash on SSN
create index XDNO on EMPLOYEE(DNO)

Selosta komentojen merkitys.  Millainen tiedostorakenne on tuloksena ja
miten sitä voidaan hyödyntää?

4.  Oletetaan, että relaatiossa EMPLOYEE on edellisessä
tehtävässä esitetyn mukainen hakemistorakenne.
Mitä tietuehakuja ja -päivityksiä sisältyy seuraaviin operaatioihin?

insert into EMPLOYEE values (...)

delete from EMPLOYEE where SSN = '123456789'

update EMPLOYEE set SALARY = SALARY * 1.1
where SSN = '123456789' 

update EMPLOYEE set DNO = 4
where FNAME = 'John' and LNAME = 'Smith' 

5.  Luentojen sivulla 168 on laskettu tiedoston harvan
ISAM-hakemistorakenteen koko, kun tiedoston perustietueet (1 milj.  kpl)
vievät kasarakenteeseen pakattuna 50000 kpl 4 KB:n sivuja ja
hakemistotietueen pituus on 20 B.  Harvassa hakemistossa lehtitasolle
kertyi 100 000 sivua, koska perustiedostosivut täytettiin vain 50 %:sti. 

Pidetäänkin nyt perustietueet kasassa ja käytetään harvan hakemiston
sijasta tiheää ISAM-hakemistoa.  Arvioi tämän tiedostorakenteen koko,
kun tiheän hakemiston lehtitasolla käytetään 50 %:n täyttösuhdetta. 
Entä 80 %:n täyttösuhteella?

6.  Tarkastellaan harjoitusten 3 tehtävän 4 tietokantaa (kaaviot
Henkilö, Kuollut, Aviopari ja Eronnut).  Millaisia hakemistorakenteita
loisit tietokantaan? Vaatimuksena on, että tehtävän a-kohdan kysely

'Melanie Griffithin aviomiesten nimet ja asianomaiset vihkipäivät'

on tehokkaasti toteutettavissa.  Selosta kyselyn toteutusperiaate.