TIEDONHALLINTA - SYKSY 2017 Kurssikoodi: Saapumisryhmä: Luento 1 TX00CN57-3001 TXQ16ICT, TXQ16S1 ja TXQ16PROS Pasi Ranne 28.8.2017 Mukaillen: Olli Hämäläinen: Tiedonhallinnan perusteet, syksy 2010 ja Hannu Markkanen: Tiedonhallinan perusteet, syksy 2011 27/8/17 Helsinki Metropolia University of Applied Sciences 1
Esittelyt Opettajan taustat Opiskelijat Onko kokemusta tietokantojen toteuttamisesta? Mitä haluatte oppia tietokannoista? Pasi Ranne Metropolia Ammattikorkeakoulu 2
Opintojakson tavoitteet ja pääsisältö Tiedonhallinnan peruskäsitteiden tunteminen Perusasiat, tietovarastot ja tiedonlouhinta (varauksin) Relaatiotietokantajärjestelmien toimintaperiaatteiden tunteminen Tietokannanhallintajärjestelmät Relaatiotietokannan suunnittelun perusteiden osaaminen Käsiteanalyysi ja mallinnus Pasi Ranne Metropolia Ammattikorkeakoulu 3
Opintojakson tavoitteet ja pääsisältö Standardin kyselykielen (SQL) perusteiden hallinta MySQL:n ja MS Accessin peruskäytön hallinta Pasi Ranne Metropolia Ammattikorkeakoulu 4
Sisällön rajausta Huotari 27/8/17 Metropolia Ammattikorkeakoulu 5
Kurssimateriaali Kalvokopiot, harjoitukset ja mahdollinen muu materiaali julkaistaan Oman työtilassa. Viopen SQL ja relaatiotietokannat verkkokurssin oppituntien teoriaosuudet 27.8.2017 Pasi Ranne 6
Kirjallisuutta Hovi: SQL-opas, WSOYPro (Docendo), 2010 (vanhemmat myös OK). Hovi Huotari Lahdenmäki: Tietokantojen suunnittelu ja indeksointi, WSOYPro (Docendo), 2005. ylläolevia voi lainata myös Ellibsissä Hernandez: Tietokannat - suunnittelu ja toteutus käytännössä, IT-Press, 2002. Elmasri Navathe: Fundamentals of Database Systems, Addison-Wesley, 2004. Microsoft Access-käsikirjat ja oppaat MySQL-käsikirjat ja oppaat Materiaaleissa annettavat nettilähteet 27.8.2017 Pasi Ranne 7
Johdanto
Mitä on tieto? Tietotekniikassa tieto tarkoittaa mm. dataa informaatiota tietämystä (knowledge) sanomaa (message) Filosofiassa tieto määritellään esim. hyvin perusteltu tosi uskomus Tiedonhallinnassa on kyse datan hallinnasta, mutta sen motiivi on informaation ja tietämyksen tallentaminen 27.8.2017 Pasi Ranne 9
Data ja metadata Wikipedia: Data on esitys, jolla ei itsessään ole merkitystä. Kun dataa käsitellään ja sille annetaan merkitys, siitä voi syntyä informaatiota ja lopulta tietoa. Data are pieces of information that represent the qualitative or quantitative attributes of a variable or set of variables. Data (plural of "datum", which is seldom used) are typically the results of measurements and can be the basis of graphs, images, or observations of a set of variables. Data are often viewed as the lowest level of abstraction from which information and knowledge are derived. Metadata (meta data, or sometimes metainformation) is "data about other data", of any sort in any media. An item of metadata may describe an individual datum, or content item, or a collection of data including multiple content items and hierarchical levels, such as a database schema. In data processing, metadata provides information about, or documentation of, other data managed within an application or environment. This commonly defines the structure or schema of the primary data. 27.8.2017 Pasi Ranne 10
Tiedonhallinta Tiedon käsitteen monimerkityksisyydestä seuraa, että myös käsitteelle tiedonhallinta annetaan käytännössä hyvin monenlaisia merkityksiä Yleisellä tasolla: kaikkea tiedon hankintaan, tallentamiseen, ylläpitoon ja käyttöön liittyvää toimintaa Tällä kurssilla tiedonhallinta tarkoittaa kuitenkin teknistä matalan tason datan hallintaa ja sen välineitä, erityisesti tietokannan hallintajärjestelmiä 27.8.2017 Pasi Ranne 11
Tiedonhallintaratkaisuun vaikuttavia tekijöitä Käyttötarkoitus Operatiivinen (OLTP): tietoa päivitetään useasti Analysoiva (OLAP): raportointia ja analysointia varten tietovarastoon (Data Warehouse) kopioidusta tiedosta Tiedon esitysmuodot määrämuotoinen monimuotoinen Käyttäjätahot Tietomäärät Käyttötiheydet haut, päivitykset, kasvuvauhti Aikavaatimukset Pasi Ranne 12
Tietokantojen käyttö ja merkitys Tietokannat ja tietokantajärjestelmät ovat olennainen osa kaikkea nyky-yhteiskunnan tietojenkäsittelyä Kansalaiset käyttävät tietokantoja päivittäin esimerkiksi: Pankkiasioihin Matkanvarauksiin Lehtien tilaamiseen Kirjastoissa Ylllämainitut tapahtumakeskeiset järjestelmät ovat esimerkkejä perinteisistä tiedonhallintaratkaisuista, joissa pääosa tiedosta tallennetaan aakkosnumeerisessa muodossa. Pasi Ranne Metropolia Ammattikorkeakoulu 13
Tietokantojen käyttö ja merkitys Viimeisen kymmenen vuoden aikana tiedonhallinnan soveltaminen on laajentunut koskemaan kaikkea tietojenkäsittelyä, kuten: Multimediatietokantoja, jotka voivat sisältää mitä tahansa sekä still- että videomuotoisena Maantieteelliseen tietojenkäsittelyyn tarkoitetut järjestelmät (geographic information systems, GIS) mahdollistavat paikkaan sidotun tiedon esittämisen ja tallentamisen tietokantoihin. Esimerkkejä tällaisista loppukäyttäjille suunnatuista järjestelmistä ovat Google Earth ja erilaiset karttasovellukset. Tiedonvarastointia (data warehousing) ja tosiaikaista analyyttistä käsittelyä (on-line analytical processing, OLAP) sovelletaan suuryrityksissä, joissa valtavien tietomassojen analysointi on ensiarvoisen tärkeää päätöksenteon tukemisen kannalta Tietokantakyselyitä sovelletaan myös verkkoympäristöissä erilaisten hakujen tehostamisessa ja nopeuttamisessa Tietokantojen merkitys tulee kasvamaan entisestään tulevaisuuden järjestelmissä Pasi Ranne Metropolia Ammattikorkeakoulu 14
Tehtävä Määrittele tietokanta Mitä tietokantoja olet käyttänyt? Minkälainen on hyvä tietokantaratkaisu, mainitse esimerkkejä? Pasi Ranne Metropolia Ammattikorkeakoulu 15
Tietokantojen peruskäsitteitä
Mikä on tiedosto? Tiedosto on tietokoneessa yhdeksi kokonaisuudeksi ymmärrettävä tietojen tai tietueiden kokoelma, joka voi sisältää esimerkiksi tekstiä, musiikkia, videokuvaa tai käyttäjän hyödynnettävissä olevan ohjelman. A computer file is a block of arbitrary information, or resource for storing information, which is available to a computer program and is usually based on some kind of durable storage. A file is durable in the sense that it remains available for programs to use after the current program has finished. (Wikipedia) 27.8.2017 Pasi Ranne 17
Tiedostot Kaikki yksittäisen ohjelman suorituksesta riippumatta olemassa oleva tieto on talletettu tiedostoon. Myös tietokannan hallintajärjestelmät (Database Management Systems, DBMS) käyttävät tiedostoja, mutta rakenteet ja yksityiskohdat on yleensä piilotettu käyttäjältä käytön helpottamiseksi. Se mitä yksittäisestä tietokannasta näkyy käyttöjärjestelmä- ja tiedostojärjestelmätasolla riippuu tietokannan hallintajärjestelmästä: ulospäin saattaa näkyä vain yksi tiedosto. 27.8.2017 Pasi Ranne 18
Mikä on tietokanta? Tietokanta on tietotekniikassa käytetty termi tietovarastolle. Se on kokoelma tietoja, joilla on yhteys toisiinsa. Tietokannan ei välttämättä tarvitse olla sähköisessä muodossa, vaan sellaista voidaan pitää esimerkiksi kynällä ja paperilla. Kalenterikin on tietokanta. A database consists of an organized collection of data for one or more uses, typically in digital form. One way of classifying databases involves the type of their contents, for example: bibliographic, document-text, statistical. Digital databases are managed using database management systems, which store database contents, allowing data creation and maintenance, and search and other access. (Wikipedia) 27.8.2017 Pasi Ranne 19
Mikä on tietokanta? Tietokannalla (database) voidaan tarkoittaa mitä hyvänsä yhteenkuuluvien tietojen muodostamaa kokonaisuutta alkaen kortistosta ja Excel-taulukon osasta aina suuriin globaalisti hajautuneisiin ja eri tekniikoin toteutettuihin laajoihin tietokokonaisuuksiin. 27.8.2017 Pasi Ranne 20
Tietokanta tarkempi määritelmä Kokoelma toisiinsa liittyviä tietoja, jotka on talletettu ilman haitallista ylimäärää ovat usean sovelluksen käytettävissä Tieto (data) ja tiedon esitystapa (metatieto l. metadata) on eriytetty sovellusohjelmista Tietoa ja metatietoa säilytetään ja käsitellään erillisellä tietokannan hallintaohjelmistolla (TKHJ) DBMS, database management system Tietokanta on aina suunniteltu, rakennettu ja täytetty datalla tiettyä tarkoitusta varten. Sillä on ennaltamääritelty käyttäjäkunta ja sovellukset, joita käyttäjät soveltavat tarpeisiinsa. 27.8.2017 Pasi Ranne 21
Tietokantajärjestelmä Sovellusohjelmat Tietokannanhallintajärjestelmä Tietokanta Virkki, Mikkola Pasi Ranne Metropolia Ammattikorkeakoulu 22
Tietojärjestelmän 3-tasoarkkitehtuuri Datataso (tietovarastotaso) Sovelluslogiikan taso (ohjelmalogiikan, businesslogiikan taso) Esitystaso (käyttöliittymätaso) Hovi, Huotari Pasi Ranne Metropolia Ammattikorkeakoulu 23
Tietokannan hallintajärjestelmä Tiedonhallintajärjestelmä koostuu joukosta sovelluksia, joilla käyttäjät voivat suunnitella ja ylläpitää tietokantoja. Tuki tiedon määrittelylle ja muokkaukselle DDL: Data Definition Language DML: Data Manipulation Language Metatiedon (kaavan) ylläpito Tallentaminen, haku, päivitykset Tiedon eheyden valvonta Transaktioiden hallinta Samanaikaisuuden hallinta Vikatilanteista toipuminen Tiedon suojaus Tietoliikenteen tuki Hovi, Huotari 27.8.2017 Pasi Ranne 24
Tietomalli Tietomalli on kokoelma käsitteitä, joiden avulla pystytään kuvaamaan tietokannan rakennetta Tietotyypit Tietojen väliset suhteet Rajoitukset Tarjoaa välineet tiedon abstrahointiin 27.8.2017 Pasi Ranne 25
Tietomallien jaottelua Korkean tason eli käsitteellisissä tietomalleissa tietokannan rakennetta kuvataan käyttäjän ymmärtämillä käsitteillä Entiteetti edustaa jotain reaalimaailman kohdetta tai käsitettä (esim. tuote, tilaus). Attribuutti tarkoittaa jotain entiteettiin kuuluvaa ominaisuutta (esim. tuotteen nimi ). Liittymä puolestaan kuvaa kahden tai useamman entiteetin välistä yhteyttä (tuotenumero liittää tilauksen ja tuotteen tiedot toisiinsa). Matalan tason eli fyysisissä tietomalleissa kuvataan miten data on tallennettuna tietokoneelle (esim. tietueiden talletusmuoto, järjestys, saantipolut). Nämä mallit on tarkoitettu tietokantaasiantuntijoiden käyttöön. Edellisten kahden tason välissä on nk. toteutusmalli, joka on tietokannan käyttäjän ymmärrettävissä ja toisaalta käytettävissä tietokannan hallintajärjestelmässä piilottaa fyysisen mallin yksityiskohtia Pasi Ranne 26
Erilaisia tietomalleja Tiedostomalli (flat file) Hierarkinen tietomalli Verkkomalli Relaatiomalli Oliomalli Nykänen Pasi Ranne 27
Tietokannan kaavat ja sisältö Tietokannan sisältö ja sen kuvaus pidetään erillään toisistaan. Tietokannan kuvausta kutsutaan tietokannan kaavaksi (database schema). Tietokannan kaava määritellään suunnitteluvaiheessa ja siihen ei (haluta) tehdä muutoksia kovin usein. Kaavadiagrammi selvittää osan tietokannan kaavan sisällöstä, kuten taulujen nimet ja tietokentät sekä yksinkertaisia rajoituksia (esimerkiksi avainattribuutit). Monimutkaisia rajoituksia ei kaavadiagrammilla pystytä esittämään. Tietokannan datasisältöä tietyllä hetkellä kutsutaan tietokannan tilaksi. Tietokanta on määrittelyn jälkeen tyhjässä tilassa ( ei vielä sisällä dataa ) Tehtäessä päivityksiä tietokantaan sen tila muuttuu. Pasi Ranne Metropolia Ammattikorkeakoulu 28
Tietoriippumattomuus Looginen tietoriippumattomuus tarkoittaa mahdollisuutta tehdä lisäyksiä käsitekaavaan (esim. uusia tauluja ja sarakkeita) ilman tarvetta muuttaa samalla sovellusohjelmia. Fyysinen tietoriippumattomuus tarkoittaa, että fyysisten datatiedostojen uudelleenorganisointi ei aiheuta muutoksia ylemmillä tasoilla. Dataan voidaan lisätä esim. uusia saantipolkuja ilman, että kyselyitä tai sovellusohjelmia jouduttaisiin muuttamaan. Muutos fyysisellä tasolla vaikuttaa vain operaatioiden suoritusaikaan Pasi Ranne Metropolia Ammattikorkeakoulu 29