ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
PostgreSQL – Wikipedia

PostgreSQL

Wikipedia

PostgreSQL:n logo
PostgreSQL:n logo

PostgreSQL on avoimena lähdekoodina jaettava olio-relaatiotietokantapalvelin (tietokannan hallintajärjestelmä), joka on lisensoitu joustavalla BSD-tyyppisellä lisenssillä. Se on vaihtoehto muille vapaan lähdekoodin tietokantajärjestelmille, kuten MySQL tai Firebird, sekä myös kaupallisille järjestelmille kuten Oracle, Sybase, IBM:n DB2 tai Microsoft:in SQL Server. Kuten toiset vastaavat avoimen lähdekoodin projektit, kuten esimerkiksi Apache ja BSD-variantit, PostgreSQL ei ole yksittäisen yrityksen tai henkilön kontrolloima, vaan perustuu kansainväliseen ohjelmoijien ja yritysten muodostaman yhteisön tekemään kehitystyöhön. Tätä kehitystyötä johtaa core-team, jolla on viime kädessä valta päättää otetaanko muutokset mukaan koodipuuhun.

PostgreSQL on tullut suuresti tunnetuksi MySQL:n varjossa. Kun MySQL on tullut tunnetuksi helppona ja nopeana tietokantana, PostgreSQL on tullut tunnetuksi pienillä tietomäärillä hieman hitaampana mutta ominaisuuksiltaan parempana ja luotettavampana tietokantana. Toistaiseksi se kattaakin suuremman osan SQL-2003-standardista kuin MySQL, joskin viimeksi mainittu on kuronut välimatkaa umpeen viime aikoina. PostgreSQL tukee kaikkia tyypillisiä ACID-ominaisuuksia, kuten muun muassa transaktioita ja viittauseheyden tarkistusta. PostgreSQL:n suuria hienouksia edustaa tyyppien määritteleminen; esimerkiksi datan muunto oliomallista relaatiomalliin ja takaisin on suuri ohjelmointitekninen ongelma, ja PostgreSQL helpottaa tätä hieman tarjoamalla mahdollisuuden rakentaa uusia monimutkaisia tietotyyppejä. Version 8.0 myötä myös replikointiominaisuuksiin on panostettu suuresti, joten useita palvelimia käyttämällä PostgreSQL voi selvitä hyvinkin suuresta käyttökuormasta.

PostgreSQL:n hankalahkon oloinen nimi saattaa aiheuttaa lausumisvaikeuksia, varsinkin jos SQL:n lausuu kuten sanan sequel. PostgreSQL:n kehittäjät lausuvat sen "post-gres-Q-L". (lausuntaesimerkki, MP3). On myös yleistä että nimi lyhennetään yksinkertaisesti postgresiksi.

Sisällysluettelo

[muokkaa] Ominaisuudet

[muokkaa] Tuetut käyttöjärjestelmät

Postgres toimii useimmilla Unix-pohjaisilla käyttöjärjestelmillä sekä klooneilla (mukaan lukien HP-UX, BSD-variantit, Solaris, Mac OS X ja Linux) sekä versiosta 8.0 alkaen myös Microsoft Windows -pohjaisena.

[muokkaa] Funktiot

Funktiot mahdollistavat ohjelmakoodin ajon palvelimessa. Vaikkakin funktiot voidaankin kirjoittaa käyttäen SQL:ää, perustason ohjelmointioperaatioiden, kuten haarautumisen ja silmukoiden puuttuminen, on pakottanut mahdollistamaan muiden ohjelmointikielten käytön. Joitain näistä ohjelmointikielistä voidaan käyttää myös herättimissä. PostgreSQL:an voidaan ohjelmoida funktioita seuraavilla kielillä:

Funktioita voidaan suorittaa kutsujan tai kyseisen funktion luoneen käyttäjän oikeuksilla. Funktioita kutsutaan silloin tällöin myös proseduureiksi tai tallennetuiksi proseduureiksi, vaikkakin näillä termeillä on pieni tekninen eroavaisuus.

[muokkaa] Indeksit

PostgreSQL:ssä voidaan käyttää sisäänrakennettujen B-puu- ja R-puu-indeksien lisäksi myös käyttäjän määrittelemiä indeksejä. PostgreSQL:n indeksit tukevat seuraavia ominaisuuksia:

  • Indeksien selaus taaksepäin tarvittaessa, erillistä indeksiä ei tarvita tukemaan ORDER BY SOME_FIELD DESCENDING -lausekkeita.
  • Voidaan luoda lausekeindeksejä; nämä indeksoivat lausekkeen tai funktion tuloksia, pelkän sarakearvon asemasta.
  • Osittaisindeksit, jotka indeksoivat ainoastaan osan taulusta, voidaan luoda lisäämällä WHERE-lauseke CREATE INDEX -lauseen loppuun. Tämä mahdollistaa osan taulusta indeksoinnin.
  • Versiosta 8.1 eteenpäin tuetaan myös bittikarttaindeksihakuja. Bittikarttaindeksin luonti vaatii aluksi useamman indeksin lukemisen, joiden avulla luodaan bittikartta näiden indeksien ja ehdot täyttävien monikkojen leikkauskohdista. Tämä antaa käyttäjälle mahdollisuuden koota indeksejä yhteen; tauluun jossa on 20 saraketta voidaan periaatteessa luoda 20 eri indeksiä.

[muokkaa] Herätteet

Herätteet ovat täysin tuettuja ja niitä voidaan käyttää tauluissa tai näkymissä. Jos tapahtuma laukaisee useamman herätteen, ne käynnistetään aakkosjärjestyksessä. Natiivin PL/PgSQL:n lisäksi herätteet voivat myös kutsua Pl/Perl tai muilla tuetuilla kielillä kirjoitettuja funktioita.

[muokkaa] MVCC

PostgreSQL hallitsee rinnakkaiset toiminnot käyttäen Multi-Version Concurrency Controliksi (MVCC) nimettyä järjestelmää, joka antaa jokaiselle käyttäjälle käyttöön tilannevedoksen tietokannasta. Tämä mahdollistaa muutosten tekemisen niin, että ne eivät näy muille käyttäjille ennen kuin tapahtuma on valmis ja hyväksytty. Tämä poistaa lukulukkojen tarpeen lähes kokonaan ja varmistaa kannan toiminnan tehokkaasti ACID-periaatteiden mukaan.

[muokkaa] Säännöt

Säännöt sallivat kantaan tehdyn kyselyn kyselypuun uudelleenkirjoittamisen. Yleinen käyttötarkoitus tälle toiminnalle on päivitettävät näkymät.

[muokkaa] Tietotyypit

Suuri valikoima sisäänrakennettuja tietotyyppejä mukaan lukien:

Lisäksi käyttäjät voivat määritellä omia tietotyyppejään, joista voidaan yleensä tehdä täysin indeksoitavia käyttäen PostgreSQL:n GiST infrastruktuuria.

[muokkaa] Käyttäjän määrittelemät oliot

Lähes kaikista tietokannan sisäisistä olioista voidaan luoda uusia tyyppejä, mukaan lukien:

  • Indeksit
  • Operaattorit (ja olemassa olevat voidaan kuormittaa)
  • Aggregaatit
  • Arvoalueet
  • Tyyppimuunnokset

[muokkaa] Periytyminen

Taulut voidaan asettaa perimään ominaisuutensa isältään. Vaikkakin data taulujen välillä ei ole yhteistä, sarakkeen lisääminen isään luo saman sarakkeen myös lapsitauluun. Tämä toiminnallisuus ei ole vielä täysin tuettu – ennen kaikkea taulujen rajoitteet eivät vielä periydy.

[muokkaa] Muut ominaisuudet

  • Viite-eheysrajoitteet mukaan lukien foreign key -rajoitteet, sarakerajoitteet, ja rivitarkistukset
  • Näkymät
  • Täydet, sisä, ja ulko- (vasen ja oikea) liitokset
  • Sisäkyselyt
  • Transaktiot
  • Vahva SQL:2003 standardinmukaisuus
  • Salatut yhteydet (SSL avulla)
  • Binääri ja tekstimuotoisten suurten objektien varastointi
  • Varmuuskopiointi palvelimen ollessa toiminnassa
  • Arvoalueet
  • Taulutilat
  • Tallennuspisteet
  • Tietokannan palautus haluttuun tilanteeseen aikamääreen perusteella (Point-in-time recovery)

[muokkaa] Ulkopuoliset lisäominaisuudet

  • Maantieteelliset oliot käyttäen PostGIS:iä. GPL-lisensoitu.
  • Täysi tekstihaku käyttäen OpenFTS:iä. GPL-lisensoitu.
  • Useita asynkronisia isäntä/orja replikointiohjelmistoja, muun muassa Slony-I (BSD lisenssi) ja Mammoth Replicator (suljettu lähdekoodi, max- 50 orjaa, US$ 1 000 yhdelle isännälle ja orjalle).

[muokkaa] Historia

PostgreSQL:n pitkä evoluutio alkoi Ingres-projektista Berkeley:n yliopistossa. Projektin johtaja, Michael Stonebraker, lähti Berkeleystä tekemään Ingresin kaupallista versiota 1982, mutta palasi myöhemmin takaisin akateemiseen maailmaan. Palattuaan Berkeleyhin Stonebraker aloitti Ingres:in jälkiprojektin, joka kohdistettiin vastaamaan tuonaikaisten tietokantojen ongelmiin.

Tuloksena ollut projekti, nimeltään Postgres, tähtäsi minimimäärään ominaisuuksia, joilla voitiin antaa täysi tuki erilaisille tietotyypeille. Nämä ominaisuudet sisälsivät mahdollisuuden tyyppien luontiin, mutta myös täyden relaatioiden kuvailukyvyn – jo aikaisemmin laajalti käytetyn, mutta pelkästään käyttäjän ylläpitämänä ja määrittelemänä. Postgres:issa tietokanta ymmärsi relaatioita ja kykeni sääntöjen avulla hakemaan informaatiota toisiinsa liittyvistä tauluista luonnollisella tavalla. Postgresin ja Ingresin lähdekoodit olivat jo alusta alkaen täysin erilliset.

Alkaen vuodesta 1986 työryhmä julkaisi useita muistioita, joissa esiteltiin järjestelmän perusominaisuudet ja vuonna 1988 projektilla oli olemassa toimiva prototyyppi. Työryhmä julkaisi version 1 rajoitetulle käyttäjäkunnalle kesäkuussa 1989, jota seurasi versio 2 uusiksi kirjoitetulla sääntöjärjestelmällä kesäkuussa 1990. Vuoden 1991 versiossa 3 oli jälleen uusi sääntöjärjestelmä, mutta myös tuki useille tallennejärjestelmille ja paranneltu kyselyjärjestelmä. Vuoteen 1993 mennessä oli järjestelmälle kertynyt suuri määrä käyttäjiä jotka hukuttivat projektin tuki- ja ominaisuuspyyntöihin. Version 4 jälkeen – joka oli puhtaasti pelkästään olemassa olevan koodin siivous – projekti päättyi.

Vaikkakin projekti oli virallisesti päättynyt, BSD-lisenssi jolla Berkeley julkisti Postgresin mahdollisti itsenäisille avointa lähdekoodia hyödyntäville kehittäjille lähdekoodin hankinnan ja kehitystyön jatkamisen. Vuonna 1994 kaksi Berkeleyn yliopiston opiskelijaa, Andrew Yu ja Jolly Chen, lisäsivät SQL-tulkin korvaamaan vanhemman Ingres-pohjaisen QUEL-systeemin, luoden Postgres95:n. Koodi julkaistiin webissä ja sille annettiin mahdollisuus etsiä omaa kotiaan. 1996 tapahtui uudelleennimeäminen: uuden kyselykielen vuoksi Postgres95:tä tuli PostgreSQL.

Ensimmäinen PostgreSQL:n nimellä tapahtunut julkistus oli versio 6.0. Sittemmin joukko tietokantakehittäjiä ja vapaaehtoisia ympäri maailman ovat koordinoidusti ylläpitäneet ohjelmistoa Internetin välityksellä. Version 6.0 jälkeen on julkaistu useita uusia versioita, samalla jatkaen ohjelmiston parantelua ja kehitystä; 7. tammikuuta 2007 julkaistiin uusin versio, 8.2.1.

Vaikkakin lisenssi mahdollisti PostgreSQL:n kaupallistamisen, PostgreSQL:n kaupallinen kehitystyö ei ollut yhtä nopeaa kuin Ingresin – joka on sinänsä yllättävää ottaen huomioon PostgreSQL:n edut Ingresiin verrattuna. Ensimmäinen isompi kaupallinen projekti syntyi, kun Paula Hawthorn (alkuperäinen Ingres-työryhmän jäsen, joka siirtyi Ingresistä) ja Michael Stonebraker muodostivat Illustra Information Technologies:in tehdäkseen PostgreSQL:sta kaupallisen version.

Tammikuussa 2005 PostgreSQL sai ensimmäisen tukijansa tietokantatoimittajista. Pervasive Software, parhaiten tunnettu Btrieve:stä, joka oli hyvin suosittu Novell Netware ympäristössä, julkisti kaupallisen tuotetuen ja sitoutumisensa kehitysyhteisöön. Tuon tapahtuman jälkeen, EnterpriseDB on julkistanut vastaavanlaisen sitoutumislupauksen, keskittyen ennen kaikkea Oraclea varten tehtyjen sovellusten siirron helpottamiseen PostgreSQL-ympäristöön. Greenplum on sponsoroinut kehitysprojekteja tietovarastointi ja business intelligence -sovelluksia silmällä pitäen, etenkin BizGres-projektia.

Marraskuussa 2005, John Loiacono, Sun Microsystemsin executive vice-president of software, kommentoi että "We're not going to OEM Microsoft but we are looking at PostgreSQL right now," vaikkakaan tarkempaa tietoa Sunin kiinnostuksen kohteesta ei ole vielä julkistettu.

[muokkaa] Aiheesta muualla


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -