TIETOKANNAT I. Kurssimoniste. Mika Karhulahti Syksy 2002

Koko: px
Aloita esitys sivulta:

Download "TIETOKANNAT I. Kurssimoniste. Mika Karhulahti mika.karhulahti@jypoly.fi http://homes.jypoly.fi/~karmi Syksy 2002"

Transkriptio

1 TIETOKANNAT I Kurssimoniste Mika Karhulahti mika.karhulahti@jypoly.fi Syksy 2002 Liiketalous Tietojenkäsittelyn koulutusohjelma

2 1 Tietokannan hallintajärjestelmien toteutusperiaatteet Määritelmiä Tietokannan määrittely Tkhj:n arkkitehtuuri ja toiminta TKHJ:n perusperiaatteita Tietokantajärjestelmän suunnittelu Tietokantasuunnittelun vaiheet Vaatimusten määrittely ja analyysi ER-Malli Käsitekaavan (ER) diagramminotaatiot Mallintaminen ER-mallin laajennus: abstraktiorakenteet Käsitekaavan (ER) yleistys/erilaistamismuodot Relaatiomalli Tiedonhallintamallit Rakenne relaatiomallissa Transformointi käsitekaavasta Tietokannan rakenteen määrittely ja tietotyypit Tietokannan rakenteen määrittely Eri tietokantojen tietotyyppimäärityksiä Taulujen suunnittelu Taulujen luominen ja rakenteen muuttaminen SQL-kielen avulla Structured Query Language (SQL) Taulujen luominen Rajoitteet Taulun rakenteen muuttaminen Tietokannan sisällön käsittely SQL-kielellä Yleistä hakuoperaatioista Yksinkertaisia predikaatteja Useamman relaation käsittely Muita predikaatteja Koostefunktiot Ryhmittely ja lajittelu SELECT-lauseessa Lähteet Liitteet... 65

3 1 Tietokannan hallintajärjestelmien toteutusperiaatteet Määritelmiä Tietokanta Tietokanta on kokoelma tiettyä kohdetta kuvaavia tietoja, joita yksi tai useampi tietojärjestelmä käyttää ja päivittää (Suuri tietotekniikan tietosanakirja) Tietokanta ymmärretään lähestymistavasta riippuen tietueiden joukkona, arvojen joukkona, ilmaisujen joukkona, relaatioiden joukkona, olio- tai sääntöjoukkona. Olennaisia tietokannan tiedoille on niiden tarpeellisuus, sidokset toisiinsa ja yhteiskäyttöisyys. Yleensä: Tietokanta on laaja, tiedot muuttuvat päivittäin, samaa tietoa ei esiinny useammassa paikassa, tiedot ovat elektronisessa muodossa, tietokannan käsittely tapahtuu tietokannan hallintajärjestelmän tuella Tietokannan hallintajärjestelmä (tkhj) Tietokannan hallintajärjestelmä on tietokannan hallintaan tarkoitettu yleisohjelmisto. Tietokannan hallintajärjestelmä mahdollistaa mm. Tietokannan määrittelyn, Tiedon haun Tiedon samanaikaisen käsittelyn (concurrency) Tiedon eheyden varmistamisen (integrity) Virhetilanteista toipumisen (recovery, resiliency) Tiedon turvaamisen (authorization, security) Tietokantajärjestelmä Tietokantajärjestelmä on tietojärjestelmä, joka sisältää tietokannan ja sen käyttöön sekä ylläpitoon tarkoitetun ohjelmiston ja laitteiston

4 3 KÄYTTÄJÄT SOV.OHJELMAT / KYSELYT TIETOKANTA- JÄRJESTELMÄ TIETOKANNAN HALLINTA- JÄRJESTELMÄ KYSELYJEN PROSESSOINTI-OHJELMA OHJELMA JOLLA ON PÄÄSY TALLENNETTUUN TIETOON TIETOKANNAN KUVAUSKANTA TIETOKANTA Kuva 1.1: Yksinkertaistettu malli tietokantajärjestelmästä (Leppänen 2000) 1.2 Tietokannan määrittely Tietokannan rakenne ja sisältö määritellään erityisessä kuvauskannassa (tietohakemisto, metakanta), joka on usein samanrakenteinen kuin varsinainen tietokanta. Määritystapa on kehittynyt historiallisesti seuraavasti: yksitasoinen (1960-luvun alku) kaksitasoinen (1969, 1971) kolmitasoinen (1976) moniulotteinen (1986) Tietokannan kolmitasoinen määritystapa Suurin osa kaupallisista tietokannan hallintajärjestelmistä on toteutettu kolmitasoisen määritystavan mukaisesti. Siksi se käydään läpi hieman tarkemmin. sisäinen kaava määrittää koneen näkemyksen tietokannan tiedoista (fyysiset tietorakenteet ja saantimenetelmät) käsitekaava määrittää organisaation kokonaisnäkemyksen tietokannan sisällöstä. (Taulut ja niiden liittymäkohdat) ulkoinen kaava määrittää yhden tai useamman samantapaisen sovelluksen näkemyksen tietokannan sisällöstä

5 4 LOPPUKÄYTTÄJÄT ULKOINEN TASO Ulkoinen/käsitteellinen mallinnus U L K O IN E N K A A V A (1) U L K O IN E N K A A V A (N ) KÄSITTEELLINEN TASO K Ä SITE K A A VA K äsitteellinen/sisäinen mallinnus SISÄINEN TASO S IS Ä IN E N K A A V A Kuva 1.2: Tietokannan 3-tasoinen määritystapa (Leppänen 2000) TALLENNETTU TIETOKANTA Tietomallit Tietomallilla voidaan määrittää tietokannan perusrakenne, rajoitteita tietosisällölle sekä operaatioita tietokannan käytölle. Tietomalli on metamalli eli malli mallista, joka esittää tietyn tietokannan rakenteen, sisällön tai käytön. Postinro Astun Asni Postitoimipaikka Puhelin FIRMA 1 TOISSA Htun Astun N HENKILO Tutkinto Etunimi Sukunimi Kunta Kuva 1.3: Esimerkki ER-kaaviosta (Käsitemalli)

6 5 Käsitemalli Käsitemalli määrittelee käsitteellisen tason mallintamisen käsitteet ja säännöt (esim. ER-malli) Käsitemallin avulla voidaan tietokantasuunnitteluun tuoda organisatorinen näkemys mukaan jo suunnittelun alkuvaiheessa. Looginen malli Looginen malli määrittelee loogisen tason mallintamisen käsitteet ja säännöt (esim. relaatiomalli). Kuva 1.4 Esimerkki relaatiomallista (looginen malli) (Hovi 2000)

7 6 Fyysinen malli Fyysinen malli eli säilytysmalli määrittelee fyysisen tason mallintamisen käsitteet ja säännöt. Kuva 1.5 Esimerkki säilytysmallista (fyysinen malli) (Leppänen 2000) Tietokantakielet Tietomallin määritykset esitetään tietokantakielillä, joita ovat: Tiedon määrityskieli (DataDefinitionLanguage) Kielellä määritellään kaavan sallitut käsitteet, rakenteet ja rajoitteet tietokannan luonti ja rakenteen muutokset esim. CREATE TABLE Firma (Astun char(4) NOT NULL, Asnimi char(20), Postinro char(5), PRIMARY KEY (Astun)); Tiedon käsittelykieli (Data Manipulation Language) käskyt ja joskus myös ohjelmat, joilla tietokannan tietoja haetaan, lisätään, muutetaan tai poistetaan toiselta nimeltään kyselykieli esim. SELECT Astun, Asnimi FROM Firma WHERE Postinro= ; Isäntäkieli (host language) ne ohjelmaosat, jotka eivät tee viittauksia tietokantaan (esim. käyttöliittymä, laskutoimitukset, toistorakenteet) ohjelmointikieliä: Cobol, C, Fortran, C++,.. Tiedon käsittelykielen lauseet upotetaan (embedded language) tällöin isäntäkieliseen koodiin

8 7 1.3 Tkhj:n arkkitehtuuri ja toiminta Kuvassa 1.6 on esitetty kaavamainen kuvaus tkhj:n keskeisistä osista ja niiden välisistä suhteista. Seuraavassa selostetaan osien roolia tkhj:n tavanomaisessa toiminnassa: Kuva 1.6: Kaavio tkhj:n toiminnasta (Leppänen 2000) tavallisen käyttäjän korkean tason kielellä esittämät kyselyt ohjataan kyselyprosessorin käsiteltäviksi. Sen looginen osa muuttaa kyselyn sisäiseen muotoon ja päättää kyselyn optimaalisesta suoritustavasta. Sen fyysinen osa ohjaa kyselyn toteutusta valitun suoritustavan mukaisesti. Kyselyn jäsentämisessä ja optimoinnissa käytetään hyväksi tietokantamäärityksiä ja tilastotietoja (tietohakemisto).

9 Tietokannan hoitajan antamat tiedonmääritykset (DDL-lauseet) ohjataan asianomaiselle kääntäjälle, jonka antaman tulkinnan mukaiset sisäiset määritykset (koskien esim. relaatioiden rakenteita, tallennusrakenteita, näkymiä jne) tallennetaan tietohakemistoon. Sovellusohjelmien koodi ohjataan esikääntäjälle ja edelleen DMLkääntäjälle tai isäntäkielen kääntäjälle. Käännetyt ohjelmanosat linkitetään, jolloin muodostuu transaktioita, jotka ohjaavat ajoaikaisia prosessoreja.. Ajoaikainen tietokantaprosessori huolehtii tietokannan saantioperaatioista yhdessä tiedostonkäsittelijän kanssa. TKHJn kanssa tekemisissä välittömästi tai välillisesti on useita erilaisia käyttäjäryhmiä, joilla kullakin on erilaisia rooleja: peruskäyttäjä (end user), joka hakee ja päivittää tietokannan tietoja. o satunnainen käyttäjä (casual user) esim. keski-johto o parametrikäyttäjä (naive user/ parametric user): esim. lentovarausten käsittelijä o monipuolisesti käyttävä (sophisticated end user): esim. insinööri. taloussuunnittelija järjestelmän suunnittelija määrittää yhteistyössä käyttäjien kanssa tieto- ja käyttövaatimukset tietokannalle ja tekee näiden pohjalta suunnitelmat sovellusohjelmoija toteuttaa suunnitelmat tekemällä ja ylläpitämällä ohjelmia tietokannan hoitaja (data administrator) on vastuussa tkhj:n teknisestä kunnosta ja tietokannan asianmukaisesta käytöstä operaattori on tietokantajärjestelmän käytön tukena esim. käynnistämällä varmuuskopioinnit ja eräluonteiset ajot tkhj-suunnittelija on tkhj:n toimittajan palveluksessa oleva henkilö, joka edelleen kehittää tkhj:ää tuotteena välineen kehittäjä ón ohjelmistotoimittajan palveluksessa oleva henkilö, joka työskentelee tkhj:ään integroitavan ohjelmiston tuottamiseksi esim. tietokannan suunnittelua, suoritustehon seurantaa, simulointia, testitiedon generointia tai graafisen käyttöliittymän tuottamista varten tietokantakonsultti osallistuu ohjelmistotalossa asiantuntijana kehittämisprojekteihin Tkhj:n tukipalvelut Tietokannan halllintajärjestelmän tulee tarjota tukeaan monenlaiselle oheistoiminnalle lataustoiminto (loading utility): ladataan teksti- tai perkäkkäistiedostona olevat tiedot osaksi tietokantaa samalla muuttaen tiedot halutun fyysisen rakenteen mukaiseksi varmistustoiminto (backup utility): tietokannan tai sen osan automaattinen varmuuskopiointi tietokannan uudelleenorganisointi: tallennusrakenteiden muuttaminen toiminnan tehostamiseksi raporttien tuottamine: yksinkertaisten raporttimallien määrittely ja niiden mukaisten raporttien tuottaminen valvonta (performance monitoring): valvonnan kohteena käyttäjät, tiedot ja niiden käyttö - tietokannan hoitajaa varten 8

10 9 1.4 TKHJ:n perusperiaatteita Tietokannan hallintajärjestelmiltä edellytetään tiettyjä periaatteita, joista keskeisimpiä esitelty tässä. 1. Perusoperaatioiden suorittaminen tallennus, haku ja päivitys tietokannan tiedoilla 2. Tietoriippumattomuus (data independence) fyysinen: tietokannan fyysisen rakenteen muuttaminen -> ei tarvetta tehdä muutoksia sovellusohjelmiin looginen: tk:n loogisen määrityksen muutos (ohjelmien lisääminen ja niiden sekä niiden käyttämien alikaavojen muuttaminen, käsitekaavan muuttaminen olennaisia osia poistamatta)-> ei tarvetta tehdä muutoksia sovellusohjelmiin 3. Yhteiskäyttöisyys tk:n tiedot useiden henkilöiden ja sovellusten samanaikaisessa käytössä 4. Ylimäärättömyys (non-redundancy) tietojen ylimäärä=tietojen tallentaminen useampaan paikkaan täydellinen/osittainen, syntaktinen/semanttinen tavoitteena hallittu ylimäärä, joka ei vaaranna tietokannan eheyttä 5. Eheys (integrity) tietojen ristiriidattomuus: virheisiin varautuminen, virhetilanteiden paljastaminen sekä korjaamistoimet keinoja: tietokantamääritysten yhteensopivuuden tarkistaminen, suojausmenettelyt (protection) sekä toipumismenettelyt (recovery) 6. Turvaaminen (security) tiedon käyttöoikeuksien määrittäminen, toteuttaminen, valvonta ja muuttaminen voidaan rajata koskemaan tietyllä operaatiolla, tiettyä tietoalkiota, tietyllä aikavälillä, tietyltä laitteelta ja/tai tietyn henkilön suorittamaa toimintoa tukena toimiva tunnusjärjestelmä, salakirjoitus ja tietojen fyysinen eristäminen 7. Tehokkuus ja suorituskyky käyttäjien kyselyt kohtuullisessa ajassa arviointi benchmarking-ohjelmien avulla 8. Yhteensopivuus olemassa olevien tietojärjestelmien ja uuden tietokantajärjestelmän avulla tkhj:n ja varusohjelmistojen välillä tkhj:ien välillä 9. Skaalautuvuus tkhj ja tietokantajärjestelmän siirto laiteympäristöstä toiseen

11 10 2 Tietokantajärjestelmän suunnittelu 2.1 Tietokantasuunnittelun vaiheet Kuva 2.1: Tietokantasuunnittelun vaiheet (Elmasri, Navathe, 1994) Kuvassa 2.1 on esitetty karkeasti vaiheet, joiden kautta tietokantajärjestelmän suunnittelu etenee. 1. Vaatimusten määrittely ja analyysi Haastatteluin, kirjalliseen materiaaliin tutustumalla ja keskusteluin muodostetaan käsitys järjestelmältä vaadittavista ominaisuuksista (tietosisältö, käsittelytavat, vasteajat, suojaustasot jne.) tieto- ja käsittelyvaatimukset kirjataan ja niiden relevanttius sekä johdonmukaisuus tarkistetaan liiketoimintalogiikka

12 11 2. Käsitteellinen mallintaminen Tietovaatimusten perusteella laaditaan käsitekaava, joka kuvaa tietokannan sisällön ja rakenteen (ER-malli) 3 Looginen suunnittelu käsitekaavan perusteella laaditaan sisällöstä ja rakenteesta loogisen tason kuvaus (esim. relaatiokaava) käytettävissä olevan tkhj:n DDL:llä (Data Defininition Language, tiedon määrityskieli) Relaatiokaava tkhj-riippumaton, DDL-määrittely ei 4 Fyysinen suunnittelu loogisen tason kuvauksen perusteella ja tietokannan käsittelyvaatimukset huomioon ottaen, päätetään tietokannan tallennusrakenteista ja saantimenetelmistä 5 Toimintoanalyysi tietojenkäsittelyvaatimusten perusteella muodostetaan kuvaus erityisesti niistä toiminnoista, jotka käsittelevät suunniteltavan tietokannan tietoja; tarvittaessa toimintokuvauksia tarkennetaan tehtävien ja operaatioiden tasolle (transaktiosuunnittelu) 6 Sovellussuunnittelu toiminto- ja tehtäväkuvausten perusteella hahmotellaan sovellusohjelmien rajat, rakenne ja logiikka 7 Toteutus kuvaukset koodataan DML:llä ja isäntäkielellä, jonka jälkeen niiden toimivuus testataan 2.2 Vaatimusten määrittely ja analyysi Vaatimusten määrittely ja analyysi on tärkeä osa suunnittelua. Jos vaatimusmäärittely on kunnossa, suunnittelija tietää mitä tietokantajärjestelmältä halutaan. Apuna vaatimusmäärittelyssä voidaan käyttää esimerkiksi käyttötapaus (use case) tekniikkaa. Vaatimusmäärittelyn tavoitteet (ITS/UT 2002) tietokannan tietovaatimusten määrittäminen alustavien kohteiden suhteen näiden kohteiden tietojen kuvaaminen ja luokittelu kohteiden välisten suhteiden tunnistaminen ja luokittelu tietokannassa suoritettavien transaktioiden tunnistaminen sekä tiedon ja transaktioiden välinen vuorovaikutus tiedon eheyssäännöt Tiedon kerääminen olemassaolevat dokumentit (raportit, kirjalliset ohjeet, työnkuvaukset, henkilökohtaiset kertomukset ym. loppukäyttäjien haastattelut olemassaolevien automaatiojärjestelmien tutkiminen. Olemassa olevien järjestelmien suunnittelumääritysten ja dokumentaation hyödyntäminen

13 12 Vaatimusmäärittelyn kolme sääntöä 1. Keskustele loppukäyttäjien kanssa reaalimaailman termeillä. Käyttäjät eivät puhu kohteista, attribuuteista tai suhteista 2. Opettele mallinnettavan organisaation perustoiminta ja aktiviteetit 3. Loppukäyttäjät tyypillisesti ajattelevat ja luokittelevat tietoja organisatorisen asemansa mukaan. Haastattele siis mahdollisimman suurta joukkoa Käyttötapaustekniikka (Use Case) Use caset eli käyttötapaukset ovat tavallisesti oliomallinnuksen yhteydessä yleisesti käytetty tapa kuvata järjestelmälle asetettuja vaatimuksia. Use caset ovat osa vaatimusmäärittelyn dokumentaatiota, jonka avulla luodaan järjestelmästä kaikki käyttötapaukset kokoava use case -malli, joka kuvaa järjestelmän toiminnan niin kuin se näkyy käyttäjälle kukin use case kuvaa yhden käyttötapauksen sellaisena kuin se esiintyy järjestelmän ja aktorien välisenä vuorovaikutuksena Toisin sanoen: use case malli on joukko tekstimuotoisia käyttötapauskuvauksia sekä niiden pohjalta laadittu graafinen use case -kaavio Use case kuvaus Kustakin use casesta kirjoitetaan tekstimuotoinen kuvaus, joka sisältää tiedon siitä, mistä toiminnosta on kyse, mitkä aktorit siihen liittyvät ym. Kunkin use case kuvauksen tulisi sisältää seuraavat asiat: frekvenssi (frequency) aktorit (actors) käyttövaatimukset (usability requirements) esiehdot (preconditions) kuvaus (description) lopputulokset (postconditions) poikkeukset (exceptions)

14 13 Use case -kaavio Kuvassa 2.2 on esimerkki use case kaaviosta ja sen notaatiosta. Kuva 2.2: Use Case-kaavion notaatio Use caset on kuvattu ellipseillä, joiden sisällä on use casen nimi. Tällainen voisi olla esimerkiksi käyttäjä syöttää asiakkaan henkilötiedot. Aktorit on kuvattu tikku-ukoilla, joiden alapuolella on aktorin nimi. Aktorit ovat järjestelmän kannalta merkityksellisiä, tunnistettavia rooleja. Esim.: käyttäjä (järjestelmän käyttäjä) assosiaatio-suhde: yksittäisen aktorin ja use casen välinen kommunikaatio (viiva aktorin ja use casen välillä) käyttötapausten väliset suhteet: o laajennus-suhde (extend) laajentaa use casen käyttäytymistä toisella use casella (katkoviiva ja tunniste <<extend>>) o sisällytys-suhde (include) kuvaa tilanteen, jossa use case käyttää hyväkseen toisen use casen palveluja (katkoviiva ja tunniste <<include>>) o yleistys (generalisation) kuvaa tilanteen, jossa yleisestä use casesta periytetään uusi, erikoistuneempi use case (nuolenkärki yleisen use casen päähän) Katso esimerkki vaatimusmäärittelystä liitteestä 1: Eläinklinikan vaatimusmäärittely 2.2 ER-Malli Käsitteellinen mallintaminen Tunnetuin ja perusosiltaan sovelletuin käsitemalli on Chenin (1976) esittämä ER-malli (Entity- Relationship model). Mallia on myöhemmin laajennettu (EER-malli, ERT-malli, ER+-malli, ERGmalli jne.) mutta tässä lyhyesti alkuperäinen malli. Käsitekaava kuvaa tietokannan sisällön ja rakenteen keskeisiä termejä käsitekaavassa kohde attribuutti suhde

15 14 Kohde Kohde tarkoittaa ajateltavissa olevaa ja eroteltavissa olevaa asiaa tai tapahtumaa, esim. Seppo, Jaguar, SJS-1 Kohdejoukkoon kaikkien samantyyppisten kohteiden joukko, esim. kaikki autot, kaikki henkilöt Useamman kohteen samanlaisuus ilmenee niiden attribuuttien ja suhteiden samanlaisuutena Attribuutti Attribuutti on ominaispiirre, josta ollaan joko kohteessa / suhteessa kiinnostuneita, esim. Nimi, Osoite, Palkka Kuva 2.3: Atominen attribuutti Attribuutin arvo kuvastaa kohteen / suhteen yksittäisiä ominaispiirteitä, esim. Seppo, Rajakatu 44, Attribuutin arvot valitaan sen arvoalueesta, esim. Palkka = (0, ) Koottu attribuutti pystytään jakamaan pienempiin osiin. Esimerkiksi osoite pystytään jakamaan katuosoitteeseen, postinumeroon ja postitoimipaikkaan. Attribuutti voi olla koottu useammalla tasolla. Kuva 2.4: Koottu attribuutti Muut kuin kootut attribuutit ovat ns. atomisia attribuutteja (ks. kuva 2.3). Yksiarvoisella attribuutilla voi olla kerrallaan vain yksi arvo, esim. rekisteritunnus: SJS-1 Muita attribuutteja kutsutaan moniarvoisiksi attribuuteiksi, esim. tuotteen_väri

16 15 Johdettu attribuutti saa arvonsa muiden attribuuttien (1 tai 1>) arvoista piirretään katkoviivalla Kuva 2.5: Moniarvoinen attribuutti esim. ikä voidaan laskea (synt_aika ja pvm) Kuva 2.6: Johdettu attribuutti Tyhjäarvo tarkoittaa, että kyseisen kohteen tai suhteen yhteydessä ei ole attribuuttiarvoa tai sitä ei tiedetä. Avainattribuutilla tunnistetaan yksikäsitteisesti kohde tai suhde, esim. henkilötunnus (htun) tai rekisterinumero (rekno). Joskus tarvitaan useampia avainattribuutteja tekemään viittauksesta yksikäsitteinen. Avainattribuutin arvo ei voi koskaan olla tyhjäarvo. Muut kuin avainattribuutit ovat kuvaaja-attribuutteja. Kuva 2.7: Avainattribuutti Kun kohdetta ei voi tunnistaa sen omilla attribuuttiarvoilla kutsutaan sitä heikoksi kohteeksi. Tällöin tunnistamisessa voidaan käyttää apuna toisen kohteen avainattribuuttien arvoja. Kohdetta, jonka attribuuttien arvoja tarvitaan heikon kohteen tunnistamiseen, kutsutaan tunnistavaksi kohteeksi. Kuva 2.8: Heikko kohde Suhde Yhden tai useamman kohteen välillä vallitseva riippuvuus tai muu asiayhteys, esim. Eetu omistaa Jaguar EEKA-1:n. Samanlaiset suhteet muodostavat Suhdejoukon. Suhdejoukon määritys vastaa suhdetyyppiä (esim. Auton_omistus). OMISTAJA omistaa 1 N R AUTO Kuva 2.9: Auton omistus -suhde

17 Suhdetyypin Suhdeaste ilmaisee suhteen sitomien kohdetyyppien lukumäärän, esim. autonomistus on binaarinen suhde, eli sen suhdeaste on 2. Roolilla tarkoitetaan sitä tehtävää, joka kohdetyypillä on suhdetyypissä, esim. suhdetyyppi: päätösvalta --> Roolit: alainen, esimies 16 ESIMIES JOHTAA 1 N ALAINEN Kuva 2.10: Esimiehen ja alaisen roolit johtamissuhteessa Kardinaalisuus ilmaisee, kuinka moneen suhteeseen kohde voi samaan aikaan osallistua ja kuinka monta kohdetta voi samaan aikaan osallistua tiettyyn suhteeseen. Perusmuodot ja esimerkit: 1 --> 1: avioliitto (hlö, hlö) 1 --> N: päätösvalta (esimies, alainen) N --> M: osanvalmistus (hlö, osa) Suhteen pakollisuus merkitsee, että kyseisestä suhdejoukosta ainakin yhden kohteen on osallistuttava ainakin yhteen kyseisenlaiseen suhteeseen (olemassaolorajoite; min_kard=1) Liiketoimintasäännöt Kardinaalisuus ja suhteen pakollisuus ovat esimerkkejä siitä, miten liiketoimintasääntöjä voidaan ilmaista. Liiketoimintasäännöllä tarkoitetaan ilmaisua, joka määrittää rakennetta tai tapaa, jolla liiketoimintaa suoritetaan, esimerkkejä: asiakas voi saada alennusta tuotteesta vain, jos hänellä on esittää kanta-asiakaskortti luottoyhtiö myöntää luottokortin vain, jos asiakkaalla ei ole maksuhäiriömerkintöjä Liiketoimintasäännöt voidaan jakaa karkeasti kahteen luokkaan: 1. rakenteelliset säännöt 2. toiminnalliset säännöt Liiketoimintasääntöjen kuvaaminen Tietokantojen suunnittelun kannalta on tärkeää, että kuvataan ja tunnistetaan säännöt, joiden voimaansaattaminen ja valvonta on mahdollista ja hyödyllistä tehdä tietokonetuetuksi. Kuvaus vodaan toteuttaa mm. luonnollinen kieli, formaali kieli, graafisesti (ER-kaaviot). Olennaista on, että tieto säännöistä siirtyy mahdollisimman tarkkana ja virheettömänä tietokannan loogisen suunnittelun vaiheeseen, jolloin ne voidaan toteuttaa eheysrajoitteilla tai muilla ratkaisuilla.

18 17 Käsitekaavan (ER) diagramminotaatiot Symboli Merkitys Kohdetyyppi Heikko kohde Suhdetyyppi Tunnistava suhdetyyppi Attribuutti Avainattribuutti Moniarvoinen attribuutti Koottu attribuutti Johdettu attribuutti (esim. ikä) E R 1 E2 E 2 :n täydellinen osallistuminen R:ään E1 1 N R E 2 Kardinaalisuussuhde 1-->N (esim. osasto, ttekijä) R (min,max) E Rakenteellinen rajoite (min,max)

19 Mallintaminen Käsitteellinen mallintaminen käynnistyy peruskohdetyyppien, suhdetyyppien ja attribuuttien tunnistamisella, nimeämisellä ja määrittelyllä. Pikku hiljaa keskeisten käsitteiden joukkoa täydennetään ja tehtyjä määritelmiä tarkennetaan. Työskentely edellyttää välitöntä ja tiivistä yhteistoimintaa peruskäyttäjien kanssa. Jos suunniteltava järjestelmä on laaja, käsitteellistä mallintamista varten mallinnettava kohdealue jaetaan osiin, joista tehdään ensin ns. näkemyskaavat. Myöhemmin näkemykset integroidaan. Seuraavassa lyhyt kuvaus tehtävistä, joiden suorittaminen voi edetä suuressa määrin rinnakkaisena. Mallintamisen vaiheet 1. Peruskohdetyyppien tunnistus ja kuvaus helpoimmin havaittavia peruskohdetyyppejä ovat käyttäjien puheissa toistuvat henkilöt, esineet, tilat ja tuotteet vaikeampia ovat käsitteelliset kohdetyypit kuten tilaus, sopimus ja organisaatiorakenne pääasia on, että valitut kohdetyypit ovat niitä, joista halutaan tallentaa tietoja pysyvästi apuna voi käyttää kysymyslistoja tai taulukoita jotka herättävät kysymyksiä ja auttavat havaintomaailman jäsentämisessä valitaan kohdetyypille mahdollisimman luonteva ja täsmällinen nimi sekä kuvaillaan kohdetyypin merkitys 2. Suhdetyyppien tunnistus ja kuvaus mietitään, mistä kohteiden välisistä suhteista halutaan tallentaa tietoja tietokantaan voivat koskea: olemassaoloa, toiminnallisia suhteita, tapahtumaa jne. tässä yhteydessä nousee tavallisesti esille uusia kohdetyyppejä, joiden kuvaamisen osalta palataan edelliseen tehtävään jotkut suhdetyypit voidaan nähdä mieluummin itsenäisen luonteen omaavina, joten tehdään niistä kohdetyyppejä nimetään suhdetyypit ja kuvataan ne myöhemmässä vaiheessa määritellään kardinaalisuudet ja pakollisuudet 3. Attribuuttien tunnistus ja kuvaus mietitään kunkin suhde- ja kohdetyypin osalta mistä niiden piirteistä ollaan kiinnostuneita -> potentiaalisten attribuuttien joukko kuvataan attribuutit tarkemmin valitaan avaimet, ja pohditaan muiden attribuuttien tarpeellisuutta määritellään attribuuteille arvoalueet, sekä päätetään kunkin attribuutin osalta, minkä arvot ovat yksi/moniarvoisia, alkeis/koottuja, perus/johdettuja, pakollisia/ehdollisia, pysyväarvoisia/vaihtuva-arvoisia 4. Käsitekaavan uudelleen organisointi Käytetään abstraktiorakenteita käsitekaavan selkiyttämiseksi. Seuraavat tapaukset voivat olla merkkinä erityisesti yleistysrakenteiden tarpeesta: o on useita kohdetyyppejä, joilla on sama avainattribuutti ja monia muita samanlaisia kuvaaja-attribuutteja

20 o on useita kohdetyyppejä, jotka ovat toisiinsa yhteydessä samantapaisilla suhdetyypeillä tarkennetaan koottujen attribuuttien rakennetta, mikä voi johtaa uusien kohdetyyppien perustamiseen mietitään moniarvoisten attribuuttien esittämistapaa 5. Tarkistetaan kohde- ja suhdetyypit sekä attribuutit kuvausten johdonmukaisuus 2.4 ER-mallin laajennus: abstraktiorakenteet Semanttisuuden lisäämiseksi on ER-malliin myöhemmin lisätty mm. abstraktiorakenteita. Ohessa tärkeimmät abstraktiomuodot käyttäen esimerkkeinä kohteita ja kohdetyyppejä (vastaavasti voitaisiin tarkastella myös suhteita ja suhdetyyppejä). Abstraktio Abstraktiolla tarkoitetaan periaate, jonka mukaan epärelevantit ilmiöt peitetään kiinnostavien ilmiöiden esille saamiseksi. Yleistys (generalisation) Yleistyksessä tarkastelu siirretään alityypeistä kohdistumaan ylityyppiin, jonka sisältämä määritys kattaa kaikki alityyppien mukaiset kohteet (esim. auto, juna ja lentokone -> ajoneuvoja). Alityyppien ja ylityyppien välistä suhdetta kutsutaaan is_a suhteeksi. Vastaavat alijoukot voivat olla: erillisiä (auto, juna, lentokone) Auto 19 Juna Lentokone leikkaavia (opiskelija, työntekijä) Opiskelija Työntekijä sisältyviä Yleistykselle käänteistä muotoa kutsutaan erilaistamiseksi (specialisation). Sillä muodostetaan ylityypistä alityyppejä. Erilaistaminen on:

21 20 kattava, mikäli syntyvien alijoukkojen yhdiste on sama kuin ylijoukko Auto Vene osittainen, jos osa ylijoukon kohteista ei kuulu mihinkään alijoukkoon Auto Vene Koostaminen (aggregation) Kohteiden/kohdetyyppien välistä suhdetta pidetään ylemmän tason kohteena/kohdetyyppinä eli koosteena (aggregate). Alemman tason kohteita kutsutaan konstituenteiksi (constituent) esim. moottori, akku ja ovi -> auton konstituentteja Suhdetta kutsutaan part_of suhteeksi. Olennaista abstraktiomuodolle on koosteen sisäinen rakenne. Koostamisen käänteistä muotoa kutsutaan osittamiseksi. Osittamisella koostekohde(tyyppi) jaetaan konstituenteiksi. Ryhmittely (grouping, association) Ryhmittelyssä kohteet nähdään ryhmänä. esim. työntekijät ovat ammattiyhdistyksen jäseniä Suhdetta kutsutaan member_of suhteeksi, joka kytkee toisiinsa jäsenen ja ryhmän. Ryhmittelylle käänteinen muoto on yksilöinti. ER-mallin mukaan laadittu käsitekaava esitetään tavallisesti graafisessa muodossa, jossa käytetään vaihtelevia notaatioita. Edellisessä kappaleessa esiteltiin Elmasrin ja Navanthen (1994) notaatio, ohessa abstraktiorakenteiden notaatiot.

22 21 Käsitekaavan (ER) yleistys/erilaistamismuodot Ajoneuvo d osittainen, erillinen Auto Vene Auto Vene Ajoneuvo o osittainen, leikkaava Auto Vene Auto Vene Ajoneuvo d kattava, erillinen Auto Vene Auto Vene Ajoneuvo Auto o Vene kattava, leikkaava Auto Vene

23 22 3 Relaatiomalli 3.1 Tiedonhallintamallit Hierarkkinen malli Päähakemisto Alihakemisto Alihakemisto Alihakemisto Kuva 3.1: Esimerkki hierarkkisesta mallista Ensimmäiset tietokantajärjestelmät 1960-luvulla olivat ns. hierarkkisen mallin mukaisia järjestelmiä. Hierarkkisen mallin mukaan tiedostot on jaoteltu puumaisen rakenteen mukaiseen hierarkkiseen järjestykseen. Hierarkkinen malli on kuitenkin varsin jäykkä, eikä kaikkia rakenteita pystytä sen avulla esittämään. Myöskään turhaa toistoa ei pystytä välttämään. Verkkomalli Päähakemisto Alihakemisto Alihakemisto Alihakemisto Kuva 3.2: Esimerkki verkkomallista Verkkotietokannat suunniteltiin korjaamaan hierarkkisten tietokantojen ongelmia. Tietojen väliset suhteet pyrittiin kuvaamaan joukkoina hierarkioiden asemasta. Hierarkkisen mallin mukaan esimerkiksi ristiin viittaaminen on mahdollista. Käytännössä verkkotietokannat erottaa hierarkkisista tietokannoista mahdollisuus antaa lapsitaululle enemmän kuin yksi äititaulu. Verkkotietokantojen toteuttaminen ja ylläpitäminen on kuitenkin hankalaa.

24 23 Relaatiomalli Kuva 3.3: Esimerkki relaatiomallista (Hovi 2000) E.F. Codd esitteli vuonna 1970 relaatiomallin, joka oli siihenastisista malleista joustavin ja yksinkertaisin. Ikävänä puolena oli relaatiomallin vaatimien koneresurssien suuri tarve. Kuten hierarkkinen ja verkkomallikin, relaatiomalli on ns. loogisen tason malli. Relaatiomalli on vakiintunut yleisimmäksi käytössä olevaksi tietokantamalliksi nykyään ja suurin osa kaupallisista tietokannan hallintajärjestelmistä tukee nimenomaan relaatiomallin mukaista tietokantaa. Oliorelaatio-, olio- ja multimediatietokannat Viime aikoina ohjelmistotuotannossa on saavuttanut suurta suosiota ns. olioajattelu, ja 1990-lukua voidaankin pitää tietojärjestelmien kehityksessä olioiden maihinnousun vuosikymmenenä. Tämä on vaikuttanut myös tietokantojen ja niiden mallien kehitykseen. Varsinaiset oliotietokannat eivät ole saaneet markkinoilla suurta jalansijaa, mutta sen sijaan relaatiotietokannat, joita on laajennettu olioominaisuuksilla, ovat levinneet jonkin verran. Olio-ominaisuudet helpottavat monimutkaisemman tiedon käsittelyä tietokannoissa. Myös multimedia asettaa tietokannoille uudenlaisia vaatimuksia. Multimedian tallentamista varten onkin kehitetty erityisiä multimediatietokantoja. 3.2 Rakenne relaatiomallissa

25 Relaatioksi kutsutaan taulua, joka koostuu riveistä ja sarakkeista. Kukin relaation rivi vastaa yhtä kohdetta (esim. Sepon tiedot) tai suhdetta (esim. Eetu_omistaa_Jaguar_EEKA-1). Kukin sarake vastaa yhden attribuutin todellisuudessa esiintyviä arvoja. Relaatioteoriassa käsitteinä ovat attribuutit ja monikot (tuple). Kullakin attribuutilla on määrätty arvoalueensa. Monikot taas muodostuvat relaation attribuuttien arvoalueista poimituista arvoista. Relaatioteorian määrityksiä Arvoalue Arvoalue (domain) D on atomisten arvojen joukko (esim. nimet, palkat). Atomisuus tarkoittaa että ko. arvoa ei voida jakaa pienempiin osiin. Arvoalueen määritys tehdään tavallisesti osaksi tietotyypin määrityksen avulla esim. nimet -> max 20 merkkiä, palkat -> desimaaliluku väliltä Relaatiokaava Relaatiokaava (relational schema) koostuu relaation nimestä R ja attribuuttilistasta A 1, A 2, A n. Kukin attribuutti A i on eräänlainen rooli, jota vastaava arvoalue D i näyttelee relaatiokaavassa. Relaation asteluku (degree) on relaatiokaavassa esiintyvien attribuuttien lukumäärä (n) Esimerkki relaatiokaavasta: Henkilo(ssn,hnimi,hosoite,hpalkka) Monikot Relaatiokaavan mukainen relaatio r on joukko monikkoja: r={t 1,t 2,,t m } Kukin monikko (tuple) t on järjestetty joukko arvoja: t =<v 1,v 2, v n >, missä arvo v i on attribuuttia A i vastaavan arvojoukon D i alkio tai tyhjäarvo (null). Relaation kardinaalisuus tarkoittaa monikoiden lukumäärää (m). Tyhjäarvo Tyhjäarvo tarkoittaa sitä, että ko. arvoa ei tiedetä tai että ko. attribuutti ei ole merkityksellinen ko. kohteelle. esim. Henkilön opiskelupaikkakunnan osoite, jos henkilö on työntkiejä eikä opiskele Kolmiarvoinen logiikka Tyhjärvon huomioiminen tuo kolmiarvoisen logiikan, joka sisältää arvot tosi (t), epätosi (f), ei tiedetä (u) AND t u f t t u f u u u f f f f f Kuva 3.4: Kolmiarvoinen logiikka OR t u f t t t t u t u u f t u f Codd (1990): tarvittaisiin neliarvoista logiikkaa, jossa eroteltuna ei tiedetä, ei merkityksellinen Perusrelaatiot ja johdetut relaatiot 24

26 25 Perusrelaatioiden kaava sisältää arvoalueiden eksplisiittiset määritykset. Johdettujen relaatioiden kaava on määritelty epäsuorasti, jolloin relaatio ja/tai sen attribuutit voivat olla nimeämättömiä. Johdettuja relaatioita kutsutaan usein näkymärelaatioiksi (view relations). Kuva 3.5: Perusrelaatio ja johdettu relaatio Yllä olevasta kuvasta selviää perusrelaation ja johdetun relaation ero esimerkillä. Esimerkissä johdettu relaatio on muodostettu yhdisteenä kahdesta taulusta, jotka sinällään ovat perusrelaatioita. Yhdistesääntöjen mukaan uuteen relaatioon tuodaan kummankin yhdistettävän relaation kaikki monikot kuitenkin niin, että samanlainen monikko esiintyy tulosrelaatiossa vain kerran. Johdetut relaatiot eli näkymät Näkymät pohjautuvat yhteen tai useampaan tauluun. Näkymä esittää tietyillä ehdoilla rajatun osan halutusta taulusta tai tauluista. Näin voidaan rajoittaa esimerkiksi, mitä eri käyttäjäryhmille tietokannasta näytetään. Taulujen sisällön päivittäminen myös vaikuttaa suoraan siitä tehtyjen näkymien sisältöön. Näkymien kautta voi myös eräin rajoituksin yrittää päivittää niiden pohjana olevia tauluja. Päivityskelpoiset (updateable) näkymät ovat näkymiä, jotka on saatu yhden perustaulun rivien ja/tai sarakkeiden osajoukkona ja perusavain on näkymässä mukana. Päivityskelvottomat (non-updateable) näkymät ovat näkymiä, joiden kautta alkuperäisiä tauluja ei voida päivittää: Päivitykset, joista ei edes teoriassa voida johtaa vaikutusta perustauluun, eli jonkin sarakkeen arvo on esim. perustaulun sarakkeen keskiarvo Ristiriita näkymän määrittelyn kanssa. Esim. kaikki joiden osasto-kentän arvo on 3 -> ei voida lisätä riviä jolla jokin muu arvo ko. kentässä Useammasta taulusta kootut näkymät Päivityskelpoinen näkymä, jonka jokin sarake on määritelty aritmeettisena lausekkeena tai skalaarifunktiona (esim. tietotyyppimuunnokset ja päiväysten käsittelyfunktiot). Tällaisessa tapauksessa voidaan poistaa rivejä ja muuttaa ainoastaan muita sarakkeita. Relaatioiden ominaisuudet (Codd 1970) Coddin relaatioteorian mukaan relaatioilla on tiettyjä ominaisuuksia: 1. Relaatioiden monikoiden järjestyksellä ei ole merkitystä 2. Arvojen järjestyksellä monikoissa ei ole merkitystä, kunhan yhteys arvo-arvoalue-attribuutti käy ilmi

27 26 3. Kukin arvo monikossa on atominen (normalisointi) tai tyhjäarvo Monikoiden tunnistaminen Jokaisen monikon tulee olla yksikäsitteisesti tunnistettavissa, ts. relaatiolla tulee olla yksi tai useampi attribuutti, joiden arvojen suhteen kaikki monikot eroavat toisistaan. Kyseinen attribuutti tai kyseiset attribuutit ovat avainehdokkaita (candidate key). Avainehdokkaan tulee olla 1. yksikäsitteinen -> sama avainehdokkaan arvo ei voi toistua koskaan eri monikoissa 2. minimaalinen -> avaimeen kuuluvista attribuuteista ei voida poistaa ainoatakaan ilman, että yksikäsitteisyys häviää Relaation perusavaimeksi valitaan sopivin avainehdokkaista. Relaatiotietokanta Relaatiotietokanta koostuu useista relaatioista. Relaatiotietokannan kaava S muodostuu relaatiokaavojen joukosta (ts. S = {R 1,R 2,,R p }) sekä eheysrajoitteiden joukosta IC Eheysrajoitteet IC sisältää seuraavat perustavaa laatua olevat rajoitetyypit: 1. kohde-eheysrajoite (entity integrity constraint): perusavain ei voi koskaan saada tyhjäarvoa 2. viite-eheysrajoite. olkoon relaatiot R ja S, joista relaatiossa R on viiteavaimena relaation S perusavain (avainattribuutti). Tällöin jokaiselle R:n viiteavainarvolle tulee löytyä vastine relaation S avainattribuuttiarvoista; muussa tapauksessa viiteavainarvon tulee olla tyhjäarvo. (huom. relaatiot R ja S voivat olla myös sama relaatio) 007 R 007 S Kuva 3.6: Viite-eheys Viite-eheysrajoitteen voimassa pitäminen Viite-eheysrajoitteen voimassa pitäminen edellyttää, että on määritelty miten menetellään viittauksen kohteena olevan monikon poiston ja perusavaimen päivityksen yhteydessä. Tässä suhteessa on yleensä kolme mahdollisuutta: 1. estäminen (restriction): viiteavaimen viittaaman monikon poistaminen tai sen perusavaimen arvon muuttaminen estetään 2. tyhjääminen (nullify): viiteavaimelle annetaan tyhjäarvo, jos sen viittaama monikko poistetaan 3. vyöryttäminen (cascade): viiteavaimen arvoa muutetaan vastaavasti, jos viitattavan monikon perusavaimen arvo muuttuu, ja jos viitattu monikko poistetaan, myös kaikki siihen viittaavat monikot poistetaan Esimerkki viite-eheydestä Ohessa esimerkki relaatiotietokannasta, jossa on kolme taulua: Osasto, Tyontekija sekä Projekti.

28 27 Kuva 3.7: Esimerkki viite-eheydestä tietokannassa (Lahtonen 2002a) Yritettäessä syöttää Tyontekija-tauluun ( lapsi ) arvoja, joita vastaavia ei ole Osasto-taulussa, viiteeheys pakottaa syöttämään jotakin kelvollista ennen kuin syöttö voidaan hyväksyä. Sama tapahtuu, jos Projekti-taulun Projektipaallikko-kenttään yritetään syöttää arvoa, jota ei löydy Tyontekija-taulun TyontekijaID-kentästä. Viite-eheys ei koske NULL-arvoja (tyhjäarvoja), joten yleensä on syytä kieltää NULL-arvojen esiintyminen kyseisessä lapsi-taulun kentässä. Kuva 3.8: Tietokannan Osasto-taulu (Lahtonen 2002a) Kuva 3.9: Tietokannan Projekti-taulu (Lahtonen 2002a) Kuva 3.10: Tietokannan Tyontekija-taulu (Lahtonen 2002a)

29 28 Mikäli ajatellaan aikaisemmin mainittuja viite-eheysrajoitteen voimassapitämisen mahdollisuuksia, tarkoittaisi tämän esimerkin valossa estäminen-sääntö, että esimerkiksi mitään osastoa ei voisi poistaa tai päivittää, mutta työntekijöistä vain ensimmäisen poisto tai päivittäminen olisi estetty. Vyöryttäminen-säännön käyttö aiheuttaisi sen, että päivitykset ja poistot vaikuttaisivat myös lapsitauluihin. Näin esimerkiksi markkinointi-osaston (0) poisto häivyttäisi myös Matti ja Maija Meikäläisen tietokannasta. Tyhjääminen-sääntö em. tapauksessa aiheuttaisi vastaavasti tyhjäarvon Matti ja Maija Meikäläisen Osasto-kentässä. Huomion arvoista on, että tyhjäämistä voidaan käyttää vain, jos ko. kentältä ei ole kielletty puuttuvaa arvoa (NOT NULL). Muut rajoitteet Edellisten rajoitteiden lisäksi relaatiotietokannan kaavaan voi olla määritelty spesifisempiä ja komplisoidumpia rajoitteita, esim: Työntekijän palkka ei saa ylittää hänen esimiehensä palkkaa Viikkotuntimäärä, jonka työtekijä työskentelee projekteissa ei saa ylittää 56 tuntia Relaatiokaavan formaali määrittely Relaatiotietokannan kaava voidaan esittää graafisesti siten, että relaatioita vastaavat suorakaiteet ja niiden avaimiin perustuvat suhteet osoitetaan nuolilla/viivoilla. Formaalisti relaatiokaava määritellään DDL:llä. Esimerkiksi SQL:llä perus- ja johdettujen relaatioiden määritykset ovat: CREATE TABLE Henkilo (ssn char(11), hnimi char(20), hosoite char(30)); CREATE VIEW Oululainen (hnimi) AS SELECT hnimi FROM Henkilo WHERE hosoite= Oulu ; Rajoitteiden määrittämistä varten on omat SQL-lauseet. 3.3 Transformointi käsitekaavasta Relaatiomallin mukaisen tietokannan muodostaminen Relaatiomallin mukainen tietokanta muodostuu tauluista, jotka sisältävät rivejä ja sarakkeita (kenttiä). Relaatiomallin mukaisen kaavan tuottamisen lähtökohtana toimii käsitekaava. Seuraavassa pohditaan lyhyesti, mitä asioita tulee ottaa huomioon relaatioita luotaessa. Taulut Taulujen nimeksi valitaan selkeä ja kuvaava nimi. Taulujen nimissä ei saa myöskään käyttää välilyöntejä, erikoismerkkejä tai skandeja (å,ä,ö). Jokainen taulu sisältää yhden tai useamman sarakkeen eli kentän Kentät Kenttiä luotaessa määritellään niille erilaisia ominaisuuksia. Myös kenttien nimeksi valitaan selkeä ja kuvaava nimi. Ei siis täälläkään välilyöntejä, erikoismerkkejä tai skandeja (å,ä,ö).tietotyypin valinta riippuu käytettävästä tietokannan hallintajärjestelmästä ja/tai tietokantatyypistä. Erilaisia tietotyyppejä edustavat mm. numeerinen-, merkkijono- ja aika-tyypit.

30 Täytyy siis miettiä, onko tarpeen käyttää kiinteä- vai vaihtuvamittaista kenttää, kuten myös maksimipituus ja mahdollinen tarkkuus. Myös se, onko tieto pakollinen, tulee miettiä valmiiksi. Mahdollisimman moni kenttä pitää määritellä pakolliseksi jolloin vältetään NULL-arvojen tuomat ongelmat. Tarkistukset syötettävän tiedon oikeellisuudelle tai sallittujen arvojoukkojen joukko voivat tulla kyseeseen. Kentille voidaan myös joissakin tapauksissa määrittää oletusarvo. Avaimet (keys) Jokaiselle taululle pitää määrittää perusavain (primary key). Tämän perusavaimen tulee olla yksikäsitteinen, mutta se voi muodostua yhdestä tai useammasta sarakkeesta. Olennaista on, että taulusta ei saa löytyä identtisiä perusavaimen arvoja, eikä perusavain saa puuttua yhdeltäkään riviltä. perusavaimen eheys (entity integrity) Toissijaiset avaimet (secondary key, secondary index) nopeuttavat joissakin tapauksissa taulun järjestämistä. Viite-avainten määritysalue on sama kuin jonkin perusavaimen. Transformointi käsitekaavasta ER-kaavio kuvataan relaatiokaavioksi muuntamalla ER-malli relaatioiksi, attribuuteiksi ja vierasavaimiksi. Tässä vaiheessa on hyvä myös tarkistaa, onko kohteiden nimissä SQL:n (tai muun tietokantakielen) käyttöön varattuja sanoja. Kohdetyypit Transformointi aloitetaan siten, että jokaisesta (perus)kohdetyypistä tehdään relaatio. Myös kustakin heikosta kohdetyypistä tehdään oma relaatio. Tällöin sijoitetaan relaatioon vastaavan tunnistavan kohdetyypin avainattribuutit. 29 ostun OSASTO Toissa 1 N ttun TYONTEKIJA 1 TYONTEKIJA ttun ostun OSASTO ostun... nimi suhde ELATE TTAVI A N ELATETTAVA ELATETTAVIA nimi suhde ttun Kuva 3.11: Kohdetyyppien transformointi Attribuutit Kootuista attribuuteista viedään alimman tason atomiset attribuutit. Tämä tarkoittaa sitä, että ER-mallin rakenteiset attribuutit poistetaan ja viedään relaatioihin yksinkertaistaen.

31 30 o s tu n ttu n n im i e n im i O S A S T O T o is s a T Y O N T E K IJ A s n im i 1 N T Y O N T E K IJ A ttu n e n im i s n im i Kuva 3.12: Koottujen attribuuttien transformointi Kustakin moniarvoisesta attribuutista tehdään ns. attribuuttirelaatio. Tällaisessa tapauksessa attribuuteiksi otetaan kyseinen moniarvoinen attribuutti sekä sen kohdetyypin avainattribuutti, johon moniarvoinen attribuutti liittyy. S IJ A IN T I s ija in ti o stu n os tun sija in ti ttu n O S A S T O T o issa 1 N T Y O N T E K IJA Kuva 3.13: Moniarvoisten attribuuttien transformointi Suhdetyyppi 1:1 Suhdetyypin 1:1 transformointi tapahtuu siten, että jompaankumpaan tai molempiin suhdetyypin kytkemiin relaatioihin liitetään vastinrelaation perusavain viiteavaimeksi. Normaalisti perusavain talletetaan sen kohteen relaatioon, joka kahdesta osallistuu kyseiseen suhteeseen täydellisesti. (ks. kuva 3.14) Mikäli molemmat kohteet osallistuvat suhteeseen täydellisesti, ne voidaan mieltää samaksi ja molemmat relaatiot supistaa yhdeksi relaatioksi. Tällaisessa tapauksessa tehdään toisen relaation perusavaimesta uuden supistetun relaation perusavain. Poikkeuksen muodostaa tilanne, jossa kumpikaan kohteista ei osallistu suhteeseen täydellisesti. Tällöin luodaan 1:1 suhteesta oma erillinen relaationsa, johon yhdistelmä-avaimeksi otetaan kummankin peruskohteen avaimet sekä kyseiselle suhteelle ominaiset attribuutit.

32 31 ostun OSASTO (1,1) (0,1) Johtaa 1 1 ttun TYONTEKIJA OSASTO ostun... ttun TYONTEKIJA ttun Kuva 3.14: Suhdetyypin 1:1 transformointi Suhdetyyppi 1:N Suhdetyyppi 1:N transformoidaan sijoittamalla siihen relaatioon, joka vastaa N-puolella olevaa kohdetyyppiä, viiteavaimeksi toisen relaation perusavain. Mikäli tilanne on kuitenkin sellainen, että N-puolen kohde osallistuu suhteeseen vain osittain ja suuri osa N-puolen kohteista ei kuulu mihinkään suhteeseen, kannattaa suhteesta tehdä oma relaationsa. Näin säästetään levytilaa, sillä tällaisessa tapauksessa N-puolen relaatioon tulisi paljon tyhjiä kenttiä vierasavaimen ja kohdetyypin attribuuttien tilalle. Tällainen suhderelaatio toteutetaan siten, että sen attribuuteiksi tulevat kohdetyypin ominaisuudet, N-puolen relaation pääavain ja 1-puolen relaation pääavain. Molemmat pääavaimet toimivat relaatiossa vierasavaimina vastinrelaatioonsa. Relaation varsinainen pääavain on N-puolen relaation pääavain. ostun OSASTO (1,N) (1,1) Toissa 1 N ttun TYONTEKIJA Kuva 3.15: Suhdetyypin 1:N transformointi OSASTO ostun... TYONTEKIJA ttun... ostun Suhdetyyppi N:M Suhdetyypin N:M transformoinnissa suhdetyyppiä varten luodaan oma ns. suhderelaatio, jonka attribuuteiksi tulevat suhdetyypin omat attribuutit ja perusavaimeksi vastaavien kohderelaatioiden avainattribuutit. Tämän suhdetyypin transformoinnissa ei ole vaikutusta sillä, onko molempien kohdetyyppien osallistuminen suhteeseen täydellistä vai ei.

33 32 totun otun T O IM IT T A J A (1,N ) (1,1) Toim itus O S A 1 N m a a ra TOIMITTAJA totun... TOIMITUS totun otun maara OSA otun... Kuva 3.16: Suhdetyypin N:M transformointi Binäärinen suhdetyyppi Edelliset esimerkkejä binäärisestä suhdetyypistä. Binäärinen suhdetyyppi on kysymyksessä niin kauan, kun suhteeseen osallistuu kaksi kohdetta. Suhdeaste kertoo suhteen sitomien kohdetyyppien lukumäärän. N:äärinen suhdetyyppi N:äärinen suhdetyyppi transformoidaan kuten N:M tyyppinen suhdetyyppi. PROJEKTI ptun PROJEKTI ptun... totun N otun TOIMITTAJA Toimitus 1 N maara OSA OSA otun... TOIMITTAJA totun... TOIMITUS totun otun ptun maara Kuva 3.17: N:äärisen suhdetyyppi transformointi Yleistysrakenteen vaihtoehtoiset transformointisäännöt Tavallisen ER-mallin transformoinnin lisäksi on olemassa omat sääntönsä abstraktiorakenteiden eli EER-mallien transformointiin. Nämä transformointisäännöt ovat vaihtoehtoisia ja onkin valittava aina tilanteeseen parhaiten sopiva. A. Kutakin yli ja alityyppiä varten omat relaatiot Ensimmäinen tapa transformoida on yleinen ja pätee kaikissa abstraktio-tilanteissa. Haittana on kuitenkin, että tauluja syntyy tällä tavalla paljon. Kaikkiin relaatioihin liitetään perusavaimeksi ko. kohdetyypin avainattribuutti(t).

34 33 A J O N E U V O A jo n e u v o A U T O A u to V e n e V E N E Kuva 3.18: Abstraktiorakenteen transformointi: kaikille tyypeille oma relaatio B. Kutakin alityyppiä varten omat relaatiot Tällä tavalla relaatioihin sijoitetaan alityypin omat attribuutit sekä ylityypiltä perityt attribuutit. Tämä tapa soveltuu tilanteisiin, joissa aliluokat ovat kattavia ja erillisiä. Tämä tapa ei sovellu käytettäväksi tilanteissa, joissa aliluokat eivät ole kattavia, koska siinä tapauksessa joitakin tapauksia jäisi relaatioiden ulkopuolelle. AUTO reknro paino reknro Ajoneuvo paino Auto d pituus Vene VENE reknro pituus... Kuva 3.19: Abstraktiorakenteen transformointi: alityypeille omat relaatiot C. Kattava iso relaatio Tällä tavalla transformoitaessa sijoitetaan attribuuteiksi yli- ja alityyppeihin liittyvät attribuutit sekä erilaistamisen ilmaiseva attribuutti. Tapa soveltuu tilanteisiin, joissa aliluokat ovat kattavia ja erillisiä sekä alityyppikohtaisia attribuutteja on vähän. AJONEUVO reknro Ajoneuvo reknro atyyppi paino pituus paino Auto d pituus Vene Kuva 3.20: Abstraktiorakenteen transformointi: yksi iso relaatio tyypin osoittavalla attribuuttimääreellä D. Kattava iso relaatio ja Boolean-arvoiset attribuuttimääritteet Viimeisellä tavalla transformoitaessa sijoitetaan attribuuteiksi yli- ja alityyppeihin liittyvät attribuutit sekä käytetään Boolean-arvoista (YES/NO) attribuuttia määrittelemään, ovatko sitä seuraavat

35 34 attribuutit relevantteja ko. monikossa vai eivät. Tapa soveltuu tilanteisiin, joissa aliluokat ovat kattavia/osittaisia ja leikkaavia. reknro Ajoneuvo AJONEUVO reknro aflag paino vflag pituus paino Auto o pituus Vene Kuva 3.21: Abstraktiorakenteen transformointi: yksi iso relaatio Boolean-arvoisella attribuuttimääreellä

36 4 Tietokannan rakenteen määrittely ja tietotyypit Tietokannan rakenteen määrittely SQL-kielellä voidaan hoitaa sekä tietokannan kyselyt että rakenteen määrittely (DDL-osat). Uusia tauluja luotaessa tulee jokaiselle taululle määritellä taulun nimi ja siihen tulevat sarakkeet. Tauluille voidaan määritellä perusavaimet, viiteavaimet ja toissijaiset indeksit. Lisäksi voidaan määritellä myös näkymiä. Tauluja, rajoituksia, avaimia ja näkymiä voidaan tarvittaessa myös poistaa tai niiden ominaisuuksia jälkikäteen muuttaa. Sarakkeiden (kenttien) määrittely Sarakkeen nimi Sarakkeen nimen tulisi olla mahdollisimman kuvaava. Koska nykyiset tietokannan hallintajärjestelmät tukevat varsin pitkiä nimiä, on pitkä ja kuvaava parempi kuin lyhyt. Nimessä ei myöskään kannata käyttää välilyöntejä eikä skandeja (å,ä,ö). Joissakin järjestelmissä myös alaviivasta _ kannattaa pidättäytyä, koska sitä voidaan hakuja tehtäessä käyttää jokerimerkkinä. Tietotyyppi Vaihtelee käytettävän Tietokannan hallintajärjestelmän mukaan. Esimerkkinä SQL92 standardi. Maksimipituus Määritellään tarpeen ja vaatimusten mukaan. Tietokannan toimittaja määrää yleensä maksimipituudet myös tietotyyppikohtaisesti ja näistä täytyy tietysti pitää kiinni. Numeerisille tietotyypeille tarkkuus Määritellään esimerkiksi, montaako desimaalia käytetään. Pakollisuus Onko kyseinen kenttä pakollinen eli sallitaanko siinä NULL -arvot. NOT NULL -määritystä käytetään pakollisen kentän yhteydessä. Sallittujen arvojen rajoitukset Määritellään tarpeen ja vaatimusten mukaan rajoitukset kentän arvoille. Nämä rajoitukset tulevat vaatimusmäärittelystä, liiketoimintasäännöistä tms. Esim. Palkka voidaan rajoittaa välillä Oletusarvo Mikä arvo on kaikkein yleisin kyseisessä kentässä. Esim. Palkka 1500.

37 Eri tietokantojen tietotyyppimäärityksiä SQL 92 Tietotyypit Tietotyyppien ominaisuudet vaihtelevat jonkin verran tietokannan hallintajärjestelmästä riippuen. Onkin tärkeä tietää, minkälaisia tietotyyppejä juuri käytettävissä olevassa tietokannassa voidaan käyttää. Yhtä kaikki, SQL92 standardi on ollut pohjana useimmille tämän päivän tietotyyppirakenteille, ja samanlaisia tietotyyppikategorioita löytyy useimmista eri tietokannoista. Ohessa siis hieman tarkemmin selitettynä juuri SQL92 standardin tietotyypit. Kuva 4.1: SQL 92 Tietotyypit (Lahtonen 2002)

38 37 Merkkijonotietotyypit CHARACTER (CHAR) Tietotyyppi on täsmälleen annetun pituuden mittainen kiinteämittainen merkkijono. Jos kenttään syötetään varattua vähemmän tietoa, tietokannan hallintajärjestelmä täyttää automaattisesti välilyöntejä jäljelle jääneeseen tilaan. Tämän tietotyypin käyttäminen on perusteltua esimerkiksi henkilötunnuksen yhteydessä. CHARACTER VARYING (VARCHAR) Tietotyyppi on maksimissaan annetun pituuden mittainen vaihtuvamittainen merkkijono. Tämän tietotyypin käyttö on perusteltua useimmissa merkkitietoa tallettavissa kentissä. (esim. etu- ja sukunimet, osoitteet jne.) VARCHAR tietotyypin lisäksi useimmissa tietokannoissa on variaatioita, jotka ottavat huomioon kansalliset merkistöt. Tällaisia ovat esimerkiksi Oraclen NVARCHAR tai MySQL:n NATIONAL VARCHAR. Access sen sijaan hyväksyy suoraan omana tekstityyppinään kansalliset merkit. Ongelmia tulee vasta, kun luotua tietokantaa käytetään järjestelmässä jossa on käytössä eri kansallinen merkistö. Numeeriset tietotyypit NUMERIC Tietotyyppi on tarkka desimaaliluku, jossa on täsmälleen haluttu maksimimäärä numeroita ja näistä haluttu määrä varattuna desimaaleille. DECIMAL Tietotyyppi on tarkka desimaaliluku, jossa on vähintään haluttu maksimimäärä numeroita ja näistä haluttu määrä on varattuna desimaaleille. INTEGER (INT) ja SMALLINT Tietotyypit ovat kokonaislukuja joista SMALLINT-tietotyypin lukualue on pienempi kuin INTEGERtietotyypin. FLOAT Tietotyyppi tarkoittaa liukulukua, jolle voidaan määritellä haluttu tarkkuus. REAL ja DOUBLE ovat ympäristöriippuvaisia versioita FLOAT-tietotyypistä. Bittitietotyypit BIT Tietotyyppi on tarkoitettu binäärimuotoisen datan tallettamiseen. BIT on kiinteämittainen bittijono, joka on täsmälleen annetun pituuden mittainen. BIT VARYING Tietotyyppi on vaihtuvamittainen bittijono, maksimissaan annetun pituuden mittainen. Aikatietotyypit INTERVAL Tietotyyppi tarkoittaa ajanjaksoa, joka voi koostua joko vuosista ja kuukausista tai päivistä, tunneista, minuuteista ja sekunneista.

Tietokantojen suunnittelu, relaatiokantojen perusteita

Tietokantojen suunnittelu, relaatiokantojen perusteita Tietokantojen suunnittelu, relaatiokantojen perusteita A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

Relaatiomalli ja -tietokanta

Relaatiomalli ja -tietokanta Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla

Lisätiedot

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

2. Käsiteanalyysi ja relaatiomalli

2. Käsiteanalyysi ja relaatiomalli 2. Käsiteanalyysi ja relaatiomalli lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Tietokannan suunnitteluprosessin osat sivu 2 Käsiteanalyysi ER-mallinnus, tietomallinnus

Lisätiedot

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (12) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (12) Luento 4.3 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Viite-eheyssäännöt... 5 Arvojoukkoeheyssäännöt... 8 Null-arvoista... 10 Sovelluskohtaiset

Lisätiedot

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu 9.3.2001 HELIA 1 (19) Luento 11 Eheyssäännöt (Integrity Constraints)... 2 Eheyden valvonta... 3 Yksilön eheyssääntö... 4 Arvojoukkoeheyssäännöt... 5 Null-arvoista... 6 Viite-eheyssäännöt... 7 Emorelaation päivitys...

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP RINT THIS DOCUM ENT Relaatiotietokannat DONOTP Relaatiomalli Perustana rakennetason tietomalli relaatiomalli (the relational model of data) perusteoria: Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 4 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Relaatiotietokannan suunnitteluprosessin

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (20) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (20) Luento 3.1 7LHWRNDQWDSRKMDLVHQVRYHOOXNVHQVXXQQLWWHOXSURVHVVL Tietokannan suunnittelun tavoitteet... 3 Abstraktiotasot tietokannan suunnittelussa... 4 3-taso -malli... 4 TIHA-standardi... 5

Lisätiedot

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät

2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen. Luku 2. Arkkitehtuuri ja analyysi. ITKA204 kevät 2.1 Sovellusarkkitehtuuri 2.2 Käsitteellinen mallintaminen Luku 2 Arkkitehtuuri ja analyysi ITKA204 kevät 2016 1 2.1 Sovellusarkkitehtuuri Tietokannanhallintajärjestelmien luokittelua DBMS:iä voidaan luokitella

Lisätiedot

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki 19.1.2010. Relaatiomalli HAAGA-HELIA heti09 1 (27) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Arvojoukkoeheyssääntö... 8 Pääavain ja yksilön eheyssääntö...

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (11) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (11) Access 1 ACCESS...2 Yleistä...2 Access-tietokanta...3 Perusobjektit...3 Taulu...5 Kysely...7 Lomake...9 Raportti...10 Makro...11 Moduli...11 HELIA 2 (11) ACCESS Yleistä Relaatiotietokantatyyppinen

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences 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

Lisätiedot

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää kehikkoa - käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

Lisätiedot

Tietokantakurssit / TKTL

Tietokantakurssit / TKTL Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien

Lisätiedot

Tietokannan suunnittelu

Tietokannan suunnittelu HELIA TIKO-05 1 (12) ICT03D Tieto ja tiedon varastointi Tietokannan suunnittelu Tietokannan suunnitteluprosessi... 2 Tavoitteet...2 Tietojärjestelmän suunnitteluprosessi...3 Abstraktiotasot tietokannan

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta Kevät 2004 Jan Lindström R&G Chapter 1 Tietokannan hallinta 1. Johdanto (käsitteitä) 2. Tietokannan talletusrakenteet 3. Tietokannan hakemistorakenteet 4. Kyselyiden käsittely ja optimointi

Lisätiedot

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIEDONHALLINNAN PERUSTEET - SYKSY 2013 TIEDONHALLINNAN PERUSTEET - SYKSY 2013 Kurssikoodi: Saapumisryhmä: Luento 5 XX00AA79-3013 TU12S2 Pasi Ranne 11.9.2013 11/9/13 Helsinki Metropolia University of Applied Sciences 1 Tietokannan normalisoinnin

Lisätiedot

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia. Tietokantasuunnittelusta Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia toistuva tieto vie tilaa ylläpito muodostuu hankalaksi ylläpito-operaatioilla

Lisätiedot

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN 3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN

Lisätiedot

3. Käsiteanalyysi ja käsitekaavio

3. Käsiteanalyysi ja käsitekaavio 3. Käsiteanalyysi ja käsitekaavio lehtori Pasi Ranne Metropolia ammattikorkeakoulu E-mail: pasi.ranne@metropolia.fi sivu 1 Käsiteanalyysi Selvitetään mitä tietokantaan pitää tallentaa Lähtökohtana käyttäjien

Lisätiedot

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1. Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla

Lisätiedot

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu 20.9.2005 HELIA 1 (21) Luento 7 Relaatiomallin kertausta... 2 Peruskäsitteet... 2 Relaatio... 4 Määritelmä... 4 Relaatiokaava (Relation schema)... 4 Relaatioinstanssi (Relation instance)... 4 Attribuutti ja arvojoukko...

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 7 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 02.10.2017 1/10/17 Helsinki Metropolia University of Applied Sciences 1 Tietokannan

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS NORMALISOINTI HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 5 JOUNI HUOTARI & ARI HOVI SUUNNITTELUPUTKI Käyttäjien näkemykset Näytöt, ikkunat

Lisätiedot

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu HELIA 1 (8) Luento 1 Johdatusta tietokannan suunnitteluun... 2 Tietokantasuunnittelu?... 2 Tietokanta?... 2 Tieto?... 2 Tietokantasuunnittelun tavoite, v.1... 2 Luotettavuus?... 3 Tietokantasuunnittelun

Lisätiedot

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

Luento 3 Tietokannan tietosisällön suunnittelu

Luento 3 Tietokannan tietosisällön suunnittelu HAAGA-HELIA / Heti-09 1 (17) Luento 3 Tietokannan tietosisällön suunnittelu Tietojärjestelmän suunnitteluprosessi... 2 Tietokannan suunnittelun tavoitteet... 3 Tietokannan suunnitteluprosessi... 4 Käsitteellinen

Lisätiedot

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä hyväksymispäivä arvosana arvostelija Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä Tuomas Husu Helsinki 20.2.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Sisältö i 1 Johdanto

Lisätiedot

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU

Lisätiedot

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu Informaatioteknologian instituutti IIO30100 Tietokantojen suunnittelu Polku luokkakaavioista taulujen toteutukseen kirjan Hovi, Huotari, Lahdenmäki: Tietokantojen suunnittelu & indeksointi, Docendo (2003,

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Tietokanta (database)

Tietokanta (database) Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja 1 Tiedosto Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen

Tietojärjestelmä tuotantoympäristössä. Sovellusohjelmat Helsingin ammattikorkeakoulu Stadia / Tekniikka ja liikenne Vesa Ollikainen Tietojärjestelmä tuotantoympäristössä Tausta ja tavoitteet Tausta Kurssilla on opiskeltu suunnittelemaan ja toteuttamaan tietokanta, joka on pieni perustuu selkeisiin vaatimuksiin on (yleensä) yhden samanaikaisen

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

Lisätiedot

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Kyselyt: Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Tieto/datamallit. Marttila-Kontio/Unicta Oy

Tieto/datamallit. Marttila-Kontio/Unicta Oy 4.4.2017 Tieto/datamallit 4.4.2017 Data Governance Data governance (DG) refers to the overall management of the availability, usability, integrity, and security of the data employed in an enterprise. 4.4.2017

Lisätiedot

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki HELIA TIKO-05 1 (28) Relaatiomalli Relaatiomalli...2 Peruskäsitteet...3 Relaatio...5 Attribuutti ja arvojoukko...6 Monikko...7 Säännöt...8 Arvojoukkoeheyssääntö...8 Pääavain ja yksilön eheyssääntö...9

Lisätiedot

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 29.2.2012 (vastauksia) Liitteenä on tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastauspaperiin kurssin

Lisätiedot

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa Relaatiomalli 5. Relaatiomalli Käsitteet Säännöt Käyttö 6. Relaatioalgebra (EI TENTTIIN!) Select, Project, Union, Difference, Join 7. (E)ER-mallin muuntaminen relaatioiksi Kaava Mikä on tietomalli? Malli,

Lisätiedot

TIETOKANNAN SUUNNITTELU

TIETOKANNAN SUUNNITTELU TIETOKANNAN SUUNNITTELU HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 2 JOUNI HUOTARI & ARI HOVI TIETOJEN MALLINNUS TIETOJEN MALLINNUKSESTA TIETOKANTAAN Käsiteanalyysin

Lisätiedot

Tietokannat PERUSMATERIAALI Microsoft Access 2007 Kieliversio: suomi Materiaaliversio 1.0 päivitetty 8.6.2009 www.piuha.fi materiaalimyynti@piuha.

Tietokannat PERUSMATERIAALI Microsoft Access 2007 Kieliversio: suomi Materiaaliversio 1.0 päivitetty 8.6.2009 www.piuha.fi materiaalimyynti@piuha. Tietokannat PERUSMATERIAALI Microsoft Access 2007 Kieliversio: suomi Materiaaliversio 1.0 päivitetty 8.6.2009 materiaalimyynti@piuha.fi Tämän materiaalin kopioiminen ilman tekijän lupaa kielletään tekijänoikeuslain

Lisätiedot

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita Relaatioalgebra Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra

Lisätiedot

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt: Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot,

Lisätiedot

Luento 2: Tiedostot ja tiedon varastointi

Luento 2: Tiedostot ja tiedon varastointi HELIA 1 (19) Luento 2: Tiedostot ja tiedon varastointi Muistit... 2 Päämuisti (Primary storage)... 2 Apumuisti (Secondary storage)... 2 Tiedon tallennuksen yksiköitä... 3 Looginen taso... 3 Fyysinen taso...

Lisätiedot

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto Tietokanta Tiedosto Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Ohjelmointikielissä apumuistiin tallennettuja tietoja käsitellään

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja Tietokanta Tietokanta (database) jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja mikä tahansa tietokokoelma? --> erityispiirteitä Tietokanta vs. tiedosto 1

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 8 MARKKU SUNI Tarkastellaan Loogista tietokannan suunnittelua vaihe 2 Taulujen määrittely loogisen tietomallin perusteella 2 Suunnittele ja tarkista taulut joka loogisesta

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, 3.5.2007, H.Laine Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, oma nimesi, syntymäaikasi ja nimikirjoituksesi

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne

Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne HAAGA-HELIA Heti-09 1 (6) Tietokannan hallintajärjestelmän (DBMS) palvelut ja rakenne Tietovarastotekniikan kehittyminen... 2 Tiedostopohjaiset ratkaisut... 2 Tiedoston palvelut... 3 Tiedostopohjaisten

Lisätiedot

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT, 3 op Syksy 2008 - TI07 Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi A271117 TIETOKANNAT Tavoitteet Oppia tietokantojen suunnitteluperiaatteet Osata käyttää

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne

Lisätiedot

Sanomakuvausten järjestelmäkohtaiset tiedostot

Sanomakuvausten järjestelmäkohtaiset tiedostot Sanomakuvausten järjestelmäkohtaiset tiedostot Tullihallitus Päivitys 17.9.2012 Tullihallitus Sanomakuvausten järjestelmäkohtaiset tiedostot 1/8 Sanomakuvausten järjestelmäkohtaiset tiedostot Järjestelmäkohtaiset

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Tietokantojen perusteet

Tietokantojen perusteet Tietokantojen perusteet Johdanto Jouni Huotari & Ari Hovi 2008 TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

TIETOKANNAT JOHDANTO

TIETOKANNAT JOHDANTO TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI 2000-2011 Tieto TAUSTAA Yritykselle tiedot ovat tärkeä resurssi päätöksenteon tukena (JIT) varastointi ja käyttö vaativat investointeja vrt. energia (lähde,

Lisätiedot

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto Harri Laine Helsingin yliopisto Suosion syy? Yksinkertaisuus vähän käsitteitä helppo hahmottaa Selkeä matemaattinen perusta ei tulkintaongelmia kuten esim. UML:ssä teoria käytäntö kaavio: R(A 1 :D 1, A

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000

HELIA 1 (17) Outi Virkki Tiedonhallinta 4.11.2000 HELIA 1 (17) Luento 4.5 Normalisointi... 2 Tavoitteet... 2 Attribuuttien väliset riippuvuudet... 4 Funktionaalinen / moniarvoinen riippuvuus... 4 Transitiivinen / suora riippuvuus... 6 Täydellinen / osittainen

Lisätiedot

Muuttujien määrittely

Muuttujien määrittely Tarja Heikkilä Muuttujien määrittely Määrittele muuttujat SPSS-ohjelmaan lomakkeen kysymyksistä. Harjoitusta varten lomakkeeseen on muokattu kysymyksiä kahdesta opiskelijoiden tekemästä Joupiskan rinneravintolaa

Lisätiedot

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 582101 - Ohjelmistotekniikan menetelmät, luokkamallin laatiminen 1 Lähestymistapoja Kokonaisvaltainen lähestymistapa (top-down) etsitään kerralla koko kohdealuetta kuvaavaa mallia hankalaa, jos kohdealue

Lisätiedot

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT

Oliotietokannat. Nääsvillen Oliopäivät Pekka Kähkipuro Kehitysjohtaja, FT Oliotietokannat Nääsvillen Oliopäivät 2004 15.12.2004 Pekka Kähkipuro Kehitysjohtaja, FT pekka.kahkipuro@sysopen.fi Oliotietokanta Idea: pysyvän tiedon tallentaminen suoraan oliomuodossa Tietosisältö ja

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta. Tieto - data Digitaalisesti tallennettua informaatiota jostakin kohteesta Vapaamuotoinen tieto (unformatted) Esim. teksti, puhe, kuvat, Sisältö jäsentämätöntä Koneellinen käsittely vaikeaa paitsi kokonaisuutena

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

Nimi: Henkilötunnus: {id} {+id}

Nimi: Henkilötunnus: {id} {+id} TEHTÄVÄ : Eräillä kursseilla on kertauskysymyksiä, joihin opiskelijat vastaavat webin kautta. Kurssilla voi olla useita kysymyssarjoja, joihin voi kuulua monta kysymystä. Kysymyssarjalla on kurssikohtainen

Lisätiedot

ADMIN. Käyttöopas 08Q4

ADMIN. Käyttöopas 08Q4 ADMIN Käyttöopas 08Q4 Sisällysluettelo Uuden käyttäjän lisääminen...3 Käyttäjän poistaminen...3 Oikeudet...4 Käyttäjäasetukset...6 Aktiviteetin määritys...8 Aktiviteetin määrittely...8 Kenttämäärittelyt...9

Lisätiedot

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli SQL tietokantakieli Relaatiomalliin pohjautuvat tietokannat Perustana relaatiomallin mukainen näkemys tietojen rakenteesta ja käsittelystä Tietokantojen rakenteen määrittelyssä ja käsittelymahdollisuuksissa

Lisätiedot

RADAR - RANDOM DATA GENERATOR

RADAR - RANDOM DATA GENERATOR YLEISKUVAUS Radar on sovellus, jolla voi luoda näennäisen oikeaa satunnaisdataa testaus-, demo - ja muihin tarkoituksiin. TIEDUSTELUT Juha Levonen 050 372 5797 juha.levonen@kantapeikko.fi Osa datasta generoidaan

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:

Lisätiedot