Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Näkökulmat tietoon. Abstraktiotasot tiedon käsittelyssä

Samankaltaiset tiedostot
On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Relaatiomallin peruskäsitteet Harri Laine 1. Relaatiotietokannat DONOTP

Tietomallit. Näkökulmat tietoon. Näkökulmat tietoon. Mitä malleja olisi tarjolla? Abstraktiotasot tiedon käsittelyssä

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 relaatiomalli Harri Laine 1.

Helsingin yliopisto/tktl Tietokantojen perusteet, k 2003 Relaatiomallin peruskäsitteet Harri Laine 1. Tietomallit. Näkökulmat tietoon

millainen on se kohde, jota tiedoilla pitäisi kuvata asiat, joita pitäisi esittää Mitä tietoelementtien arvot tarkoittavat

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

HELIA 1 (17) Outi Virkki Tiedonhallinta

Relaatiomalli ja -tietokanta

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2006 Tiedon mallinnus ja tietokannat. Harri Laine 1. Tietokanta.

Tietokantojen suunnittelu, relaatiokantojen perusteita

Relaatioalgebra. Kyselyt:

Relaatioalgebra. Relaatioalgebra. Relaatioalgebra. Relaatioalgebra - erotus (set difference) Kyselyt:

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

Kyselyt: Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita

HAAGA-HELIA heti09 1 (27) ICT05 Tiedonhallinta ja tietokannat O.Virkki Relaatiomalli

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

Tietokantojen perusteet, osa 1

joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus

HELIA 1 (20) Outi Virkki Tiedonhallinta

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia

HELIA TIKO-05 1 (28) ICT03D Tieto ja tiedon varastointi O.Virkki

TIEDONHALLINTA - SYKSY Luento 7. Pasi Ranne /10/17 Helsinki Metropolia University of Applied Sciences

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

HELIA 1 (12) Outi Virkki Tiedonhallinta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

Helsingin yliopisto/ tktl DO Tietokantojen perusteet, s 2000 Relaatioalgebra Harri Laine 1. Relaatioalgebra

TIEDONHALLINTA - SYKSY Luento 2. Pasi Ranne /8/17 Helsinki Metropolia University of Applied Sciences

2. Käsiteanalyysi ja relaatiomalli

Luento 3 Tietokannan tietosisällön suunnittelu

Tietokannan suunnittelu

Mikä on tietomalli? Relaatiomallin käsitteitä 1/2 (kuva 5.1) Relaatiomallin taustaa

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

Helsingin yliopisto/ tktl D Tietokantojen perusteet, s 2000 Relaatioalgebra. Harri Laine 1. Relaatioalgebra.

3. Käsiteanalyysi ja käsitekaavio

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

HELIA 1 (11) Outi Virkki Tiedonhallinta

Johdanto. Kiinteistöhuoltoyhtiö tarvitsee järjestelmän huoltopyyntöjen hallinnointiin

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

811120P Diskreetit rakenteet

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, k 2006 relaatioalgebra. Harri Laine 1

Joukot. Georg Cantor ( )

MS-A0402 Diskreetin matematiikan perusteet

Tietokantakurssit / TKTL

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 Tietokannan suunnittelusta Harri Laine 1

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2004 Tietokannan suunnittelusta. Harri Laine 1

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

CSE-A1200 Tietokannat

Jouni Huotari & Ari Hovi. Käsitemallinnuksesta relaatiokantaan KÄSITEMALLI. LOOGINEN MALLI: tietomalli valittu. FYYSINEN MALLI: DBMS valittu

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

Kari Aalto Saariston IT

HELIA 1 (17) Outi Virkki Tiedonhallinta

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Tietokannan suunnittelu

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Tietojenkäsittelyteorian alkeet, osa 2

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Relaation tyhjyyden testaaminen

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Alkioiden x ja y muodostama järjestetty pari on jono (x, y), jossa x on ensimmäisenä ja y toisena jäsenenä.

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

Helsingin yliopisto/tktl Kyselykielet, s 2006 Optimointi Harri Laine 1. Kyselyn optimointi. Kyselyn optimointi

Kuvaus eli funktio f joukolta X joukkoon Y tarkoittaa havainnollisesti vastaavuutta, joka liittää joukon X jokaiseen alkioon joukon Y tietyn alkion.

8 Joukoista. 8.1 Määritelmiä

1. Logiikan ja joukko-opin alkeet

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

TIETOKANNAT JOHDANTO

HELIA TIKO-05 1 (20) ICT03D Tieto ja tiedon varastointi O.Virkki

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Tutkimustiedonhallinnan peruskurssi

Johdatus matemaattiseen päättelyyn

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Tietokannan rakenteen suunnittelu

Tietokantajärjestelmien tulevaisuuden haasteet. Jan Lindström

Tieto/datamallit. Marttila-Kontio/Unicta Oy

jotakin käyttötarkoitusta varten laadittu kokoelma toisiinsa liittyviä säilytettäviä tietoja

Helsingin yliopisto/tktl Kyselykielet, s 2006 Relaatiokalkyylit. Harri Laine 1

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

Yhdiste, leikkaus, erotus ym.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

SELECT-lauseen perusmuoto

Tietokannat I. c 2007 Olli Luoma olli.luoma@it.utu.fi

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

Transkriptio:

Tietomallit Tietomallilla (data model) tarkoitetaan tiedon rakenteen ja tiedolle suoritettavan käsittelyn määrittelevää käsitteistöä Tietoa voidaan tarkastella eri näkökulmista - eri abstraktiotasoilla Perinteinen jako Käsitetaso Rakennetaso Talletustaso Näkökulmat tietoon Käsitetaso, kohdetaso (conceptual level, real word level): Mitä tietoja käsitellään millainen on se kohde, jota tiedoilla pitäisi kuvata; asiat, joita pitäisi esittää tietoelementtien arvot tarkoittavat Miten tiedot liittyvät yhteen Mitä sääntöjä tietoihin liittyy Ohjelmistoista riippumaton kuvaus tiedoista Käsitellään JSS-kurssilla 1 2 Näkökulmat tietoon Rakennetaso, looginen taso (structural level, logical level): Minkälaisia käsiteltäviä rakenteita tiedot muodostavat - esim. eri ohjelmointikielten näkemykset tiedosta Miten ohjelmoijat, tietokannan käyttäjät näkevät tiedot Näkökulmat tietoon Talletustaso, fyysinen taso (physical level): Minkälaisina koneenläheisinä rakenteina tiedot tallennetaan ja miten niitä voidaan käsitellä - minkälaiset rakenteet tehostavat hakua, onko tiedot hajautettu vaiko kaikki keskitetysti samassa paikassa. Käsitellään Tietokannan hallinta kurssilla 3 4 On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö rakennetaso Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, ) käsitetaso Abstraktiotasot tiedon käsittelyssä käsitetaso sisällön suunnittelu kyselyt, ohjelmointi rakennetaso Tiedosto Auto levyllä X1135 Indeksi AiX (auto, rekno) talletustaso fyysinen taso viritys, hajautus 5 6

Mitä malleja olisi tarjolla? käsitetaso rakennetaso fyysinen taso Entity-Relationship mallit (ER) Oliomallit (UML) Semanttiset tietomallit Relaatiomalli Oliomallit Hierarkkinen malli Verkkomalli Toimittajakohtaiset käsitteet Relaatiotietokannat Perustana rakennetason tietomalli relaatiomalli (the relational model of data) perusteoria: E.F.Codd 1970 ensimmäiset kaupalliset toteutukset 70-luvun lopulla yleistynyt 80-luvun lopulla DB2, Oracle, Informix, Sybase, MS SQLServer, yms. 7 8 Relaatiomalli Abstraktio tiedoista Mallin perustana on näkemys tietokannasta joukkona tietoalkioiden muodostamia matemaattisia relaatioita Yksinkertainen peruskäsitteistö, vähän käsitteitä Helppo ymmärtää havainnollisesti taulukkoesityksenä Relaatio havainnollisesti n nimi Attribuutit AUTO Reknro Väri Vmalli ACM-256 musta 1988 MAC-532 sininen 1994 Monikot ISO-795 musta 1992 OSI-228 punainen 1987 HCI-449 valkoinen 1993 Arvo 9 10 Relaatio vielä havainnollisemmin n nimi Rivit Sarakkeet Sarakenimet AUTO Reknro Väri Vmalli ACM-256 musta 1988 MAC-532 sininen 1994 ISO-795 musta 1992 OSI-228 punainen 1987 HCI-449 valkoinen 1993 Arvo Relaation matemaattinen määritelmä Olkoon D 1, D 2,..., D n arvojoukkoja, joiden ei tarvitse olla erillisiä. Relaatio R on joukko monikkoja (tuple, n- tuple), joiden 1. arvo kuuluu joukkoon D 1, 2. arvo joukkoon D 2 jne. Matemaattisesti relaatio on siis ristitulon D 1 D 2... D n osajoukko. 11 12

Monikko Monikko on arvojen jono (a1,,an). Taulukkomuotoisessa esityksessä sitä vastaa taulukon rivi Ristitulo : Joukkojen A={1,2,3) ja B={a,b} ristitulo (karteesinen tulo) A B on kaikkien niiden parien (x,y) joukko, joissa ensimmäinen alkio kuuluu joukkoon A ja toinen joukkoon B eli joukko {(1,a), (1,b), (2,a), (2,b), (3.a), (3,b)} Esimerkiksi funktio voidaan esittää lähtöarvojen ja maaliarvojen muodostamien parien joukkona eli kaksipaikkaisena relaationa (binäärirelaatio). Arvojoukko Arvojoukko (Domain) kokoelma atomisia (osiin jakautumattomia) arvoja, esim. kokonaisluvut henkilötunnukset enintään 4-merkkiset merkkijonot Merkkijonot Jotkut operaatiot edellyttävät että arvojoukon arvojen välillä on olemassa järjestys Tyhjäarvo(NULL-arvo, olematon) sisältyy jokaiseen arvojoukkoon! 13 14 Attribuutti = sarakkeen nimi Attribuutti (attribute) on arvon paikalle monikossa annettu nimi. Attribuuttiin liittyy tulkinta sille, mitä asiaa kyseisessä paikassa oleva arvo ilmaisee. Jokaiseen attribuuttiin liittyy arvojoukko ja jokaisessa monikossa jokin arvojoukoon kuuluva arvo. Attribuuttiin liittyvä arvojoukko tulisi määritellä siten, että sen arvoilla pystytään esittämään kaikki ne asiat, jotka attribuuttiin liittyvän tulkinnan mukaan pitää kyetä esittämään esim. kaikki mahdolliset värit (relation schema) määrittää relaation rakenteen: mitä attribuutteja relaatioon kuuluu millaiset arvojoukot attribuuteilla on ja mikä tulkinta kuhunkin attribuuttiin liittyy (mitä arvot esittävät) lla on nimi. 15 16 Yksinkertaisimmillaan relaatiokaavio voidaan esittää muodossa R(A1,, Am), R on kaavion nimi ja A1,,Am ovat attribuutteja Tällaista määritystä käytettäessä oletetaan, että lukija osaa kuvaavien attribuuttinimien perusteella arvata niiden arvojoukot ja tulkinnat Esim. Auto(Reknro,Väri,Vuosimalli) Täydellisempi esitys: Auto(Reknro: Suomalaiset_rekisterinumerot, Väri: Autovärit, Vuosimalli: Vuosiluvut >1900) Relaatio on relaatiokaavion ilmentymä. n ilmentymät kuvaavat jotain todellisuuden ilmiötä, vaikkapa autojen olemassaoloa tietyllä hetkellä, esim 1.1.2004 Toista ajankohtaa kuvaa eri relaatio, joskin saman kaavion ilmentymä sekin. 17 18

Relaatiotietokannassa on tyypillisesti kustakin relaatiokaaviosta vain vain yksi ilmentymä kerrallaan Ilmentymään viitataan kaavion nimellä Tietokannan ylläpidossa kavionimellä osoitettava ilmentymä vaihdetaan toiseksi Matemaattisesti relaatio on joukko Matemaattisessa joukossa alkio ei toistu, joten kaikki relaation monikot ovat keskenään erilaisia Joukossa alkioiden järjestyksellä ei ole merkitystä Attribuuttien järjestyksellä relaatiokaaviossa ei myöskään ole merkitystä 19 20 n käsitteitä Relaation koko (cardinality) relaation monikoiden lukumäärä Relaation aste (degree) relaatiokaavion attribuuttien lukumäärä Relaatiotietokanta (relational database) sisältää yleensä useita relaatioita Relaatiotietokantakaavio (relational database schema) relaatiotietokannan relaatiot määrittelevien relaatiokaavioiden kokoelma Teoria vs havaintoesitys Teorian käsite Relaatio Monikko Attribuutti Havaintoesityksen käsite Taulukko Taulukon rivi Sarakkeen nimi 21 22 Avain (key) Relaation monikot ovat keskenään erilaisia Monikko pystytään identifioimaan sisältönsä perusteella (= erottamaan muista) Identifiointiin ei välttämällä tarvita kaikkien attribuuttien arvoja Relaation avain (key) on sellainen attribuutti tai niiden yhdistelmä, jolle pätee missään relaatiokaavion ilmentymässä ei voi olla kahta tai useampaa monikkoa, joissa on samat avain-attribuuttien arvot yhdistelmästä ei voi poistaa yhtään attribuuttia siten, että jäljelle jäävät täyttäisivät edellisen ehdon (minimaalisuus) 23 Avain AUTO Reknro Väri Vmalli ACM-256 musta 1988 MAC-532 sininen 1994 ISO-795 musta 1992 OSI-228 punainen 1987 HCI-449 valkoinen 1993 Reknro ja Vmalli erikseen erottelevat ilmentymässä. Vmalli ei kuitenkaan erottele kaikissa mahdollisissa ilmentymissä.= joskun voi tulla vastaan sellainen autojoukko, että siinä on useampia saman vuosimallin autoja. 24

Avain Avaimeen kuluvalla attribuutilla täytyy olla jokaisessa monikossa aito, ei-tyhjä arvo on voi liittyä useita attribuuttiyhdistelmiä, jotka täyttävät avaimelle asetetut vaatimukset Jokin ehdokkaista tulee valita pääavaimeksi: ensisijaiseksi tavaksi osoittaa ja viitata monikkoon Työntekijä(henkilötunnus,, työntekijänumero) kumpikin kävisi, valitaan tarkoituksenmukaisempi Avain Pääavain esitetään relaatiokaaviossa alleviivaamalla siihen kuuluvat attribuutit Auto (Reknro, Väri,Vuosimalli) Työntekijä (Työntekijänumero, ) Pelivaraus (kenttänumero, alkuaika, kesto, nimi) 25 26 (foreign key) Tietokanta muodostuu useasta relaatioista Relaatioiden monikot ovat usein kytköksissä toisiinsa työntekijämonikko kytkeytyy sitä osastoa kuvaavaan monikkoon, jolla työntekijä työskentelee lainausmonikko kytkeytyy kirjaa ja lainaajaa kuvaaviin monikkoihin Relaatiotietokannassa kytkentä saadaan aikaan sisällyttämällä monikkoon kytkettävän, siis vieraan, monikon (pää)avain. Auto Reknro Väri Vmalli ISO-795 Musta 1992 Omistus Henkilötunnus Auto 121212-1234 ISO-795 27 28 Attribuuttia tai attribuuttiyhdistelmää, jonka arvot toteuttavat viittauksen toiseen monikkoon kutsutaan viiteavaimeksi (foreign key). Viiteavaimessa voidaan sallia myös tyhjäarvot tällöin relaation monikkoja ei tarvitse kytkeä mihinkään Vaikka viiteavain viittaakin yhteen suuntaan sitä voi hyödyntää kaksisuuntaisesti esim. selvitettäessä : mikä auto kytkeytyy tiettyyn omistukseen mitkä omistukset kytkeytyvät tiettyyn autoon Viiteavaimen sisältävä Viittauksen kohde 29 kopiot originaali 30

Viiteavaimen esittäminen relaatiokaaviossa Omistus(Henkilötunnus Henkilö, Auto Auto) Henkilötunnus viittaa Henkilöön ja Auto Autoon Osallistuu(Kuka Opiskelija, (Kurssikoodi, RyhmäNumero) Harjoitustryhmä) Kahdesta attribuutista muodostuva viiteavain, tämä tarkoittaa, että Harjoitusryhmä relaation avain muodostuu myös kahdesta attribuutista Viiteavaimella voidaan kytkeä toisiinsa myös saman relaation eri monikoita. Työntekijä(TyöntekijäNumero,, Esimies Työntekijä) attribuutin Esimies arvona on kullakin rivillä jonkin toisen työntekijän työntekijänumero Työntekijä TyöntekijäNumero Esimies 1010 1020 1010 1030 1010 31 32 Viite-eheys (referential integrity): On mahdollista viitata vain olemassaoleviin monikoihin ts viiteavaimen arvona ei saa olla sellaista arvoa, joka ei esiinny kohderelaation pääavaimena Tyhjäarvo viiteavaimen arvona = ei viitata mihinkään Tietokantakaavio kuvana Pääavain attribuutit Relaatio1 Avain_attribuutti1 Avain_attribuutti2 Muu_attribuutti1 Muu_attribuuttiN _attr! _att2 _attr3 Relaation nimi Relaatio2 Avain_attribuutti1 Avain_attribuutti2 Avain_attribuutti3 Muu_attribuutti1 Muu_attribuuttiM 33 viiteavain 34 Tietokantakaavio kuvana asiakas hetu nimi osoite virkailija nro nimi pantti kuittinro tyyppi ikä arvo arvioija kuittinro virkailija_nro laina summa asiakas maksusuunnitema nro korko hyväksyjä erä nro eräpvm maksupvm summa 35