English version of the materials are work in progress!
Expect bugs, typos, and other issues. The English version is expected to be completed during spring 2026.
Basic Concepts and Definitions
Before going into the actual content, it is good to establish the most important concepts first. This chapter collects the most common concepts related to databases and data management. The concepts are based on definitions presented by Elmasri and Navathe [15].
Database
A database is generally a collection of related data. Usually, when talking about a database, it is also assumed to have the following properties:
- The database represents some aspect of the real world. If changes occur in that part of the real world that the database describes, the changes are reflected in the database as well.
- The database is a logically coherent collection of data, and this data has inherent meaning. In other words, database data connects to each other somehow. A random subset of database data is not a database.
- The structure and data of the database are designed and implemented for a specific purpose, and the database has an intended user group and application program.
Esimerkki
The most common example of a database is probably a database intended for the operation of an online store:
It represents a part of the real world, such as customers, products, and purchases. The part of the real world is determined by the domain of the database, i.e., the context in which the database is used. For example, for the operation of an online store, customer address information is needed, but hardly the color of the customer's eyes (unless it is important for the operation of the online store, e.g., a makeup online store).
It is a logically coherent collection of data: there are various connections between customers, products, and purchases (e.g., a customer can put products in a shopping cart).
Its structure and data are designed for its intended use: the online store database enables the operation of the online store.
Database Management System and Database System
A Database Management System (DBMS) is software that enables defining the structure of a database, searching, adding, deleting, and modifying data, as well as securing, maintaining, and sharing the database for different application programs and users. The database management system thus offers users and applications a simplified user interface for data processing. The structure of a database management system is introduced in more detail in Chapter 2.1.
A database system is a collective term for a database, a database management system, and an application program using them. The application program offers end-users the business logic and user interface through which the system is used. The application program can be, for example, a web page, an application installed on a device, or even a single server program. Nowadays, it is also common that a database system contains multiple databases, applications, and even database management systems.
Esimerkki
There are thousands of commercial and open database management systems for all kinds of uses. In addition to this, companies may maintain their own closed database management systems to cover special requirements of their domain.
In December 2024, the following 10 database management systems were the most popular:
- Oracle DB (general purpose, primarily relational model)
- MySQL (general purpose, primarily relational model)
- Microsoft SQL Server (general purpose, primarily relational model)
- PostgreSQL (general purpose, primarily relational model)
- MongoDB (general purpose, primarily document-based)
- Redis (primarily key-value pair based, often used as cache)
- Snowflake (database as a service, relational model)
- Elasticsearch (primarily for building search engines)
- IBM Db2 (general purpose, primarily relational model)
- SQLite (relational model, intended for application-internal single-file databases)
(Source: https://db-engines.com/en/ranking)
In this material, we get to know the SQLite database management system. SQLite's specialty is its simplicity and easy embeddability: SQLite databases are saved in a single file, and using the database does not require special server software. SQLite is used, among other things, in browsers, mobile applications, and IoT devices.
Data Model
A data model is a definition of data structures (such as relation), operations (such as join), and related concepts important to the model. For example, a relational or network model are data models. The data model used in a database is also referred to as a database paradigm (cf. programming paradigm in programming languages).
Data models can be divided into three groups:
- Conceptual models: describe what domain data is needed and how it is structured without taking a stand on how data is finally stored; can interpret graphically (e.g. UML class diagram or ER model).
- Logical models: describe in what kind of data structures and according to which data model information is stored and processed (e.g. relational model).
- Physical models: describe how information is finally stored on disk (e.g. data types, tablespaces, disk blocks, indexes).
In this material, we familiarize ourselves with one conceptual level data model (ER model) and one logical level data model (relational model). Physical data models are hardly covered in this material.
A database management system follows one or more logical data models. Sometimes a database management system is called more precisely, for example, a relational database management system, object database management system, or document database management system according to the data model it follows.
Record
A record is generally a collection of data and possibly also data structure. A record can be, for example, in a relational database a database, relation, relation attribute, or the intersection of a relation attribute and tuple.
Data Management
Data management is the development, execution, and supervision that aims to manage, protect, deliver, and enhance the value of data and information assets [30].
Huomautus
In everyday language, "information" covers all possible information regardless of its source. When talking about information systems, different types of information must be distinguished from each other. In this material (and in information system literature generally), information is divided into three levels:
- Data is meaningless raw information such as numbers, text, symbols, images, sound, or video.
- Example: The number 1 is data in itself.
- Information is data in some context. Without context and its interpretation, data is meaningless.
- Example: In the context "date in May", the number 1 turns into information, as it then means the date May 1st.
- Knowledge is information from a certain perspective. Perspective brings significance to information.
- Example: Knowledge is that May 1st is May Day (Vappu), which is an official flag day in Finland.
In this material, the word "information" (tieto) is used when it is not necessary to distinguish between their special features.
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ä.
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:
- Oracle DB (yleiskäyttöinen, ensisijaisesti relaatiomalli)
- MySQL (yleiskäyttöinen, ensisijaisesti relaatiomalli)
- Microsoft SQL Server (yleiskäyttöinen, ensisijaisesti relaatiomalli)
- PostgreSQL (yleiskäyttöinen, ensisijaisesti relaatiomalli)
- MongoDB (yleiskäyttöinen, ensisijaisesti dokumenttipohjainen)
- Redis (ensisijaisesti avain-arvoparipohjainen, käytetään usein välimuistina)
- Snowflake (tietokanta pilvipalveluna, relaatiomalli)
- Elasticsearch (ensisijaisesti hakukoneiden rakentamiseen)
- IBM Db2 (yleiskäyttöinen, ensisijaisesti relaatiomalli)
- 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.