View (SQL)

Kohteesta Wikipedia
Siirry navigaatioon Siirry hakuun

View, eli suomeksi näkymä on tietokantajärjestelmään tallennettava tietokantakysely, jolla on yksilöllinen nimi. Näkymät ovat siten virtuaalisia tulosjoukkoja (tauluja), koska niidet tieto kerätään fyysisesti tietokannassa olevista tauluissa (base tables, physical tables) olevista tiedoista. Joissakin tietokantajärjestelmissä näkmät voivat olla myös väliaikaisia, eli ne poistetaan istunnon päätteeksi.

Tavallisen näkymän kysely ajetaan joka kerta kun sitä (näkymän tunnistetta) kutsutaan. Näin ollen näkymien data on ajantasaista.

Näkymien tarjoamia etuja aj hyviä puolia ovat mm:

  • Yksinkertaistaa kyselyjen tekemistä kun kyselyn tulosjoukkoon päästään käsiksi vain käyttämällä sen nimeä (ks. esimerkki alempana).
  • Yksinkertaistaa asiakkaan (client) työtä, kun tarvittava kysely on jo määritetty tietokantaohjelmiston sisällä. Esimerkiksi ohjelmoijan ei tarvitse osata kirjoittaa haluamaansa SQL-kyselyä tai edes ymmärtää sen toiminnasta.
  • Näkymät vievät hyvin vähän tilaa. Tallentamiseen tarvitaan vain itse kyselyn koodi.
  • Turvallisuus. Tietyille käyttäjille voidaan sallia oikudet lukea ja/tai hallita näkymiä, ei itse fyysisiä tauluja joista tieto on peräisin.

Esimerkki[muokkaa | muokkaa wikitekstiä]

Fyysinen taulu (henkilot)
id etunimi sukupuoli syntymavuosi
1 Aatu M 1991
2 Bella N 1992
3 Caro N 1993
4 Daniel M 1994
5 Elli N 1950

Näkymän (nimeltä naiset), jonka tulosjoukko sisältää vain naispuoliset taulun henkilot rivit, luominen onnistuisi seuraavasti:

CREATE VIEW naiset AS SELECT * FROM henkilot WHERE sukupuoli='N';

Kun näkymä on onnistuneesti luotu tietokannanhallintajärjestelmään, voidaan tulosjoukkoon viitata käyttäen näkymän nimeä. Esimerkiksi seuraavan kyselyn tuloksessa olisi vain yksi rivi jonka avain on ID 3.

SELECT * FROM naiset WHERE syntymavuosi >= 1993;

Materialized View[muokkaa | muokkaa wikitekstiä]

Näkymä, jonka data muodostetaan esimerkiksi kerran vuorokaudessa ja jonka data siten tallennetaan fyysisenä kopiona, kutustaan Materialized View:ksi (ei virallista suomenkielistä termiä).[1] Tällaisen näkymän etu on puhtaasti suoritusnopeudessa, sillä näkymän kyselyä ei ajata joka kerta kun sitä kutsutaan, vaan sama tulosjoukko voidaan antaa nopeasti tietokantaohjelmiston muistista. Fyysisen näkymän haittapuolena on sen antama mahdollisesti epäajantaisenen tieto, mutta se soveltuu hyvin tilanteiisiin joissa tiedon ei tarvitse olla täysin ajantasaista. Materialisoitu näkymä voidaan uudelleenlaskea esimerkiksi kerran vuorokaudessa.

Esimerkkitilanne voisi olla tilanne, jossa vuorokauden myyntitilastot tallennetaan fyysiseen näkymään. Fyysinen näkymä koostetaan siten kerran vuorokaudessa. Fyysinen tallentaminen on laskennallisesti tehokkaampaa, sillä vanhat myyntitilastot tuskin muuttuvat, joten yhteenvedon tallentaminen on hyödyllisempää fyysisesti, kuin että se laskettaisiin joka kerta erikseen.

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. PostgreSQL: Documentation: 9.3: Materialized Views www.postgresql.org. Viitattu 8.8.2018. (englanniksi)