Tehtävä: Normalisoinnin harjoittelua

Tämä tehtävä sisältää kokoelman erilaisia harjoituksia, jotka liittyvät normalisointiin. Valitse sinua kiinnostavat harjoitukset ja tee ne.

Muista, että kurssin läpipääsyyn riittää tehdä 80 % osan tehtävistä. Tässä tehtävässä on yhteensä 5 harjoitusta, joista kahdessa on kaksi osaharjoitusta. Jos olet tehnyt jo Tehtävän 5.1, tämä tarkoittaa, että sinulle riittää tehdä 3 harjoitusta ja kaksi osaharjoitusta tässä tehtävässä. Muista seurata omaa etenemistä kurssin etusivulla!

Ennen tämän tehtävän tekemistä on suositeltavaa, että tutustut ensin funktionaalisen riippuvuuden käsitteeseen Luvussa 5.1 sekä normalisointisääntöihin Luvussa 5.3. Tämä tehtävä on pitkä ja vaatii hyvää perehtymistä kurssimateriaaliin! Tee siis tehtävät ajatuksella, ja muista katsoa mallivastaukset; tärkeintä on asian ymmärtäminen.

Jos huomaat virheitä tai sinulla on kysyttävää tehtävistä, ota yhteyttä kurssin opettajiin

Tähän laatikkoon listataan mahdolliset muutokset tehtävien julkaisemisen jälkeen.

Harjoitusten pisteytys ja mallivastaukset

Tässä tehtävässä sinun tulee pisteyttää vastauksesi itse mallivastauksen perusteella. Etene harjoituksissa seuraavasti:

  1. Tee ensin harjoitus itsenäisesti. Tututstu rauhassa tässä osassa oleviin lukuihin. Tehtävien tarkoitus on harjoitella, joten virheet ovat sallittu!

  2. 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, max 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ä 🙂

  3. 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.

  4. Tutustu mallivastaukseen. Voit vielä halutessasi korjata alkuperäisen vastauksesi.

  5. Vertaile harjoituksen lopussa olevassa tekstilaatikossa omaa vastausta mallivastaukseen lyhyesti. Onko samankaltainen vastaus? Missä löytyy eroja, ja mistä ne voivat johtua? Teitkö jotain lisäoletuksia, mitä mallivastauksessa ei tehty?

  6. 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}

Kaikkiaan merkintä tarkoittaa, että attribuutit d, e ja f ovat funktionaalisesti riippuvia attribuuttien a, b ja c yhdistelmästä. Toisin sanoin attribuuttien a, b ja c yhdistelmä yksilöi attribuutit d, e ja f.

Vinkki: Tässä tehtävässä kannattaa aina aloittaa paperilla ja kynällä! Paperilla voit esimerkiksi piirtää funktionaalisia riippuvuuksia suoraan nuolilla seuraavalla tavalla:

Esimerkki funktionaalisen riippuvuuden merkinnästä paperilla
Esimerkki funktionaalisen riippuvuuden merkinnästä paperilla

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}

# t52_h1
# h1_arviointi

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 ovat kaikki tyypitetty oikein eikä mikään attribuutti ole lista (tai muuten sisällä monta arvoa samalla rivillä).

# t52_h2
# h2_arviointi

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 ovat kaikki tyypitetty oikein eikä mikään attribuutti ole lista (tai muuten sisällä monta arvoa samalla rivillä).

# t52_h3
# h3_arviointi

Harjoitus 4

Olet saanut toimeksiannon softayrityksen KirjaSofta Rönkä & Köllinen Ky kehittämän ja laajasti Suomen pienkirjastoissa kirjastojen lukupiiritietokannan tarkastamiseksi. Tietokanta oli luotu aikoinaan superketterällä MaxAgile⁠™-menetelmällä, jossa sovellusta ja tietokantaa on päivitetty asiakkaiden tarpeiden mukaan katsomatta erityisesti tietokannan loogista rakennetta. Tietokannan datamäärä on kasvanut niin suureksi, että palvelimelta alkaa loppua tila. Rahaa lisätilalle ei ole, vaan sen sijaan sinulta pyydettiin tarkastamaan tietokannan looginen rakenne ja mahdollisesti parantamaan tilan käyttöä normalisoimalla tietokanta.

Haastattelemalla eri kirjastojen edustajia saat seuraavia tarkentavia tietoja lukupiiritietokannasta:

  • Tietokantaa käyttävät eri kirjastot ympäri Suomea. Kirjastossa on saleja, jossa pidetään lukupiirejä kirjoista.
  • Kirjastossa kirjat voidaan tilata suoraan kustantajalta. Jokainen kirjasto tekee oman tilauksen.
  • Yhdellä tilauksella voi tilata useampia eri kirjoja tiettyjä määriä. Tietokannassa maara kertoo, kuinka monta kappaletta kutakin kirjaa tietty kirjasto on tilattu.
  • 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 kuitenkin voidaan samaan aikaan pitää saman kirjan lukupiiri.
  • Kirjaston lukupiirit 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.

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

# t52_h4a
# t52_h4b
# h4_arviointi

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 ylpeänä esittää, 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 Exceliin:

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 Excelista: niin paljon datan toistoa!

Päästyäsi kotiin otat paperin ja mietit, miten turhaa datan toistoa voisi vähentää normalisoimalla. Ennen lähtemistä 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ö yleensä arvioi 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.
  • Nopeuttaakseen hakua yleisille asioille annetaan yksilöllinen tunnus: henkilöille (tun), albumeille (atun) ja esittäjille (etun).
# t52_h5a
# t52_h5b
# h5_arviointi

Lopuksi

Valinnainen: Kun olet valmis, arvioi lyhyesti tehtävässä opittuja asioita ja anna lyhyt palaute tehtävästä.

# palaute

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.