Articulo de referencia

PostgreSQL

{{cite web|title=PostgreSQL|quote=PostgreSQL: The World's Most Advanced Open Source Relational Database|url=https://www.postgresql.org|access-date=2019-09-21}} \n"},"other_names...

PostgreSQL ( / p s t ɡ r ɛ s k j u ˌ ɛ l / POHST -gres-kew- EL ), [ 12 ] [ 13 ] znany również jakoPostgres, jestdarmowym i otwartymsystemem zarządzania relacyjnymi bazami danych(RDBMS) kładącym naciskna rozszerzalnośćiz SQL. PostgreSQL oferujetransakcjezatomowości,spójności,izolacji,trwałości(ACID), automatycznie aktualizowanymiwidokami,widokami zmaterializowanymi,wyzwalaczami,kluczami obcymiiprocedurami składowanymi. [ 14 ] Jest obsługiwany przez wszystkie głównesystemy operacyjne, w tymWindows,Linux,macOS,FreeBSDiOpenBSD, i obsługuje szereg obciążeń od pojedynczych maszyn domagazynów danych,jezior danych[ 15 ] lub usługsieciowychz wielomarównoczesnymi użytkownikami.

PostgreSQL Global Development Group skupia się wyłącznie na rozwijaniu silnika bazy danych i ściśle powiązanych komponentów. Ten rdzeń jest, technicznie rzecz biorąc, tym, co stanowi sam PostgreSQL, ale istnieje rozległa społeczność programistów i ekosystem, który zapewnia inne ważne zestawy funkcji, które tradycyjnie mogłyby być dostarczane przez zastrzeżonego dostawcę oprogramowania . Obejmują one funkcje silnika bazy danych specjalnego przeznaczenia, takie jak te potrzebne do obsługi bazy danych geoprzestrzennej [ 16 ] lub czasowej [ 17 ] lub funkcje emulujące inne produkty bazodanowe. [ 18 ] [ 19 ] [ 20 ] [ 21 ] Dostępna jest również szeroka gama funkcji interfejsu użytkownika i maszyny, takich jak graficzne interfejsy użytkownika [ 22 ] [ 23 ] [ 24 ] lub zestawy narzędzi do równoważenia obciążenia i wysokiej dostępności . [ 25 ] Duża sieć wsparcia PostgreSQL składająca się z osób, firm, produktów i projektów, mimo że nie jest częścią grupy The PostgreSQL Development Group, jest niezbędna do przyjęcia i użytkowania silnika bazy danych PostgreSQL i tworzy cały ekosystem PostgreSQL. [ 26 ]

Początkowo PostgreSQL nazywał się POSTGRES, nawiązując do jego początków jako następcy bazy danych Ingres opracowanej na Uniwersytecie Kalifornijskim w Berkeley . [ 27 ] [ 28 ] W 1996 roku projekt przemianowano na PostgreSQL , aby odzwierciedlić jego obsługę języka SQL . Po przeglądzie w 2007 roku zespół programistów zdecydował się zachować nazwę PostgreSQL i alias Postgres. [ 29 ]

Historia

Ingres i Uniwersytet POSTGRES (1982–1994)

PostgreSQL wyewoluował z projektu Ingres na Uniwersytecie Kalifornijskim w Berkeley. W 1982 roku lider zespołu Ingres, Michael Stonebraker , opuścił Berkeley, aby stworzyć zastrzeżoną wersję Ingres. [ 27 ] Powrócił do Berkeley w 1985 roku i rozpoczął projekt po Ingresie, aby zająć się problemami współczesnych systemów baz danych, które stały się coraz bardziej widoczne na początku lat 80. W 2014 roku otrzymał Nagrodę Turinga za te i inne projekty [ 30 ] oraz za pionierskie w nich techniki.

Nowy projekt, POSTGRES, miał na celu dodanie jak najmniejszej liczby funkcji potrzebnych do pełnej obsługi typów danych . [ 31 ] Funkcje te obejmowały możliwość definiowania typów i pełnego opisywania relacji coś powszechnie używanego, ale obsługiwanego wyłącznie przez użytkownika. W POSTGRES baza danych rozumiała relacje i mogła w naturalny sposób pobierać informacje z powiązanych tabel, korzystając z reguł . POSTGRES wykorzystywał wiele pomysłów Ingresa, ale nie jego kod. [ 32 ] 

Począwszy od 1986 roku publikowane artykuły opisywały podstawy systemu, a wersja prototypowa została zaprezentowana na konferencji ACM SIGMOD w 1988 roku . Zespół wydał wersję 1 dla niewielkiej liczby użytkowników w czerwcu 1989 roku, a następnie wersję 2 z przepisanym systemem reguł w czerwcu 1990 roku. Wersja 3, wydana w 1991 roku, ponownie przepisała system reguł i dodała obsługę wielu menedżerów pamięci masowej [ 33 ] oraz ulepszony silnik zapytań. Do 1993 roku liczba użytkowników zaczęła przytłaczać projekt prośbami o wsparcie i funkcje. Po wydaniu wersji 4.2 [ 34 ] 30 czerwca 1994 roku głównie porządki projekt zakończył się. Berkeley wydało POSTGRES na podstawie wariantu licencji MIT , który umożliwiał innym programistom korzystanie z kodu do dowolnego celu. W tamtym czasie POSTGRES korzystał z interpretera języka zapytań POSTQUEL inspirowanego Ingres , który mógł być interaktywnie używany z aplikacją konsolową o nazwie .  monitor

Postgres95 (1994–1996)

W 1994 roku studenci Uniwersytetu Berkeley, Andrew Yu i Jolly Chen, zastąpili interpreter języka zapytań POSTQUEL interpreterem języka zapytań SQL, tworząc Postgres95. Konsola monitorrównież została zastąpiona przez psql. Yu i Chen ogłosili pierwszą wersję (0.01) testerom wersji beta 5 maja 1995 roku. Wersja 1.0 Postgres95 została ogłoszona 5 września 1995 roku, z bardziej liberalną licencją, która umożliwiała swobodną modyfikację oprogramowania.

8 lipca 1996 roku Marc Fournier z Hub.org Networking Services udostępnił pierwszy serwer programistyczny niezależny od uniwersytetu na potrzeby prac nad rozwojem oprogramowania typu open source. [ 3 ] Przy udziale Bruce’a Momjiana i Vadima B. Mikheeva rozpoczęto prace nad stabilizacją kodu odziedziczonego po Berkeley.

PostgreSQL (1996–obecnie)

W 1996 roku projekt przemianowano na PostgreSQL, aby odzwierciedlić jego wsparcie dla języka SQL. Obecność online na stronie PostgreSQL.org rozpoczęła się 22 października 1996 roku. [ 35 ] Pierwsze wydanie PostgreSQL, oznaczone numerem 6.0, ukazało się 29 stycznia 1997 roku. Od tego czasu programiści i wolontariusze z całego świata utrzymują oprogramowanie jako The PostgreSQL Global Development Group. [ 2 ]

Projekt nadal udostępnia nowe wersje oprogramowania na podstawie licencji PostgreSQL , darmowego i otwartego oprogramowania . Kod pochodzi od dostawców oprogramowania własnościowego, firm wspierających oraz programistów open source.

Od 2025 roku PostgreSQL ma główną wersję 18, która wyróżnia się implementacją asynchronicznego wejścia/wyjścia (AIO), umożliwiając użytkownikom bazy danych wykonywanie równoczesnych zadań wejścia/wyjścia, takich jak odczyt z wyprzedzeniem i skanowanie sekwencyjne. [ 36 ]

Kontrola współbieżności wielowersyjnej (MVCC)

PostgreSQL zarządza współbieżnością poprzez kontrolę współbieżności wielowersyjnej (MVCC), która tworzy dla każdej transakcji „migawkę” bazy danych, umożliwiając wprowadzanie zmian bez wpływu na inne transakcje. W znacznym stopniu eliminuje to potrzebę stosowania blokad odczytu i zapewnia zgodność bazy danych z zasadami ACID . PostgreSQL oferuje cztery poziomy izolacji transakcji : Odczyt niezatwierdzony, Odczyt zatwierdzony, Odczyt powtarzalny i Serializowalny. Ponieważ PostgreSQL jest odporny na odczyty nieprecyzyjne, żądanie poziomu izolacji transakcji Odczyt niezatwierdzony powoduje zatwierdzenie odczytu. PostgreSQL obsługuje pełną serializowalność za pomocą metody izolacji migawek serializowalnych (SSI). [ 37 ] Implementacja MVCC w PostgreSQL jest podatna na problemy z wydajnością, które wymagają dostrajania przy dużym obciążeniu odczytem, ​​który aktualizuje istniejące wiersze. [ 38 ]

Przechowywanie i replikacja

Replikacja

PostgreSQL zawiera wbudowaną replikację binarną opartą na asynchronicznym przesyłaniu zmian ( logi WAL) do węzłów replikowanych, z możliwością uruchamiania zapytań tylko do odczytu na tych zreplikowanych węzłach. Pozwala to na efektywny podział ruchu odczytu między wiele węzłów. Wcześniejsze oprogramowanie replikacyjne, które umożliwiało podobne skalowanie odczytu, zazwyczaj polegało na dodawaniu wyzwalaczy replikacji do węzła głównego, co zwiększało obciążenie.

PostgreSQL zawiera wbudowaną replikację synchroniczną [ 39 ] , która zapewnia, że ​​dla każdej transakcji zapisu, węzeł główny czeka, aż co najmniej jeden węzeł repliki zapisze dane w swoim dzienniku transakcji . W przeciwieństwie do innych systemów baz danych, trwałość transakcji (niezależnie od tego, czy jest asynchroniczna, czy synchroniczna) można określić dla każdej bazy danych, użytkownika, sesji, a nawet transakcji. Może to być przydatne w przypadku obciążeń, które nie wymagają takich gwarancji i może nie być pożądane dla wszystkich danych, ponieważ spowalnia wydajność ze względu na wymóg potwierdzenia transakcji docierającej do synchronicznego stanu gotowości.

Serwery rezerwowe mogą być synchroniczne lub asynchroniczne. Synchroniczne serwery rezerwowe można określić w konfiguracji, która określa, które serwery są kandydatami do replikacji synchronicznej. Pierwszy serwer na liście, który aktywnie przesyła strumieniowo, będzie używany jako bieżący serwer synchroniczny. W przypadku awarii tego serwera, system przełącza się na kolejny w kolejce.

Replikacja PostgreSQL może wywołać konflikty między serwerem podstawowym i zapasowym, szczególnie gdy krotki zostaną przedwcześnie usunięte z serwera zapasowego, mimo że trwają zapytania uzyskujące do nich dostęp. [ 40 ] Aby temu zaradzić, PostgreSQL uwzględnia flagę sprzężenia zwrotnego [ 41 ] , dzięki której serwer zapasowy proaktywnie informuje serwer podstawowy o wszelkich trwających zapytaniach, aby złagodzić tego typu konflikty.

Synchroniczna replikacja wielo-masterowa nie jest zawarta w rdzeniu PostgreSQL. Postgres-XC, który jest oparty na PostgreSQL, zapewnia skalowalną synchroniczną replikację wielo-masterową. [ 42 ] Jest licencjonowany na tej samej licencji co PostgreSQL. Powiązany projekt nosi nazwę Postgres-XL . Postgres-R to kolejny fork . [ 43 ] Replikacja dwukierunkowa (BDR) to asynchroniczny system replikacji wielo-masterowej dla PostgreSQL. [ 44 ]

Narzędzia takie jak repmgr ułatwiają zarządzanie klastrami replikacji.

Dostępnych jest kilka pakietów replikacji asynchronicznej opartych na wyzwalaczach. Pozostają one przydatne nawet po wprowadzeniu rozszerzonych możliwości rdzenia, w sytuacjach, gdy replikacja binarna całego klastra bazy danych jest nieodpowiednia:

Indeksy

PostgreSQL zawiera wbudowaną obsługę standardowych indeksów B-tree i tablic skrótów oraz cztery metody dostępu do indeksów: uogólnione drzewa wyszukiwania ( GiST ), uogólnione indeksy odwrócone (GIN), GiST z partycjami przestrzennymi (SP-GiST) [ 46 ] oraz indeksy zakresów blokowych (BRIN). Dodatkowo możliwe jest tworzenie zdefiniowanych przez użytkownika metod indeksowania, choć jest to dość skomplikowany proces. Indeksy w PostgreSQL obsługują również następujące funkcje:

Schematy

Schematy PostgreSQL to przestrzenie nazw , które umożliwiają współistnienie obiektów tego samego rodzaju i o tej samej nazwie w jednej bazie danych. Nie należy ich mylić ze schematem bazy danych — abstrakcyjną, strukturalną specyfikacją organizacyjną, która definiuje, jak dane każdej tabeli są powiązane z danymi w innych tabelach. Wszystkie obiekty bazy danych PostgreSQL, z wyjątkiem kilku obiektów globalnych, takich jak role i przestrzenie tabel , istnieją w schemacie. Nie mogą być zagnieżdżane, a schematy nie mogą zawierać schematów. System uprawnień kontroluje dostęp do schematów i ich zawartości. Domyślnie nowo utworzone bazy danych mają tylko jeden schemat o nazwie „public” , ale można dodawać inne schematy, a schemat „public” nie jest obowiązkowy.

Ustawienie search_pathokreśla kolejność, w jakiej PostgreSQL sprawdza schematy pod kątem obiektów niekwalifikowanych (bez prefiksu schematu). Domyślnie jest to $user, public( $userodnosi się do aktualnie połączonego użytkownika bazy danych). To ustawienie domyślne można ustawić na poziomie bazy danych lub roli, ale ponieważ jest to parametr sesji, można je dowolnie zmieniać (nawet wielokrotnie) w trakcie sesji klienta, wpływając tylko na tę sesję.

Nieistniejące schematy lub inne schematy niedostępne dla zalogowanego użytkownika, które są wymienione w ścieżce wyszukiwania, są automatycznie pomijane podczas wyszukiwania obiektów.

Nowe obiekty są tworzone w tym prawidłowym schemacie (do którego można uzyskać dostęp), który jako pierwszy pojawi się w ścieżce wyszukiwania.

Typy danych

Obsługiwana jest szeroka gama rodzimych typów danych , w tym:

Ponadto użytkownicy mogą tworzyć własne typy danych, które zazwyczaj można w pełni indeksować za pomocą infrastruktury indeksowania PostgreSQL GiST, GIN, SP-GiST. Przykładami takich typów danych są typy danych systemu informacji geograficznej (GIS) z projektu PostGIS dla PostgreSQL. 

Istnieje również typ danych zwany domeną , który jest taki sam jak każdy inny typ danych, ale z opcjonalnymi ograniczeniami zdefiniowanymi przez twórcę tej domeny. Oznacza to, że wszelkie dane wprowadzone do kolumny z użyciem tej domeny muszą być zgodne z ograniczeniami zdefiniowanymi w ramach tej domeny.

Można użyć typu danych reprezentującego zakres danych, zwanego typem zakresu. Mogą to być zakresy dyskretne (np. wszystkie wartości całkowite od 1 do 10) lub ciągłe (np. dowolny czas między 10:00 a 11:00 ). Dostępne wbudowane typy zakresu obejmują zakresy liczb całkowitych, dużych liczb całkowitych, liczb dziesiętnych, znaczników czasu (z uwzględnieniem strefy czasowej i bez niej) oraz dat.

Można tworzyć niestandardowe typy zakresów, aby udostępnić nowe typy zakresów, takie jak zakresy adresów IP bazujące na typie inet lub zakresy zmiennoprzecinkowe bazujące na typie danych float. Typy zakresów obsługują inkluzywne i wyłączne granice zakresów, odpowiednio za pomocą znaków []i (np. reprezentuje wszystkie liczby całkowite od 4 włącznie do 9, ale nie włączając). Typy zakresów są również zgodne z istniejącymi operatorami używanymi do sprawdzania nakładania się, zawierania, prawego końca zakresu itp.()[4,9)

Obiekty zdefiniowane przez użytkownika

Można tworzyć nowe typy niemal wszystkich obiektów w bazie danych, w tym:

  • Odlewy
  • Konwersje
  • Typy danych
  • Domeny danych
  • Funkcje, w tym funkcje agregujące i funkcje okienkowe
  • Indeksy obejmujące indeksy niestandardowe dla typów niestandardowych
  • Operatorzy (istniejące mogą być przeciążone )
  • Języki proceduralne

Dziedzictwo

Tabele można skonfigurować tak, aby dziedziczyły swoje cechy z tabeli nadrzędnej . Dane w tabelach podrzędnych będą się wyświetlać w tabelach nadrzędnych, chyba że dane zostaną wybrane z tabeli nadrzędnej za pomocą słowa kluczowego ONLY, np . Dodanie kolumny w tabeli nadrzędnej spowoduje, że kolumna ta pojawi się w tabeli podrzędnej.SELECT*FROMONLYparent_table;

Dziedziczenie można wykorzystać do implementacji partycjonowania tabeli, używając wyzwalaczy lub reguł, które kierują operacje wstawiania danych do tabeli nadrzędnej do odpowiednich tabel podrzędnych.

Ta funkcja nie jest w pełni obsługiwana. W szczególności ograniczenia tabel nie są obecnie dziedziczone. Wszystkie ograniczenia check i ograniczenia not-null w tabeli nadrzędnej są automatycznie dziedziczone przez jej tabele potomne. Inne typy ograniczeń (ograniczenia unikatowe, klucza podstawowego i klucza obcego) nie są dziedziczone.

Dziedziczenie umożliwia mapowanie cech hierarchii generalizacji przedstawionych na diagramach związków encji (ERD) bezpośrednio w bazie danych PostgreSQL.

Inne funkcje przechowywania

Kontrola i łączność

Zagraniczne opakowania danych

PostgreSQL może łączyć się z innymi systemami w celu pobierania danych za pośrednictwem zewnętrznych opakowań danych (FDW). [ 50 ] Mogą one przybierać formę dowolnego źródła danych, takiego jak system plików, inny system zarządzania relacyjną bazą danych (RDBMS) lub usługa sieciowa. Oznacza to, że standardowe zapytania do bazy danych mogą wykorzystywać te źródła danych jak zwykłe tabele, a nawet łączyć wiele źródeł danych.

Interfejsy

PostgreSQL obsługuje binarny protokół komunikacyjny , który umożliwia aplikacjom łączenie się z serwerem bazy danych. Protokół jest wersjonowany (obecnie 3.0, od PostgreSQL 7.4) i posiada szczegółową specyfikację. [ 51 ]

Oficjalną implementacją kliencką tego protokołu komunikacyjnego jest interfejs API języka C , libpq. [ 52 ] Ponadto oficjalnie obsługiwane narzędzie ECPG umożliwia osadzanie poleceń SQL w kodzie języka C. [ 53 ] Oba są częścią standardowej dystrybucji PostgreSQL. [ 54 ]

Biblioteki innych firm umożliwiające łączenie się z PostgreSQL są dostępne dla wielu języków programowania , w tym C++ , [ 55 ] Java , [ 56 ] Julia , [ 57 ] [ 58 ] [ 59 ] Python , [ 60 ] Node.js , [ 61 ] Go , [ 62 ] i Rust . [ 63 ]

Języki proceduralne

Języki proceduralne pozwalają programistom rozszerzać bazę danych o niestandardowe podprogramy (funkcje), często nazywane procedurami składowanymi . Funkcje te mogą być używane do tworzenia wyzwalaczy bazy danych (funkcji wywoływanych po modyfikacji określonych danych) oraz niestandardowych typów danych i funkcji agregujących . [ 64 ] Języki proceduralne można również wywoływać bez definiowania funkcji, używając polecenia DO na poziomie SQL. [ 65 ]

Języki dzielą się na dwie grupy: Procedury napisane w bezpiecznych językach są testowane w środowisku testowym (sandbox) i mogą być bezpiecznie tworzone i używane przez dowolnego użytkownika. Procedury napisane w językach niebezpiecznych mogą być tworzone tylko przez superużytkowników , ponieważ pozwalają one na ominięcie ograniczeń bezpieczeństwa bazy danych, a także umożliwiają dostęp do źródeł zewnętrznych. Niektóre języki, takie jak Perl, oferują zarówno wersje bezpieczne, jak i niebezpieczne.

PostgreSQL ma wbudowaną obsługę trzech języków proceduralnych:

  • Zwykły SQL (bezpieczny). Prostsze funkcje SQL można rozszerzyć w linii do zapytania wywołującego (SQL), co zmniejsza obciążenie wywołania funkcji i pozwala optymalizatorowi zapytań „zajrzeć do środka” funkcji.
  • Procedural Language/PostgreSQL ( PL/pgSQL ) (bezpieczny), który przypomina język proceduralny Oracle Procedural Language for SQL ( PL/SQL ) i SQL/Persistent Stored Modules ( SQL/PSM ).
  • C (niebezpieczny), który umożliwia załadowanie jednej lub więcej niestandardowych bibliotek współdzielonych do bazy danych. Funkcje napisane w C oferują najlepszą wydajność, ale błędy w kodzie mogą powodować awarie i potencjalnie uszkodzić bazę danych. Większość funkcji wbudowanych jest napisana w C.

Ponadto PostgreSQL pozwala na ładowanie języków proceduralnych do bazy danych za pomocą rozszerzeń. Do PostgreSQL dołączone są trzy rozszerzenia językowe obsługujące Perl , Tcl i Python . W przypadku Pythona używany jest aktualny Python 3 , a wycofany Python 2 nie jest już obsługiwany od PostgreSQL 15. Oba były obsługiwane wcześniej, domyślnie był to Python 2 , podczas gdy stare i nowe wersje nie mogły być używane w tej samej sesji. [ 66 ] Projekty zewnętrzne zapewniają wsparcie dla wielu innych języków, [ 67 ] w tym PL/ Java , JavaScript (PL/V8), PL/ Julia , [ 59 ] PL/ R , [ 68 ] PL/ Ruby i inne.

Wyzwalacze

Wyzwalacze to zdarzenia wyzwalane przez działanie instrukcji języka SQL Data Manipulation Language (DML). Na przykład instrukcja INSERT może aktywować wyzwalacz, który sprawdza, czy wartości instrukcji są prawidłowe. Większość wyzwalaczy jest aktywowana wyłącznie przez instrukcje INSERT lub UPDATE .

Wyzwalacze są w pełni obsługiwane i można je dołączać do tabel. Wyzwalacze mogą być kolumnowe i warunkowe, co oznacza, że ​​wyzwalacze UPDATE mogą dotyczyć określonych kolumn tabeli, a wyzwalacze mogą być uruchamiane po spełnieniu zestawu warunków określonych w klauzuli WHERE wyzwalacza. Wyzwalacze można dołączać do widoków za pomocą warunku INSTEAD OF. Wiele wyzwalaczy jest uruchamianych w kolejności alfabetycznej. Oprócz wywoływania funkcji napisanych w natywnym języku PL/pgSQL, wyzwalacze mogą również wywoływać funkcje napisane w innych językach, takich jak PL/Python lub PL/Perl.

Powiadomienia asynchroniczne

PostgreSQL zapewnia asynchroniczny system przesyłania komunikatów, do którego dostęp uzyskuje się za pomocą poleceń NOTIFY, LISTEN i UNLISTEN. Sesja może wydać polecenie NOTIFY wraz z określonym przez użytkownika kanałem i opcjonalnym ładunkiem, aby oznaczyć wystąpienie określonego zdarzenia. Inne sesje mogą wykrywać te zdarzenia, wydając polecenie LISTEN, które może nasłuchiwać określonego kanału. Ta funkcjonalność może być wykorzystywana do wielu celów, takich jak informowanie innych sesji o aktualizacji tabeli lub wykrywanie przez poszczególne aplikacje wykonania określonej akcji. Taki system eliminuje potrzebę ciągłego sprawdzania przez aplikacje, czy coś się zmieniło, i zmniejsza niepotrzebne obciążenie. Powiadomienia są w pełni transakcyjne, co oznacza, że ​​komunikaty nie są wysyłane, dopóki transakcja, z której zostały wysłane, nie zostanie zatwierdzona. Eliminuje to problem wysyłania komunikatów dotyczących wykonywanej akcji, która następnie jest wycofywana.

Wiele łączników dla PostgreSQL zapewnia obsługę tego systemu powiadomień (w tym libpq, JDBC, Npgsql, psycopg i node.js), dzięki czemu mogą go wykorzystywać aplikacje zewnętrzne.

PostgreSQL może działać jako efektywny, trwały serwer „pub/sub” lub serwer zadań, łącząc LISTEN z FOR UPDATE SKIP LOCKED. [ 69 ] [ 70 ] [ 71 ]

Zasady

Reguły umożliwiają przepisanie „drzewa zapytań” przychodzącego zapytania; są one automatycznie wywoływanym językiem makr dla SQL. „Reguły przepisywania zapytań” są dołączone do tabeli/klasy i „przepisują” przychodzące zapytanie DML (select, insert, update i/lub delete) do jednego lub większej liczby zapytań, które albo zastępują oryginalne polecenie DML, albo wykonują się dodatkowo. Przepisywanie zapytań następuje po analizie składniowej polecenia DML i przed planowaniem zapytania.

Funkcjonalność zapewniana przez reguły została później, niemal pod każdym względem, powielona wraz z wprowadzeniem nowszych typów wyzwalaczy. Korzystanie z wyzwalaczy jest zazwyczaj preferowane w stosunku do reguł, ponieważ łatwiej jest wnioskować o zachowaniu i interakcjach wyzwalaczy niż w przypadku stosowania równoważnych reguł.

Inne funkcje zapytań

  • Transakcje
  • Wyszukiwanie pełnotekstowe
  • Widoki
  • Połączenia wewnętrzne, zewnętrzne (pełne, lewe i prawe) i krzyżowe
  • Podselekcje
    • Skorelowane podzapytania [ 75 ]
  • Wyrażenia regularne [ 76 ]
  • Wspólne wyrażenia tabelowe i zapisywalne wspólne wyrażenia tabelowe
  • Szyfrowane połączenia za pośrednictwem protokołu Transport Layer Security (TLS); obecne wersje nie korzystają z podatnego protokołu SSL, nawet przy tej opcji konfiguracji [ 77 ]
  • Domeny
  • Punkty zapisu
  • Dwufazowe zatwierdzanie
  • Technika TOAST (Oversized-Attribute Storage Technique) służy do transparentnego przechowywania dużych atrybutów tabel (takich jak duże załączniki MIME lub wiadomości XML) w oddzielnym obszarze z automatyczną kompresją.
  • Wbudowany SQL jest implementowany za pomocą preprocesora. Kod SQL jest najpierw zapisywany w kodzie C. Następnie kod jest uruchamiany przez preprocesor ECPG, który zastępuje SQL wywołaniami biblioteki kodu. Następnie kod można skompilować za pomocą kompilatora C. Wbudowywanie działa również w C++ , ale nie rozpoznaje wszystkich konstrukcji C++.

Model współbieżności

Serwer PostgreSQL jest oparty na procesach (nie wątkach) i wykorzystuje jeden proces systemu operacyjnego na sesję bazy danych. System operacyjny automatycznie rozdziela wiele sesji na wszystkie dostępne procesory. Wiele typów zapytań można również paralelizować w wielu procesach roboczych w tle, wykorzystując w tym celu wiele procesorów lub rdzeni. [ 78 ] Aplikacje klienckie mogą korzystać z wątków i tworzyć wiele połączeń z bazą danych z każdego wątku. [ 79 ]

Bezpieczeństwo

PostgreSQL zarządza swoim bezpieczeństwem wewnętrznym w odniesieniu do każdej roli . Rola jest zazwyczaj rozumiana jako użytkownik (rola, która może się zalogować) lub grupa (rola, do której należą inne role). Uprawnienia mogą być przyznawane lub cofane dla dowolnego obiektu, aż do poziomu kolumny, i mogą zezwalać lub uniemożliwiać widoczność/tworzenie/modyfikację/usuwanie obiektów na poziomie bazy danych, schematu , tabeli i wiersza.

Funkcja SECURITY LABEL bazy danych PostgreSQL (rozszerzenie standardów SQL) umożliwia dodatkowe zabezpieczenia za pomocą dołączonego ładowalnego modułu obsługującego obowiązkową kontrolę dostępu (MAC) opartą na etykietach i zasadach bezpieczeństwa Security-Enhanced Linux (SELinux). [ 80 ] [ 81 ]

PostgreSQL natywnie obsługuje szeroką gamę zewnętrznych mechanizmów uwierzytelniania, w tym:

Metody GSSAPI, SSPI, Kerberos, peer, ident i certificate mogą również korzystać z określonego pliku „map”, który zawiera listę użytkowników dopasowanych przez dany system uwierzytelniania i którym wolno łączyć się jako konkretnym użytkownikom bazy danych.

Metody te są określone w pliku konfiguracyjnym uwierzytelniania opartego na hoście klastra ( pg_hba.conf), który określa dozwolone połączenia. Pozwala to kontrolować, który użytkownik może połączyć się z daną bazą danych, skąd może się połączyć (adres IP, zakres adresów IP, gniazdo domeny), który system uwierzytelniania będzie egzekwowany oraz czy połączenie musi korzystać z protokołu Transport Layer Security (TLS).

Zgodność ze standardami

PostgreSQL deklaruje wysoką, lecz niepełną zgodność z najnowszym standardem SQL („od wersji 17 wydanej we wrześniu 2024 r. PostgreSQL jest zgodny z co najmniej 170 ze 177 obowiązkowych funkcji zgodności z SQL:2023 Core”, a żadna inna baza danych nie jest z nim w pełni zgodna [ 83 ] ). Wyjątkiem jest obsługa identyfikatorów nieujętych w cudzysłów, takich jak nazwy tabel lub kolumn. W PostgreSQL są one wewnętrznie zapisywane jako małe litery [ 84 ] , podczas gdy standard stanowi, że identyfikatory nieujęte w cudzysłów powinny być zapisywane jako wielkie litery. Zatem Foopowinno to być równoważne ze stwierdzeniem FOOniezgodnym fooze standardem. Inne niedociągnięcia dotyczą braku tabel temporalnych umożliwiających automatyczne rejestrowanie wersji wierszy podczas transakcji z możliwością przeglądania w czasie (predykat FOR SYSTEM TIME), mimo że dostępne są stosunkowo zgodne z SQL rozszerzenia innych firm. [ 17 ]

Testy porównawcze i wydajność

Przeprowadzono wiele nieformalnych badań wydajności PostgreSQL. [ 85 ] Ulepszenia wydajności mające na celu zwiększenie skalowalności rozpoczęły się intensywnie od wersji 8.1. Proste testy porównawcze między wersją 8.0 a wersją 8.4 wykazały, że ta druga była ponad dziesięć razy szybsza w przypadku obciążeń wyłącznie odczytu i co najmniej 7,5 razy szybsza w przypadku obciążeń zarówno odczytu, jak i zapisu. [ 86 ]

Pierwszy test porównawczy zgodny ze standardami branżowymi i zatwierdzony przez innych ekspertów przeprowadzono w czerwcu 2007 r. przy użyciu serwera aplikacji Sun Java System Application Server (wersja zastrzeżona GlassFish ) 9.0 Platform Edition, serwera Sun Fire opartego na UltraSPARC T1 i bazy danych PostgreSQL 8.2. [ 87 ] Ten wynik 778,14 w teście SPECjAppServer2004 JOPS@Standard wypada korzystnie w porównaniu z wynikiem 874 w teście JOPS@Standard z bazą danych Oracle 10 w systemie HP-UX opartym na procesorze Itanium . [ 85 ]

W sierpniu 2007 r. firma Sun przedstawiła lepszy wynik testu porównawczego SPECjAppServer2004 JOPS@Standard, wynoszący 813,73. Po obniżeniu ceny testowanego systemu stosunek ceny do wydajności poprawił się z 84,98 USD/JOPS do 70,57 USD/JOPS. [ 88 ]

Domyślna konfiguracja PostgreSQL wykorzystuje jedynie niewielką ilość pamięci dedykowanej do celów krytycznych pod względem wydajności, takich jak buforowanie bloków bazy danych i sortowanie. To ograniczenie wynika głównie z faktu, że starsze systemy operacyjne wymagały zmian w jądrze, aby umożliwić przydzielanie dużych bloków pamięci współdzielonej . [ 89 ] PostgreSQL.org udostępnia porady dotyczące podstawowych zalecanych praktyk wydajnościowych w formie wiki . [ 90 ]

W kwietniu 2012 r. Robert Haas z EnterpriseDB zademonstrował liniową skalowalność procesora PostgreSQL 9.2, korzystając z serwera z 64 rdzeniami. [ 91 ]

Matloob Khushi przeprowadził testy porównawcze między PostgreSQL 9.0 i MySQL 5.6.15, aby sprawdzić ich zdolność do przetwarzania danych genomicznych. W swojej analizie wydajności odkrył, że PostgreSQL wyodrębnia nakładające się regiony genomiczne osiem razy szybciej niż MySQL, używając dwóch zestawów danych po 80 000 danych, z których każdy tworzy losowe regiony ludzkiego DNA. Wstawianie i przesyłanie danych w PostgreSQL również było lepsze, chociaż ogólna zdolność przeszukiwania obu baz danych była niemal równoważna. [ 92 ]

Platformy

PostgreSQL jest dostępny dla następujących systemów operacyjnych: Linux (wszystkie najnowsze dystrybucje), 64-bitowe instalatory ARM i x86-64 dostępne i przetestowane dla wersji macOS 10.14 i nowszych, [ 93 ] Windows (z instalatorami dostępnymi i przetestowanymi dla 64-bitowych systemów Windows Server 2022 i 2016 [ 94 ] ), FreeBSD , OpenBSD , [ 95 ] NetBSD , DragonFlyBSD oraz te bez oficjalnych (choć prawdopodobnie nieoficjalnych) plików wykonywalnych, Solaris , [ 96 ] i illumos .

Można się spodziewać, że PostgreSQL będzie działać na dowolnej z następujących architektur zestawu instrukcji (i systemów operacyjnych): 64-bitowy x86-64 i 32-bitowy x86 w systemie Windows i innych systemach operacyjnych; są one obsługiwane poza systemem Windows: 64-bitowy ARM [ 97 ] i starszy 32-bitowy ARM , w tym starszy, taki jak ARMv6 w Raspberry Pi [ 98 ] ), RISC-V , z/Architecture , S/390 , PowerPC (w tym 64-bitowy Power ISA ), SPARC (również 64-bitowy), MIPS i PA-RISC . Wiadomo również, że działa na niektórych innych platformach (choć nie było to testowane od lat, tj. w przypadku najnowszych wersji). [ 99 ]

Administracja bazą danych

Otwarte kody źródłowe interfejsów użytkownika i narzędzi do administrowania bazą PostgreSQL obejmują:

psql
Podstawowym interfejsem użytkownika PostgreSQL jest psqlprogram wiersza poleceń , który umożliwia bezpośrednie wprowadzanie zapytań SQL lub wykonywanie ich z pliku. Ponadto psql oferuje szereg metapoleceń i funkcji powłoki, które ułatwiają pisanie skryptów i automatyzację szerokiej gamy zadań, na przykład uzupełnianie nazw obiektów za pomocą klawisza tabulacji i składni SQL.
pgAdmin
Pakiet pgAdmin to darmowe i otwarte narzędzie administracyjne z graficznym interfejsem użytkownika (GUI) dla PostgreSQL, które jest obsługiwane na wielu platformach komputerowych. [ 101 ] Program jest dostępny w ponad dwunastu językach. Pierwszy prototyp, nazwany pgManager, został napisany dla PostgreSQL 6.3.2 w 1998 roku, a następnie przepisany i wydany jako pgAdmin na licencji GNU General Public License (GPL) w późniejszych miesiącach. Druga inkarnacja (nazwana pgAdmin II) była całkowitym przepisaniem, wydanym po raz pierwszy 16 stycznia 2002 roku. Trzecia wersja, pgAdmin III, została pierwotnie wydana na licencji Artistic License , a następnie wydana na tej samej licencji co PostgreSQL. W przeciwieństwie do poprzednich wersji napisanych w Visual Basic , pgAdmin III jest napisany w C++, przy użyciu frameworka wxWidgets [ 102 ] , co pozwala na jego uruchamianie w większości popularnych systemów operacyjnych. Narzędzie do zapytań zawiera język skryptowy o nazwie pgScript do obsługi zadań administracyjnych i programistycznych. W grudniu 2014 roku Dave Page, założyciel i główny programista projektu pgAdmin, [ 103 ] ogłosił, że wraz z przejściem na modele oparte na sieci Web rozpoczęto prace nad pgAdmin 4, którego celem jest ułatwienie wdrożeń w chmurze. [ 104 ] W 2016 roku wydano pgAdmin 4. Zaplecze pgAdmin 4 zostało napisane w Pythonie z wykorzystaniem Flaska i frameworka Qt . [ 105 ]
phpPgAdmin
phpPgAdmin to internetowe narzędzie administracyjne dla PostgreSQL napisane w języku PHP i bazujące na popularnym interfejsie phpMyAdmin , pierwotnie stworzonym do administrowania MySQL . [ 106 ]
PostgreSQL Studio
PostgreSQL Studio umożliwia użytkownikom wykonywanie podstawowych zadań programistycznych związanych z bazami danych PostgreSQL z poziomu konsoli internetowej. PostgreSQL Studio umożliwia użytkownikom pracę z bazami danych w chmurze bez konieczności otwierania zapór sieciowych. [ 107 ]
Zespół PostgreSQL
Interfejs internetowy oparty na technologii AJAX/JavaScript dla PostgreSQL. Umożliwia przeglądanie, zarządzanie i tworzenie danych oraz obiektów bazy danych za pośrednictwem przeglądarki internetowej. Interfejs oferuje między innymi edytor SQL z zakładkami i funkcją autouzupełniania, widżety do edycji wierszy, nawigację między wierszami i tabelami za pomocą klikalnych kluczy obcych, zarządzanie ulubionymi skryptami oraz inne funkcje. Obsługuje protokół SSH zarówno dla interfejsu internetowego, jak i połączeń z bazą danych . Dostępne są instalatory dla systemów Windows, Macintosh i Linux, a także proste archiwum wieloplatformowe uruchamiane ze skryptu. [ 108 ]
LibreOffice, OpenOffice.org
LibreOffice i OpenOffice.org Base mogą być używane jako front-end dla PostgreSQL. [ 109 ] [ 110 ]
pgBadger
Analizator dzienników PostgreSQL pgBadger generuje szczegółowe raporty z pliku dziennika PostgreSQL. [ 111 ]
pgDevOps
pgDevOps to zestaw narzędzi internetowych umożliwiających instalację i zarządzanie wieloma wersjami PostgreSQL, rozszerzeniami i komponentami społecznościowymi, tworzenie zapytań SQL, monitorowanie działających baz danych i wyszukiwanie problemów z wydajnością. [ 112 ]
Administrator
Adminer to proste, internetowe narzędzie administracyjne dla PostgreSQL i innych baz danych, napisane w języku PHP.
pgBackRest
pgBackRest to narzędzie do tworzenia kopii zapasowych i przywracania danych dla bazy danych PostgreSQL, które zapewnia obsługę pełnych, różnicowych i przyrostowych kopii zapasowych. [ 113 ]
pgaudit
pgaudit to rozszerzenie PostgreSQL zapewniające szczegółowe rejestrowanie sesji i/lub audytu obiektów za pomocą standardowej funkcji rejestrowania udostępnianej przez PostgreSQL. [ 114 ]
KRAJKA
WAL-E to narzędzie do tworzenia kopii zapasowych i przywracania danych dla bazy danych PostgreSQL, zapewniające obsługę kopii fizycznych ( opartych na WAL ), napisane w języku Python. [ 115 ]
DBeaver
DBeaver to darmowe i otwarte narzędzie do administrowania bazą PostgreSQL z graficznym interfejsem użytkownika (GUI). Zawiera wizualne diagramy encji (Visual Entity Diagrams) i funkcje Intellisense . Dostępna jest również komercyjna licencja PRO.
Postgresus
Postgresus to narzędzie do tworzenia kopii zapasowych z otwartym kodem źródłowym i interfejsem graficznym umożliwiającym zaplanowane tworzenie kopii zapasowych z obsługą źródeł zewnętrznych (S3, NAS, FTP, Google Drive, Google Cloud itp.) oraz powiadomień do usług zewnętrznych (Slack, Discord, Telegram, SMTP itp.). [ 116 ]

Wiele firm oferuje autorskie narzędzia dla PostgreSQL. Często składają się one z uniwersalnego jądra, dostosowanego do różnych, konkretnych produktów bazodanowych. Narzędzia te w większości dzielą funkcje administracyjne z narzędziami open source, ale oferują ulepszenia w zakresie modelowania danych , importu, eksportu i raportowania.

Znani użytkownicy

Do znanych organizacji i produktów wykorzystujących PostgreSQL jako podstawową bazę danych należą:

Wdrożenia usług

Niektórzy znani dostawcy oferują PostgreSQL jako oprogramowanie jako usługę :

  • Heroku , platforma jako dostawca usług , wspiera PostgreSQL od samego początku, czyli od 2007 roku. [ 143 ] Oferuje funkcje o wartości dodanej, takie jak pełne przywracanie bazy danych (możliwość przywrócenia bazy danych z dowolnego określonego momentu) [ 144 ] , które opiera się na WAL-E, oprogramowaniu typu open source opracowanym przez Heroku. [ 145 ]
  • W styczniu 2012 roku EnterpriseDB wydało chmurową wersję PostgreSQL i własnego, zastrzeżonego serwera Postgres Plus Advanced Server z automatycznym provisionowaniem funkcji failover, replikacji, równoważenia obciążenia i skalowania. Działa on w oparciu o Amazon Web Services . [ 146 ] Od 2015 roku serwer Postgres Advanced Server jest oferowany jako ApsaraDB for PPAS, relacyjnej bazy danych jako usługi w chmurze Alibaba Cloud. [ 147 ]
  • Firma VMware oferuje platformę vFabric Postgres (nazywaną również vPostgres [ 148 ] ) dla chmur prywatnych na platformie VMware vSphere od maja 2012 r. [ 149 ] Firma ogłosiła koniec dostępności (EOA) produktu w 2014 r. [ 150 ]
  • W listopadzie 2013 r. firma Amazon Web Services ogłosiła dodanie PostgreSQL do swojej oferty usług relacyjnej bazy danych . [ 151 ] [ 152 ]
  • W listopadzie 2016 r. firma Amazon Web Services ogłosiła dodanie kompatybilności z PostgreSQL do swojej oferty zarządzanej bazy danych Amazon Aurora w chmurze . [ 153 ]
  • W maju 2017 r. firma Microsoft Azure ogłosiła wprowadzenie baz danych Azure dla PostgreSQL. [ 154 ]
  • W maju 2019 roku Alibaba Cloud ogłosiła PolarDB dla PostgreSQL. [ 155 ]
  • Platforma Jelastic Multicloud Platform as a Service zapewnia obsługę PostgreSQL opartą na kontenerach od 2011 roku. Oferuje również zautomatyzowaną asynchroniczną replikację bazy danych PostgreSQL typu master-slave. [ 156 ]
  • W czerwcu 2019 r. IBM Cloud ogłosiło IBM Cloud Hyper Protect DBaaS dla PostgreSQL. [ 157 ]
  • We wrześniu 2020 r. Crunchy Data ogłosiło Crunchy Bridge. [ 158 ]
  • Od października 2021 r. Render zapewnia obsługę zarządzanych baz danych PostgreSQL. [ 159 ] .
  • W czerwcu 2022 roku firma Neon.tech ogłosiła Neon Serverless Postgres. [ 160 ]
  • W grudniu 2022 r. platforma Google Cloud Platform ogłosiła ogólną dostępność AlloyDB jako w pełni zarządzanej usługi w chmurze PostgreSQL. [ 161 ]
  • W październiku 2023 roku firma Nile ogłosiła platformę Nile Postgres. [ 162 ]
  • W kwietniu 2024 r. platforma Google Cloud Platform ogłosiła ogólną dostępność AlloyDB Omni, wersji AlloyDB do pobrania, przeznaczonej do działania w dowolnej infrastrukturze, w tym lokalnej, w innych chmurach i środowiskach brzegowych. [ 163 ]
  • We wrześniu 2025 r. serwis PlanetScale.com ogłosił ogólną dostępność PlanetScale dla systemu Postgres, zarządzanej wersji systemu Postgres o wysokiej dostępności. [ 164 ]

Historia wydań

Legenda:
Nieobsługiwane
Utrzymany
Najnowsza wersja
Wersja podglądowa
Wersja przyszła

Ekosystem i instrumenty pochodne

Dzięki liberalnej licencji open source i rozszerzalnej architekturze, wokół PostgreSQL rozwinął się szeroki ekosystem. Obejmuje on liczne firmy oferujące dedykowane wsparcie i hosting, a także kilka forków i baz danych pochodnych, które dostosowują PostgreSQL do konkretnych obciążeń. Do najważniejszych pochodnych należą:

  • Baza danych Greenplum : masowo równoległy magazyn danych (MPP) oparty na starszej wersji PostgreSQL, przeznaczony do analiz na dużą skalę. [ 188 ]
  • TimescaleDB : Baza danych szeregów czasowych dostarczana jako rozszerzenie PostgreSQL, zoptymalizowana pod kątem obsługi szybkiego pobierania i złożonych zapytań dotyczących danych szeregów czasowych. [ 189 ]
  • Amazon Aurora : relacyjna baza danych w chmurze oferowana przez Amazon Web Services, która zapewnia edycję zgodną z PostgreSQL. [ 190 ]
  • Neon: implementacja PostgreSQL typu open source bezserwerowa, która oddziela pamięć masową od obliczeniowej, aby zapewnić nowoczesne funkcje programistyczne, takie jak rozgałęzianie bazy danych. [ 191 ]
  • AlloyDB: w pełni zarządzana baza danych Google Cloud zgodna z PostgreSQL, która oddziela obliczenia od pamięci masowej, zaprojektowana do obciążeń hybrydowych i zintegrowanych możliwości sztucznej inteligencji. [ 192 ]
  • PlanetScale Postgres: w pełni zarządzane, wysoce dostępne instancje Postgres obsługujące rozgałęzianie bazy danych i funkcję Database Traffic Control™. [ 164 ] [ 193 ]

Zobacz także

Odniesienia

  1. „PostgreSQL” . Pobrano 21 września 2019 r . PostgreSQL: najbardziej zaawansowana na świecie relacyjna baza danych typu open source
  2. 1 2 „Profile współpracowników” . PostgreSQL Global Development Group . Pobrano 14 marca 2017 r .
  3. 1 2 „Wszystkiego najlepszego, PostgreSQL!” . PostgreSQL Global Development Group. 8 lipca 2008 r.
  4. „Wydano PostgreSQL 18.4, 17.10, 16.14, 15.18 i 14.23!” . 14 maja 2026 r.
  5. „Wydano PostgreSQL 19 Beta 2!” . 16 lipca 2026 r.
  6. 1 2 „Licencja” . PostgreSQL Global Development Group . Pobrano 20 września 2010 r .
  7. „Licencja PostgreSQL zatwierdzona przez OSI” . Crynwr. 18 lutego 2010 r. Zarchiwizowano z oryginału 8 sierpnia 2016 r . Pobrano 18 lutego 2010 r .
  8. 1 2 „Licencja OSI PostgreSQL” . Inicjatywa Open Source. 20 lutego 2010 r . Pobrano 20 lutego 2010 r .
  9. „Debian – Szczegóły pakietu postgresql w sid” . packages.debian.org . Pobrano 25 stycznia 2021 r .
  10. „Licencjonowanie:Główne” . Projekt Fedora .
  11. "PostgreSQL" . fsf.org .
  12. „FAQ: Co to jest PostgreSQL? Jak się to wymawia? Co to jest Postgres?” . Wiki PostgreSQL . Społeczność PostgreSQL . Pobrano 2 października 2021 r .
  13. „Próbka audio, 5,6 kB MP3” .
  14. „Co to jest PostgreSQL?” . Dokumentacja PostgreSQL 9.3.0 . Globalna Grupa Rozwojowa PostgreSQL . Pobrano 20 września 2013 r .
  15. "Parquet and Postgres in the Data Lake | Crunchy Data Blog". Crunchy Data. May 3, 2022. Retrieved September 19, 2024.
  16. "PostGIS". postgis.net. December 18, 2023. Retrieved December 18, 2023. PostGIS extends the capabilities of the PostgreSQL relational database by adding support for storing, indexing, and querying geospatial data.
  17. 12"Temporal Extensions". PostgreSQL Wiki. December 18, 2023. Retrieved December 18, 2023. Postgres can be extended to become a Temporal Database. Such databases track the history of database content over time, automatically retaining said history and allowing it to be altered and queried.
  18. "Orafce - Oracle's compatibility functions and packages". GitHub.com. December 17, 2023. Retrieved December 18, 2023. Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS.
  19. "pg_dbms_job". GitHub.com. November 8, 2023. Retrieved December 18, 2023. PostgreSQL extension to schedules and manages jobs in a job queue similar to Oracle DBMS_JOB package.
  20. "WiltonDB". WiltonDB. 2023. Retrieved December 18, 2023. WiltonDB [is] packaged for Windows. It strives to be usable as a drop-in replacement to Microsoft SQL Server.
  21. "Babelfish for PostgreSQL". babelfishpg.org. Retrieved December 18, 2023. Babelfish for PostgreSQL ... provides the capability for PostgreSQL to understand queries from applications written for Microsoft SQL Server.
  22. "PostgreSQL Clients". wiki.postgresql.org. October 18, 2023. Retrieved December 18, 2023. This page is a partial list of interactive SQL clients (GUI or otherwise) ... that you can type SQL in to and get results from them.
  23. "Design Tools". wiki.postgresql.org. October 23, 2023. Retrieved December 18, 2023. Tools to help with designing a schema, via creating Entity-Relationship diagrams and similar. Most are GUI.
  24. "Community Guide to PostgreSQL GUI Tools". wiki.postgresql.org. December 1, 2023. Retrieved December 18, 2023. This page is a list of miscellaneous utilities that work with Postgres (ex: data loaders, comparators etc.).
  25. "Replication, Clustering, and Connection Pooling". wiki.postgresql.org. July 13, 2020. Retrieved December 18, 2023. There are many approaches available to scale PostgreSQL beyond running on a single server. ... There is no one-size fits all...
  26. This is recognized by the liberal permission to use the PostgreSQL name, as approved (for fair use, when not confusing people about a legal relationship with the actual PostgreSQL project) when used in support of PostgreSQL, subject to the PostgreSQL Trademark Policy: "Trademark Policy". PostgreSQL.org. December 8, 2020. Retrieved December 17, 2023. We will try to work with you to permit uses [of the PostgreSQL name] that support the PostgreSQL project and our Community.
  27. 12Stonebraker, M.; Rowe, L. A. (May 1986). The design of POSTGRES(PDF). Proc. 1986 ACM SIGMOD Conference on Management of Data. Washington, DC. Retrieved December 17, 2011.
  28. "PostgreSQL: History". PostgreSQL Global Development Group. Archived from the original on March 26, 2017. Retrieved August 27, 2016.
  29. "Project name – statement from the core team". archives.postgresql.org. November 16, 2007. Retrieved November 16, 2007.
  30. "Michael Stonebraker – A.M. Turing Award Winner". amturing.acm.org. Retrieved March 20, 2018. Techniques pioneered in Postgres were widely implemented [..] Stonebraker is the only Turing award winner to have engaged in serial entrepreneurship on anything like this scale, giving him a distinctive perspective on the academic world.
  31. Stonebraker, M.; Rowe, L. A. The POSTGRES data model(PDF). Proceedings of the 13th International Conference on Very Large Data Bases. Brighton, England: Morgan Kaufmann Publishers. pp. 83–96. ISBN 0-934613-46-X.
  32. Pavel Stehule (June 9, 2012). "Historie projektu PostgreSQL" (in Czech).
  33. A Brief History of PostgreSQL "Version 3 appeared in 1991 and added support for multiple storage managers, an improved query executor, and a rewritten rule system.". postgresql.org. The PostgreSQL Global Development Group, Retrieved on March 18, 2020.
  34. "University POSTGRES, Version 4.2". July 26, 1999.
  35. Page, Dave (April 7, 2015). "Re: 20th anniversary of PostgreSQL ?". pgsql-advocacy (Mailing list). Retrieved April 9, 2015.
  36. Group, PostgreSQL Global Development (September 25, 2025). "PostgreSQL 18 Released!". PostgreSQL News. Retrieved December 6, 2025.{{cite web}}: |last= has generic name (help)
  37. Dan R. K. Ports; Kevin Grittner (2012). "Serializable Snapshot Isolation in PostgreSQL"(PDF). Proceedings of the VLDB Endowment. 5 (12): 1850–1861. arXiv:1208.4179. Bibcode:2012arXiv1208.4179P. doi:10.14778/2367502.2367523. S2CID 16006111.
  38. Bohan Zhang; Andy Pavlo (2023). "The part of PostgreSQL we hate the most". OtterTune (blog).
  39. PostgreSQL 9.1 with synchronous replication (news), H Online
  40. "26.4. Hot Standby". PostgreSQL Documentation. May 8, 2025. Retrieved July 22, 2025.
  41. Hood, Stu (June 30, 2025). "We Made Postgres Writes Faster, but it Broke Replication". ParadeDB. Retrieved July 22, 2025.
  42. "Postgres-XC project page" (website). Postgres-XC. Archived from the original on July 1, 2012.
  43. "Postgres-R: a database replication system for PostgreSQL". Postgres Global Development Group. Archived from the original on March 29, 2010. Retrieved August 27, 2016.
  44. "Postgres-BDR". 2ndQuadrant Ltd. Retrieved August 27, 2016.
  45. Marit Fischer (10 listopada 2007). „Backcountry.com w końcu odwdzięcza się społeczności open source” (komunikat prasowy). Backcountry.com. Zarchiwizowano z oryginału 26 grudnia 2010.
  46. Bartunov, O; Sigaev, T (maj 2011). SP-GiST – nowy framework indeksowania dla PostgreSQL (PDF) . PGCon 2011. Ottawa, Kanada . Pobrano 31 stycznia 2016 r .
  47. Bartunov, O; Sigaev, T (maj 2010). Wyszukiwanie K najbliższych sąsiadów w programie PostgreSQL (PDF) . PGCon 2010. Ottawa, Kanada . Pobrano 31 stycznia 2016 r .
  48. „PostgreSQL, baza danych NoSQL | Linux Journal” . www.linuxjournal.com .
  49. Geoghegan, Peter (23 marca 2014). „Co myślę o jsonb” .
  50. Obe, Regina; Hsu, Leo S. (2012). „10: Replikacja i dane zewnętrzne”. PostgreSQL: Up and Running (1. wyd.). Sebastopol, Kalifornia: O'Reilly Media, Inc. s. 129. ISBN   978-1-4493-2633-3Pobrano 17 października 2016 r . Foreign Data Wrappers (FDW) [...] to mechanizmy przeszukiwania zewnętrznych źródeł danych. Wersja PostgreSQL 9.1 wprowadziła tę funkcję zgodną ze standardami SQL/MED .
  51. „Protokół frontend/backend” . postgresql.org . 9 listopada 2023 r . Pobrano 17 grudnia 2023 r . W tym dokumencie opisano wersję 3.0 protokołu zaimplementowaną w PostgreSQL 7.4 i nowszych wersjach.
  52. „libpq” . postgresql.org . 9 listopada 2023 r . Źródło: 17 grudnia 2023 r .
  53. „Embedded SQL in C” . postgresql.org . 9 listopada 2023 r . Źródło: 17 grudnia 2023 r .
  54. „Interfejsy klienta” . postgresql.org . 9 listopada 2023 r . . Pobrano 17 grudnia 2023 r .
  55. „libpqxx” . Pobrano 4 kwietnia 2020 r .
  56. „Sterownik JDBC PostgreSQL” . Pobrano 4 kwietnia 2020 r .
  57. [ ANN ] PostgresORM.jl: Mapowanie obiektów relacyjnych dla PostgreSQL” . JuliaLang . 30 czerwca 2021 r . Pobrano 26 sierpnia 2021 r .
  58. „GitHub — invenia/LibPQ.jl: Opakowanie Julii dla libpq” . GitHuba . Źródło 26 sierpnia 2021 r .
  59. 1 2 „Rozszerzenie PL/Julia (minimalne)” . JuliaLang . 8 marca 2020 r . Pobrano 26 sierpnia 2021 r .
  60. „PostgreSQL + Python | Psycopg” . initd.org . Zarchiwizowano z oryginału 1 listopada 2012 r . Pobrano 21 stycznia 2015 r .
  61. „node-postgres” . Pobrano 4 kwietnia 2020 r .
  62. „Sterowniki baz danych SQL” . Go wiki . golang.org . Pobrano 22 czerwca 2015 r .
  63. „Rust-Postgres” . Pobrano 4 kwietnia 2020 r .
  64. „Programowanie serwerowe” . Dokumentacja PostgreSQL . Pobrano 19 maja 2019 r .
  65. „DO” . Dokumentacja PostgreSQL . Pobrano 19 maja 2019 r .
  66. „PL/Python – Język proceduralny Pythona” . Dokumentacja PostgreSQL . Pobrano 23 października 2022 r .
  67. „Języki proceduralne” . postgresql.org. 31 marca 2016 r . Pobrano 7 kwietnia 2016 r .
  68. „postgres-plr/plr” . 17 czerwca 2021 r. za pośrednictwem GitHub.
  69. Chartier, Colin (8 listopada 2019). „Haczyk w projektowaniu systemu: Postgres to świetny serwer publikacji/subskrypcji i zadań” . Blog LayerCI . Pobrano 24 listopada 2019 .
  70. „Wydanie 9.5” . postgresql.org . 11 lutego 2021 r.
  71. Ringer, Craig (13 kwietnia 2016). „Do czego służy opcja SKIP LOCKED w PostgreSQL 9.5?” . 2. kwadrant . Pobrano 24 listopada 2019 r .
  72. „Dodaj relacje widoku zmaterializowanego” . 4 marca 2013 r . Pobrano 4 marca 2013 r .
  73. „Obsługa widoków z możliwością automatycznej aktualizacji” . 8 grudnia 2012 r . Pobrano 8 grudnia 2012 r .
  74. „Dodaj składnię polecenia CREATE RECURSIVE VIEW” . 1 lutego 2013 r . Pobrano 28 lutego 2013 r .
  75. Momjian, Bruce (2001). „Podzapytania” . PostgreSQL: Wprowadzenie i koncepcje . Addison-Wesley. ISBN 0-201-70331-9. Zarchiwizowano z oryginału 9 sierpnia 2010 r . Źródło: 25 września 2010 r .
  76. Bernier, Robert (2 lutego 2006). „Używanie wyrażeń regularnych w PostgreSQL” . O'Reilly Media . Pobrano 25 września 2010 .
  77. „Kilka krótkich notatek o PostgreSQL i POODLE” . hagander.net .
  78. Berkus, Josh (2 czerwca 2016). „PostgreSQL 9.6 Beta i PGCon 2016” . LWN.net .
  79. „FAQ – wiki PostgreSQL” . wiki.postgresql.org . Pobrano 13 kwietnia 2017 r .
  80. „Dokumentacja SEPostgreSQL – wiki PostgreSQL” . wiki.postgresql.org .
  81. „NB SQL 9.3 - SELinux Wiki” . selinuxproject.org .
  82. „Dokumentacja PostgreSQL 10: Dodatek E. Informacje o wydaniu” . 12 sierpnia 2021 r.
  83. „PostgreSQL: Informacje” . www.postgresql.org . Pobrano 14 października 2024 r .
  84. „Wrażliwość na wielkość liter w identyfikatorach” . PostgreSQL Global Development Group. 11 listopada 2021 r.
  85. 1 2 Berkus, Josh (6 lipca 2007). „PostgreSQL publikuje pierwszy prawdziwy benchmark” . Zarchiwizowano z oryginału 12 lipca 2007. Pobrano 10 lipca 2007 .
  86. Vilmos, György (29 września 2009). „Historia PostgreSQL” . Źródło 28 sierpnia 2010 .
  87. „Wynik SPECjAppServer2004” . SPEC . 6 lipca 2007 r . Pobrano 10 lipca 2007 r.
  88. „SPECjAppServer2004 Result” . SPEC . 4 lipca 2007 r . Źródło: 1 września 2007 r .
  89. „Zarządzanie zasobami jądra” . Podręcznik PostgreSQL . PostgreSQL.org . Pobrano 12 listopada 2011 r .
  90. Greg Smith (15 października 2010). PostgreSQL 9.0 High Performance . Packt Publishing . ISBN 978-1-84951-030-1.
  91. Robert Haas (3 kwietnia 2012). „Czy mówiłem o 32 rdzeniach? A może o 64?” . Pobrano 8 kwietnia 2012 .
  92. Khushi, Matloob (czerwiec 2015). „Ocena porównawcza wydajności bazy danych dla danych genomicznych”. J Cell Biochem . 116 (6): 877– 83. arXiv : 2008.06835 . doi : 10.1002/jcb.25049 . PMID 25560631 . S2CID 27458866 .  
  93. „Pakiety Mac OS X” . Globalna Grupa Rozwojowa PostgreSQL . Pobrano 27 sierpnia 2016 r .
  94. „PostgreSQL: instalatory systemu Windows” . www.postgresql.org . Pobrano 26 sierpnia 2021 r .
  95. „postgresql-client-10.5p1 – PostgreSQL RDBMS (klient)” . Porty OpenBSD . 4 października 2018 r . Pobrano 10 października 2018 r .
  96. „Instalowanie i konfigurowanie PostgreSQL – przewodnik po usłudze Oracle Solaris Cluster Data Service dla PostgreSQL” . docs.oracle.com . Pobrano 4 lutego 2023 r .
  97. „AArch64 planuje BoF na DebConf” . debian.org .
  98. Souza, Rubens (17 czerwca 2015 r.). „Krok 5 (aktualizacja): Instalacja PostgreSQL na moim Raspberry Pi 1 i 2” . Raspberry PG . Zarchiwizowano z oryginału 20 września 2016 r . Pobrano 27 sierpnia 2016 r .
  99. „Obsługiwane platformy” . PostgreSQL Global Development Group . Pobrano 6 kwietnia 2012 r .
  100. „Dostępne leksery — Pygments” .
  101. „pgAdmin: narzędzia do administrowania i zarządzania PostgreSQL” . strona internetowa . Pobrano 12 listopada 2011 r .
  102. „Debian – Szczegóły pakietu pgadmin3 w wydaniu jessie” . Pobrano 10 marca 2017 r .
  103. „Zespół programistów pgAdmin” . pgadmin.org . Pobrano 22 czerwca 2015 r .
  104. Dave, Page (7 grudnia 2014). „Historia pgAdmina” . Blog Dave'a o Postgresie . pgsnake.blogspot.co.uk . Pobrano 7 grudnia 2014 .
  105. „pgAdmin 4 README” . GitHub . Pobrano 15 sierpnia 2018 r .
  106. Projekt phpPgAdmin (25 kwietnia 2008). „O phpPgAdmin” . Pobrano 25 kwietnia 2008 .
  107. PostgreSQL Studio (9 października 2013 r.). „O PostgreSQL Studio” . Zarchiwizowano z oryginału 7 października 2013 r . Pobrano 9 października 2013 r .
  108. „Strona internetowa TeamPostgreSQL” . 3 października 2013 r . Pobrano 3 października 2013 r .
  109. oooforum.org (10 stycznia 2010 r.). „Back Ends for OpenOffice” . Zarchiwizowano z oryginału 28 września 2011 r . Pobrano 5 stycznia 2011 r .
  110. libreoffice.org (14 października 2012 r.). „Funkcje podstawowe” . Zarchiwizowano z oryginału 7 stycznia 2012 r . Pobrano 14 października 2012 r .
  111. Greg Smith; Robert Treat i Christopher Browne. „Dostrajanie serwera PostgreSQL” . Wiki . PostgreSQL.org . Pobrano 12 listopada 2011 r .
  112. „pgDevOps” . BigSQL.org . Zarchiwizowano z oryginału 1 kwietnia 2017 r . Pobrano 4 maja 2017 r .
  113. „pgbackrest/pgbackrest” . GitHub . 21 listopada 2021 r.
  114. „pgaudit/pgaudit” . GitHub . 21 listopada 2021 r.
  115. „wal-e/wal-e” . 24 czerwca 2021 r. za pośrednictwem GitHuba.
  116. Dugin, Rostislav (November 28, 2025), RostislavDugin/postgresus , pobrano 28 listopada 2025
  117. Claire Giordano (31 października 2019 r.). „Tworzenie analityki w skali petabajtów poprzez skalowanie Postgres na platformie Azure z rozszerzeniem Citus” . Blog . Społeczność techniczna Microsoft.
  118. Emmanuel Cecchet (21 maja 2009). Budowanie magazynów PetaByte z niezmodyfikowaną bazą danych PostgreSQL (PDF) . PGCon 2009. Pobrano 12 listopada 2011 r .
  119. „MySpace.com skaluje analitykę dla wszystkich swoich znajomych” (PDF) . studium przypadku. Aster Data. 15 czerwca 2010 r. Zarchiwizowano (PDF) z oryginału 14 listopada 2010 r . Pobrano 12 listopada 2011 r .
  120. „Awaria w zeszły weekend” . Blog . Geni. 1 sierpnia 2011 r.
  121. „Baza danych” . Wiki . OpenStreetMap.
  122. Domena .ORG partnerów PostgreSQL , Australia: Computer World, 24 sierpnia 2023 r.
  123. 1 2 3 W. Jason Gilmore; RH Treat (2006). Początki PHP i PostgreSQL 8: Od nowicjusza do profesjonalisty . Wydanie Apress. ISBN 978-1-43020-136-6. Pobrano 30 sierpnia 2017 r .
  124. Sony Online wybiera bazę danych typu open source zamiast Oracle , Computer World
  125. „Studium przypadku grupy Web Commerce dotyczące PostgreSQL” (PDF) (wyd. 1.2 ). PostgreSQL. 
  126. „Przegląd architektury” . Wiki oprogramowania Reddit . Reddit. 27 marca 2014 r . Pobrano 25 listopada 2014 r .
  127. Pihlak, Martin. „PostgreSQL @Skype” (PDF) . wiki.postgresql.org . Źródło 16 stycznia 2019 r .
  128. „Ile płacisz za swoją bazę danych?” . Blog Sun Microsystems. 2007. Zarchiwizowano z oryginału 7 marca 2009 r . Pobrano 14 grudnia 2007 r .
  129. „Baza danych – MusicBrainz” . Wiki MusicBrainz . Pobrano 5 lutego 2011 r .
  130. Duncavage, Daniel P (13 lipca 2010). „NASA potrzebuje pomocy z Postgres-Nagios” .
  131. Roy, Gavin M (2010). „PostgreSQL at myYearbook.com” (dyskusja). USA East: Konferencja PostgreSQL. Zarchiwizowano z oryginału 27 lipca 2011 r.
  132. „Utrzymanie Instagrama w ruchu z ponad milionem nowych użytkowników w dwanaście godzin” . Instagram-engineering.tumblr.com. 17 maja 2011 r . Pobrano 7 lipca 2012 r .
  133. „Postgres w Disqus” . Pobrano 24 maja 2013 r .
  134. Kelly, Matthew (27 marca 2015). W sercu giganta: Postgres w TripAdvisor . PGConf US 2015. Zarchiwizowano z oryginału 23 lipca 2015. Pobrano 23 lipca 2015 .( Prezentacja wideo )
  135. „Udana migracja Yandex.Mail z Oracle do Postgres [ pdf ] . Hacker News: news.ycombinator.com . Pobrano 28 września 2016 r .
  136. 1 2 S. Riggs; G. Ciolli; H. Krosinga; G. Bartoliniego (2015). Książka kucharska dla administracji PostgreSQL 9 – wydanie drugie . Paczka ISBN 978-1-84951-906-9. Pobrano 5 września 2017 r .
  137. „Met Office zamienia Oracle na PostgreSQL” . computerweekly.com . 17 czerwca 2014 r . Źródło: 5 września 2017 r .
  138. „Oprogramowanie Open Source” . FlightAware . Pobrano 22 listopada 2017 r .
  139. „Ansible w Grofers (część 2) — Zarządzanie PostgreSQL” . Lambda – blog inżynierski Grofers . 28 lutego 2017 r . Pobrano 5 września 2018 r .
  140. McMahon, Philip; Chiorean, Maria-Livia; Coleman, Susie; Askoolum, Akash (30 listopada 2018). „Blog cyfrowy: Żegnaj Mongo, witaj Postgres” . The Guardian . ISSN 0261-3077 . 
  141. „Podwyższone błędy w API i ChatGPT” . 21 listopada 2023 r . Pobrano 2 grudnia 2023 r .
  142. „Telekonferencja telefoniczna w sprawie wyników finansowych Microsoftu za trzeci kwartał roku fiskalnego 2025” . 5 maja 2025 r.
  143. Alex Williams (1 kwietnia 2013 r.). „Heroku wymusza na klientach aktualizację w celu naprawy krytycznej luki w zabezpieczeniach PostgreSQL” . TechCrunch .
  144. Barb Darrow (11 listopada 2013). „Heroku odświeża Postgresa, wprowadzając przywracanie bazy danych i proaktywne alerty” . GigaOM. Zarchiwizowano z oryginału 12 listopada 2013.
  145. Craig Kerstiens (26 września 2013). „WAL-E i ciągła ochrona z Heroku Postgres” . Blog Heroku.
  146. „EnterpriseDB oferuje bazę danych Postgres Plus w chmurze” . Techweekeurope.co.uk. 27 stycznia 2012 r. Zarchiwizowano z oryginału 30 stycznia 2012 r . Pobrano 7 lipca 2012 r .
  147. „Alibaba Cloud rozszerza współpracę techniczną z EnterpriseDB” . Milestone Partners . 26 września 2018 r . Pobrano 9 czerwca 2020 r .
  148. O'Doherty, Paul; Asselin, Stephane (2014). „3: Architektura VMware Workspace”. VMware Horizon Suite: Tworzenie usług dla użytkowników końcowych . Technologia VMware Press. Upper Saddle River, NJ: VMware Press. s. 65. ISBN  978-0-13-347910-2. Pobrano 19 września 2016 r . Oprócz wersji open source PostgreSQL, VMware oferuje vFabric Postgres, czyli vPostgres. vPostgres to wirtualne urządzenie PostgreSQL dostrojone do środowisk wirtualnych.
  149. Al Sargent (15 maja 2012). „Przedstawiamy VMware vFabric Suite 5.1: automatyczne wdrażanie, nowe komponenty i obsługa oprogramowania open source” . Blogi VMware.
  150. „VMware vFabric Suite EOA” (PDF) . 1 września 2014 r . Pobrano 17 grudnia 2023 r .
  151. Jeff (14 listopada 2013). „Amazon RDS dla PostgreSQL – już dostępne” . Blog Amazon Web Services.
  152. Alex Williams (14 listopada 2013). „PostgreSQL dostępny teraz w usłudze relacyjnej bazy danych Amazon” . TechCrunch .
  153. „Aktualizacja Amazon Aurora – zgodność z PostgreSQL” . Blog AWS . 30 listopada 2016 r . Pobrano 1 grudnia 2016 r .
  154. „Ogłaszamy Azure Database for PostgreSQL” . Blog Azure . 10 maja 2017 r . Pobrano 19 czerwca 2019 r .
  155. „Aliyun PolarDB wydał istotne aktualizacje, aby umożliwić migrację baz danych, takich jak Oracle, do chmury za pomocą jednego kliknięcia” . Dokument roboczy . 6 lipca 2019 r.
  156. „Asynchroniczna replikacja baz danych PostgreSQL typu master-slave jednym kliknięciem” . DZone . Pobrano 26 maja 2017 r .
  157. „Dokumentacja IBM Cloud Hyper Protect DBaaS for PostgreSQL” . cloud.ibm.com . Pobrano 24 czerwca 2020 r .
  158. „Crunchy Data kontynuuje obsługę PostgreSQL dzięki wydaniu Crunchy Bridge” . 18 września 2020 r.
  159. „Co nowego w PostgreSQL 14?” render.com . Pobrano 26 maja 2026 r .
  160. „WYBIERZ 'Hello, World' Serwerless Postgres stworzony dla chmury” . 15 czerwca 2022 r.
  161. „AlloyDB for PostgreSQL – szybka, wysoce dostępna baza danych w chmurze – blog Google Cloud” . 6 marca 2025 r.
  162. „Przedstawiamy Nile, bezserwerową platformę Postgres dla nowoczesnego SaaS” . 25 października 2023 r.
  163. „Ogłaszamy ogólną dostępność AlloyDB Omni” . Blog Google Cloud . 10 kwietnia 2024 r.
  164. 1 2 „PlanetScale dla Postgres jest teraz powszechnie dostępny — PlanetScale” . planetscale.com . 22 września 2025 r . Pobrano 28 kwietnia 2026 r .
  165. „Polityka wersjonowania” . PostgreSQL Global Development Group . Pobrano 4 października 2018 r .
  166. Vaas, Lisa (2 grudnia 2002). „Bazy danych skierowane do przedsiębiorstw” . eWeek . Pobrano 29 października 2016 r .
  167. Krill, Paul (20 listopada 2003). „PostgreSQL wzmacnia bazę danych open source” . InfoWorld . Pobrano 21 października 2016 r .
  168. Krill, Paul (19 stycznia 2005). „Baza danych PostgreSQL o otwartym kodzie źródłowym szczyci się wsparciem systemu Windows” . InfoWorld . Pobrano 2 listopada 2016 r .
  169. Weiss, Todd R. (5 grudnia 2006). „Wersja 8.2 bazy danych PostgreSQL typu open source udostępniona” . Computerworld . Pobrano 17 października 2016 r .
  170. Gilbertson, Scott (5 lutego 2008). „PostgreSQL 8.3: Baza danych Open Source obiecuje błyskawiczną prędkość” . Wired . Pobrano 17 października 2016 r .
  171. Huber, Mathias (2 lipca 2009). „PostgreSQL 8.4 okazuje się bogaty w funkcje” . Linux Magazine . Pobrano 17 października 2016 r .
  172. Brockmeier, Joe (30 września 2010). „Pięć funkcji korporacyjnych w PostgreSQL 9” . Linux.com . Linux Foundation . Pobrano 6 lutego 2017 r .
  173. Timothy Prickett Morgan (12 września 2011). „PostgreSQL przechodzi na wersję 9.1, z myślą o przedsiębiorstwach” . The Register . Pobrano 6 lutego 2017 r .
  174. „PostgreSQL: wydano PostgreSQL 9.2” . www.postgresql.org . 10 września 2012 r.
  175. „Ponowne wprowadzenie Hstore dla PostgreSQL” . InfoQ .
  176. Richard, Chirgwin (7 stycznia 2016). „Powiedz: ups, UPSERT w głowie: PostgreSQL w wersji 9.5 już dostępny” . The Register . Pobrano 17 października 2016 .
  177. „PostgreSQL: Dokumentacja: 10: Rozdział 31. Replikacja logiczna” . www.postgresql.org . 12 sierpnia 2021 r.  
  178. „Wydano PostgreSQL 11” . 18 października 2018 r . Pobrano 18 października 2018 r .
  179. „PostgreSQLRelease Notes” . Pobrano 18 października 2018 r .
  180. „PostgreSQL: PostgreSQL 12 wydany!” . Aktualności Postgresql . 3 października 2019 r.
  181. „Informacje o wydaniu PostgreSQL 13” . www.postgresql.org . 12 sierpnia 2021 r.
  182. „PostgreSQL 13 wydany!” . www.postgresql.org . 24 września 2020 r.
  183. „Informacje o wydaniu PostgreSQL 14” . www.postgresql.org . 11 listopada 2021 r.
  184. „PostgreSQL 14 wydany!” . www.postgresql.org . 30 września 2021 r.
  185. „PostgreSQL 16 wydany!” . 14 września 2023 r.
  186. „PostgreSQL 17 wydany!” . 26 września 2024 r.
  187. „PostgreSQL 18 wydany!” . 25 września 2025 r.
  188. „Dokumentacja bazy danych Greenplum” . docs.greenplum.org . Pobrano 10 sierpnia 2025 r .
  189. „O skali czasu” . Skala czasu . Pobrano 10 sierpnia 2025 r . TimescaleDB jest zaimplementowany jako rozszerzenie bazy danych PostgreSQL, co oznacza, że ​​działa w ramach instancji PostgreSQL i można z nim wchodzić w interakcję w taki sam sposób, jak z bazą danych PostgreSQL.
  190. „Amazon Aurora ze zgodnością z PostgreSQL” . Amazon Web Services, Inc. Pobrano 10 sierpnia 2025 r .
  191. „Czym jest Neon?” . Neon . Pobrano 10 sierpnia 2025 r . Neon to w pełni zarządzana, bezserwerowa baza danych PostgreSQL. Oddziela ona pamięć masową od obliczeniowej i zastępuje warstwę pamięci masowej PostgreSQL niestandardowym, wielodostępnym silnikiem pamięci masowej zaprojektowanym dla chmury.
  192. „Przegląd usługi AlloyDB” . Google Cloud . Pobrano 10 sierpnia 2025 r . AlloyDB for PostgreSQL to w pełni zarządzana usługa bazy danych zgodna z PostgreSQL, zaprojektowana z myślą o najbardziej wymagających obciążeniach, w tym hybrydowym przetwarzaniu transakcyjnym i analitycznym... AlloyDB wykorzystuje architekturę rozproszoną. Warstwy obliczeniowa i pamięci masowej są oddzielne i oferują indywidualne skalowanie.
  193. „Wprowadzenie do kontroli ruchu w bazie danych — PlanetScale” . planetscale.com . 23 marca 2026 r . Źródło: 28 kwietnia 2026 r .

Dalsza lektura

  • Obe, Regina; Hsu, Leo (8 lipca 2012). PostgreSQL: Up and Running . O'Reilly . ISBN 978-1-4493-2633-3.
  • Krosing, Hannu; Roybal, Kirk (15 czerwca 2013). Programowanie serwera PostgreSQL (  wydanie drugie). Packt Publishing . ISBN 978-1-84951-698-3.
  • Riggs, Simon; Krosing, Hannu (27 października 2010). PostgreSQL 9 Administration Cookbook (  wydanie drugie). Packt Publishing . ISBN 978-1-84951-028-8.
  • Smith, Greg (15 października 2010). PostgreSQL 9 High Performance . Packt Publishing . ISBN 978-1-84951-030-1.
  • Gilmore, W. Jason; Treat, Robert (27 lutego 2006). Początki PHP i PostgreSQL 8: Od nowicjusza do profesjonalisty . Apress . s.  896. ISBN 1-59059-547-5. Zarchiwizowano z oryginału 8 lipca 2009 r . Źródło 28 kwietnia 2009 r .
  • Douglas, Korry (5 sierpnia 2005). PostgreSQL (  wydanie drugie). Sams . s.  1032. ISBN 0-672-32756-2.
  • Matthew, Neil; Stones, Richard (6 kwietnia 2005). Początki baz danych z PostgreSQL (  wydanie drugie). Apress . s.  664. ISBN 1-59059-478-9. Zarchiwizowano z oryginału 9 kwietnia 2009 r . Źródło 28 kwietnia 2009 r .
  • Worsley, John C.; Drake, Joshua D. (styczeń 2002). Practical PostgreSQL . O'Reilly Media . s. 636 . ISBN  1-56592-846-6.
  • Oficjalna strona internetowa iwikiEdytuj to w Wikidata
  • Katalog oprogramowania powiązanych projektów i produktów
  • Oficjalne główne repozytorium kodu źródłowego (do przeglądania) i FAQ dla programistów
  • Oficjalny przewodnik dla autorów dokumentacji PostgreSQL
  • Wszystkie oficjalne repozytoria kodu źródłowego PostgreSQL
  • PostgreSQL na GitHubie