Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
TIETOKANNAT JOHDANTO
© JOUNI HUOTARI & ARI HOVI 2000 - 2011
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
• Tekniset talletustavat
– Tietokanta
– Tietokannan hallintajärjestelmä
– Tietokantajärjestelmä
• Tietokannan käyttö
• Tietokantajärjestelmän edut
SISÄLTÖ
Tietokannat © Jouni Huotari & Ari Hovi 3
• 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
• ”Iso kasa tietyssä järjestyksessä olevaa tietoa”
• ”Tiedon (tekstiä, kuvia ym.) tallennuspaikka”, ”tietovarasto”
• ”Kokoelma yhteen liittyviä tietoja”
• ”Tiedot ovat helposti saatavilla”
• ”Ei tarpeetonta, ylimääräistä tietoa”
• ”Määrämuotoinen rakenne (taulukkomainen)”, ”koostuu tauluista” …
TIETOKANTA ON (OPISKELIJOIDEN MÄÄRITELMIÄ)...
Tietokannat © Jouni Huotari & Ari Hovi 5
• 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
• 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, esim. Nelliin:
http://www.nelliportaali.fi/V/?func=home&portal=JAMK&institute=JAMK
TEHTÄVÄ
Tietokannat © Jouni Huotari & Ari Hovi 7
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).
• 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-
palvelin Sovellus-
taso
Data-
taso
Tietokanta-
palvelin
Tietokanta
9
SOVELLUSALUSTAN KOMPONENTIT •K
eh
ittä
min
en
Me
ne
telm
ät, m
alli
t, v
älin
ee
t, tu
ott
avu
us
•Infrastruktuuri ja hallinta
•Käyttökokemus Helppokä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/
• 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ä
*** Tietokannan taulut voidaan liittää ODBC:n avulla toisesta TKHJ:stä Microsoft Accessiin
MICROSOFT ACCESS
Tietokannat © Jouni Huotari & Ari Hovi 11
• 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
NORTHWIND-TIETOKANNAN (V. 2003) RAKENNE: TAULUT SARAKKEINEEN JA TAULUJEN VÄLISET YHTEYDET
Tietokannat © Jouni Huotari & Ari Hovi 13
TAUKO ?
Tietokannat © Jouni Huotari & Ari Hovi 14
• 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 15
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;
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
• 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
18
• 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
• Leikkaus sisältää ne monikot, jotka kuuluvat molempiin lähtörelaatioihin
ESIM. KAHDEN RELAATION LEIKKAUS
Tietokannat © Jouni Huotari & Ari Hovi
R R e e l l a a a a t t i i o o X X : : R R e e l l a a a a t t i i o o Y Y : :
0 0 2 2 b b x x
0 0 2 2 b b x x
A A B B C C
0 0 4 4 d d z z
A A B B C C
0 0 1 1 a a x x
0 0 3 3 c c y y
L L e e i i k k k k a a u u s s X X Y Y
A A B B C C
0 0 2 2 b b x x
X Y
20
TAULU
Tietokannat © Jouni Huotari & Ari Hovi
Perusavain
Sarake Sarake-
nimet
Viiteavain
”isätaulu”
”lapsitaulu”
Rivi YRITYS
HENKILO
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
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
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öasemassa lähettää SQL-kielisiä käskyjä SQL-palvelimelle; ei tietokantaohjelmistoa
Sovellus työasemassa, samoin tietokantaohjel- misto.
• 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
Tietokannat © Jouni Huotari & Ari Hovi
TIETOVARASTO-TEKNIIKAN PERIAATE
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
Tietokanta tietokantapalvelin
• 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
TIETOKANNAN TOTEUTUS
Tietokannat © Jouni Huotari & Ari Hovi
Tietokanta
Käsitemalli Reaalimaailma
Kohdealue
• 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
• 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
• Tutustu seuraavilla sivulla oleviin linkkeihin
• Minkä relaatiotietokantatuotteen valitsisit oman harjoitustyösi tekemiseen ja miksi?
TEHTÄVÄ
Tietokannat © Jouni Huotari & Ari Hovi 32
• 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
• http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems
• 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://ingres.com/
• OCELOT: http://www.ocelot.ca/
• Interbase: http://www.embarcadero.com/products/interbase
• Solid Server: http://www-01.ibm.com/software/data/soliddb/
• MS Access: http://www.microsoft.com/Office/Access/prodinfo/
LINKKEJÄ 2: TUOTTEITA
Tietokannat © Jouni Huotari & Ari Hovi 34