Harjoitus: Normalisoinnin harjoittelua
Tämä harjoitustehtävä sisältää kokoelman erilaisia normalisointiin liittyviä harjoituksia. Valitse sinua kiinnostavat harjoitukset ja tee ne.
Ennen tämän harjoituksen tekemistä on suositeltavaa, että tutustut ensin funktionaalisen riippuvuuden käsitteeseen Luvussa 5.1 sekä normaalimuotoihin Luvussa 5.2. Tämä tehtävä on pitkä ja vaatii hyvää perehtymistä materiaaliin! Tee siis tehtävät ajatuksella ja muista katsoa mallivastaukset; tärkeintä on asian ymmärtäminen.
Huomautus
Jos huomaat virheitä tai sinulla on kysyttävää tehtävistä, ota yhteyttä kurssin opettajiin
- lähettämällä sähköpostia osoitteeseen
itka2004-opet@tim.jyu.fi
- laittamalla viestiä kurssin Teams-ryhmään tai osallistumaalla ohjauksiin: Teams ja ohjaukset
Harjoitusten pisteytys ja mallivastaukset
Tässä harjoituksessa sinun tulee pisteyttää vastauksesi itse mallivastauksen perusteella. Tee seuraavasti:
Tee ensin harjoitus itsenäisesti. Tutustu rauhassa tämän osan tehtäviin. Tarkoitus on harjoitella, joten virheet ovat sallittu!
Kun olet mielestäsi saanut harjoituksen tehtyä ja tallennettua, anna itsellesi pisteet klikkaamalla tehtävän yläpuolella olevaa "Aseta mukautetut pisteet" -valintaa, syöttämällä pistemääräsi (min. 0, maks. 1) ja painamalla vahvistuspainiketta:
Esimerkki: Harjoituksen itsearviointi ja mallivastauksen katsominen Anna itsellesi pisteet välillä 0-1 sen perusteella, kuinka hyvin mielestäsi sait tehtyä harjoituksen. Vaikka et olisi saanut kaikkea oikein, anna itsellesi vähintään 0,01 hyvästä yrityksestä 🙂
Voit nyt katsoa mallivastaus painamalla "Näytä mallivastaus" -painiketta. Kun avaat mallivastauksen ensimmäistä kertaa, saatat nähdä seuraavan ilmoituksen:
Voit painaa tässä dialogissa "OK", jolloin harjoitus merkitään tehdyksi.
Tutustu mallivastaukseen. Voit vielä halutessasi korjata alkuperäisen vastauksesi.
Vertaile harjoituksen lopussa olevassa tekstilaatikossa omaa vastausta mallivastaukseen lyhyesti. Onko samankaltainen vastaus? Missä löytyy eroja ja mistä ne voivat johtua?
Tallenna arviosi. Voit vielä antaa arviollesi pistemäärän 0-1 sen mukaan, kuinka hyvin vastauksesi on mallivastauksen valossa.
Merkinnöistä
Tässä tehtävässä funktionaaliset riippuvuudet merkitään seuraavasti:
{a, b, c} -> {d, e, f}
Yllä oleva tarkoittaa samaa kuin:
{a, b, c} -> {d}
{a, b, c} -> {e}
{a, b, c} -> {f}
Merkintä tarkoittaa, että attribuutit d
, e
ja f
ovat funktionaalisesti riippuvaisia attribuuttien a
, b
ja c
yhdistelmästä. Toisin sanoin attribuuttien a
, b
ja c
arvojen yhdistelmä yksilöi attribuuttien d
, e
ja f
arvot.
Vinkki: Tässä tehtävässä kannattaa aina aloittaa työskentely paperilla ja kynällä! Paperille voit esimerkiksi piirtää funktionaalisia riippuvuuksia suoraan nuolilla seuraavalla tavalla:

Harjoitus 1
Tarkastellaan alkuun funktionaalisia riippuvuuksia. Olkoon meillä relaatio R (a, b, c, d, e, f)
, jolle tiedetään pätevän seuraavat funktionaaliset riippuvuudet:
{a} -> {b}
{b} -> {c}
{a} -> {f}
{a, c} -> {d}
{c} -> {e, f}
Harjoitus 2
Olkoon käytössä seuraava relaatio R
, jossa pätevät seuraavat funktionaaliset riippuvuudet:
R (a, b, c, d, e, f)
- {a, b, c} -> {d}
- {b, c} -> {f}
- {d} -> {e}
Oletetaan, että attribuutit on kaikki tyypitetty oikein eikä mikään attribuutti ole lista (tai muuten sisällä montaa arvoa samalla rivillä).
Harjoitus 3
Olkoon käytössä seuraava relaatio R
, jossa pätevät seuraavat funktionaaliset riippuvuudet:
R (a, b, c, d)
- {a} -> {b, c, d}
- {b} -> {a, d}
Oletetaan, että attribuutit on kaikki tyypitetty oikein eikä mikään attribuutti ole lista (tai muuten sisällä montaa arvoa samalla rivillä).
Harjoitus 4
Olet saanut toimeksiannon softayritys KirjaSofta Rönkä & Köllinen Ky:ltä. Tehtävänäsi on tarkastaa heidän kehittämänsä, Suomen pienkirjastoissa laajasti käytössä oleva, kirjastojen lukupiiritietokanta. Tietokanta luotiin aikoinaan superketterällä MaxAgile™-menetelmällä, jossa sovellusta ja tietokantaa on päivitetty asiakkaiden tarpeiden mukaan kiinnittämättä erityistä huomiota tietokannan loogiseen rakenteeseen. Tietokannan datamäärä on kasvanut niin suureksi, että palvelimelta alkaa loppua tila. Rahaa lisätilan hankkimiseen ei ole, vaan sen sijaan sinua pyydettiin tarkastamaan tietokannan looginen rakenne ja mahdollisesti parantamaan tilankäyttöä normalisoimalla tietokanta.
Tietokannan rakenne on tällä hetkellä seuraava:
Kirja (kirja_id, nimi, genre, kustantaja, kieli)
Kirjasto (kirjasto_id, nimi, osoite)
KirjaTilaus (tilaus_id, kirja_id, kirjasto_id, maara)
Lukupiiri (kirjasto_id, kirja_id, pvm, sali, alkamisklo)
KirjaTilaus.kirja_id -> Kirja.kirja_id
KirjaTilaus.kirjasto_id -> Kirjasto.kirjasto_id
Lukupiiri.kirjasto_id -> Kirjasto.kirjasto_id
Lukupiiri.kirja_id -> Kirja.kirja_id
Haastattelemalla eri kirjastojen edustajia saat seuraavat tarkentavat tiedot lukupiiritietokannasta:
- Tietokantaa käyttävät eri kirjastot ympäri Suomea. Kirjastoissa on saleja, joissa pidetään lukupiirejä kirjoista.
- Kirjastot voivat tilata kirjoja suoraan kustantajalta. Jokainen kirjasto tekee oman tilauksensa.
- Yhdellä tilauksella voi tilata useampia eri kirjoja tiettyjä määriä. Tietokannassa
maara
kertoo, kuinka monta kappaletta kutakin kirjaa tietty kirjasto on tilannut. - Tietty kirjasto tilaa yhtä kirjaa vain kerran.
- Sama kirja voi löytyä useasta kirjastosta.
- Tiettynä päivänä tietyn kirjan lukupiiri pidetään vain yhdessä kirjaston salissa. Eri kirjastoissa voidaan kuitenkin samaan aikaan pitää saman kirjan lukupiiri.
- Kirjaston lukupiirejä pidetään rajoitetusti. Tietyn kirjaston tietyssä lukusalissa pidetään tiettynä päivänä vain yhden kirjan lukupiiri korkeintaan kerran.
- Kirjalla voi olla useampi genre, jotka tallennetaan kaikki
genre
-attribuuttiin, mutta sillä on vain yksi kieli ja yksi kustantaja. - Kustantajalta saa vain tietynkielisiä kirjoja.
Harjoitus 5
Kaukainen ystävän ystävän ystäväsi pitää kuukausittain Kortepohjassa levyraateja opiskelijaporukan kesken. Satuit kerran tulemaan paikalle tutustumaan vaihto-opiskelijoihin, näkemään Kortepohjan hienon Rentukka-rakennuksen sekä arvioimaan muiden lempparibiisejä.
Tapaat raadissa ystävän ystävän ystäväsi. Hän esittelee ylpeänä, että raati otetaan vakavasti, ja kaikkien osallistujien arvioista on pidetty kirjaa jo vuodesta 2000 lähtien. Hän näyttää, että kaikki arvioinnit kirjataan seuraavanlaiseen Excel-taulukkoon:
tun | nimi | kaup | maatunnus | etun | enimi | perust_vuosi | atun | animi | julk_vuosi | agenre | arvosana | teksti |
---|---|---|---|---|---|---|---|---|---|---|---|---|
o001 | Repe | Jyväskylä | FI | e001 | Juice Leskinen | 1970 | a001 | L | 2000 | Pop | 5 | Hyvä oli |
o001 | Repe | Jyväskylä | FI | e001 | Juice Leskinen | 1970 | a001 | L | 2000 | Protopunk | 5 | Hyvä oli |
o001 | Repe | Jyväskylä | FI | e001 | Juice Leskinen | 1970 | a001 | L | 2000 | Manserock | 5 | Hyvä oli |
o002 | Oscar | Madrid | ES | e002 | Frederik | 1964 | a002 | Tsingis Khan | 1979 | Pop | 3 | Hyvä |
o002 | Oscar | Madrid | ES | e002 | Frederik | 1964 | a003 | Killeri | 1991 | Pop | 2 | Ihan ok |
o003 | Make | Tampere | FI | e002 | Frederik | 1964 | a003 | Killeri | 1991 | Pop | 5 | Paras |
Kurssin ITKA2004 Tietokannat ja tiedonhallinta nohevana opiskelijana kauhistut näkemästäsi Excel-taulukosta: niin paljon datan toistoa!
Päästyäsi kotiin otat paperin ja mietit, miten turhaa datan toistoa voisi vähentää normalisoimalla. Ennen lähtöä sait selville seuraavia asioita Excel-taulukosta:
- Taulukkoon tallennetaan henkilön perustietoja (nimi, kaup, maatunnus).
- Taulukkoon tallennetaan arvioitavan albumin tietoja (animi, jul_vuosi, agenre) sekä albumin esittäjän tietoja (enimi, perust_vuosi). Albumin genret kirjataan ylös tilastointia varten.
- Henkilö arvioi yleensä 1–5 eri albumia. Jokaisesta albumista kirjataan henkilön antama arvosana sekä lyhyt palaute (arvosana, teksti).
- Sama henkilö voi kirjoittaa yhdestä albumista vain yhden arvostelun.
- Haun nopeuttamiseksi yleisille asioille annetaan yksilöllinen tunnus: henkilöille (tun), albumeille (atun) ja esittäjille (etun).
Lopuksi
Kun olet valmis, voit jatkaa eteenpäin seuraavaan lukuun.
Voit antaa lyhyen itsearvion onnistumisestasi ja yleisesti palautteen harjoituksesta alla.
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.