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

Samankaltaiset tiedostot
Relaatioalgebra. Kyselyt:

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

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

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

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

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

Tietokantojen perusteet, osa 1

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

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

Relaatiotietokantojen perusteista. Harri Laine Helsingin yliopisto

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

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

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

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

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

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

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

CSE-A1200 Tietokannat

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

CSE-A1200 Tietokannat

Liitokset - haut useaan tauluun

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

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

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

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

Yhdiste, leikkaus, erotus ym.

13. Loogiset operaatiot 13.1

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

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

SELECT-lauseen perusmuoto

13. Loogiset operaatiot 13.1

D B. Kyselypuut ja ekvivalenssi

CS-A1150 Tietokannat CS-A1150 Tietokannat / 39

Kyselyn yleisrakenne:

HELIA 1 (17) Outi Virkki Tiedonhallinta

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

Paikkatiedon käsittely 2. Relaatiomallin paikkatietolaajennokset

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

Liitosesimerkki. Esim R1 R2 yhteinen attribuutti C. Vaihtoehdot

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

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

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

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

Joukot. Georg Cantor ( )

Relaation tyhjyyden testaaminen

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

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

Relaatioalgebra. Luku Joukko-opilliset operaatiot Yhdiste eli unioni Leikkaus

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

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

Paikkatiedon käsittely 6. Kyselyn käsittely

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}?

SQL-kielen perusteet. Tietokantojen perusteet

1. Logiikan ja joukko-opin alkeet

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

Laajennettu relaatiomalli ERDM ja suoraviittauksinen kyselykieli NSQL. Mika Niemelä

4.3.4 SQL kyselyt... 45

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 29

Algoritmit 2. Luento 7 Ti Timo Männikkö

Kyselyiden optimointi

SQL - STRUCTURED QUERY LANGUAGE

Relaatiomalli ja -tietokanta

Kyselypuut ja ekvivalenssi. Kyselyiden optimointi. Kyselypuut ja ekvivalenssi. Kyselypuut ja ekvivalenssi. R & G Chapter 12-15

Latinalaiset neliöt ja taikaneliöt

4. Oheisessa 4x4 ruudukossa jokainen merkki tarkoittaa jotakin lukua. Mikä lukua salmiakki vastaa?

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

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

Tietokantojen suunnittelu, relaatiokantojen perusteita

811120P Diskreetit rakenteet

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

Numeeriset menetelmät

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 39

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

CSE-A1200 Tietokannat

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

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

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

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

MS-A0402 Diskreetin matematiikan perusteet

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

8 Joukoista. 8.1 Määritelmiä

CSE-A1200 Tietokannat

3. Kirjoita seuraavat joukot luettelemalla niiden alkiot, jos mahdollista. Onko jokin joukoista tyhjä joukko?

Paikkatiedon hallinta ja analyysi 3. Paikkatietomallit ja kyselyt

CS-A1150 Tietokannat CSE-A1150 Tietokannat / 32

CS-A1150 Tietokannat CS-A1150 Tietokannat / 51

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

Hohde Consulting 2004

HELIA 1 (14) Outi Virkki Tiedonhallinta

2. Käsiteanalyysi ja relaatiomalli

811120P Diskreetit rakenteet

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

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

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

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

Transkriptio:

DO NOT PRINT THIS DOCUMENT joukko operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita joukko opin perusoperaatiot yhdiste, erotus, ristitulo, leikkaus erityisiä relaatioalgebran 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. R A B S D E R S A B Harri Laine 1

- erotus (set difference) Erotuksessa tulosrelaatioon otetaan ne relaation monikot, jotka eivat sisälly erotettavaan relaatioon : R S = { t t R t S }. R A B S D E R-S A B S-R D E 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 Harri Laine 2

- 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. R A B S D E RxS A B D E - 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) Harri Laine 3

- 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 π B (T) B 2 4 π D,E (T) D E Harri Laine 4

- 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} Ehdossa vertailtavina voivat olla attribuutit ja vakiot. Vertailuoperaattoreina tulevat kyseeseen =,, <, >, <= ja >=. Relatioalgebra - valinta R A B σ A=1 (R) A B σ 3>2 (R) A B σ A=5 (R) A B Tuloksena tyhjä joukko Harri Laine 5

-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) R A B S D E R S A B Harri Laine 6

- 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) -liitokset (join) Monikoiden yhdistäminen jonkin ehdon perusteella Liitoksessa yhdistyy valinta ja ristitulo R 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ä Harri Laine 7

Liitos R A B S D E RxS A B D E Ehto: R.A=S.D Liitos R A B S D E RxS A B D E Ehto: R.A S.D Harri Laine 8

Liitos Auto(Reknro, Väri, Vmalli, Merkki) Omistus(Reknro,Henkilönumero, Osoite, Nimi), Omistajattomat autot? 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) - 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. Harri Laine 9

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) Harri Laine 10

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 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 Auto < Auto.Reknro=Omistus.Reknro Omistus Kaikki autot tulevat mukaan, mutta jos autolla ei ole omistajaa tulee kyseisen auton omistajatiedoiksi tyhjäarvoja. Harri Laine 11

Kyselyt relaatioalgebralla Kysely esitetään vastauksen muodostavana lausekkeena Sulkeilla voi ohjata laskentajärjestystä periatteessa kyselyn optimoija voisi uudelleenjärjestellä operaatioita niin, että suoritus olisi mahdollisimman tehokas Lauseketta muodostettaessa kannattaa käyttää välituloksia. Esimerkkejä Auto(Reknro, Väri, Vmalli, Merkki) Omistus(Reknro,Henkilönumero, Osoite, Nimi), Katsastus(Reknro, Katsastusvuosi, KatsastusPvm, Hyväksyttiinkö), Vika(Reknro, KatsastusPvm, Vika) Harri Laine 12

Esimerkkejä Vuosimallia 1996 olevat autot, joista on löytynyt vikoja vuoden 1999 katsastuksissa: σ Vmalli=1996 (Auto) σ Katsastusvuosi=1999 (Katsastus) {vuosimallia 1996 oleva auto} {vuoden 1999 katsastus} Vika * σ Katsastusvuosi=1999 (Katsastus) {vuoden 1999 katsastuksissa löytyneet viat, liitos rekisterinumeron ja katsastuspäivän perusteella} σ Vmalli=1996 (Auto) * (Vika * σ Katsastusvuosi=1999 (Katsastus)) {vuoden 1999 katsastuksessa vuosimallin 1996 autoista löytyneet viat, liitos rekisterinumeron perusteella} p Reknro (s Vmalli=1996 (Auto) * (Vika * s Katsastusvuosi=1999 (Katsastus))) Esimerkkejä Omistajan nimi ja osoite vuosimallia 1995 tai sitä vanhemmista autoista, joiden vuoden 1999 katsastusta ei ole vielä tehty σ Katsastusvuosi=1999 (Katsastus) {vuoden 1999 katsastukset} σ Vmalli<=1995 (Auto) {vuosimallia 1995 tai sitä vanhempi auto} π Reknro (Auto) π Reknro (σ Katsastusvuosi=1999 (Katsastus)) {rekisterinumero autoista, joiden vuoden 1999 katsastusta ei ole tehty} π Reknro (σ Vmalli<=1995 (Auto) ) π Reknro (σ Katsastusvuosi=1999 (Katsastus)) {rekisterinumero vuosimallia 1995 olevista tai vanhemmista autoista, joiden vuoden 1999 katsastusta ei ole tehty} Auto * Omistus {Omistajatiedot liitetty autoon rekisterinumeron perusteella} p Nimi,Osoite (Omistus * (p Reknro (s Vmalli<=1995 (Auto) ) - p Reknro (s Katsastusvuosi=1999 (Katsastus))) Harri Laine 13

Esimerkkejä Tiedot henkilöistä, jotka omistavat yhteisen auton (tiedot myös tästä) mutta asuvat eri osoitteissa. Omistaja Omistaja.1.Reknro=Omistaja.2.Reknro and Omistaja.1.Henkilönrmero <Omistaja.2.Henkilönumero Omistaja {Saman auton omistavat henkilöparit. Tässä osapuoliin viitataan selvyyden vuoksi tarkentein 1 ja 2 [yleensä nuo jätetään pois]. Vertailuoperaattorilla < saadaan aikaan se, ettei sama pari tule kahdesti eri järjestyksessä, erisuuruusvertailu johtaisi tähän} p Auto.Reknro,Omistaja.1,Nimi,Omistaja.1.Osoite,Omistaja.2.Nimi,,Omistaja.2.Osoite (Auto * (Omistaja Omistaja.1.Reknro=Omistaja.2.Reknro and Omistaja.1.Henkilönumero<Omistaja.2.Henkilönumero and Omistaja.1.Osoite Omistaja.2.Osoite Omistaja)) Esimerkkejä Vuoden 1996 Opel Astroissa sekä Audi A4:ssa esiintyneet yhteiset viat vuoden 1999 katsastuksissa. σ Vmalli=1996 and Merkki= Audi A4 (Auto) {vuoden 1996 mallia oleva Audi A4} π Vika (σ Vmalli=1996 and Merkki= Audi A4 (Auto) * (Vika * σ Katsastusvuosi=1999 (Katsastus))) {vuoden 1996 Audi A4 autojen viat vuoden 1999 katsastuksissa} p Vika (s Vmalli=1996 and Merkki= Audi A4 (Auto) * (Vika * s Katsastusvuosi=1999 (Katsastus))) p Vika (s Vmalli=1996 and Merkki= Opel Astra (Auto) * (Vika * s Katsastusvuosi=1999 (Katsastus))) Harri Laine 14