Peruskäsitteitä ja määritelmiä

Ennen kuin mennään varsinaiseen sisältöön, on hyvä alkuun vakiinnuttaa tärkeimpiä käsitteitä. Tähän lukuun on kerätty yleisimmät tietokantoihin ja tiedonhallintaan liittyvät käsitteet. Käsitteet perustuvat Elmasrin ja Navathen [15] esittämiin määritelmiin.

Tietokanta

Tietokanta (database) on yleisellä tasolla kokoelma toisiinsa liittyvää dataa. Tavallisesti tietokannasta puhuttaessa oletetaan lisäksi, että sillä on seuraavat ominaisuudet:

  • Tietokanta kuvastaa jotakin osaa reaalimaailmasta. Jos reaalimaailman siinä osassa, jota tietokanta kuvaa tapahtuu muutoksia, muutokset heijastuvat myös tietokantaan.
  • Tietokanta on loogisesti yhtenäinen kokoelma dataa, ja tällä datalla on luontainen merkitys. Toisin sanoin tietokannan data liittyy jotenkin toisiinsa. Satunnainen osajoukko tietokannan datasta ei ole tietokanta.
  • Tietokannan rakenne ja data on suunniteltu ja toteutettu tiettyä tarkoitusta varten, ja tietokannalla on harkittu käyttäjäryhmä ja sovellusohjelma.

Esimerkki

Yleisin esimerkki tietokannasta lienee verkkokaupan toimintaan tarkoitettu tietokanta:

  • Se kuvastaa osaa reaalimaailmasta, kuten asiakkaita, tuotteita ja ostoksia. Reaalimaailman osa määräytyy tietokannan kohdealueesta eli kontekstista, jossa tietokantaa käytetään. Esimerkiksi verkkokaupan toiminnan kannalta tarvitaan asiakkaan osoitetiedot, mutta tuskin asiakkaan silmien väriä (ellei se ole verkkokaupan toiminnan kannalta tärkeää, esim. meikkiverkkokauppa).

  • Se on loogisesti yhtenäinen kokoelma dataa: asiakkaiden, tuotteiden ja ostoksien välillä on erilaisia yhteyksiä (esim. asiakas voi laittaa tuotteita ostokoriin).

  • Sen rakenne ja data on suunniteltu käyttötarkoitukseensa: verkkokaupan tietokanta mahdollistaa verkkokaupan toiminnan.

Tietokannanhallintajärjestelmä ja tietokantajärjestelmä

Tietokannanhallintajärjestelmä (Database Management System, DBMS) on ohjelmisto, joka mahdollistaa tietokannan rakenteen määrittämisen, datan etsimisen, lisäämisen, poistamisen ja muokkaamisen sekä tietokannan suojaamisen, ylläpidon ja jakamisen eri sovellusohjelmille ja käyttäjille. Tietokannanhallintajärjestelmä tarjoaa siis käyttäjille ja sovelluksille yksinkertaistetun käyttöliittymän datan käsittelyyn. Tietokannanhallintajärjestelmän rakennetta esitellään tarkemmin Luvussa 2.1.

Tietokantajärjestelmä (database system) on tietokannan, tietokannanhallintajärjestelmän ja niitä käyttävän sovellusohjelman yhteisnimitys. Sovellusohjelma tarjoaa loppukäyttäjille toimintalogiikan ja käyttöliittymän, jonka avulla järjestelmää käytetään. Sovellusohjelma voi olla esimerkiksi verkkosivu, laitteelle asennettava sovellus tai vaikkapa yksittäinen palvelinohjelma. Nykyään on myös tavallista, että tietokantajärjestelmä sisältää useita tietokantoja, sovelluksia ja jopa tietokannanhallintajärjestelmiä.

Kuvio 2.1: Tietokantajärjestelmän yleinen rakenne.
Kuvio 2.1: Tietokantajärjestelmän yleinen rakenne.

Esimerkki

On olemassa tuhansia kaupallisia sekä avoimia tietokannanhallintajärjestelmiä mitä erilaisimpiin käyttötarkoituksiin. Tämän lisäksi yritykset voivat ylläpitää omia suljettuja tietokannanhallintajärjestelmä kattamaan kohdealueensa erikoisia vaatimuksia.

Joulukuussa 2024 seuraavat 10 tietokannanhallintajärjestelmää olivat suosituimpia:

  1. Oracle DB (yleiskäyttöinen, ensisijaisesti relaatiomalli)
  2. MySQL (yleiskäyttöinen, ensisijaisesti relaatiomalli)
  3. Microsoft SQL Server (yleiskäyttöinen, ensisijaisesti relaatiomalli)
  4. PostgreSQL (yleiskäyttöinen, ensisijaisesti relaatiomalli)
  5. MongoDB (yleiskäyttöinen, ensisijaisesti dokumenttipohjainen)
  6. Redis (ensisijaisesti avain-arvoparipohjainen, käytetään usein välimuistina)
  7. Snowflake (tietokanta pilvipalveluna, relaatiomalli)
  8. Elasticsearch (ensisijaisesti hakukoneiden rakentamiseen)
  9. IBM Db2 (yleiskäyttöinen, ensisijaisesti relaatiomalli)
  10. SQLite (relaatiomalli, tarkoitettu sovelluksen sisäisiin yhden tiedoston tietokantoihin)

(Lähde: https://db-engines.com/en/ranking)

Tässä materiaalissa tutustumme SQLite-tietokannanhallintajärjestelmään. SQLiten erikoisuus on sen yksinkertaisuus ja helppo upotettavuus: SQLite-tietokannat tallentuvat yhteen tiedostoon, eikä tietokannan käyttäminen vaadi erityisiä palvelinohjelmistoja. SQLite on käytössä muun muassa selaimissa, mobiilisovelluksissa sekä IoT-laitteissa.

Tietomalli

Tietomalli (data model) on määritelmä tietorakenteista (kuten relaatio), operaatioista (kuten liitos) ja niihin liittyvistä, mallin kannalta tärkeistä käsitteistä. Esimerkiksi relaatio- tai verkkomalli ovat tietomalleja. Tietomallista, jota käytetään tietokannassa, käytetään myös nimitystä tietokantaparadigma (vrt. ohjelmointiparadigma ohjelmointikielissä).

Tietomallit voidaan jakaa kolmeen ryhmään:

  • Käsitteelliset mallit: kuvaavat, millaista kohdealueen tietoa tarvitaan ja miten se rakentuu ottamatta kantaa, miten dataa lopullisesti tallennetaan; voi mallintaa graafisesti (esim. UML-luokkakaavio tai ER-malli).
  • Loogiset mallit: kuvaavat, millaisiin tietorakenteisiin ja minkä tietomallin mukaan tieto tallennetaan ja käsitellään (esim. relaatiomalli).
  • Fyysiset mallit: kuvaavat, miten tieto tallennetaan lopullisesti levylle (esim. tietotyypit, taulualueet, levylohkot, indeksit).

Tässä materiaalissa tutustutaan yhteen käsitteellisen tason tietomalliin (ER-malli) sekä yhteen loogisen tason tietomalliin (relaatiomalli). Fyysisiä tietomalleja tässä materiaalissa ei juuri käsitellä.

Tietokannanhallintajärjestelmä noudattaa yhtä tai useampaa loogista tietomallia. Joskus tietokannanhallintajärjestelmää kutsutaan tarkemmin esimerkiksi relaatiotietokannanhallintajärjestelmäksi, oliotietokannanhallintajärjestelmäksi tai dokumenttitietokannanhallintajärjestelmäksi sen noudattaman tietomallin mukaan.

Tietue

Tietue (mm. record) on yleisesti kokonaisuus dataa ja mahdollisesti myös datan rakennetta. Tietue voi olla esimerkiksi relaatiotietokannassa tietokanta, relaatio, relaation attribuutti tai relaation attribuutin ja monikon leikkauskohta.

Tiedonhallinta

Tiedonhallinta (data management) on sitä kehitystyötä, käyttöä ja valvontaa, joka pyrkii datan ja informaation hallintaan, suojaamiseen, jakamiseen ja arvon nostamiseen [30].

Huomautus

Arkikielessä "tieto" kattaa kaiken mahdollisen tiedon riippumatta sen lähteestä. Kun puhutaan tietojärjestelmistä, tulee erottaa erilaisia tiedon tyyppejä toisistaan. Tässä materiaalissa (ja tietojärjestelmäkirjallisuudessa yleisestikin) tieto jaetaan kolmeen tasoon:

  • Data on merkityksetöntä raakatietoa kuten numeroita, tekstiä, symboleita, kuvia, ääntä tai videota.
    • Esimerkki: Luku 1 on itsessään dataa.
  • Informaatio on dataa jossakin kontekstissa. Ilman kontekstia ja sen tulkintaa data on merkityksetöntä (meaningless).
    • Esimerkki: Kontekstissa "toukokuun päivämäärä" luku 1 muuttuu informaatioksi, sillä se silloin merkitsee päivämäärää 1.5.
  • Tietämys (knowledge) on informaatiota tietystä perspektiivistä. Perspektiivi tuo informaatiolle merkityksellisyyden (significance).
    • Esimerkki: Tietämys on, että 1. toukokuuta on vappu, joka on Suomessa virallinen liputuspäivä.

Tässä materiaalissa käytetään sanaa "tieto" silloin, kun ei ole tarpeen tehdä eroa niiden erityispiirteiden välillä.

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.