Läsnäolo: 3 tehtävää (**)-merkitty tehtävä lasketaan kahdeksi
Tehtävät liittyvät luentojen lukuun 4.
1. Vertaile luentojen sivuilla 8-9 esitettyjä kyselypuita välitulosten koon kannalta käyttämällä esimerkkinä seuraavia monikkomääriä: department 200, project 1000, employee 10000. Tarkastele myös valinta- ja liitosehtoja sen mukaan, millaiset attribuuttijakaumat tuntuvat mahdollisilta. (Relaatioiden toteutukseen tai hakemistoihin ei tarvitse puuttua.)
2. Tarkastellaan yritystietokantaan kohdistuvaa kyselyä
select n.DEPENDENT_NAME, e.LNAME from EMPLOYEE e, DEPARTMENT d, DEPENDENT n where e.SSN = n.ESSN and e.DNO = d.DNUMBER and d.DNAME = 'Research' and n.RELATIONSHIP='SPOUSE'.a) Mitä kysely tulostaa?
3. Miten lasket edellisen tehtävän kyselyn, kun relaatioon EMPLOYEE on hakemisto attribuutilla SSN ja relaatioon DEPARTMENT on hakemisto attribuutilla DNAME? Onko hakemistojen ominaisuuksilla merkitystä? Voisiko kyselyn suoritusta tehostaa paremmin joillakin muilla hakemistoilla?
4. Tarkastellaan relaatiokaavioita (avaimet lihavoitu):
Henkilö(Sotu, Etunimi,
Kuollut(Sotu, Kuolinpäivä),
Aviopari(Miehensotu, Vihkipäivä, Vaimonsotu),
Eronnut(Miehensotu, Vihkipäivä, Eropäivä).
a) Esitä kysely
'Melanie Griffithin aviomiesten nimet ja asianomaiset vihkipäivät'
relaatioalgebran
operaatioina.
b) Millaisia tiedosto- ja hakemistorakenteita
loisit tietokantaan? Vaatimuksena on, että a-kohdan kysely
on tehokkaasti toteutettavissa.
Selosta kyselyn toteutusperiaate hakemistoja käytettäessä.
5. (**) Tarkastellaan kyselyä
select FNAME, LNAME, PNO, HOURS from EMPLOYEE, WORKS_ON where ESSN=SSN and HOURS > 20;Arvioi kyselyn suorituksessa tarvittavien levyhakujen määrän ylä- ja alarajoja erilaisilla toteutustavoilla ja tiedosto/hakemistorakenteilla. EMPLOYEE-relaatiossa on 10000 kpl 100 merkin rivejä ja WORKS_ON-relaatiossa 30000 kpl 20 merkin rivejä. Jakson koko on 2KB.
6. a) Esitä kaksi olennaisesti erilaista tapaa toteuttaa seuraava kysely. (Mieti, millaisia hakemistoja voi käyttää.)
select * from EMPLOYEE where SALARY < 20000 or DNO = 3;b) Luentojen sivulla 39 on esitetty sisäkyselyrakenteisen SQL-lauseen muunnos (Oraclessa) liitokseksi.