Download
relaatioalgebran perusoperaatioita n.
Skip this Video
Loading SlideShow in 5 Seconds..
Relaatioalgebran perusoperaatioita PowerPoint Presentation
Download Presentation
Relaatioalgebran perusoperaatioita

Relaatioalgebran perusoperaatioita

83 Vues Download Presentation
Télécharger la présentation

Relaatioalgebran perusoperaatioita

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Relaatioalgebran perusoperaatioita • Relaatioalgebra muodostuu joukosta operaatioita, joilla relaatioista voidaan muodostaa uusia relaatioita. • Alun perin operaatioita esiteltiin kahdeksan, myöhemmin niitä on esitelty lisää. • Operaatiot voidaan kuitenkin ilmaista viiden (kuuden!) perusoperaation avulla: valinta (selection), projektio (projection), ristitulo (Cartesian product), yhdiste (set union) ja erotus (set difference) (… sekä uudelleennimeäminen, rename!). • Näistä yhdiste, erotus ja ristitulo ovat joukko-opin perusoperaatioita. • Valinta ja projektio ovat relaatioalgebran omia operaatioita. • Hahmotelma operaatioista kuvassa 1a, 1b ja 1c. tMyn

  2. R S R S x 1 a 1 a x = b a 2 2 3 3 a b 1 2 b b 3 Valinta Projektio Ristitulo Kuva 1a. Havainnollistus operaatioista valinta, projektio ja ristitulo. tMyn

  3. R R R S S S Erotus Yhdiste Leikkaus Kuva 1b. Havainnollistus operaatioista yhdiste, leikkaus ja erotus. tMyn

  4. T U B A A A B C B C B C x x a 1 1 x a 1 a 1 b 2 1 y a 1 y a 1 y b 3 z 2 Luonnollinen liitos Ulkoliitos Kuva 1c. Havainnollistus operaatioista luonnollinen liitos ja ulkoliitos. tMyn

  5. Huom! Perusoperaatioita on tosiaan kuusi, siis esim. leikkaus (Set Intersection) voidaan määritellä näiden perusoperaatioiden avulla (erotus, set difference). tMyn

  6. Havainnollistetaan operaatioita tietokannan avulla, jossa on relaatiot: Toimipiste(tpNro, katuOs, kaupunki, postiNro) Henkilokunta(hloNro, eNimi, sNimi, asema, sPuoli, sAika, palkka, tpNro) Vuokrattavat(tilaNro, katuOs, kaupunki, postiNro, tyyppi, huoneLkm, vuokra, omistNro, hloNro, tpNro) Asiakas(asiakasNro, eNimi, sNimi, puhNro, paremm, maxV) Omistaja(omistajaNro, eNimi, sNimi, osoite, puhNro) Esittely(asiakasNro, tilaNro, esPaiva, komm) • Tietokanta kuvaa yritystä, joka harjoittaa tilojen vuokrausvälitystä. tMyn

  7. Toimipiste Henkilokunta tMyn

  8. Vuokrattavat Asiakas tMyn

  9. Omistaja Esittely tMyn

  10. Valinta (Selection) • Valintaoperaation kohteena on yksi relaatio. • Valinnassa poimitaan tulosrelaatioon valintaehdon täyttävät lähtörelaation monikot (rivit). • Esim. tulostetaan relaatiosta Henkilokunta kaikki ne henkilöt, joiden vuosipalkka on suurempi kuin 31000€, kuva 2. • Valinnasta voidaan tehdä monipuolisempi loogisilla operaattoreilla AND, OR tai NOT. tMyn

  11. Kuva 2. Valinta-operaation tekeminen Henkilokunta-relaatiosta. tMyn

  12. Projektio (Projection) • Tämä on relaatioalgebran oma operaatio, joka kohdistuu yhteen relaatioon. • Sen tuloksena saadaan uusi relaatio, jossa on ainoastaan valitut sarakkeet alkuperäisestä relaatiosta. • Esim. tulostetaan relaatiosta Henkilokunta tiedot kaikkien henkilöiden palkasta. Otetaan mukaan sarakkeet hloNro, eNimi, sNimi ja palkka, kuva 3. tMyn

  13. Kuva 3. Projektio relaatiosta Henkilokunta. tMyn

  14. Yhdiste (Set Union) • Yhdisteen avulla voidaan muodostaa relaatio, joka sisältää kahden samanrakenteisen relaation kaikki monikot. • Mikäli monikko esiintyy kummassakin relaatiossa, se tulee tulosrelaatioon vain kertaalleen. • Milloin kaksi relaatiota ovat samanrakenteisia (union-compatible)? • attribuuttien lukumäärä sama • vastinattribuuttien arvoalueiden on oltava sama • siis vastinattribuuttien nimet eivät välttämättä olla samoja! tMyn

  15. Esim. tulostetaan kaikki ne kaupungit joissa on joko toimipiste tai sitten vuokrattavia kohteita. • Nyt täytyy ensimmäiseksi saada relaatiot Toimipiste ja Vuokrattavat samanrakenteisiksi. • Se tapahtuu helposti: otetaan kummastakin relaatiosta projektio attribuutin kaupunki avulla. Jos kaupunki esiintyy useamman kerran, niin duplikaatit poistetaan. • Sitten suoritetaan yhdiste-operaatio näille kahdelle projektiolle, kuva 4. tMyn

  16. Kuva 4. Yhdiste-operaation suorittaminen. tMyn

  17. Erotus (Set Difference) • Erotuksessa tulosrelaatioon otetaan mukaan ne relaation monikot, jotka eivät sisälly erotettavaan relaatioon. • Relaatioiden tulee olla samanrakenteisia. • Esim. tulostetaan ne kaupungit, joissa on toimipiste, mutta joissa ei ole tiloja vuokrattavana. • Jälleen täytyy ensimmäiseksi saada relaatiot Toimipiste ja Vuokrattavat samanrakenteisiksi. • Siis otetaan kummastakin relaatiosta projektio attribuutin kaupunki avulla. Jos kaupunki esiintyy useamman kerran, niin duplikaatit poistetaan. • Sitten suoritetaan erotus-operaatio näille kahdelle projektiolle, kuva 5. tMyn

  18. Kuva 5. Erotus-operaation suorittaminen. tMyn

  19. Leikkaus (Set Intersection) • Leikkaus on operaatio, jolla saadaan tulokseksi kahden relaation ne monikot, jotka ovat samoja kummassakin relaatiossa. • Relaatioiden tulee olla samanrakenteisia. • Esim. tulostetaan ne kaupungit, jossa on toimipiste ja ainakin yksi vuokrattava kohde. • Jälleen täytyy ensimmäiseksi saada relaatiot Toimipiste ja Vuokrattavat samanrakenteisiksi. tMyn

  20. Siis otetaan kummastakin relaatiosta projektio attribuutin kaupunki avulla. Jos kaupunki esiintyy useamman kerran, niin duplikaatit poistetaan. • Sitten suoritetaan leikkaus-operaatio näille kahdelle projektiolle, kuva 6. tMyn

  21. Kuva 6. Leikkaus-operaation suorittaminen. tMyn

  22. Ristitulo (Cartesian Product, Cross Product) • Kahden relaation ristitulo sisältää lähtörelaatioiden kaikkien rivien kombinaatiot. • Tuloksena on rivejä lähtörelaatioiden rivien lukumäärien tulon verran. • Esim. tulosta niiden asiakkaiden nimet ja kommentit, jotka ovat käyneet katsomassa kohteita. • Asiakkaiden nimet ovat Asiakas-relaatiossa ja kommentit ovat Esittely-relaatiossa. • Aluksi on tehtävä projektio Asiakas-relaatioon attribuuttien asiakasNro, eNimi ja sNimi sekä projektio Esittely-relaatioon attribuuttien asiakasNro, tilaNro ja komm., kuva 7a. tMyn

  23. Suoritetaan ristitulo näiden kahden relaation välillä x Kuva 7a. Aluksi otetaan tarpeellinen projektio relaatioista Asiakas ja Esittely. tMyn

  24. asiakas.asiakasNro esittely.asiakasNro Kuva 7b. Tehdään ristitulo äskeisten projektioiden kanssa…., tässä alku. tMyn

  25. Kuva 7b. Tehdään ristitulo äskeisten projektioiden kanssa…, tässä loput. tMyn

  26. Kuten huomataan, relaatiossa on paljon ylimääräistä informaatiota! On siis tarve tehdä valinta-operaatio, jonka avulla haetaan ne rivit, jossa asiakas.asiakasNro= esittely.asiakasNro, siis kuva 7c. tMyn

  27. Kuva 7c. Niiden asiakkaiden nimet ja kommentit, jotka ovat käyneet katsomassa jotakin kohdetta. tMyn

  28. Liitos (Join) • Liitosoperaatio on tyypillisesti hyvin vaikeasti toteutettavissa relaatiotietokantasovelluksissa. • Juuri tämä operaatio aiheuttaa suorituskykyongelmia relaatiotietokantasovelluksiin. • Liitoksia on hyvin monenlaisia. • Toiset ovat hyvinkin tarpeellisia, toiset ehkä vähemmän... tMyn

  29. Luonnollinen liitos (Natural join) • Liitoksessa kaksi relaatiota yhdistetään tulosrelaatioksi. • Liitos perustuu yhdistettävien relaatioiden attribuuttien avulla ilmaistavaan ehtoon. • Ensin muodostetaan periaatteessa lähtörelaatioiden tulo, jonka riveistä valitaan annetun ehdon täyttävät rivit. • Luonnollinen liitos on liitos, jossa ei liitosehtoja anneta. • Liitos muodostetaan automaattisesti siten, että liitosehtona vaaditaan kaikkien vastinattribuuttien yhtäsuuruutta. • Vastinattribuutti otetaan tulokseen mukaan vain kertaalleen. tMyn

  30. Niinpä siis äskeisen esimerkin (karteesinen tulo) lopputulos hieman yksinkertaistuu: Kuva 8. Niiden asiakkaiden nimet ja kommentit, jotka ovat käyneet katsomassa jotakin kohdetta. tMyn

  31. Ulkoliitos (Outer join) • Ulkoliitos on yhdisteen ja liitoksen yhdistelmä, jolla saadaan mukaan tulosrelaatioon myös sellaiset lähtörelaation monikot, joille liitosehdon mukaisesti ei löydy paria toisesta lähtörelaatiosta. tMyn