TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 2 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 27/8/17 Helsinki Metropolia University of Applied Sciences 1
Oppitunnin sisältö 1. Johdanto tietokannan suunnitteluun ja toteutukseen 2. Relaatiomalli 3. Microsoft Accessin perusteita Pasi Ranne Metropolia Ammattikorkeakoulu 2
Tietokannan suunnittelu ja toteutus
Tietokannan suunnittelu ja toteutus Huotari Pasi Ranne Metropolia Ammattikorkeakoulu 4
Tiedon mallintaminen Optimaalinen tiedonhallintaratkaisu edellyttää tallennettavan tiedon sisällön ja riippuvuuksien analysointia. Mallinnuksen perusteella voidaan päättää, millainen toteutus ja mitkä työvälineet ovat analysoituun tapaukseen sopivimmat. Käytännössä ratkaisu on useimmiten relaatiotietokanta, mutta tulosta voidaan hyödyntää myös muissa ratkaisuissa. 28.08.2017 Pasi Ranne 5
Käsiteanalyysi Myös ER-mallinnus, tietomallinnus Analyysi aloitetaan rajaamalla kohdealue (se osa reaalitodellisuutta, josta olemme kiinnostuneita) Kohdealueelta pyritään tunnistamaan ja määrittelemään käsitteitä (entity) ja niiden ominaisuuksia (attribuutteja) Asiakas nimi, osoite Tilaus tilausnumero, päivämäärä, tilausrivi Tuote nimi, tuotenumero, kuvaus, hinta Tämän jälkeen selvitetään käsitteiden välisiä suhteita ja riippuvuuksia (erityisesti lukumääräsuhteita) Työskentely on luonteeltaan iteratiivista ja tehdään tavallisesti toimeksiantajan (asiakkaan) ja toteuttajan yhteistyönä Useita graafisia kuvausjärjestelmiä on olemassa 28.08.2017 Pasi Ranne 6
Käsiteanalyysi Käsiteanalyysi on hyvän tietokantasuunnitelman kannalta oleellista Relaatiomalli mahdollistaa monia tiedonhallinnan kannalta toivottavia asioita, mutta huono suunnittelu johtaa huonoon tietokantaratkaisuun Yhtä ainoaa oikeaa vastausta analyysin tuloksena ei ole olemassa: All models are wrong, but some are useful... Do not fall in love with one model! Better is worse than good enough. Käsiteanalyysiin syvennytään tarkemmin myöhemmin tällä opintojaksolla. 28.08.2017 Pasi Ranne 7
Esimerkki ER-mallista Chenin alkuperäinen notaatio (1976) COUNTRY CODE NAME COUNTRY PRODUCT 1 N IS_ORIGIN_OF IS_INVOICED N M CUSTOMER 1 HAS N INVOICE 28.08.2017 Pasi Ranne 8
Esimerkki ER-mallista Harakanvarvasnotaatio Asiakas Lasku Maa Tuote Pasi Ranne 9
Esimerkki ER-mallista UML-notaatio (UML:n luokkakaavio) 28.08.2017 Pasi Ranne 10
Esimerkki ER-mallista MS Access 28.08.2017 Pasi Ranne 11
Relaatiomalli
Relaatiomallin peruskäsitteet 1 Tietokanta muodostuu useista tauluista (relaatioista). Yksittäinen tieto esiintyy tietokannassa vain ja ainoastaan yhden kerran Jos tätä rikotaan niin seurauksena on tiedon ylläpidon vaikeutuminen Tieto voi esiintyä vain yhdessä taulussa, ja vain yhdessä attribuutissa. Poikkeuksena ovat relaatioiden yhteyksien kuvaamiseen käytetyt viiteavainattribuutit. Viope Pasi Ranne 13 04.09.2013
Relaatiomallin peruskäsitteet 1 Kaikki tieto tallennetaan tauluihin, jotka koostuvat sarakkeista ja riveistä. Taululle annetaan tietokannan sisällä yksikäsitteinen nimi. Taulussa on sarake jokaista entiteetin attribuuttia (ominaisuutta) varten. Sarakkeella on taulun sisällä yksikäsitteinen nimi. Sarake voi sisältää arvoja vain yhdestä arvoalueesta (esim. kokonaisluku). Sarakkeiden järjestyksellä ei ole merkitystä. Yhdelle riville tallennetaan yhden erillisen yksilön (olion) attribuuttien arvot. Yksittäinen rivi koostuu kentistä (soluista) Kenttä sisältää yksittäisen tiedon, joka on attribuutin arvoalueen mukainen. Rivien järjestyksellä ei ole merkitystä. Taulussa ei saa olla kahta täysin samanlaista riviä. Taulun nimi: Työntekijä = sarakkeen nimi Viope Pasi Ranne 14 04.09.2013
Attribuutin arvojoukko Relaatiomalli edellyttää tiedon määrämuotoisuutta ja arvojen atomisuutta (jakamattomuutta) Attribuutti voi sisältää arvoja vain yhdestä arvoalueesta (esim. kokonaisluku) Tyhjä arvo (NULL) kuuluu kaikkiin arvojoukkoihin Relaatiomallissa attribuuttien arvoalueet voidaan määritellä täysin vapaasti TuoteNimi sisältää kaikkien yrityksen valmistamien tuotteiden nimet TKHJ ei yleensä tue arvoalueita, vaan sarakkeille määritellään tietotyyppi (char, varchar, int, ) ja niille rajoitteita (esim. merkkijonon pituus) TuoteNimi varchar(80) Pasi Ranne Metropolia Ammattikorkeakoulu 15
NULL Tyhjä arvo ei siis esim. 0 tai välilyönti Mihin tarvitaan? Arvoa ei tiedetä Arvoa ei ole Mikä Työntekijä-relaation attribuutti voisi saada arvon NULL? Tyontekija(TyontekijaID, Nimi, ToimipaikkaID, PuhNumero, Kotiosoite) NULL arvoa ei voi käyttää laskennassa eikä siihen voi verrata toista arvoa TKHJ tarjoaa mekanismeja NULL-arvojen hallintaan Pasi Ranne Metropolia Ammattikorkeakoulu 16
Relaatiomallin peruskäsitteet 2 Tietokanta koostuu käytännössä aina useammasta kuin yhdestä relaatiosta Relaatiomalli johtaa usein tietokantaan jossa on lukuisia pieniä tauluja syitä tähän käsitellään tietokannan suunnittelun yhteydessä Taulujen välillä on sisällöltään vastaaviin kenttiin - avainattribuutteihin - perustuvia suhteita (relationship) Pasi Ranne 17 28.08.2017
Pääavain eli perusavain (primary key) Taululla on aina oltava pääavain, joka yksilöi rivit tietokanta käsittelee taulun tietueet pääavaimen perusteella Pääavain on pienin mahdollinen joukko taulun attribuutteja, jotka riittävät yksilöimään rivit pääavain voi muodostua yhdestä tai useammasta attribuutista Pääavaimen arvo ei voi olla tyhjä Käytännössä pääavaimeksi määritellään usein erityinen tunnistenumero esim. tilausnumero, opiskelijanumero, TyontekijaID Pääavain voi olla yhdistetty eli muodostua kahdesta tai useammasta attribuutista yhtä aikaa Avaimen arvo on yhdistelmä attribuuttien arvoista Yleinen relaatioiden monesta-moneen suhteiden purkamiseen käytetyissä tauluissa (katso esim. Viopen 2. oppitunti, Tyoskentelee-taulu). Pasi Ranne Metropolia Ammattikorkeakoulu 18
Viiteavain eli vierasvain (foreign key) Taulujen väliset yhteydet toteutetaan viiteavaimien avulla Viiteavain viittaa toisen relaation pääavaimeen Viiteavaimella oltava sama arvoalue kuin toisen taulun pääavaimella Viiteavaimen arvo voi olla tyhjä jos yhteys taulujen välillä ei ole pakollinen Hyvä käytäntö on määritellä viiteavainattribuutin nimeksi viitattavan taulun pääavainattribuutin nimi Sama attribuutti voi olla yhtä aikaa sekä viite- että pääavain. Yleistä monesta-moneen suhteiden purkamiseen käytetyissä relaatioissa Pasi Ranne Metropolia Ammattikorkeakoulu 19
Peruskäsitteiden harjoittelua 1. Alustavassa tietokantasuunnitelmassa on seuraavat relaatiot: KURSSI(kurssi_id, nimi, laajuus, vastuuopettaja) KURSSIKIRJA(isbn, kurssi_id, nimi, tekijat, painos) OPETTAJA(opettaja_id, sukunimi, etunimi) Määrittele relaatioiden pääavaimet. Määrittele relaatioiden viiteavaimet ja mihin ne viittaavat. Ovatko attribuuttien nimet hyvin valittuja ja selkeitä? 2. Mitä vikaa allaolevissa relaatioissa on relaatiotietomallin kannalta? a) OPISKELIJA(sukunimi, etunimi, syntymävuosi, aloitus_vuosi) b) KURSSI(kurssi_id, nimi, opettaja_ja_laajuus) c) KURSSIN_KIRJA(isbn, kirjan_nimi) d) KOULUTUSOHJELMA(ko_id, ko_nimi, kurssi_id1, kurssi_id2, kurssi_id3, kurssi_id10) Pasi Ranne Metropolia Ammattikorkeakoulu 20
Tietokannan eheyssäännöt Yksilön eheyssääntö: Taulussa ei saa olla kahta tai useampaa samanlaista riviä Viite-eheyssääntö: Viiteavaimen arvon on löydyttävä viitatun taulun pääavaimien arvoista tai viiteavaimen arvon on oltava tyhjä Ei saa viitata sellaiseen taulun riviin, jota ei löydy Arvojoukkoeheyssääntö: Attribuutin arvot kuuluvat samaan arvojoukkoon Käytännössä TKHJ:ssä voi arvojoukkoa rajata määrittelemällä tietotyyppi, pituus, sallitut arvot, pakollisuus jne. TKHJ huolehtii eheyssääntöjen valvonnasta niin haluttaessa Pasi Ranne Metropolia Ammattikorkeakoulu 21
Harjoitus: Eheyssäännöt Anna Viopen Projektitietokannan Työntekija ja Toimipaikka relaatioiden tapauksessa esimerkki lisättävästä rivistä, jossa on a) virheellinen pääavaimen arvo b) virheellinen viiteavaimen arvo c) arvojoukkoeheyden rikkova sarakkeen arvo Miksi annetut arvot ovat virheelliset? Pasi Ranne Metropolia Ammattikorkeakoulu 22
Relaatiokaava (Relation schema) R(A1, A2,, An) R = relaation nimi A1, A2,, An = attribuuttilista Työntekija(TyöntekijaID, Nimi, ToimipaikkaID, PuhNumero, Kotiosoite) Pääavain alleviivataan Pasi Ranne Metropolia Ammattikorkeakoulu 23
Relaatiomallin peruskäsitteet 3 Relaatiomallin lähtökohta on, että yksittäinen tieto esiintyy tietokannassa vain kerran Tauluja käsitellään relaatio-operaatioilla, joiden tuloksena on (uusia, mahdollisesti tilapäisiä) tauluja Tätä aihetta käsitellään tarkemmin myöhemmillä luennoilla Pasi Ranne 24 28.8.2017
Microsoft Access Relaatiotietokantaohjelmisto, jossa lisäksi mukana sovellus- ja raporttikehitin Tarkoitettu pääasiassa tavallisille loppukäyttäjille, ei niinkään tietotekniikka-ammattilaisille Käytetään henkilökohtaisten sovellusten lisäksi myös laajoissa yritysratkaisuissa Liitettävissä oikeisiin relaatiotietokantoihin Webissä monia hyviä tutoriaaleja englanniksi, esim. GCFLearnFree.org http://www.gcflearnfree.org/access2010/3 yo. oppintuntien videot suoraan YouTubessa: http://www.youtube.com/watch?v=ntj8bfhnmq8&feature=r elated Microsoftin Suomen sivuilla Accessin perustoimintojen esittely: http://office.microsoft.com/fi-fi/access-help/access-2010-n- perustoiminnot- HA101829991.aspx?CTT=5&origin=HA010341722 Pasi Ranne Metropolia Ammattikorkeakoulu 25
Lähteitä Relaatiotietokantasanasto: http://www.cs.helsinki.fi/relaatiosanasto/ Pasi Ranne Metropolia Ammattikorkeakoulu 26