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

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

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

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

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

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

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

Relaatiomalli ja -tietokanta

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

Relaatioalgebra. Kyselyt:

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

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

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

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

Tietokantojen perusteet, osa 1

HELIA 1 (12) Outi Virkki Tiedonhallinta

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

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

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

811120P Diskreetit rakenteet

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

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

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

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

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

2. Käsiteanalyysi ja relaatiomalli

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

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

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

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

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

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

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

Joukot. Georg Cantor ( )

MS-A0402 Diskreetin matematiikan perusteet

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

8 Joukoista. 8.1 Määritelmiä

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

Tietokannan suunnittelu

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

Luonnollisten lukujen ja kokonaislukujen määritteleminen

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

3. Käsiteanalyysi ja käsitekaavio

Tietojenkäsittelyteorian alkeet, osa 2

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

CSE-A1200 Tietokannat

Lineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila

Johdatus matemaattiseen päättelyyn

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

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

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ä.

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

HELIA 1 (17) Outi Virkki Tiedonhallinta

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

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

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

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

Funktioista. Esimerkki 1

Ohjelmoinnin jatkokurssi, kurssikoe

Kuinka määritellään 2 3?

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

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

1. Logiikan ja joukko-opin alkeet

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

Yhdiste, leikkaus, erotus ym.

Relaation tyhjyyden testaaminen

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

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

4.3. Matemaattinen induktio

Ekvivalenssirelaatio. Määritelmä 2 Joukon A binäärinen relaatio R on ekvivalenssirelaatio, mikäli. Jos R on ekvivalenssirelaatio ja a A, niin joukkoa

Lukumäärän laskeminen 1/7 Sisältö ESITIEDOT:

HELIA 1 (8) Outi Virkki Tietokantasuunnittelu

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

Johdatus matematiikkaan

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.

Ohjelmoinnin perusteet Y Python

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0401 Diskreetin matematiikan perusteet

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Latinalaiset neliöt ja taikaneliöt

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

Luento 3 Tietokannan tietosisällön suunnittelu

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

Johdatus diskreettiin matematiikkaan Harjoitus 1,

Transkriptio:

Relaatiotietokannat Relaatiomalli Perustana rakennetason tietomalli (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. 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ä 1 2 Relaatio havainnollisesti Relaatio vielä havainnollisemmin n nimi Monikot Attribuutit AUTO Rek Väri Vmalli Arvo n nimi Rivit Sarakkeet Sarakenimet AUTO Rek Väri Vmalli Arvo 3 4 Relaation matemaattinen määritelmä Monikko Olkoon D 1, D 2,..., D n arvojoukkoja, joiden ei tarvitse olla erillisiä. Relaatio R on joukko järjestettyjä arvojonoja, 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. Monikko on järjestetty arvojen jono (a1,,an). Taulukko-muotoisessa 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). 5 6 Harri Laine 1

Arvojoukko Attribuutti = sarakkeen nimi 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! 7 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 arvojoukkoon 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 8 (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. Yksinkertaisimmillaan relaatiokaavio voidaan esittää muodossa R(A1,, Am), missä 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(Rek,Väri,Vuosimalli) 9 10 Täydellisempi esitys ottaa mukaan arvojoukon määrittelyn: Auto(Rek: 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. 11 Relaatiotietokannassa on tyypillisesti kustakin relaatiokaaviosta vain yksi ilmentymä kerrallaan Tähän ilmentymään viitataan kaavion nimellä siten, kun puhutaan relaatiosta Auto, tarkoitetaan kaavion Auto tämänhetkistä ilmentymää Tietokannan ylläpidossa kaavionimellä osoitettava ilmentymä vaihdetaan toiseksi 12 Harri Laine 2

n käsitteitä 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ä 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 13 14 Teoria vs havaintoesitys (key) Teorian käsite Relaatio Monikko Attribuutti Havaintoesityksen käsite Taulukko Taulukon rivi Sarakkeen nimi Relaation monikot ovat keskenään erilaisia Monikko pystytään identifioimaan (= erottamaan muista) sisältönsä perusteella Identifiointiin ei välttämällä tarvita edes 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 sama avain-attribuuttien arvoyhdistelmä yhdistelmästä ei voi poistaa yhtään attribuuttia siten, että jäljelle jäävät täyttäisivät edellisen ehdon (minimaalisuus) 15 16 AUTO Rek Väri Vmalli Rek ja Vmalli erikseen erottelevat yllä olevassa ilmentymässä. Vmalli ei kuitenkaan erottele kaikissa mahdollisissa ilmentymissä = joskus voi olla sellainen autojoukko, että siinä on useampia saman vuosimallin autoja. 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 relaation monikkoihin Työntekijä(henkilötunnus,, työntekijänumero) kumpikin kävisi, valitaan tarkoituksenmukaisempi 17 18 Harri Laine 3

Pääavain esitetään relaatiokaaviossa alleviivaamalla siihen kuuluvat attribuutit Auto (Rek, Väri,Vuosimalli) Työntekijä (Työntekijänumero, ) Pelivaraus (kenttänumero, alkuaika, kesto, nimi) (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 monikoihin Relaatiotietokannassa kytkentä saadaan aikaan sisällyttämällä monikkoon kytkettävän, siis vieraan, monikon (pää)avain. 19 20 Auto Rek Väri Vmalli ISO-795 Musta 1992 Omistus Henkilötunnus Auto 121212-1234 ISO-795 Attribuuttia tai attribuuttiyhdistelmää, jonka arvot toteuttavat kykennän (viittauksen) toiseen monikkoon kutsutaan viiteavaimeksi (foreign key). Viiteavaimessa voidaan sallia myös tyhjäarvot tällöin relaation monikkoja ei tarvitse kytkeä mihinkään 21 22 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 Viiteavaimen esittäminen relaatiokaaviossa Omistus(Henkilötunnus Henkilö, Auto Auto) Henkilötunnus viittaa Henkilöön ja Auto Autoon Osallistuu(Kuka Opiskelija, (Kurssikoodi, RyhmäNumero) Harjoitusryhmä) Kahdesta attribuutista muodostuva viiteavain, tämä tarkoittaa, että Harjoitusryhmä relaation avain muodostuu myös kahdesta attribuutista kopiot originaali 23 24 Harri Laine 4

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 Viite-eheys (referential integrity): On mahdollista viitata vain olemassa oleviin monikoihin ts. viiteavaimen arvona ei saa olla sellaista arvoa, joka ei esiinny kohderelaation pääavaimena Tyhjäarvo viiteavaimen arvona = ei viitata mihinkään Työntekijä TyöntekijäNumero Esimies 1010 1020 1010 1030 1010 25 26 Tietokantakaavio kuvana Pääavain attribuutit Relaatio1 _attribuutti1 _attribuutti2 Muu_attribuutti1 Muu_attribuuttiN _attr! _att2 _attr3 viiteavain Relaation nimi Relaatio2 _attribuutti1 _attribuutti2 _attribuutti3 Muu_attribuutti1 Muu_attribuuttiM 27 Tietokantakaavio kuvana asiakas hetu nimi osoite virkailija nimi pantti kuitti tyyppi ikä arvo arvioija kuitti virkailija_ laina summa asiakas maksusuunnitema korko hyväksyjä erä eräpvm maksupvm summa 28 Tietokantakaavio tekstinä asiakas(hetu,nimi,osoite) laina(, summa, asiakas) virkailija(numero, nimi) pantti(kuitti,tyyppi,ikä,arvo, laina) arvioija(kuitti pantti, virkailija_numero virkailija) maksusuunnitelma( laina,, korko, hyväksyjä virkailija) erä((,) maksusuunnitelma, maksupvm,summa) 29 Harri Laine 5