Tietokannan suunnittelu - Demo 1

Tämän ensimmäisen demokerran aiheena on tietokantojen suunnittelu. Demon pääpaino on ER-kaavion piirtämisellä. Ensimmäiseksi käydään esimerkkinä vaiheittain läpi pienen opiskelijatietokannan suunnittelu. Perehdy esimerkkiin ajatuksen kanssa ja kiinnitä esimerkkiä läpikäydessäsi huomiota seuraaviin seikkoihin:

Luentotaltiointi

Ongelmia videon katselussa?

Esimerkkejä tietokannan suunnittelusta löytyy luennolta 2

Pieni opiskelijatietokanta

Lyhyt vaatimusmäärittely

Tietokannaltamme vaaditaan seuraavanlaisia asioita:

Kohdetyypit

Poimitaan ensin tietokannan vaatimusmäärittelyn perusteella kaikki selkeät kohdetyypit. Kohdetyypit löytyvät etsimällä tekstissä mainittuja suurempia kokonaisuuksia, joihin liittyy/sisältyy joitakin ominaisuuksia. Esimerkiksi opiskelijalla on aina nimi jne. Löydettyjä kohdetyyppejä ovat tekstissäkin korostetut:

  1. Käynnistä Erkka-ohjelma (Start | All Programs | Erkka ).

    Erkka-ohjelman saa käynnistettyä myös komentoriviltä valitsemalla Start | Command prompt ja kirjoittamalla

    cd "c:\program files\erkka"
    java -jar Erkka.jar

    Kopioi "kaaviopohja" konfitiedosto.erkka hakemistosta C:\Program Files\Erkka\ koneen C:-asemalle hakemistoon C:\MyTemp\. Mikäli hakemistossa on jo kaaviopohja, ei sitä tarvitse korvata uudella. Ota kaaviopohja käyttöön valitsemalla File | New. Kotikoneelleen Erkan voi noutaa osoitteesta http://appro.mit.jyu.fi/tools/erkka/

  2. Piirrä edellämainitut kohteet (Entity) Erkalla seuraavan kuvan mukaisesti. Nimet saat muutettua ikkunan vasemmasta reunasta kohteen ollessa aktiivisena (valittuna).

    Tietokannan kohteita

Suhteet

Seuraavaksi mietitään mitä suhteita kohteiden välillä esiintyy. Kaikki suhteet eivät lue vaatimusmäärittelyssä sellaisenaan, vaan niiden määrittämiseen tarvitaan tulkintaa. Tarvittavat suhteet löytää miettimällä mitä asioita pitää yhdistää vaatimusmäärittelyssä olevien tarpeiden täyttämiseksi. Esimerkiksi opiskelijan laitos on pystyttävä selvittämään, joten opiskelijan ja laitoksen välille tulee jonkinlainen suhde. Seuraavassa on listattu vaatimusmäärittelystä pääteltyjä suhteita:

  1. Piirrä Erkalla edellämainitut suhteet (Relationship) eli pelkät "salmiakit".

  2. Yhdistä kohteet toisiinsa edellä piirtämiesi suhteiden avulla käyttäen Erkan Line-piirtotyökalua. line-työkalu toimii valitsemalla hiiren vasemmalla napilla ensin kohde ja sen jälkeen vasemmalla napilla suhde johon kohde yhdistetään. Älä pidä hiiren nappia pohjassa. Viivojen piirtämisen voit keskeyttää hiiren oikealla painikkeella.
    Kohteet ja niiden väliset suhteet

Ominaisuudet

Seuraavaksi liitetään jokaiseen kohteeseen ja suhteeseen niihin liittyvät ominaisuudet (attribuutit). Kohteisiin liittyvät ominaisuudet löytyvät helposti vaatimusmäärittelystä. Myös jokainen suhde kannattaa käydä ajatuksella läpi ja miettiä mitä ominaisuuksia tarvitaan suhteen yhteyteen. Kun ominaisuus ei liity kunnolla suhteen ympärillä oleviin kohteisiin, niin se on lisättävä suhteen yhteyteen. Esimerkiksi tenttimisestä on olennaista tietää päivämäärä ja arvosana, mutta tietoja ei ole järkevä laittaa opiskelija- tai kurssikohteeseen, koska ne liittyvät olennaisesti tenttimiseen.

Tehtäviä

  1. Piirrä Erkalla edellämainitut ominaisuudet kaavioon.

  2. Ominaisuudet esitetään ellipsien sisällä, jotka liitetään viivalla joko kohteeseen tai suhteeseen.

    Ominaisuus

Ominaisuuksien pakollisuudet

Kukin ominaisuus on merkittävä pakolliseksi, ei pakolliseksi tai pakolliseksi oletusarvolla (arvo, joka annetaan jos muuta ei syötetä). Tämä määrää tietoja syötettäessä sen hyväksytäänkö tietue lisättäväksi tietokantaan. Esimerkiksi jos kurssikoodi on pakollinen niin ilman sitä kurssia ei voida lisätä tietokantaan. Toisaalta esimerkiksi jos kurssilla olisi kuvaus niin sitä ei välttämättä kannata merkitä pakolliseksi. Kurssi-kohteeseen liittyvät pakollisuudet:

Kurssi
OminaisuusPakollinenOletusarvo
KurssikoodiKyllä 
NimiKyllä 
LaajuusKyllä1
  1. Käy läpi Erkassa kaikkien kohteiden ominaisuudet ja päätä onko ominaisuus pakollinen, ei pakollinen vai onko ominaisuudella joku oletusarvo. Erkassa nämä valinnat löytyvät vasemman laidan ominaisuuslistan kohdasta compulsion:
    • NOT NULL = ominaisuus on pakollinen
    • NULL = ominaisuus ei ole pakollinen
    • DEFAULT = ominaisuudella on oletusarvo, kirjoita oletusarvo kohtaan value
  2. Tallenna Erkalla piirtämäsi ER-kaavio U:-asemalle tiedonhallinta-hakemistoon nimellä opiskelijarekisteri.erkka.

Ominaisuuksien rajoitteet

Ominaisuuksien rajoitteet tulevat myös vaatimusmäärittelyn kautta, mutta tässä yhteydessä niitä ei ole kirjattu esimerkin pitämiseksi suppeana. Voit siis käyttää omaa harkintaasi tietojen rajoitteiden määrittelyssä seuraavissa tehtävissä.

Rajoitteita voivat olla esimerkiksi:

Kurssi - esimerkki

Kurssi
OminaisuusRajoitteet
KurssikoodiKolme ensimmäistä merkkiä ovat kirjaimia ja kolme viimeistä ovat numeroita tai kirjaimia.
Nimi 
LaajuusKelpuutetaan vain kokonaislukuarvot ja puolikkaat.
  1. Käynnistä Excel.
  2. Kirjoita jokaiseen kohteeseen liittyvien ominaisuuksien mahdolliset rajoitteet ja muut huomautukset esimerkin mukaiseen taulukkoon.
  3. Tallenna myös tekemäsi Excel-tiedosto samaan hakemistoon nimellä opiskelijarekisteri.xls

Reseptitietokanta

Suunnittele seuraavaksi reseptitietokanta edellisten esimerkkien mukaisesti. Piirrä ER-kaavio reseptitietokannasta Erkka-ohjelmalla ja määritä ominaisuuksien rajoitteet Excel-taulukkoon.

Lyhyt vaatimusmäärittely

Vinkki: Yritä keksiä yleistykset kaikille eri osasille mitä tavanomaisesta reseptistä löytyy. Näiden yleistyksien pohjalta voit määritellä kohteet ja niiden ominaisuudet. Tutki seuraavaa reseptiä ja mieti mitä vakio-osia siitä löytyy. Kuvittele että et osaisi ollenkaan lukea mitä ohjeessa tai aineksina lukee. Pyri hahmottamaan yleiset piirteet joilla voit kuvata kaikki mahdolliset aineet yms.

Yritä erottaa mikä on tietokantaan syötettävää tietoa ja mikä liittyy tietokannan rakenteeseen. Kuvittele, että olet täyttämässä lomaketta jolla voisit syöttää reseptin tiedot tietokantaan. Lomakkeen kentät vastaisivat tietokantaan tulevia kohteita, suhteita ja ominaisuuksia.

Banaanicurry

  1. Silppua sipuli ja murskaa valkosipulinkynsi
  2. Kuumenna pannussa oljya ja kuullota sipulisilppu
  3. Lisaa curryjauhe, valkosipuli, mangochutney ja suola
  4. Kiehuta miedolla lammolla viisi minuuttia, lisaa kerma ja kiehuta viela viisi minuuttia
  5. jos kaytat ruuanvalmistusjugurttia niin ala keitä sitä, juoksettuu helposti.
  6. Lohko banaanit viipaleiksi ja sekoita joukkoon.
  7. Tarjoaa persiljariisin kera... alkuperaisen ohjeen mukaan pitaisi syoda kylmänä mutta maistuu erinomaiselta myös lämpimänä :)

onannavpheel

  1. Fvycchn fvchyv wn zhefxnn inyxbfvchyvaxlafv
  2. Xhhzraan cnaahffn bywln wn xhhyybgn fvchyvfvycch
  3. Yvfnn pheelwnhur, inyxbfvchyv, znatbpuhgarl wn fhbyn
  4. Xvruhgn zvrqbyyn ynzzbyyn ivvfv zvahhggvn, yvfnn xrezn wn xvruhgn ivryn ivvfv zvahhggvn
  5. wbf xnlgng ehhnainyzvfghfwhtheggvn avva nyn xrvgä fvgä, whbxfrgghh urycbfgv.
  6. Ybuxb onannavg ivvcnyrvxfv wn frxbvgn wbhxxbba.
  7. Gnewbnn crefvywnevvfva xren... nyxhcrenvfra buwrra zhxnna cvgnvfv flbqn xlyzäaä zhggn znvfghh revabznvfrygn zlöf yäzcvzäaä :)

Tehtävät

  1. Etsi ja piirrä kohteet
  2. Piirrä kohteiden väliset suhteet
  3. Lisää kohteisiin ja suhteisiin niihin liittyvät ominaisuudet
  4. Määrittele ominaisuuksien pakollisuudet, oletusarvot ja rajoitteet
  5. Pyydä demo-ohjaajaa tarkistamaan kaaviosi. Tee mahdolliset korjaukset. Muista tallentaa kaaviosi.

Piirrettyäsi kaavion voit vilkaista vaihtoehtoista reseptiä. Jos kaaviosi soveltuu ilman muutoksia tämänkin reseptin tallentamiseen niin hyvä!

Tallenna Erkalla piirtämäsi kaavio U:-asemalle tiedonhallinta-kansioon resepti.erkka-nimellä.

Jalkapalloturnaus

Jos sinulle vielä jäi aikaa niin voit suunnitella myös jalkapalloturnausta varten tietokannan.

  1. Olet järjestämässä jalkapalloturnausta. Mieti millaisen tietokantajärjestelmän tarvitset turnauksen järjestämiseen.
  2. Kirjoita tietokannan vaatimusmäärittely, jossa mainitset mitä ominaisuuksia tietokantasovellukselta tarvitaan ja mitä tietoja tietokantaan pitää tallettaa.
  3. Kirjoita vaatimusmäärittely excelissä uudelle välilehdelle.
  4. Tarkistuta vaatimusmäärittelysi järkevyys demo-ohjaajalla.
  5. Piirrä vaatimusmäärittelysi pohjalta järjestelmää kuvaava ER-kaavio. Tarkistuta kaaviosi demo-ohjaajalla.

Tallenna Erkalla piirtämäsi kaavio U:-asemalle tiedonhallinta-kansioon futis.erkka-nimellä.

Listalta tulee kurssin asioihin liittyvää tarpeellista postia.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tiedonhallinta/demot/demo1/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2011-01-20 12:03:37
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta