Avaimet, tietotyypit, kardinaalisuudet - Demo 2

Mallivideo

Ongelmia videon katselussa?

Tee ensin edellisistä demoista reseptitietokantaosuus valmiiksi. Jalkapalloturnaukseen liittyviä tehtäviä ei tarvitse välttämättä tehdä.

Tällä demokerralla jatketaan edellisellä kerralla aloitettujen ER-kaavioiden parissa. Nyt merkitään kaavioihin perusavaimet, ominaisuuksien tietotyypit ja määritellään kohteiden väliset kardinaalisuudet.

Kardinaalisuudet

Kardinaalisuus kertoo, kuinka moneen suhteeseen kohde voi tai tulee osallistumaan. Vaihtoehdot ovat:

Tietokantamme kardinaalisuudet muodostuvat seuraavasti:

Tehtävät

  1. Käynnistä Erkka valinnalla Start | All Programs | Erkka.
  2. Avaa edellisellä kerralla tallentamasi ER-kaavio opiskelijarekisteri.erkka
  3. Piirrä opiskelijatietokantakaavioon kardinaalisuudet ER-kaavioon merkitsemällä jokaisen suhteen ja kohteen väliin 1 tai M suhteen kardinaalisuudesta riippuen. Kardinaalisuuksia pääset Erkassa muuttamaan napauttamalla suhteen ja kohteen välisen viivan keskipistettä.

Avaimet

Ominaisuuksien joukosta pitää valita avaimet eli ne ominaisuudet, jotka yksilöivät kunkin kohteen. Yksilöimiseen voi riittää yksi ominaisuus tai voi joutua tekemään yhdistetyn avaimen useammasta ominaisuudesta.

Joidenkin kohteiden tai ominaisuuksia sisältävien suhteiden yksilöimiseen eivät aina välttämättä riitä niiden omat ominaisuudet vaan mukaan on otettava niihin liittyviä kohteita. Opiskelijatietokannassa on seuraavat avainehdokkaat (joissain useampi vaihtoehtoja):

Avainehdokkaiden joukosta valitaan parhaiten sopiva yksilöiväksi avaimeksi. Paras avain on yleensä kooltaan pienin ja varmimmin uniikkina pysyvä. Joskus kannattaa tietokannan toiminnan tehostamiseksi luoda uusi ominaisuus, joka toimii pelkästään avaimena.

Tehtäviä

  1. Merkitse avaimet ER-kaavioon valitsemalla ominaisuus ja ruksaamalla Primary key -valinta. Erkka ei mitenkään erityisesti korosta avainkenttiä, mutta muilla työkaluilla avainkentät voidaan näyttää alleviivattuina ohjeisen kuvan mukaisesti.

    Avain

Tietotyypit

Jokaiselle ominaisuudelle pitää määrittää tietotyyppi. Tietotyyppiä valittaessa pitää usein määritellä myös tietoa varten varattava tila. Tilanvarausta miettiessä pitää olla erityisen tarkka, koska mikään ei ole ärsyttävämpää, kuin esim. sukunimi-kenttä johon ei mahdu kirjoittamaan pitkää sukunimeään.

Tietotyyppi voi olla:

Tehtäviä

  1. Avaa viime demossa tallentamasi Excel-taulukko, jossa on ominaisuuksiin liittyviä rajoitteita. Taulukosta voi olla hyötyä tietotyyppien määrittämisessä.
  2. Valitse Erkassa jokainen ominaisuus vuorollaan ja valitse alasvetovalikosta jokaiseen ominaisuuteen parhaiten sopiva tietotyyppi. Itsekeksityt perusavaimet (ID-kentät) kannattaa yleensä määritellä kokonaisluvuiksi (INTEGER).
  3. Jos valitse tietotyypiksi NUMERIC, CHAR tai VARCHAR niin merkitse lisäkenttään tietotyyppiin liittyvä rajoite.
    • NUMERIC => numeroiden kokonaismäärä, desimaalien määrä
    • CHAR => merkkien kiinteä määrä
    • VARCHAR => merkkien maksimimäärä
  4. Merkitse samalla myös kenttien pakollisuudet jos et niitä vielä ole merkinnyt. Pakolliset kentät merkitään valinnalla NOT NULL, ei-pakolliset valinnalla NULL. Kenttiin, joihin voi keksiä oletusarvon, kannattaa valita DEFAULT-arvo. Arvon voit syöttää VALUE-kenttään.
  5. Pyydä ohjaajaa tarkistamaan määrittelysi.
  6. Tallenna ER-kaaviosi U:-asemalle tiedonhallinta-hakemistoon nimellä opiskelijarekisteri.erkka.

Tietokannan luominen

  1. Varmista että ER-kaaviossasi ei ole missään kohdassa käytetty skandinaavisia merkkejä (å,ä tai ö).
  2. Valitse Erkasta Query-välilehti. Jos kaikki on kunnossa niin Erkka tekee tietokannan luomiseen tarvittavat SQL-lauseet. Jos SQL-lauseiden tekeminen ei onnistu niin palaa ER-kaaviovälilehdelle ja varmista että kaikki kardinaalisuudet ovat paikoillaan ja jokaisella kohteella on määriteltynä perusavain (primary key). Kokeile sitten taas uudelleen Query-välilehteä. F5-näppäimellä saat päivitettyä SQL-näkymän.
  3. Voit tarkistella ja järjestellä tietokantasi relaatiokuvaa Relation-välilehdellä.
  4. Tässä vaiheessa täytyy luoda uusi tietokanta johon voimme luoda Erkalla määritellyt relaatiot
    • Käynnistä Microsoft Access (Start|Programs|Microsoft Office|Microsoft Office Access 2003)
    • Valitse File|New
    • Valitse oikean laidan palkista Blank database
    • Valitse tietokannan tallennuspaikaksi C:\Mytemp ja nimeksi opiskelijarekisteri.mdb. Accessin tietoturvarajoituksista johtuen tietokantaa ei voida käyttää verkkolevyltä (U-asema).
    • Sulje tietokanta hetkeksi, mutta älä sulje Accessia. Palaa takaisin Erkka-ohjelmaan.
  5. Siirry Erkka-ohjelmassa Query-välilehdelle.
  6. Valitse File | Open Database.
  7. Etsi C:\MyTemp-kansiosta edellä luomasi opiskelijarekisteri.mdb-tiedosto.
  8. Nyt voit avata tietokannan takaisin auki Accessiin. Yleensä sulkemista ei tarvitse tehdä, ongelma lienee Access-tietokantaajureissa tai Erkassa.
  9. Nyt sinulla on yhteys tietokantaan ja voidaan luoda tietokantaan suunnittelemamme relaatiot (taulut).
  10. Valitse Execute
  11. Results-paneeliin pitäisi ilmestyä ilmoitukset SQL-lauseiden suorittamisesta. Älä pelästy vaikka ensimmäiset rivit ilmoittavatkin virheistä. Ensimmäiseksi yritetään poistaa jo olemassaolevia tauluja eikä niitä tietenkään tässä vaiheessa vielä löydy.
  12. Jos ongelmana on
    Error in query CREATE: Syntax error in field definition.
    niin tarkista, että minkään kentän tietotyyppinä ei lue sana error. Jos löydät tälläisen kentän niin käy er-kaaviossa muuttamassa kentän tyyppiä, klikkaa välillä piirtoaluetta ja muuta tyypiksi oikea. Virhe johtuu Erkassa olevasta bugista jota ei ole vielä saatu korjattua. Toinen vaihtoehto tälle virheelle on luultavasti ongelma length- tai value-kentän arvoissa (liittyvät NUMERIC- tai DEFAULT-valintoihin).

    Jos Results-paneeliin tulee valitus

    Error in query CREATE: Cannot find table or constraint.
    niin tällöin Erkka on luonut SQL-lauseet väärän järjestykseen. Järjestä leikepöydän avulla CREATE TABLE-käskyt niin että viitteet toisiin tauluihin menevät oikein.
    • Esimerkiksi Laitos-taulu pitää olla Tiedekunnan jälkeen (Tiedekunnasta viittaus Laitokseen), mutta ennen Opiskelijaa (Opiskelijasta viittaus laitokseen).
  13. Siirry Microsoft Accessiin ja tarkista mitä näkyy Tables-välilehdellä. Saat päivitettyä välilehden sisällön F5-näppäimellä. Jos kaikki meni oikein niin listassa pitäisi näkyä Kurssi, Laitos, Opiskelija, Tenttii ja Tiedekunta.
  14. Jos jokin tauluista ei ilmestynyt Accessiin niin tarkista SQL-lauseiden oikeellisuus yhdessä demo-ohjaajan kanssa ja yritä sen jälkeen uudelleen Execute-painiketta..
  15. Valitse Accessissa Tools | Relationships. Järjestele taulut parempaan järjestykseen. Vertaa Accessin relaatiokuvaa Erkan Relation-välilehden kuvaan ja katso, että ne ovat samansisältöisiä.
  16. Sulje Relationships-ikkuna ja tallenna siihen tehdyt muutokset. Kopioi opiskelijarekisteri.mdb C:\Mytemp-hakemistosta U:\tiedonhallinta-hakemistoon.

Reseptitietokanta

  1. Tee opiskelijatietokannan tapaan kardinaalisuuksien, perusavainten ja tietotyyppien määrittely edellisissä demoissa aloittamallesi reseptitietokannalle.
  2. Pyydä ohjaajaa tarkistamaan määrittelysi.
  3. Tee Accessilla resepti.mdb ja luo tähän tiedostoon tietokantasi taulut SQL-lauseilla opiskelijatietokannan tapaan.

Jalkapalloturnaus

  1. Jos sinulle jäi vielä aikaa niin tee kardinaalisuuksien, perusavainten ja tietotyyppien määrittely myös jalkapalloturnausta käsittelevään ER-kaavioon.
  2. Luo myös jalkapallotietokanta Accessiin.

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/demo2/
© 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/>
2009-03-23 11:48:10
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto