close

PostgreSQL

Siirry navigointiin Siirry hakuun
PostgreSQL
Postgresql elephant.svg
PostgreSQL 13.2 screenshot.png
Yleistä tietoa
ohjelmatyyppi Objekti-relaatiotietokanta (ORDBMS)
Tekijä Michael Stonebraker
kehittäjä PostgreSQL Global Development Group
ensimmäinen julkaisu 1996
haavoittuvuuksia CVE-2022-2625
Lisenssi PostgreSQL-lisenssi [ 1 ]
Tekninen informaatio
Aikataulutettu sisään C
Versiot
Uusin vakaa versio 14.4 ( info ) (16. kesäkuuta 2022 (3 kuukautta ja 29 päivää))
Uusin versio testeissä 13beta 121. toukokuuta 2020
versiohistoria
Linkit

PostgreSQL , jota kutsutaan myös Postgresiksi , on avoimen lähdekoodin oliopohjainen relaatiotietokannan hallintajärjestelmä , joka on julkaistu PostgreSQL-lisenssillä [ 1 ] , joka on samanlainen kuin BSD tai MIT .

Kuten monet muut avoimen lähdekoodin projektit, PostgreSQL-kehitystä ei hoida yksi yritys tai henkilö, vaan sitä johtaa epäitsekkäästi, epäitsekkäästi , vapaasti työskentelevä tai kaupallisten organisaatioiden tukema kehittäjäyhteisö . Tätä yhteisöä kutsutaan nimellä PGDG ( PostgreSQL Global Development Group ).

PostgreSQL:llä ei ole virhekäsittelijää, mikä tekee virheiden oikean tilan selvittämisestä erittäin vaikeaa. [ 2 ]

Tuotteen nimi

Isojen kirjainten käyttö PostgreSQL-nimessä saattaa hämmentää joitain ihmisiä ensi silmäyksellä. " SQL " :n erilaiset ääntämiset voivat aiheuttaa sekaannusta. PostgreSQL-kehittäjät lausuvat sen /poːst ɡɹɛs kjuː ɛl/;. On myös yleistä kuulla sen lyhennettynä yksinkertaisesti "Postgres", joka oli sen alkuperäinen nimi. Koska se tukee SQL-standardia useimpien relaatiotietokantojen keskuudessa, yhteisö harkitsi nimen vaihtamista aikaisempaan Postgresiin. PostgreSQL Core Team ilmoitti kuitenkin vuonna 2007, että tuotteen nimi on edelleen PostgreSQL. Nimi viittaa hankkeen alkuperään "post- Ingres " -tietokannana, ja alkuperäiset tekijät kehittivät myös Ingres-tietokannan.

Historia

PostgreSQL:llä on ollut pitkä kehitys, joka alkoi vuonna 1982 Ingres -projektista UC Berkeleyssä . Tämä Michael Stonebrakerin johtama projekti oli yksi ensimmäisistä yrityksistä ottaa käyttöön relaatiotietokantamoottori. Työskenneltyään pitkään Ingresillä ja saatuaan kaupallista kokemusta siitä, Michael päätti palata yliopistoon vuonna 1985 työstämään uutta Ingres-kokemusta koskevaa projektia, nimeltään post-ingres tai yksinkertaisesti POSTGRES.

Post-ingres -projektin tavoitteena oli ratkaista 1980- luvun alussa selvitetyn relaatiotietokantamallin ongelmia . Suurin näistä ongelmista oli relaatiomallin kyvyttömyys ymmärtää "tyyppejä", eli yksinkertaisia ​​tietoyhdistelmiä, jotka muodostavat yhden yksikön. Tällä hetkellä näitä kutsutaan objekteiksi . He pyrkivät tuomaan mahdollisimman vähän toimintoja täydentämään tyyppitukea. Näihin ominaisuuksiin sisältyi kyky määritellä tyyppejä, mutta myös kyky kuvata suhteita - joita siihen asti käytettiin laajalti, mutta ne olivat kokonaan käyttäjän ylläpitämiä. Postgresissa tietokanta "ymmärsi" suhteet ja saattoi saada tietoa liittyvistä taulukoista sääntöjen avulla . Postgres käytti monia Ingresin ideoita, mutta ei sen koodia.

Seuraava luettelo näyttää tärkeimmät virstanpylväät Postgres-projektin elämässä.

  • 1986: julkaistiin useita julkaisuja, joissa kuvattiin järjestelmän perusta.
  • 1988: käyttökelpoinen versio oli jo saatavilla.
  • 1989: Ryhmä julkaisi version 1 pienelle käyttäjäyhteisölle.
  • 1990: julkaistiin versio 2, joka oli käytännössä kirjoittanut sääntöjärjestelmän uudelleen.
  • 1991: Version 3 julkaisu, joka lisäsi useiden tallennusmoottorien kyvyn.
  • 1993: Käyttäjäyhteisön merkittävä kasvu, joka vaati lisää ominaisuuksia.
  • 1994: Kun versio 4 julkaistiin, projekti päättyi ja ryhmä hajosi.

POSTGRES-projektin päätyttyä kaksi yliopistosta valmistunutta, Andrew Yu ja Jolly Chen , alkoivat työskennellä POSTGRES-koodin parissa. Tämä oli mahdollista, koska POSTGRES oli lisensoitu BSD :n alaisuudessa , ja ensimmäinen asia, jonka he tekivät, oli lisätä tuki SQL-kielelle POSTGRESiin. koska aiemmin sillä oli tulkki kyselykielelle QUEL (perustuu Ingresiin), mikä loi järjestelmän, jota he kutsuivat nimellä Postgres95.

Vuoteen 1996 mennessä projektiin liittyi yliopiston ulkopuolisia ihmisiä, kuten Marc Fournier Hub.Org Networking Servicesistä, Bruce Momjian ja Vadim B. Mikheev , jotka toimittivat ensimmäisen ei-yliopiston kehityspalvelimen avoimen lähdekoodin kehitystyötä varten ja aloittivat työskentelyn vakauttaa Postgres95-koodi.

Vuonna 1996 he päättivät muuttaa Postgres95:n nimen siten, että se kuvastaa SQL -kielen ominaispiirteitä ja päätyi kutsumaan sitä PostgreSQL:ksi, jonka ensimmäinen avoimen lähdekoodin versio julkaistiin 1. elokuuta 1996. Ensimmäinen virallinen versio PostgreSQL:stä ( 6.0) julkaistiin tammikuussa 1997. Sittemmin monet innostuneet tietokantamoottorien kehittäjät liittyivät hankkeeseen, koordinoitiin Internetin kautta ja alkoivat yhdessä sisällyttää moottoriin monia ominaisuuksia.

Vaikka lisenssi salli PostgreSQL:n kaupallistamisen, koodia ei alun perin kehitetty kaupallisiin tarkoituksiin, mikä on yllättävää ottaen huomioon PostgreSQL:n tarjoamat edut. Tärkein spinoff sai alkunsa, kun Paula Hawthtorn (alkuperäisen Ingres-tiimin jäsen, joka muutti Postgresiin) ja Michael Stonebraker perustivat Illustra Information Technologiesin Postgresin kaupallistamiseksi.

Vuonna 2000 entiset Red Hat -sijoittajat perustivat Great Bridge -yrityksen markkinoimaan PostgreSQL:ää ja kilpailemaan kaupallisten tietokantatoimittajien kanssa. Great Bridge sponsoroi useita PostgreSQL-kehittäjiä ja lahjoitti resursseja takaisin yhteisölle, mutta suljettiin vuoden 2001 lopulla Red Hatin kaltaisten yritysten kovan kilpailun ja huonojen markkinaolosuhteiden vuoksi.

Vuonna 2001 Command Prompt, Inc. julkaisi Mammonth PostgreSQL:n, PostgreSQL:n vanhimman kaupallisen jakelun. Se jatkaa PostgreSQL-yhteisön tukemista sponsoroimalla kehittäjiä ja projekteja, mukaan lukien PL/Perl, PL/php, ja isännöimällä yhteisöprojekteja, kuten PostgreSQL Build Farm.

Tammikuussa 2005 PostgreSQL sai tukea tietokantatoimittajalta Pervasive Softwarelta , joka tunnetaan Btrieve- tuotteestaan, jota käytettiin Novell Netware -alustalla . Kaikkialla mainostettiin kaupallista tukea ja yhteisön osallistumista ja saavutettiin jonkin verran menestystä. Heinäkuussa 2006 se kuitenkin poistui PostgreSQL-tukimarkkinoilta.

Vuoden 2005 puolivälissä kaksi muuta yritystä ilmoitti suunnitelmistaan ​​kaupallistaa PostgreSQL painottaen erillisiä markkinarakoja. EnterpriseDB lisäsi toimintoja, jotka tekivät Oraclen kanssa toimiviksi kirjoitetuista sovelluksista helpompia ajaa PostgreSQL:n kanssa. Greenplum teki parannuksia suoraan Data Warehouse- ja Business Intelligence -sovelluksiin , mukaan lukien BizGres-projektiin.

Lokakuussa 2005 Sun Microsystemsin ohjelmistojen varatoimitusjohtaja John Loiacono kommentoi: "Emme pyri Microsoft OEM :n perään, mutta tarkastelemme nyt PostgreSQL:ää", vaikka tuolloin ei annettu teknisiä tietoja. Marraskuusta 2005 lähtien Sun Solaris 10 (julkaisu 6/06) sisälsi PostgreSQL:n.

Elokuussa 2007 EnterpriseDB julkisti Postgres Resource Centerin ja EnterpriseDB Postgresin, jotka on suunniteltu täysin konfiguroiduksi PostgreSQL-jakeluksi, joka sisältää monia lisättyjä ja lisättyjä moduuleja. EnterpriseDB Postgres nimettiin uudelleen Postgres Plusiksi maaliskuussa 2008.

PostgreSQL-projekti tekee edelleen suuria julkaisuja vuosittain ja pieniä bugikorjausjulkaisuja, jotka kaikki ovat saatavilla PostgreSQL-lisenssillä ja perustuvat kaupallisten toimittajien, avustavien yritysten ja enimmäkseen avoimen lähdekoodin kehittäjien panokseen.

Ominaisuudet

Joitakin sen pääominaisuuksia ovat mm.

Korkea äänestysprosentti

MVCC (Multi-Version Concurrent Access) -nimisen järjestelmän kautta PostgreSQL sallii, kun yksi prosessi kirjoittaa taulukkoon, muut pääsevät samaan taulukkoon ilman lukituksia. Jokainen käyttäjä saa yhtenäisen näkemyksen.

Laaja valikoima natiivityyppejä

PostgreSQL tarjoaa natiivisti tukea:

  • Mielivaltaiset tarkkuusluvut .
  • Rajattoman pituinen teksti.
  • Geometriset hahmot (joissa on useita niihin liittyviä toimintoja).
  • IP -osoitteet (IPv4 ja IPv6).
  • CIDR- tyyliset osoitelohkot .
  • MAC-osoitteet .
  • Taulukot .

Lisäksi käyttäjät voivat luoda omia tietotyyppejä, jotka ovat täysin indeksoitavissa PostgreSQL:n GiST-infrastruktuurin ansiosta. Joitakin esimerkkejä ovat PostGIS -projektin luomat GIS - tietotyypit .

Muut ominaisuudet

  • Vieraita avaimia kutsutaan myös vierasavaimiksi tai vierasavaimiksi .
  • Liipaisimet ( triggerit ): Triggeri tai liipaisin määritellään tietyksi toiminnoksi, joka suoritetaan tapahtuman mukaan, kun se tapahtuu tietokannassa. PostgreSQL:ssä tämä tarkoittaa tallennetun toimintosarjan suorittamista tietyn taulukon tiettyyn toimintoon perustuen. Nyt kaikki laukaisimet määritellään kuudella ominaisuudella:
    • Liipaisimen tai laukaisimen nimi
    • Hetki, jolloin laukaisimen pitäisi alkaa
    • Laukaisutapahtuman pitäisi käynnistyä...
    • Pöytä, jossa liipaisin laukeaa
    • Toteutustiheys
    • Funktio, joka voidaan kutsua
    • Toiminto ei ole oikea

Joten yhdistämällä nämä kuusi ominaisuutta, PostgreSQL antaa sinun luoda laajoja toimintoja sen laukaisujärjestelmän kautta .

Ominaisuudet

Palvelimella suoritettavat koodilohkot. Ne voidaan kirjoittaa useilla kielillä, sillä teholla, jonka jokainen niistä antaa, perusohjelmointitoiminnoista, kuten haaroista ja silmukoista, olioohjelmoinnin tai toiminnallisen ohjelmoinnin monimutkaisuuteen.

Triggerit ovat toimintoja, jotka on sidottu datatoimintoihin.

Joitakin kieliä, joita voidaan käyttää, ovat seuraavat:

PostgreSQL tukee toimintoja, jotka palauttavat "rivejä", joissa tulostetta voidaan käsitellä arvojoukona, jota voidaan käsitellä samalla tavalla kuin kyselyn palauttamaa riviä.

Toiminnot voidaan määrittää suoritettavaksi joko suorittavan käyttäjän oikeuksilla tai aiemmin määritellyn käyttäjän oikeuksilla. Toimintojen käsitettä kutsutaan muissa DBMS-järjestelmissä usein "tallennettuina menettelyinä".

Edut

– Turvallisuus yleisesti

-Integrity in DB: rajoitukset toimialueella

- Viittaus eheys

- Väitteet

-Liipaisimet

- Valtuutukset

- Yhteys tietokannanhallintajärjestelmään

- Tapahtumat ja varmuuskopiot

Tuotteet noin PostgreSQL

PGDG kehittää vain Data Enginen ja pienen määrän apuohjelmia, PostgreSQL-työn tehostamiseksi on yleensä tarpeen lisätä ulkoisia erityisesti tätä moottoria varten luotuja apuohjelmia, joista osa on:

1.Shanick

Julkaisuhistoria

Vapauta ensimmäinen julkaisu Uusin pieni versio viimeisin julkaisu
0,01 1995-05-01 0,03 21.7.1995
1.0 1995-09-05 1.09 Ei 11.4.1996
6.0 1997-01-29
6.1 1997-06-08 6.1.1 Ei 1997-07-85
6.2 10.2.1997 6.2.1 Ei 17.10.1997
6.3 1998-03-01 6.3.2 Ei 1998-04-07
6.4 30.10.1998 6.4.2 Ei 20.12.1998
6.5 1999-06-09 6.5.3 Ei 13.10.1999
7.0 2000-05-08 7.0.3 Ei 11.11.2000
7.1 13.4.2001 7.1.3 Ei 15.8.2001
7.2 2002-02-04 7.2.8 Ei 2005-05-09
7.3 27.11.2002 7.3.21 Ei 2008-01-07
7.4 17.11.2003 7.4.30 Ei 2010-10-04
8.0 19.1.2005 8.0.26 Ei 2010-10-04
8.1 2005-11-08 8.1.23 Ei 16.12.2010
8.2 12.5.2006 8.2.23 Ei 26.9.2011
8.3 2008-02-04 8.3.23 Ei 2013-02-07
8.4 2009-07-01 8.4.22 Ei 24.7.2014
9.0 20.9.2010 9.0.23 Ei 10.8.2015
9.1 12.9.2011 9.1.24 Ei 27.10.2016
9.2 10.9.2012 9.2.19 Ei 27.10.2016
9.3 9.9.2013 9.3.15 Ei 27.10.2016
9.4 18.12.2014 9.4.20 Joo 27.10.2016
9.5 2016-01-07 9.5.15 Joo 27.10.2016
9.6 29.9.2016 9.6.11 Joo 27.10.2016
10 10.5.2017 10.6 Joo 10.5.2017
yksitoista 18.10.2018 11.1 Joo 18.10.2018
Joo Yhteisön tukema
Ei Ei yhteisön tukea [ 3 ]

Kaupalliset vaihtoehdot

BSD -lisenssin ansiosta koodin käyttö on sallittu kaupallistaa. Yksi tapaustutkimuksista on Enterprise DB (Postgresql Plus), joka sisältää erilaisia ​​laajennuksia ja Java -pohjaisen kehitysrajapinnan . Muiden yritysten joukossa, jotka käyttävät Postgresql-markkinointia, on CyberTech (Saksa) CyberCluster-tuotteellaan.

GIS

PostGIS
Laajennus, joka lisää tuen maantieteellisille objekteille PostgreSQL:ään ja mahdollistaa analyysin spatiaalisten SQL-kyselyiden tai GIS -sovelluksiin (Geographic Information System) yhteyden kautta.

Replikointi

PgCluster
Multi Master replikointi.
Slony-I
Master slave -replikointi.
pyreplika
Asynkroninen isäntä-orja ja moniisäntäreplikointi.

Hallintatyökalut

pgAdmin
Ilmainen ja avoimen lähdekoodin visuaalinen työpöytäympäristö. Asennettavissa Linux- , FreeBSD- , Solaris- , Mac OSX- ja Windows-alustoille . Se mahdollistaa yhteyden muodostamisen millä tahansa alustalla toimiviin PostgreSQL-tietokantoihin. Se on saatavana eri kielillä.
Se helpottaa tietokantojen hallintaa ja hallinnointia joko SQL-ohjeiden tai graafisen ympäristön avulla. Mahdollistaa pääsyn tietokannan kaikkiin toimintoihin; kyselyt, manipulointi ja tietojen hallinta, mukaan lukien lisäasetukset, kuten Slony-I-replikointimoottorin manipulointi.

pgAdmin-projekti perustettiin, ja sen pääkehittäjänä on David Page.

Tätä työkalua alettiin kirjoittaa Visual Basicilla ja ajan myötä se on vaihtanut kieliä.

  • pgManager oli ensimmäisen prototyypin nimi, se kirjoitettiin PostgreSQL 6.3.2:lle vuonna 1998, kuukausia myöhemmin se kirjoitettiin uudelleen ja julkaistiin.
  • pgAdmin oli uudelleenkirjoitettu versio, joka julkaistiin GNU General Public License (GPL) -lisenssillä.
  • pgAdmin II oli täysin uudelleen kirjoitettu versio, joka julkaistiin ensimmäisen kerran 16. tammikuuta 2002.
  • pgAdmin III oli kolmas versio, se julkaistiin Artistic License -lisenssillä ja myöhemmin samalla lisenssillä kuin PostgreSQL. Tämä versio tehtiin C++:lla käyttäen wxWidgets- kehystä, mikä mahdollistaa sen suorittamisen useimmissa käytetyissä käyttöjärjestelmissä. Kyselytyökalu sisältää pgScript-nimisen kielen, joka tukee kehitys- ja hallintatehtäviä.
  • pgAdmin 4 julkaistiin 29. syyskuuta 2016 [ 4 ] se tehtiin Pythonilla ja Javascript/jQueryllä, ja C ++:lla kirjoitettu työpöytäajonaika Qt-graafisen kirjaston kanssa.

Joulukuussa 2014 Dave Page ilmoitti, että verkkopohjaisiin malleihin siirtymisen myötä aloitettiin työ pgAdmin 4:n parissa tavoitteena helpottaa pilvikäyttöönottoa.

PgAccess
Visuaalinen työpöytäympäristö.
PhpPgAdmin
Web-ympäristö.
psql
Konsoli asiakas.
Tietokannan päällikkö
Visuaalinen työpöytäympäristö.

Tekstihaku

Koko tekstihaku
Sisältyy ytimeen versiosta 8.3 alkaen.
Tsearch2 :n ja OpenFTS :n kautta versiota 8.3 vanhemmille versioille.

XML

XML / XSLT- tuki
Contrib -osion XPath-laajennusten kautta .

Suositellut käyttäjät

Palkinnot

PostgreSQL on saanut seuraavat palkinnot: [ 8 ]

  • 1999 Linux World Editor's Choice -palkinto parhaasta tietokannasta
  • 2000 Linux Journal Editors' Choice Awards parhaasta tietokannasta
  • 2002 Linux New Media Editors Choice Award parhaasta tietokannasta
  • 2003 Linux Journal Editors' Choice Awards parhaasta tietokannasta
  • 2004 Linux New Media Award parhaasta tietokannasta
  • 2004 Linux Journal Editors' Choice Awards parhaasta tietokannasta
  • 2004 ArsTechnican paras palvelinsovelluspalkinto
  • 2005 Linux Journal Editors' Choice Awards parhaasta tietokannasta
  • 2006 Linux Journal Editors' Choice Awards parhaasta tietokannasta
  • 2008 Developer.com Vuoden tuote, tietokantatyökalu

Katso myös

Viitteet

Ulkoiset linkit