200 likes | 390 Views
Tietokannat I. Kevät 2007 Olli Luoma. Kurssista. Yleistä Laajuus 5 op, taso riippuu suuntautumisvaihtoehdosta Luennot 28 h, Demot 10h ja loppukuulustelu Kurssin kotisivu: http://staff.cs.utu.fi/~olallu/TKAN1/ Henkilöt, ajat ja paikat Luennot: Olli Luoma; Ke 14-16 ja To 10-12 Alpha
E N D
Tietokannat I Kevät 2007 Olli Luoma
Kurssista • Yleistä • Laajuus 5 op, taso riippuu suuntautumisvaihtoehdosta • Luennot 28 h, Demot 10h ja loppukuulustelu • Kurssin kotisivu: http://staff.cs.utu.fi/~olallu/TKAN1/ • Henkilöt, ajat ja paikat • Luennot: Olli Luoma; Ke 14-16 ja To 10-12 Alpha • Demot: Olli Luoma, Mikko Savela ja Kimmo Tarkkanen; Ma 8-16 B2033 ja B2038 • Kurssimateriaali • Luentomoniste, jota jaetaan luennoilla • Luentokalvot • Linkkejä kurssin kotisivulla
Kurssin asioista • Relaatiomalli • Mikä on relaatio? Mikä on relaatiotietokanta? • Miten tietokannasta haetaan tietoa? • Miten tietokannan sisältämää tietoa muokataan? • Tietokannan suunnittelu • Mitä on käsitteellinen mallintaminen? • Mikä on käsitteellisen mallin ja relaatioiden suhde? • SQL • Miten SQL:n avulla luodaan tietokantoja? • Miten tietokannasta haetaan tietoja SQL:n avulla? • Miten tietokantaa päivitetään?
Kurssin tarpeellisuudesta • Tekeekö näillä jutuilla oikeasti mitään? • Käytännössä kaikki tietojärjestelmät perustuvat relaatiotietokantaan • Tietokantaosaaminen on tarpeen lähes kaikissa alan tehtävissä • Eli kaikki sitten kai osaavat? No ei... • Relaatiomallia ei ymmärretä, vaikka kyse on oikeastaan varsin yksinkertaisesta asiasta • SQL:ää ei edellisestä johtuen osata kovinkaan hyvin • Esitietona monille kiinnostaville kursseille • Tietokannat II, Advanced Course on Databases, XML Technologies and Applications, Multimedia Databases, ...
Demoista • Poikkeavat demojärjestelyt • Demotehtävät ratkaistaan ryhmätyönä demotilaisuuksista • Hyötyäkseen demoista on syytä seurata luentoja tai ainakin opiskella demoissa tarvittavat asiat itsenäisesti • Osa demoista pyritään järjestämään mikroluokissa • Tenttioikeuden saavuttaminen • Osallistuttava vähintään neljään viidestä demotilaisuudesta • Jos edellisen vaatimuksen täyttäminen on (jostain hyvästä syystä) ongelma, ota yhteyttä luennoitsijaan
Tieto • Digitaalisesti tallennettua informaatiota • Rakenteeton tieto • Teksti, puhe, kuvat jne. • Käsitellään yleensä kokonaisuutena • Rakenteinen tieto • Taulukot, puurakenteet jne. • Tieto jäsennelty osiin, tietoalkoihin • Kurssilla perehdytään ennen kaikkea rakenteisen tiedon hallintaan
Tietomallit • Relaatiomalli • Tieto jäsennellään relaatioihin eli käytännössä tauluihin • Suhteellisen helppoa omaksua ja toteuttaa tehokkaasti • Ylivoimaisesti suosituin lähestymistapa • Verkkomalli • Tietoalkiot yhdistyvät toisiinsa verkoksi • Käytännössä vaikea toteuttaa • Hierarkkinen tietomalli • Tietoalkiot sisältyvät toisiinsa; puurakenne, XML-dokumentti • Helposti omaksuttavissa, vaikea toteuttaa
Abstraktiotasot • Käsitteellinen taso • Tietoalkioiden merkitys • ”Tietokannassa on tietoa asiakkaista, osoitteista, tilauksista, ...” • Rakenteellinen taso • Tietoalkioiden suhteet ja jäsennys • ”Asiakkaat on esitetty taulukossa, jossa ensimmäinen sarake kuvaa asiakkaan nimeä, toinen lempiruokaa, ...” • Fyysinen taso • Tietoalkioiden fyysinen tallennustapa • ”Orimatti Teuras; Maksalaatikko; ...”
Kurssien ”abstraktiotasot” • Käsitteellinen taso • Tietojärjestelmien mallintaminen • Jossain määrin myös Tietokannat I • Rakenteellinen taso • Tietokannat I, Tietokannat II • Jossain määrin myös Multimedia Databases • Fyysinen taso • Advanced Course on Database Systems • Multimedia Databases • Jossain määrin myös Tietokannat II
Tietokanta • Laveasti määritellen kokoelma rakenteista tietoa • Puhelinluettelo; tietoa henkilöistä, puhelinnumeroista ja osoitteista • Kaupan tietokanta; tietoa asiakkaista, tilauksista, tuotteista, toimittajista varastosaldoista jne. • Tiukemmin määritellen tietokokoelma, joka • On itsekuvaileva • Tukee useita yhtäaikaisia käyttäjiä • On tarkasteltavissa eri näkökulmista • Toimii erillään kokoelman tietoja käyttävistä ohjelmista
Itsekuvailevuus • Tietokanta sisältää • Varsinaisen tiedon eli datan • Datan rakennetta kuvailevan tiedon eli metadatan • Onko alla esitetty taulukko itsekuvaileva? • Mitä ovat ”Potkukelkka” ja ”Teuras”? • Ovatko silakkapihvit ja maksalaatikko lempi- vai inhokkiruokia? • Voimme erikseen tallentaa tiedon siitä, mitä sarakkeet sisältävät
Yhtäaikainen käyttö • Käytännössä tietokannalla on aina useita käyttäjiä • Verkkokaupalla ehkä satoja tai jopa tuhansia käyttäjiä • Yhtäaikaisen käytön ongelmat • Kaksi asiakasta yrittää samaan aikaan tilata ainoan tuotteen tai varata saman paikan lennolle • Voiko useampi käyttäjä muokata tekstitiedostoa samaan aikaan? • Kyllä, jos tähän tarkoitukseen toteutetaan ohjelma
Monta näkökulmaa tietoon • Eri käyttäjäryhmät tarvitsevat eri tietoja • Pankkitoimihenkilön on haettava eri tietoja kuin pankin asiakkaan • Pankkitoimihenkilön on päästävä käsiksi tietoihin, joita pankin asiakas ei voi muuttaa • Voidaanko käyttäjille tarjota erilaisia näkökulmia tekstitiedostoon? • Kyllä, jos tähän tarkoitukseen toteutetaan ohjelma
Riippumattomuus ohjelmista • Uusien ohjelmien toteuttaminen • Voimme toteuttaa uusia tietokantaa käyttäviä ohjelmia muuttamatta tietokantaa tai kajoamatta vanhoihin ohjelmiin • Uusien tietojen lisääminen • Voimme tarvittaessa lisätä uusia tietoja tietokantaan muuttamatta ohjelmia • Voidaanko tekstitiedostosta tehdä ohjelmariippumaton? • Kyllä, jos kirjoitetaan ohjelma, jonka avulla muut ohjelmat käyttävät tiedostoa
Tietokannanhallintajärjestelmä • TKHJ on ohjelmisto, jonka avulla voidaan • Luoda uusia tietokantoja • Lisätä, poistaa ja hakea tietoa tietokannasta • Hallita suuria tietomääriä (gigatavuja, teratavuja, petatavuja) tehokkaasti • Kohdistaa tietokantaan useita yhtäaikaisia operaatioita • Toteuttaa sovelluksia, jotka käyttävät tietokantaa • Esimerkkejä tietokannanhallintajärjestelmistä • Oracle, SQL Server, ... (kaupallisia) • MySQL, Postgres, Interbase, ... (ilmaisia) • Access (monilla ehkä kotikoneella) • Jonkin TKHJ:n kokeileminen myös itsenäisesti on erittäin suositeltavaa
TKHJ:t • Koostuvat monista osista • Tallennusmoottori, kyselymoottori, lukitusjärjestelmä, ... • Hallintaohjelmat, varmuuskopiointiohjelmat, ... • Teknisesti hyvin kypsiä • Pankkitoiminta, arvopaperikauppa, ... • Hallittavana valtavia tietomääriä • Periaatteessa standardoituja • Relaatiotietokannat tukevat SQL:ää, Hierarkkiset tietokannat XML-kyselykieliä jne. • Monissa kuitenkin lisäominaisuuksia
Eli siis... • TKHJ:n tehtävänä on piilottaa tietokannan fyysinen toteutus ja tarjota rakenteellisen tason rajapinta tiedon käsittelyyn • Periaatteessa tietokannanhallintajärjestelmä käyttää tiedostoja siinä missä muutkin ohjelmat • Tallennettavat tiedot ovat jäsennettävissä TKHJ:n tietomallin avulla • Relaatiomalli: taulukot • Verkkomalli: tietoalkioiden muodostama verkko • Hierarkkinen malli: puu
Kertaus • Tietokanta • Itsekuvaileva • Useita käyttäjiä • Erilaisia näkymiä tietoon • Erillinen tietoja käyttävistä ohjelmista • TKHJ on tietokantojen käsittelyyn tarkoitettu ohjelmisto • Käytännössä nykyiset TKHJ:t perustuvat relaatiomalliin
Relaatio (1) • Puhumme usein jonkinlaisista suhteista • ”Mikki tykkää Minnistä” • ”Aku tykkää Iineksestä” • ”Kaarle Kustaa XI on Ruotsin kuningas” • ... • Suhdetta voidaan ajatella relaationa, joka kytkee • Havainnollisimmin relaatiota voi ajatella tauluna
Relaatio (2) • Relaation ominaisuuksia kutsutaan attribuuteiksi • Kaava... • ...