Tiedonhallinta I, syksy 1999, Harjoitus 2 (4.-7.10.)

Läsnäolo: 4 tehtävää

1. Tarkastellaan vielä viime viikon tehtävissä ja luennoilla käsiteltyä
tietokantaa. 

a) Laadi SQL-kysely, joka tulostaa osaston nimen ja työntekijöiden
lukumäärän niiltä osastoilta, joiden työntekijöiden keskipalkka on
suurempi kuin 30000.

b) Entä jos halutaan tulostaa vain kyseisten osastojen miespuolisten
työntekijöiden lukumäärät?

2. a) Mitä yliavaimia ja avaimia on yksirivisellä relaatiolla?

b) Luettele avaimet ja yliavaimet kaavion ABCDE relaatiolle
r = {(1,2,3,4,3), (1,2,3,5,4), (1,1,3,5,3), (1,1,3,5,4)}.

3.   Tarkastellaan relaatiokaaviota R(A,B,C), missä attribuuttien
arvojoukot koostuvat positiivisista kokonaisluvuista.
Anna kaavion R relaatio, jolla on täsmälleen kolme avainta: AB, BC ja AC. 

4. Tarkastellaan kirjastojen tietokannan relaatiokaavioita

TEOS(isbn, nimi, julkaisija)
TEKIJAT(isbn, tekijan_nimi)
JULKAISIJA(nimi, osoite, puhelin)
KIRJA(isbn, kirjaston_tunnus, lkm)
LAINAT(isbn, kirjaston_tunnus, kortin_numero, lainauspvm, erapvm)
KIRJASTO(kirjaston_tunnus, kirjaston_nimi, osoite)
LAINAAJA(kortin_numero, nimi, osoite, puhelin)

Mitä eheysrajoitteita (avainrajoitteita, viite-eheysrajoitteita)
kirjastotietokantaan pitäisi liittää? Määrittele rajoitteet
SQL2-kielellä. Tarkastele erityisesti viiteavaimiin liittyviä eheyden
korjaussääntöjä. Missä sarakkeissa voi olla tyhjäarvoja?
 
5. a) Miten SQL-kielessä esitetään relaatioiden r(ABC) ja s(BCD)
luonnollinen liitos?

b) Mitä voidaan sanoa kaavioiden R ja S luonnollisesta liitoksesta, kun
R = S? 

6. Tarkastellaan kaavion AB mukaista relaatiota r ja relaatiolauseketta 

r - P  (S   (r * R    (r))),
     AB  BltC     BtoC

missä * tarkoittaa luonnollista liitosta, R uudelleennimentäoperaatiota,
P projektiota ja S valintaoperaatiota. Alaviitteissä lt on 'pienempi
kuin' ja BtoC tarkoittaa attribuutin B nimeämistä C:ksi.

a) Sovella lauseketta relaatioon r = P            (EMPLOYEE).
                                      SEX, SALARY

b) Selosta, millainen relaatio on lausekkeen arvona yleisessä
tapauksessa, kun r on mielivaltainen.  (Attribuutin B arvojoukko on
numeerinen.)

7. Kirjoita seuraavat esimerkkitietokantaan liittyvät kyselyt
relaatioalgebraa käyttäen:

a) niiden työntekijöiden nimet, joilla on samaa etunimeä käyttävä
perheenjäsen,

b) niiden osastojen nimet, jotka eivät toimi yrityksen kaikilla
toimipaikoilla. (Entä: '... toimivat kaikilla toimipaikoilla ...'?)