Relaatiomalli ja -tietokanta



Samankaltaiset tiedostot
HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

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

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

Relaatioista TIETOJENKÄSITTELYTIETEIDEN LAITOS, JUHA IISAKKA 11-14

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

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

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

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

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

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

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

2. Käsiteanalyysi ja relaatiomalli

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

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

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

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

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

HELIA 1 (12) Outi Virkki Tiedonhallinta

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

TIETOKANNAN NORMALISOINTI JA NORMAALIMUODOT

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

TIETOKANNAT JOHDANTO

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

NORMALISOINTI TIETOJEN MALLINNUS JOUNI HUOTARI & ARI HOVI

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

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

3. Taulujen määrittely ja muuttaminen

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

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

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

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

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

SQL - STRUCTURED QUERY LANGUAGE

CSE-A1200 Tietokannat

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

Kari Aalto Saariston IT

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

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

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

TIETOKANTOJEN PERUSTEET MARKKU SUNI

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

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET MARKKU SUNI

Tietokantojen perusteet

SYÖTTÖPOHJA LUKUJEN SYÖTTÖÖN ERI TARKOITUKSIIN

CSE-A1200 Tietokannat

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

TIETOKANNAT kevät 2002 Itseopiskeluosio osa 2/3

Toad Data Modeler Lari Hoppula Annika Koppelomäki Johanna Pietilä Esko-Pekka Tähti

TIETOKANNAT JOHDANTO JOUNI HUOTARI & ARI HOVI

Relaatioalgebra. Kyselyt:

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

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

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

A TIETOKANNAT, 3 op Syksy TI07. Teemu Saarelainen, lehtori Tietotekniikka teemu.saarelainen@kyamk.fi

Tietokannat II -kurssin harjoitustyö

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

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

Tietokannat II -kurssin harjoitustyö

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

3. Käsiteanalyysi ja käsitekaavio

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

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

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

HELIA 1 (11) Outi Virkki Tiedonhallinta

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Yhdiste, leikkaus, erotus ym.

TIETOKANTOJEN SUUNNITTELU

HELIA 1 (19) Outi Virkki Tietokantasuunnittelu

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (17) Outi Virkki Tiedonhallinta

Tietokannan suunnittelu

SQL-kielen perusteet. Tietokantojen perusteet

Yleinen SQL. Yleinen SQL. SQL:n kehitys

SELECT-lauseen perusmuoto

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

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

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

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

Tietokantakurssit / TKTL

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

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

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

HELIA 1 (20) Outi Virkki Tiedonhallinta

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

Transkriptio:

Relaatiomalli ja -tietokanta > Edgar. F. (Ted) Codd, IBM, 1969 < A Relational Model of Data for Large Shared Data Banks Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387. > 70-luvun lopulla ensimmäiset relaatiokantaso-vellukset (IBM System-R, Ingress, Oracle, Informix, Sybase) > Coddin artikkeli nykyiset relaatiojärjestelmät Juha Iisakka, marraskuu 2013, page: 1

teoriaa > relaatio (relation) on joukko > koostuu monikoista (tuple) > yksi monikko kuuluu vain kerran relaatioon > monikkojen järjestys merkityksetön > monikko koostuu arvoista > arvot edustavat attribuutteja > attribuuteilla arvoalue (domain) > toistuvat jokaisessa monikossa Juha Iisakka, marraskuu 2013, page: 2

attribuutti joukko-opin relaatio Osasto relaation nimi relaatio nimi:markkinointi budjetti: 100 nimi:tuotanto budjetti: 9900 nimi:hallinto budjetti: 90 arvo nimi:r&d budjetti: 400 Juha Iisakka, marraskuu 2013, monikko page: 3

teoriaa.. > Relaatio on arvo-attribuutti-parien joukko > Relaatiokaava (relation schema) < millaisia attribuutteja relaation monikoille kuuluu > R relaatio > R(A 1,A 2,A 3,A 4,...,A n ) relaatiokaava > A 1 relaation monikkojen 1. attribuutin roolinimi > jokaisella attribuutilla A i on arvoalueensa dom(a i ) Juha Iisakka, marraskuu 2013, page: 4

teoriaa... > jokainen monikko t on järjestetty joukko arvoja t=<v 1,v 2,v 3,...v n >, jossa jokainen arvo v i kuuluu arvoalueeseen dom(a i ) tai sillä ei ole arvoa > esimerkki: < OSASTO relaation nimi < OSASTO(NIMI,BUDJETTI) relaation kaava < {"markkinointi",90} monikko < 90 arvo jonkin monikon toiselle attribuutille, jonka roolinimi on BUDJETTI Juha Iisakka, marraskuu 2013, page: 5

teoriaa... > arvot ovat: < tunnisteita < kuvaavia ominaisuuksia > Todellisuuden entiteettejä edustavat relaatiot ovat yksilötauluja > Entiteettien keskinäisiä yhteyksiä edustavat taas yhteystauluja Juha Iisakka, marraskuu 2013, page: 6

Relaatiotaulu (relation table) > relaatiot toteutetaan tauluna > rivi (row) = monikko > sarake (column) = attribuutti > rivit voivat toistua > mallissa arvoalue vapaa, todellisuudessa ei täydellisesti > attribuutin arvoalue tarkoittaa myös, missä muodossa arvot saadaan tallettaa. Juha Iisakka, marraskuu 2013, page: 7

1. normaalimuoto (1NF) > "Relaation sisällä ei saa esiintyä relaatioita" > Atribuutin arvoalue tulee koostua vain atomisista arvoista. > Monikon kentällä ei saa olla arvonaan arvojen joukkoa > "Normaalien" relaatioiden tulee täyttää 1NF Juha Iisakka, marraskuu 2013, page: 8

relaatio OSASTO(NIMI,BUDJETTI) tauluna Osasto nimi budjetti taulun nimi sarakenimi relaation kaava taulu markkinointi 100 hallinto 90 R&D 400 tuotanto 9900 sarake arvo rivi Juha Iisakka, marraskuu 2013, page: 9

Avainehdokas > candidate key > attribuutti tai -yhdistelmä, jolla monikko voidaan tunnistaa muista saman relaation monikoista Juha Iisakka, marraskuu 2013, page: 10

perusavain > primary key, pääavain > joku avainehdokas > valinnan jälkeen tunnistamiseen > alleviivataan roolinimi OSASTO(NIMI, BUDJETTI) > usein keksitty tunnus < sopivan lyhyt < varmasti yksiselitteinen < automaattisesti generoitavissa! Juha Iisakka, marraskuu 2013, page: 11

entiteetin eheysvaatimus > (entity constraint)!perusavaimella on oltava jokaisella rivillä tyhjästä poikkeava yksilöllinen arvo! > sääntö koskee myös muita eksplisiittisesti määriteltyjä avainehdokkaita! > tietokantajärjestelmät valvovat! Juha Iisakka, marraskuu 2013, page: 12

viiteavain > (foreign key) > attribuutti, jolla viitataan johonkin monikkoon > toisen tai oman relaation monikkoon > ei yleensä järkevää käyttää muuta kuin perusavainta viittauksen kohteena > periaatteessa muutkin avainehdokkaat käyvät > viiteavaimella voi olla tyhjä arvo Juha Iisakka, marraskuu 2013, page: 13

esimerkki relaatiotietokannan kaavasta työntekijä nimi tunnus esimies osasto projekti osasto nimi johtaja projekti tunnus nimi osasto päällikkö Juha Iisakka, marraskuu 2013, page: 14

viiteavain... > Yhteystaulussa eivät viiteavaimet saa olla tyhjiä > viittaava taulu l. lapsitaulu > viite-eheyssääntö (foreign key constraint): viiteavaimen tulee viitata johonkin olemassaolevaan riviin tai sen tulee olla tyhjä Juha Iisakka, marraskuu 2013, page: 15

viiteavain... > kolme strategiaa hoitaa viite-eheys: > estosääntö: ei saa poistaa riviä, johon viitataan. Rivin perusavainta ei saa muuttaa > tyhjäyssääntö: jos rivi, johon viitataan poistetaan, tyhjätään kaikki ko. viiteavainkentät > vyörytyssääntö: poistettaessa viitattu rivi, poistetaan kaikki ne rivit, joista siihen viitataan. Muutettaessa rivin perusavainta päivitetään muutos myös viiteavainkenttiin.! Juha Iisakka, marraskuu 2013, page: 16

Korvikeavaimet > (surrogates, surrogate keys) > Jos tietokanta sisältää tietoa todellisista entiteeteistä, on aina olemassa tunnistettavuusongelma. (Pyhäjärvi->Pyhäsalmi->Pyhäjärvi) > Suomessa ihmisillä on henkilötunnus, mutta sen käyttöä rajoitetaan. > Näille tosin voidaan generoida geneerinen perusavaintunniste, mutta sen käyttö ei ole ongelmatonta. Juha Iisakka, marraskuu 2013, page: 17

Korvikeavaimet... > Nimet tms. vaihtuvat ja niitä käytetään eri tavoin tai jollakin entiteetillä ei jostain syystä ole vielä tunnistetta. > Perusavainta käytettäessä viiteavaimena, on sen arvon muuttuminen vaarallista. > Perusavaimen arvon muuttuminen tulisi olla suhteellisen harvinaista > Korvikeavaimen käytöllä voidaan suojata tietokantaa "todellisuudelta" > Korvikeavain on välttämätön joskus myös viiteavaimen valinnaisessa käytössä Juha Iisakka, marraskuu 2013, page: 18

Korvikeavaimet... > Se on tietokannan itsensä iselleen generoima tunniste. > Aina kun tietokantaan talletetaan uusi entiteetti, saa tämä surrogaatin, < jota mikään muu entiteetti ei ole koskaan saanut < eikä tule koskaan saamaan. < surrogaattia ei koskaan vaihdeta < eikä sitä koskaan unohdeta, vaikka entiteetti poistettaisiin. Juha Iisakka, marraskuu 2013, page: 19

Korvikeavaimet... > Käyttäjän ei ole tarpeen tietää surrogaatista, eikä hänen koskaan tulisi niitä nähdä. > Tietokannan sisällä kaikki entiteettiä koskeva tieto talletetaan surrogaatin avulla; > perus- ja viiteavaimena käytetään surrogaattia. > Käyttäjän näkemä perusavain on "attribuutti muiden avainehdokasattribuuttien joukossa." > Tietenkin käyttäjän näkemän "perusavaimen" eheyttä valvotaan Juha Iisakka, marraskuu 2013, page: 20

Esimerkki... Työläinen Osasto Omainen tnro nimi katuos pnro ptmp hetu palkka ohjaaja osasto Työskentelee nimi projekti sukulaisuus työläinen työläinen tuntia Juha Iisakka, marraskuu 2013, page: 21 onro nimi johtaja sijainti Projekti nimi nro päällikkö osasto

Kyselymenetelmät > relaatiotietokanta > kaksi menetelmäparadigmaa > (relaatio)algebra > (relaatio)kalkyyli Juha Iisakka, marraskuu 2013, page: 22

Relaatiokalkyylit > perustuvat predikaattilogiikkaan >,, > tulosrelaatiota varten määritetään kaava, jonka tulee olla voimassa > kaksi lähestymistapaa: > rivikalkyyli < muuttujana monikko > sarakekalkyyli < muuttujana attribuutti Juha Iisakka, marraskuu 2013, page: 23

sarakekalkyyli > domain oriented relational calculus > Lacroix & Pirotte 1977 > qbe > { r OSASTO("Hallinto",qrs) } nimi onro johtaja sijainti "Hallinto" x x = "12345" Juha Iisakka, marraskuu 2013, page: 24

rivikalkyyli > (tuple oriented relational calculus) > E.F.Codd 1971 (relaatiomallin isä) > SQL, QUEL > "kohtisuorassa" sarakekalkyyliin > monikot itsenäisiä, kuuluvat johonkin relaatioon. > monikot rivimuuttujia > { p.johtaja p ( OSASTO(p) and p.nimi="hallinto" ) } SELECT P.JOHTAJA FROM OSASTO P WHERE P.NIMI="HALLINTO"; Juha Iisakka, marraskuu 2013, page: 25