TIETOKANNAT I. Kurssimoniste. Mika Karhulahti Syksy 2002
|
|
- Anna Haapasalo
- 8 vuotta sitten
- Katselukertoja:
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 A277, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
LisätiedotHELIA 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ätiedotRelaatiomalli 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ätiedotHAAGA-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ätiedot2. 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ätiedotHELIA 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ätiedotHELIA 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ätiedotHelsingin 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ätiedotTIEDONHALLINNAN 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ätiedotTiedonhallinnan 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ätiedotHELIA 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ätiedotTietomallit. 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ätiedot2.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ätiedotHAAGA-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ätiedotSQL-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ätiedotSELECT-lauseen perusmuoto
SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää
LisätiedotHELIA 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ätiedotOhjelmistojen 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ätiedotTIEDONHALLINTA - 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ätiedotOn 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ätiedotHAAGA-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ätiedot3. 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ätiedotTietokantakurssit / TKTL
Tietokantakurssit / TKTL Tietokantojen perusteet - tietokannan käyttö: SQL, sovellukset Tietokannan hallinta - tietokannanhallintajärjestelmän ominaisuuksia: tallennusrakenteet kyselyjen toteutus tapahtumien
LisätiedotTietokannan 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ätiedotTIETOKANTOJEN 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ätiedotTIEDONHALLINTA - 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ätiedotTietokannan 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ätiedotTIEDONHALLINNAN 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ätiedotTietokantasuunnittelun 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ätiedotJokaisella 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ätiedot3. 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ätiedot3. 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ätiedotTietokantojen 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ätiedotOpettajana 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ätiedotHELIA 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ätiedotTIEDONHALLINTA - 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ätiedotHELIA 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ätiedotHELIA 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ätiedotCSE-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ätiedotNORMALISOINTI 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ätiedotHELIA 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ätiedotHELIA 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ätiedotLuento 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ätiedotTietokannan 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ätiedotTiedonhallinnan 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ätiedotTietomallit. 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ätiedotSQL - 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ätiedotPOLKU 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ätiedotJouni 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ätiedotTietokannat 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ätiedotTietokanta (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ätiedotOpenOffice.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ätiedotTietojä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ätiedotTIEDONHALLINTA - 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ätiedotRelaatioalgebra. 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ätiedotTieto/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ätiedotHELIA 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ätiedotTIETOKANNAN 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ätiedotKirjoita 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ätiedotMikä 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ätiedotTIETOKANNAN 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ätiedotTietokannat 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ätiedotKyselyt: 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ätiedotRelaatioalgebra. 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ätiedotLuento 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ätiedotHelsingin 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ätiedotTIETOKANTOJEN 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ätiedotjotakin 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ätiedotTIETOKANTOJEN 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ätiedotInsert 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ätiedotHarjoituksen 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ätiedotHelsingin 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ätiedotWritten 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ätiedotKirjasto 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ätiedotHelsingin 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ätiedotTietokannan 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ätiedotmillainen 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ätiedotHELIA 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ätiedotTIETOKANTOJEN 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ätiedotA271117 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ätiedotTIEDONHALLINTA - 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ätiedotSanomakuvausten 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ätiedotAnalyysi, 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ätiedotTietokantojen 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ätiedotTIETOKANNAT 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ätiedotRelaatiotietokantojen 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ätiedotHELIA 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ätiedotMuuttujien 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ätiedotTIETOKANNAT: 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ätiedotAnalyysi, 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ätiedotOhjelmistotekniikan 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ätiedotOliotietokannat. 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ätiedotHelsingin 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ätiedotArkkitehtuurikuvaus. 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ätiedotNimi: 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ätiedotADMIN. 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ätiedotHelsingin 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ätiedotRADAR - 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ätiedotAlkuarvot 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ätiedotAnalyysi, 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