34
TIETOKANNAT JOHDANTO © JOUNI HUOTARI & ARI HOVI 2000 - 2009

Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANNATJOHDANTO

© JOUNI HUOTARI & ARI HOVI 2000 - 2009

Page 2: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TAUSTAA

• Yritykselle tiedot ovat tärkeä resurssi– päätöksenteon tukena (JIT)– varastointi ja käyttö vaativat

investointeja– vrt. energia (lähde,

tuotanto, hallinta, oikeudet…)

• Tiedonhallinta: kaikkea tiedon määrittelyyn, suunnitteluun, toteuttamiseen, ylläpitoon ja käyttämiseen liittyvää toimintaa

•Tietokannat © Jouni Huotari & Ari Hovi

Tietokanta

Tie

to

Page 3: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Tekniset talletustavat

– Tietokanta

– Tietokannan hallintajärjestelmä

– Tietokantajärjestelmä

• Tietokannan käyttö

• Tietokantajärjestelmän edut

SISÄLTÖ

•Tietokannat © Jouni Huotari & Ari Hovi •3

Page 4: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Määrittele tietokanta

• Mitä tietokantoja olet käyttänyt?

• Minkälainen on mielestäsi hyvä tietokantaratkaisu (mainitse esimerkkejä)?

• Millä välineillä tietokanta voidaan toteuttaa?

• Ketä tarvitaan, että tietokanta saadaan käyttäjiä palvelevaksi ratkaisuksi?

TEHTÄVÄ

•Tietokannat © Jouni Huotari & Ari Hovi •4

Page 5: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANTA ON ...

•Tietokannat © Jouni Huotari & Ari Hovi •5

Page 6: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Data Base (database), lyh. DB

• "Tietokoneistettu kortistojärjestelmä"

• "Kokoelma toisiinsa liittyviä tietoja, jotka

– on talletettu ilman haitallista ylimäärää

– ovat usean sovelluksen käytettävissä

– hallitaan yhtenäisen ohjelmiston avulla"

– "... ja jonka rakenteen kuvaus on erotettu ohjelmista" (Nachmens)

• "Reaalimaailman tietomallin toteutus"

TIETOKANTA

•Tietokannat © Jouni Huotari & Ari Hovi •6

Page 7: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Tutustu JaNet-kirjastotietokantaan: http://janet.amkit.fi/

= eräs esimerkki tietokannasta

=> hae tietoa esim. aiheesta ”Tietokannat”

• Lisätehtävä: tutustu myös muihin kirjaston sivulle koottuihin tietokantoihin:– http://www.kirjasto.jypoly.fi/kirjasto/dynamo/dynamo_linkit.htm

– http://www.nelliportaali.fi/V/?func=home&portal=JAMK&institute=JAMK

TEHTÄVÄ

•Tietokannat © Jouni Huotari & Ari Hovi •7

Page 8: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANNAN HALLINTAJÄRJESTELMÄ

• DataBase Management System eli DBMS (suom. TKHJ)

• "Ohjelmisto, joka hoitaa kaikki tietokantaoperaatiot" (Date 1975)

•Tietokannat © Jouni Huotari & Ari Hovi

Tietokannan

hallintajärjestelmä

Kysely-, lisäys-, muutos- ja poistopyynnöt

Tietokanta

Huom.: tietokantaohjelmisto TKHJ. Tietokantaohjelmistolla luodaan tietokanta ja

siihen liittyvät määritykset (kuten käyttöoikeudet).

Page 9: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Tietokantaa käyttävät ohjelmat +

• Tietokannan hallintajärjestelmä +

• Tietokanta

TIETOKANTAJÄRJESTELMÄ

•Tietokannat © Jouni Huotari & Ari Hovi

DB

DBMS

sovellus

Käyttö-

liittymäEsitys-

taso

Sovellus-

palvelinSovellus-

taso

Data-

taso

Tietokanta-

palvelin

Tietokanta

•9

Page 10: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

SOVELLUSALUSTAN KOMPONENTIT•K

eh

ittä

min

en

Me

ne

telm

ät,

ma

llit,

line

et,

tu

ott

avu

us

•Infrastruktuuri ja hallinta

•KäyttökokemusHelppokäyttöisyys, ilmaisuvoima

•Tiedonhallinta•Tietokannat, dokumentit, tietovarastointi

•Palvelut ja prosessit•Liiketoimintaprosessien automatisointi, SOA, EAI •Toimittajat/

•kumppanit

•Asiakkaat

•Päätöksenteon tuki•Raportointi, Analysointi, Mittaristot

Pasi Mäkinen 2008

http://seminaarit.codezone.fi/video/20070821/1/

Page 11: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Sisältää nk. tietokantamoottorin, joka vastaa TKHJ:ä

• Se on sovelluskehitin, koska sillä voidaan luoda – tietokanta (taulut ja niiden yhteydet)

– kyselyt

– käyttöliittymä (nk. lomakkeet)

– raportit

– sovelluslogiikka (sisältää mm. VBA-ohjelmointikielen)

– tietokannan käyttöoikeudet

• Se on siis sekä sovelluskehitin että se voi toimia myös tietokantajärjestelmänä

MICROSOFT ACCESS

•Tietokannat © Jouni Huotari & Ari Hovi •11

Page 12: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Käynnistä koneellasi oleva tietokantaohjelmisto, esim. Microsoft Access

• Avaa esimerkkitietokanta, esim. Northwind

• Tutustu tauluihin: avaa ainakin yksi taulu, selaa taulun sisältöä ja tarkastele myös sen rakennetta

• Tutustu myös muihin esimerkkitietokannan ”komponentteihin” (kyselyihin jne.)

TEHTÄVÄ

•Tietokannat © Jouni Huotari & Ari Hovi •12

Page 13: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

NORTHWIND-TIETOKANNAN RAKENNE: TAULUJEN VÄLISET YHTEYDET

•Tietokannat © Jouni Huotari & Ari Hovi •13

Page 14: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Kyselyt eli haut (Queries)

• Tietojen ylläpito:– lisäys (insert, append)

– muuttaminen, päivittäminen (edit, update)

– poistaminen (delete)

• Tietokannan koko: sadoista tietueista / kymmenistä kilotavuista miljooniin tietueisiin tai tuhansiin Gigatavuihin (Teratavuihin)

• Tietokanta ja taulukkolaskentaohjelma ovat yhdessä mainio pari

TIETOKANNAN KÄYTTÖ

•Tietokannat © Jouni Huotari & Ari Hovi •14

Page 15: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

•Tietokannat © Jouni Huotari & Ari Hovi

ESIMERKKI

• Haku eli kysely Northwind-tietokannasta

Product Sales

$0,00

$50 000,00

$100 000,00

$150 000,00

$200 000,00

$250 000,00

$300 000,00

Bever

ages

Con

dim

ents

Con

fect

ions

Dai

ry P

rodu

cts

Gra

ins/

Cereals

Mea

t/Pou

ltry

Produ

ce

Seafo

od

SELECT Categories.CategoryName, Sum([Order Details

Extended].ExtendedPrice) AS ProductSales

FROM Categories INNER JOIN (Products INNER JOIN

[Order Details Extended] ON Products.ProductID = [Order

Details Extended].ProductID) ON Categories.CategoryID

= Products.CategoryID

GROUP BY Categories.CategoryName

ORDER BY Categories.CategoryName;

Page 16: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANTOJEN OMINAISUUKSIA

• Hakujen nopeus

• Tiedot saadaan järjestyksessä

• Tietojen ajan tasalla pitäminen

• Tieto tallennetaan vain kerran

• Yhteiskäyttö

• Omien näkymien (view) luonti

• Tulokset näytölle, paperille tai tiedostoon

• Tietojen suojaus

•Tietokannat © Jouni Huotari & Ari Hovi

Tietokannan tiedot

- yhteiskäytössä

- samalla tasalla

- talletettu vain kerran

TKHJ

Page 17: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Historia: kortistoista tiedostoihin ja sen jälkeen hierarkkisiin tai verkkomallisiin tietokantoihin

• Nykyisin relaatiotietokannat yleisimpiä

• Erikoistilanteisiin mm. olio- tai multimediatietokanta

TIETOKANTATYYPIT

•Tietokannat © Jouni Huotari & Ari Hovi

Hierarkkinen tietokannan rakenne Verkkomallinen tietokannan rakenne

•17

Page 18: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TAUKO ?

•Tietokannat © Jouni Huotari & Ari Hovi •18

Page 19: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Relaatiomalli: E.F. Codd v. 1970

• Perustuu matematiikkaan, joukko-oppiin (relaatioalgebraan: yhdiste, erotus, leikkaus, ristitulo, valinta, projektio, liitos, jako) ja predikaattilogiikkaan

• Käsittely SQL:llä (Structured Query Language); SQL voidaan upottaa sovellukseen

• Esimerkki esitetty aikaisemmin

RELAATIOTIETOKANNAT

•Tietokannat © Jouni Huotari & Ari Hovi •19

Page 20: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Leikkaus sisältää ne monikot, jotka kuuluvat molempiin lähtörelaatioihin

ESIM. KAHDEN RELAATION LEIKKAUS

•Tietokannat © Jouni Huotari & Ari Hovi

RReellaaaattiioo XX:: RReellaaaattiioo YY::

0022 bb xx

0022 bb xx

AA BB CC

0044 dd zz

AA BB CC

0011 aa xx

0033 cc yy

LLeeiikkkkaauuss XX YY

AA BB CC

0022 bb xx

X Y

•20

Page 21: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TAULU

•Tietokannat © Jouni Huotari & Ari Hovi

Perusavain

SarakeSarake-

nimet

Viiteavain

”isätaulu”

”lapsitaulu”

RiviYRITYS

HENKILO

Page 22: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

YHTEYS TAULUJEN VÄLILLÄ

• YRITYS- eli FIRMA-taulun isällä voi olla monta lasta HENKILO-taulussa (Asiakastunnus on perusavain)

• Lapsesta näkee, kuka on isä (Asiakastunnus on viiteavain)

•Tietokannat © Jouni Huotari & Ari Hovi

2245

Isä: 2245

13; J.Hovi

Isä

(YRITYS-taulu)Lapset

(HENKILO-taulu)

Isä: 2245

9; L.Lahti

Page 23: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

•Tietokannat © Jouni Huotari & Ari Hovi

TIETORIIPPUMATTOMUUS

Tietokanta ja

fyysiset rakenteet

• taulut

• taulutilat

• indeksit

• jne.

Tietoriippumattomuus

RivejäSELECT hloID, hloNimi

FROM HENKILO

WHERE kunta = ’Ii’

HENKILO

hloID hloNimi

SQL:n

käyttäjä

HENKILO

Page 24: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANTAPALVELIMET

•Tietokannat © Jouni Huotari & Ari Hovi

Taulut tiedostossa.

Ei tietokanta-ohjelmistoa.

SQL-kanta;SQL-tietokanta-ohjelmisto,sisältää taulut

SQL

SQL

Tiedostopalvelin Tietokantapalvelin

Sovellus työasemassalähettää SQL-kielisiäkäskyjäSQL-palvelimelle;ei tietokantaohjelmistoa

Sovellustyöasemassa,samointietokantaohjel-misto.

Page 25: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Operatiivinen tietojenkäsittely

– tietokantaa päivitetään runsaasti

– Esim. pankkitilit ja taloushallinto

• Tietovarastot (Data Warehouse)

– tietoja kopioidaan (eräajolla) operatiivisista järjestelmistä tietovarastoon säännöllisin väliajoin

– kyselyjä, raportointia ja tietojen analysointia varten

• Internet ja muut tietokannat

TIETOKANTOJEN KÄYTTÖTAPOJA

•Tietokannat © Jouni Huotari & Ari Hovi •25

Page 26: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

•Tietokannat © Jouni Huotari & Ari Hovi

TIETOVARASTO-TEKNIIKAN PERIAATE

Page 27: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

INTERNET

•Tietokannat © Jouni Huotari & Ari Hovi

esimerkki:

Web -selain

HTML-sivut

Web -palvelin”Veto”-

malli”Työntö”-

malli

triggerit/ ajoitus

SQL-käskyt,ajoittain

SQL-käskyt,dynaamisesti

Tietokantatietokantapalvelin

Page 28: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Käsiteanalyysi

• Käsitemalli: tietokannan piirustukset

• Haetaan käsitteitä (kohde, objekti, eng. entity), esim. Asiakas, Tilaus, Tilausrivi, Osasto, Tuote, Tuoteryhmä, Henkilö, Tili, Tilivienti

• Katso tarkemmin kalvot Käsiteanalyysi(suunnitteluputki) ja/tai kirjasta luvut 2 - 4

TIETOKANTOJEN SUUNNITTELU

•Tietokannat © Jouni Huotari & Ari Hovi •28

Page 29: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

TIETOKANNAN TOTEUTUS

•Tietokannat © Jouni Huotari & Ari Hovi

Tietokanta

Käsitemalli Reaalimaailma

Kohdealue

Page 30: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Tietokantojen määrittely, suunnittelu ja toteutus voi jakautua seuraaviin ryhmiin:

– järjestelmäsuunnittelija tekee vaatimusmäärittelyt

– tietokantasuunnittelija tekee kuvauksen tietokannan rakenteesta ja tiedoista (raja-arvot, tietotyypit jne.)

– järjestelmänvalvoja (administrator) määrittää tietokannan kaikki oikeudet

– sovellusohjelmoijat toteuttavat toimintalogiikan (mm. SQL-lauseiden upottaminen koodiin)

• Käyttäjät hakevat ja päivittävät (ylläpitävät) tietoja

TIETOKANTOJEN KÄYTTÄJÄRYHMÄT

•Tietokannat © Jouni Huotari & Ari Hovi •30

Page 31: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Varmistukset

– vaihtuvat: päivittäin, viikoittain

– pysyvät: kuukausittain tai vuosittain

• Eheys

– tiedot oikein (esim. tarkistussäännöt)

– viite-eheydestä huolehtiminen

• Tietosuoja

– lain huomioiminen

– käyttöoikeuksien valvonta (salasanat, loki)

TURVALLISUUSNÄKÖKOHTIA

•Tietokannat © Jouni Huotari & Ari Hovi •31

Page 32: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Tutustu seuraavilla sivulla oleviin linkkeihin

• Minkä relaatiotietokantatuotteen valitsisit oman harjoitustyösi tekemiseen ja miksi?

TEHTÄVÄ

•Tietokannat © Jouni Huotari & Ari Hovi •32

Page 33: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Sanasto: http://www.cs.helsinki.fi/~laine/relaatiosanasto/

• SQL:– http://www.firstsql.com/tutor.htm

– http://www.managedtime.com/freesqlbook.php3

– http://www.contrib.andrew.cmu.edu/~shadow/sql.html

– www.sqlcourse.com ja www.sqlcourse2.com

LINKKEJÄ 1

•Tietokannat © Jouni Huotari & Ari Hovi •33

Page 34: Tietokannat - johdantohomes.jamk.fi/~huojo/opetus/IIZO3020/IIZO3020m2.pdf · TAUSTAA • Yritykselle tiedot ovat tärkeä resurssi –päätöksenteon tukena (JIT) –varastointi

• Oracle: http://www.oracle.com/, http://otn.oracle.com

• DB2: http://www-4.ibm.com/software/data/db2/

• SQL-Server: http://www.microsoft.com/sql/

• MySQL: http://dev.mysql.com/

• PostgreSQL: http://www.postgresql.org/

• Ingres: http://opensource.ca.com/projects/ingres

• OCELOT: http://www.ocelot.ca/

• Interbase: http://www.borland.com/interbase/

• Solid Server: http://www.solidtech.com/

• MS Access: http://www.microsoft.com/Office/Access/prodinfo/

LINKKEJÄ 2: TUOTTEITA

•Tietokannat © Jouni Huotari & Ari Hovi •34