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

Samankaltaiset tiedostot
Relaatioalgebra. Kyselyt:

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

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

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

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

CS-A1150 Tietokannat CS-A1150 Tietokannat / 34

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

Tietokantojen perusteet, osa 1

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

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.

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

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

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

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

CSE-A1200 Tietokannat

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

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

CSE-A1200 Tietokannat

Liitokset - haut useaan tauluun

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

SELECT-lauseen perusmuoto

Liitosesimerkki Tietokannan hallinta, kevät 2006, J.Li 1

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

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

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

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

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

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

Paikkatiedon käsittely 2. Relaatiomallin paikkatietolaajennokset

Yhdiste, leikkaus, erotus ym.

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

Relaatioalgebra. Luku Joukko-opilliset operaatiot Yhdiste eli unioni Leikkaus

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

Relaatiomalli ja -tietokanta

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

SQL-kielen perusteet. Tietokantojen perusteet

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

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

Kyselyn yleisrakenne:

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

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

Joukot. Georg Cantor ( )

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

D B. Kyselypuut ja ekvivalenssi

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

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

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

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

SQL - STRUCTURED QUERY LANGUAGE

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

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

1. Logiikan ja joukko-opin alkeet

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

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

8 Joukoista. 8.1 Määritelmiä

Relaation tyhjyyden testaaminen

Tietokantojen suunnittelu, relaatiokantojen perusteita

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

13. Loogiset operaatiot 13.1

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

13. Loogiset operaatiot 13.1

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

TIETOKANNAT JOHDANTO

4.3.4 SQL kyselyt... 45

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt

2. Minkä joukon määrittelee kaava P 0 (x 0 ) P 1 (x 0 ) mallissa M = ({0, 1, 2, 3}, P M 0, P M 1 ), kun P M 0 = {0, 1} ja P M 1 = {1, 2}?

CSE-A1200 Tietokannat

2. Käsiteanalyysi ja relaatiomalli

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

HELIA 1 (14) Outi Virkki Tiedonhallinta

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Paikkatiedon käsittely 6. Kyselyn käsittely

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

811120P Diskreetit rakenteet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

D B. Kyselyjen käsittely ja optimointi. Kyselyn käsittelyn vaiheet:

CSE-A1200 Tietokannat

4.1 Yleistä SQL:stä 4.2 SQL-lauseet 4.3 DML: datan hallinta 4.4 DDL: rakenteen määrittäminen 4.5 DCL: valtuuttaminen 4.6 TxCL: tapahtumanhallinta

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

Kyselyiden optimointi

Olkoon R X Y. Sen käänteisrelaatio R 1 on joukosta Y joukkoon X määritelty relaatio, jonka laki on. yr 1 x xry.

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

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

Latinalaiset neliöt ja taikaneliöt

Johdatus matematiikkaan

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

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

Transkriptio:

Relaatiomalliin liittyy malli tietokannan käsittelystä Tietokannasta pitää pystyä hakemaan tietoa ja toisaalta tietokantaa on ylläpidettävä Tietokannan käsittelyn malli relaatioalgebra määrittelee operaatiot, joilla olemassaolevista relaatioista voidaa laskea uusia relaatioita Kyselyt: lähtökohtana tietokannan tila joukkona relaatioita kyselyn tuloksena yksi relaatio kysely on lauseke, joka määrittelee miten lähtörelaatioista tuotetaan tulosrelaatio soveltamalla relaatioalgebran operaatioita vrt aritmeettinen laskukaava. Lähtökohtana joukko lukuja Laskukaava kertoo miten luvuista lasketaan tulos soveltamalla laskentaoperaatioita DO NOT PRINT THIS DOCU MENT Ylläpito: ssa ei tarkastella tietokannan ylläpitoa Voitaisiin ajatella että ylläpito palautetaan kyselyiksi Lähtökohtana joukko relaatioita Kyselyllä muodostetaan uusi relaatio, joka korvaa jonkin lähtöjoukkoon kuuluneen relaation > tietokannan tila on siis muuttunut Operaatiot, joilla relaatioista voidaan muodostaa uusia relaatioita Perustana joukko-oppi Joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus Erityisiä relaatioalgebran omia operaatioita projektio, valinta, liitokset Yhdiste (union) Yhdisteen avulla muodostetaan relaatio joka sisältää kummankin yhdistettävän relaation monikot: R S = { t t R v t S }, missä R ja S ovat relaatioita ja t on relaation R tai S monikko. - erotus (set difference) Erotuksessa tulosrelaatioon otetaan ne relaation monikot, jotka eivät sisälly erotettavaan relaatioon : R S = { t t R t S }.

Yhdiste ja erotus edellyttävät, että relaatiot ovat samarakenteisia (union compatible) sama määrä attribuutteja vastinpaikoilla samat arvojoukot vastinpaikkoihin liitettyjen attribuuttinimien ei tarvitse olla samoja ensimmäinen osapuoli nimeää tuloksen sarakkeet - ristitulo (Cartesian product) Ristitulossa R S muodostetaan tulosrelaatioon monikoita, kokoamalla yhdeksi monikoksi arvot monikkopareista, joissa parin monikoista ensimmäinen kuuluu relaatioon R ja toinen relaatioon S. Yhdistetty monikko muodostetaan jokaisesta monikkoparista. - ristitulo aste(r x S) = aste(r)+aste(s) koko(r x S) = koko(r)*koko(s) opiskelija relaatiossa 30 000 monikkoa opintosuoritus relaatiossa 600 000 monikkoa opiskelija x opintosuoritus: 18 000 000 000 Samannimiset attribuutit: käytetään alkuperätarkennetta R(A,B,C) x S(B,C,D) => RxS(A, R.B, R.C, S.B, S.C, D) - projektio (projection) Projektiossa poimitaan relaatiosta annetuissa sarakkeissa esiintyvät arvot π A1,.,An (R)={(a1,,an) x R, i=1..n: ai=x.ai} A1.An ovat attribuutteja a1,,an ovat arvoja x on monikko x.a on attribuutin A arvo monikossa x Vaikka sama arvoyhdistelmä a1,,an esiintyisi useassa lähtörelaation monikossa, se tulee kuitenkin tulosrelaatioon vain kertaalleen = toistuvien arvojen (dublikaattien) karsinta - projektio T A B D E - valinta (selection) Valinnalla poimitaan ehdon täyttävät rivit σ ehto (R) = { x x R ja ehto on voimassa, kun siinä esiintyvät attribuutit korvataan niiden arvoilla monikossa x} πb(t) B 2 4 π D,E(T) D E Ehdossa vertailtavina voivat olla attribuutit ja vakiot. Vertailuoperaattoreina tulevat kyseeseen =,, <, >, <= ja >=.

Relatioalgebra - valinta σ A=1 (R) A B σ 3>2 (R) A B σ A=5 (R) A B Tuloksena tyhjä joukko -sijoitus Sijoituksella (assign) voidaan nimetä tulosrelaatio S(A,B,.,N) := lauseke. Lausekkeen tuloksen asteen täytyy olla sama kuin vasemmalla puolella olevien attribuuttien lukumäärä Sijoitusta ei yleensä pidetä relaatioalgebran operaationa, mutta sitä käyttäen voidaan nimetä välituloksia ja kyselyiden laadinta helpottuu Onimet(nimi):= π Sukunimi (Opiskelija) - leikkaus Leikkaus on joukko-opin operaatio, jolla saadaan tulokseksi kahden joukon yhteiset alkiot. Se voidaan esittää erotus-operaation avulla. R S R (R S) S (S R) - loogiset lausekkeet ehdoissa Valintaehdoissa voidaan käyttää samanlaisia loogisia lausekkeita kuin ohjelmointikielissä, sillä niitä käyttävä valinta voidaan esittää myös yksinkertaisia valintoja ja yhdistettä, erotusta ja leikkausta käyttäen, esim. σ ehto1 or ehto2 (R) σ ehto1 (R) σ ehto2 (R) ja σ ehto1 and ehto2 (R) σ ehto1 (R) σ ehto2 (R) σ not ehto1 (R) R - σ ehto1 (R) -liitokset (join) Monikkoparin yhdistäminen jonkin ehdon perusteella Liitoksessa yhdistyy valinta ja ristitulo R X liitosehto S σ liitosehto (R S) Yleisin liitos on yhdistää monikko ja siihen viittaava monikko yhdistämisehtona on silloin ehto R.A=S.VA, missä A on R:n avain ja VA on relaatioon R viittaava viiteavain S:ssä Ehto: R.A=S.D Ensin ristitulo

Ehto: R.A=S.D Ehto: R.A S.D Sitten karsinta Auto(Reknro, Väri, Vmalli, Merkki) Omistus(Reknro,Henkilönumero, Osoite, Nimi), Autot, joilla ei ole omistajaa? Ei: π Auto.reknro ( Auto X Auto.Reknro Omistus.Reknro Omistus) = π Auto.reknro ( Auto Omistus - Auto X Auto.Reknro=Omistus.Reknro Omistus) vaan π Auto.Rekno (Auto) - π Rekno ( Omistus) Auto Reknro Tulos Reknro Omistus Reknro Omistaja GIH-789 Liisa Kalle Pekka π Auto.reknro ( Auto X Auto.Reknro Omistus.Reknro Omistus) Luonnollinen liitos R*S liitosehto muodostetaan automaattisesti siten, että liitosehtona vaaditaan kaikkien vastinattribuuttien yhtäsuuruutta. Vastinattribuutilla tarkoitetaan tässä sellaista attribuuttia, joka esiintyy kummassakin relaatiossa. Edelleen, koska jokaisella vastinattribuutilla edellytetään olevan sama arvo kummassakin yhdistettävässä monikossa, attribuutti otetaan mukaan tulosrelaatioon vain kertaalleen. Luonnollinen liitos Olkoot A1,,An R:n attribuutit, jotka eivät esiinny S:ssä ja C1,, Cm S:n attribuutit, jotka eivät esiinny R:ssä sekä B1,,Bk attribuutteja, jotka esiintyvät kummassakin relaatiokaaviossa. Tällöin R*S π A1,,An,R.B1,,R.Bk,C1,,Cm (R R.B1=S.B1 and. and R.Bk=S.Bk S)

Luonnollinen liitos R(A,B,C) * S(A,D,E) = π A,B,C,D,E (R X R.A=S.A S) Q(A,B,C) * T(A,B,C) = π A,B,C (Q X Q.A=T.A and Q.B=T.B and Q.C=T.C T) Ulkoliitos (outer join) Ulkoliitos on yhdisteen ja liitoksen yhdistelmä, jolla saadaan mukaan tulosrelaation myös sellaiset lähtörelaation monikot, joille liitosehdon mukaisesti ei löydy yhtään paria toisesta lähtörelaatiosta. R < ehto S (R ehto S) (R π att(r) ( R ehto S)) ℵ, att(r) tarkoittaa kaikkia R:n attribuutteja ja ℵ on yksimonikkoinen relaatio, jonka kaavio on sama kuin relaatiolla S ja jonka jokainen arvo on tyhjäarvo. Ulkoliitos Ulkoliitos Auto < Auto.Reknro=Omistus.Reknro Omistus Kaikki autot tulevat mukaan, mutta jos autolla ei ole omistajaa tulee kyseisen auton omistustiedoiksi tyhjäarvoja. Auto Reknro Omistus Reknro Omistaja Liisa Kalle GIH-789 Pekka Tulos A.Reknro O.Reknro Omistaja Liisa Kalle GIH-789 GIH-789 Pekka NULL NULL