1.
Tietokantalähestymistavassa käytettävä
'kolmitasoarkkitehtuuri' (three schema
architecture) ja tietoriippumattomuus.
2.
a) Nilsiän Mailmarket on ostanut mikrotietokoneen,
johon suunnitellaan tietokantajärjestelmää yritystoiminnan hoitoa varten
tarvittavien tietojen hallitsemiseksi. Olet saanut tehtäväksesi suunnitella
tietokannalle ER-kaavion. Tietokannan pitäisi sisältää tietoja Mailmarketin eri
osastoista ja niillä myydyistä erilaisista tuotteista. Osastoilla on oma
johtajansa, jonka lisäksi niissä työskentelee myös tavallisia työntekijöitä.
Lisäksi pidetään yllä tietoja tavaran toimittajista (samalla tuotteella voi
olla useita mahdollisia toimittajia) ja asiakkaista. Asiakkaiden on mahdollista
ostaa tuotteita tilaamalla. Kiinnitä huomiota kaupan maksamiin
sisäänostohintoihin sekä määrään, jonka asiakas tilaa jotakin tuotetta. Keksi
kaavion sisältämille olioille muutama tunnistamista helpottava attribuutti.
Tee em. kuvauksen mukainen (E)ER-malli. Kun teet lisäoletuksia, kirjaa myös ne.
b) Kerro käytännön vaiheet allaolevan tietomallin toteuttamiseksi
relaatiotietokannaksi (esim. Access-tietokannaksi):

3. (a) Määrittele viiteavain
(eli vierasavain, engl. foreign key) ja selvitä sen merkitys
relaatiomallissa. Minkälaisia oikeellisuussääntöjä viiteavaimiin voi liittyä
päivitysten kannalta, ja miten ko. säännöt määritellään SQL:ssä? Tarkastellaan
seuraavan relaatiokaavan mukaista opintotietokantaa:
Opiskelija (OpiskNro, Nimi, Osoite)
Kurssi
(KurssiNimi, Opintoviikkoja, OpettajaNro)
Suoritus
(OpiskNro, KurssiNimi, Pvm, Arvosana)
Opettaja
(OpettajaNro, Nimi, Oppiarvo)
(b) Esitä seuraavat päivitykset SQL:llä, ja
selvitä niiden mahdolliset vaikutukset viiteavainten kannalta:
(1) Lisää kantaan uusi 2 ov:n
kurssi nimeltä XML, jonka Ville Virtanen pitää.
(2) Poista opettaja nimeltä Lasse Lahtinen.
(3) Korota Ville Virtasen pitämien kurssien suoritusarvosanoja plussalla
(0.25).
3. a) Määrittele BCNF (Boyce-Codd normaalimuoto).
b) Seuraava relaatio
kuvaa kirjaston lainauksia (sellaisia, joita ei ole vielä palautettu):
Lainat (AsNro, AsNimi, AsOsoite, KirjaNro, Tekijä, Otsikko, LainaPvm)
Sen semantiikka on
seuraavanlainen:
·
Asiakkaista on tiedossa asiakasnumero, nimi ja
osoite.
·
Asiakkaalla voi olla lainassa useita kirjoja.
·
Tietty kirja voi olla (tarkasteluhetkellä)
lainassa vain yhdellä asiakkaalla.
·
Kustakin kirjasta on tiedossa tunnistenumero,
tekijät, ja otsikko.
·
Samalla kirjalla voi olla useita tekijöitä, ja
samalla tekijällä useita kirjoja.
·
Kustakin lainasta on tiedossa lainauspäivämäärä.
Määrää funktionaaliset riippuvuudet ja
avainehdokkaat, sekä suorita normalisointi vaiheittain BCNF-muotoon.