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:
- Kuinka kohdetyypit löydetään vaatimusmäärittelystä?
- Millaisia suhteita on olemassa vaatimusmäärittelystä löytyvien kokonaisuuksien (kohteet) välillä?
Esimerkkejä tietokannan suunnittelusta löytyy luennolta 2
Pieni opiskelijatietokanta
Lyhyt vaatimusmäärittely
Tietokannaltamme vaaditaan seuraavanlaisia asioita:
- Opiskelijoista on tallennettava oleellisimmat tiedot eli ainakin hetu, sähköpostiosoite, nimi, osoite, puhelinnumerot ja aloitusvuosi.
- Tietokannasta on löydyttävä yliopiston laitosten ja tiedekuntien nimet sekä tieto siitä minkä laitoksen opiskelija kukakin opiskelija on. Tiedekunnathan jakautuvat ainelaitoksiin.
- Tietokantaan halutaan myös tiedot kursseista, niiden laajuudesta (opintoviikkomäärä), kurssikoodit, minkä laitoksen kurssi on kyseessä ja mitä kursseja kukakin opiskelija on suorittanut, milloin ja millä arvosanalla.
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:
- Opiskelija
- Laitos
- Tiedekunta
- Kurssi
-
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/
Piirrä edellämainitut kohteet (Entity) Erkalla seuraavan kuvan mukaisesti. Nimet saat muutettua ikkunan vasemmasta reunasta kohteen ollessa aktiivisena (valittuna).
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:
- Opiskelijat tekevät kurssiin liittyviä tenttejä (suorituksia)
- Jokainen opiskelija kuuluu johonkin laitokseen
- Jokainen laitos kuuluu johonkin tiedekuntaan
- Jokaisen kurssin järjestää jokin tietty laitos
Piirrä Erkalla edellämainitut suhteet (Relationship) eli pelkät "salmiakit".
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.
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.
- Opiskelija
- Hetu
- Sähköpostiosoite
- Etunimi
- Sukunimi
- Lähiosoite
- Postinumero
- Postitoimipaikka
- Puhelinnumero
- Aloitusvuosi
- Kurssi
- Nimi
- Kurssikoodi
- Laajuus
- Laitos
- Nimi
- Tiedekunta
- Nimi
- Tenttii
- Päivämäärä
- Arvosana
Tehtäviä
Piirrä Erkalla edellämainitut ominaisuudet kaavioon.
-
Ominaisuudet esitetään ellipsien sisällä, jotka liitetään viivalla joko kohteeseen tai suhteeseen.
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:
Ominaisuus | Pakollinen | Oletusarvo |
---|---|---|
Kurssikoodi | Kyllä | |
Nimi | Kyllä | |
Laajuus | Kyllä | 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
- 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:
- Vain tietyt määrätyt syötteet kelpaavat. Esim. jonkin tehtävän suoritusmerkintä saa olla vain "Hyväksytty" tai "Hylätty".
- Syötetty tieto saa olla vain tietyltä väliltä esim. numeerinen arvo pitäisi olla 1 - 100.
- Erikoisrajoitteet: Esim. Kurssin luennoija ei voi osallistua omalle kurssilleen.
- Arvolla on jokin alaraja tai yläraja
- Arvon oikeellisuuden määrää jokin kaava tai funktio. Esim. hetu tai viitenumero
Kurssi - esimerkki
Ominaisuus | Rajoitteet |
---|---|
Kurssikoodi | Kolme ensimmäistä merkkiä ovat kirjaimia ja kolme viimeistä ovat numeroita tai kirjaimia. |
Nimi | |
Laajuus | Kelpuutetaan vain kokonaislukuarvot ja puolikkaat. |
- Käynnistä Excel.
- Kirjoita jokaiseen kohteeseen liittyvien ominaisuuksien mahdolliset rajoitteet ja muut huomautukset esimerkin mukaiseen taulukkoon.
- 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
- Sinulla on reseptejä, jotka on luokiteltu sen mukaan ovatko ne jälkiruokia, pääruokia, leivonnaisia jne. (ruokalajeja)
- Reseptiin liittyy aina valmistusaineita (maitoa, kananmunia, jauhoja jne.). Jokaista valmistusainetta käytetään tietty määrä, joka ilmaistaan sopivissa yksiköissä (litroja, desilitroja, grammoja, lukumäärä jne.)
- Reseptiin liittyy myös tietty määrä valmistusvaiheita.
- Reseptistä pitää aina tietää kuinka monen henkilön annos kyseisellä reseptillä syntyy.
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
- 2 banaania
- 2 rkl currya
- 1 sipuli
- 3 valkosipulinkynsi
- 2 dl ruuanvalmistusjugurttia
- 3 rkl mangochutneyta
- 1 tl suolaa
- 1 rkl öljyä
- Silppua sipuli ja murskaa valkosipulinkynsi
- Kuumenna pannussa oljya ja kuullota sipulisilppu
- Lisaa curryjauhe, valkosipuli, mangochutney ja suola
- Kiehuta miedolla lammolla viisi minuuttia, lisaa kerma ja kiehuta viela viisi minuuttia
- jos kaytat ruuanvalmistusjugurttia niin ala keitä sitä, juoksettuu helposti.
- Lohko banaanit viipaleiksi ja sekoita joukkoon.
- Tarjoaa persiljariisin kera... alkuperaisen ohjeen mukaan pitaisi syoda kylmänä mutta maistuu erinomaiselta myös lämpimänä :)
onannavpheel
- 2 onannavn
- 2 exy pheeln
- 1 fvchyv
- 3 inyxbfvchyvaxlafv
- 2 qy ehhnainyzvfghfwhtheggvn
- 3 exy znatbpuhgarlgn
- 1 gy fhbynn
- 1 exy öywlä
- Fvycchn fvchyv wn zhefxnn inyxbfvchyvaxlafv
- Xhhzraan cnaahffn bywln wn xhhyybgn fvchyvfvycch
- Yvfnn pheelwnhur, inyxbfvchyv, znatbpuhgarl wn fhbyn
- Xvruhgn zvrqbyyn ynzzbyyn ivvfv zvahhggvn, yvfnn xrezn wn xvruhgn ivryn ivvfv zvahhggvn
- wbf xnlgng ehhnainyzvfghfwhtheggvn avva nyn xrvgä fvgä, whbxfrgghh urycbfgv.
- Ybuxb onannavg ivvcnyrvxfv wn frxbvgn wbhxxbba.
- Gnewbnn crefvywnevvfva xren... nyxhcrenvfra buwrra zhxnna cvgnvfv flbqn xlyzäaä zhggn znvfghh revabznvfrygn zlöf yäzcvzäaä :)
Tehtävät
- Etsi ja piirrä kohteet
- Piirrä kohteiden väliset suhteet
- Lisää kohteisiin ja suhteisiin niihin liittyvät ominaisuudet
- Määrittele ominaisuuksien pakollisuudet, oletusarvot ja rajoitteet
- 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.
- Olet järjestämässä jalkapalloturnausta. Mieti millaisen tietokantajärjestelmän tarvitset turnauksen järjestämiseen.
- Kirjoita tietokannan vaatimusmäärittely, jossa mainitset mitä ominaisuuksia tietokantasovellukselta tarvitaan ja mitä tietoja tietokantaan pitää tallettaa.
- Kirjoita vaatimusmäärittely excelissä uudelle välilehdelle.
- Tarkistuta vaatimusmäärittelysi järkevyys demo-ohjaajalla.
- 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