포스트그레SQL

Postgre
포스트그레
개발자포스트그레SQL 글로벌 개발 그룹[2]
최초출시1996년 7월 8일;
27년
전 (1996-07-08)[3]
안정적인 방출
2023년 11월 9일[4], 41일 전(2023년 11월 9일)
저장소
작성자C
유형RDBMS
면허증.포스트그레SQL 라이센스(자유오픈 소스, 허용)[5][6][7]
웹사이트www.postgresql.org Edit this on Wikidata
포스트그레
출판인포스트그레SQL 글로벌 개발 그룹
캘리포니아 대학교 학예연구소
데비안 FSG 호환[8][9]
FSF 승인된[10]
OSI 승인된[7]
GPL 호환네.
카피레프트아니요.
코드에서 다른 라이센스로 연결네.
웹사이트postgresql.org/about/licence

PostgreSQL(/ ˈpo ʊs ɡr ˌs ː ˈɛkju ɛl/, POHST-gres kyooel)은 확장성과 SQL 준수를 강조하는 자유 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 포스트그레SQL은 원자성, 일관성, 격리, 내구성(ACD) 속성, 자동으로 업데이트 가능한 보기, 구체화된 보기, 트리거, 외부 키저장 프로시저가 있는 트랜잭션을 특징으로 합니다.[13] 리눅스, FreeBSD, OpenBSD, macOS, Windows 등 모든 주요 운영 체제에서 지원되며 단일 머신부터 데이터 웨어하우스 또는 동시 사용자가 많은 웹 서비스까지 다양한 워크로드를 처리합니다.

포스트그레SQL Global Development Group은 데이터베이스 엔진 및 밀접하게 관련된 구성 요소 개발에만 집중합니다. 이 핵심은 엄밀히 말하면 포스트그레로 구성된 것입니다.SQL 자체도 있지만 전통적으로 독점 소프트웨어 공급업체가 제공할 수 있는 다른 중요한 기능 세트를 제공하는 광범위한 개발자 커뮤니티와 에코시스템이 있습니다. 여기에는 공간 또는[14] 시간[15] 데이터베이스를 지원하는 데 필요한 기능이나 다른 데이터베이스 제품을[16][17][18][19] 에뮬레이션하는 기능과 같은 특수 목적 데이터베이스 엔진 기능이 포함됩니다. 또한 그래픽 사용자 인터페이스[20][21][22] 또는 로드 밸런싱고가용성 도구[23] 세트와 같은 다양한 사용자 및 기계 인터페이스 기능을 타사에서 사용할 수 있습니다. 대규모 제3자 PostgrePostgre의 일부가 아니라도 사용자, 회사, 제품 및 프로젝트의 SQL 지원 네트워크SQL Development Group은 Postgre에 필수적입니다.SQL 데이터베이스 엔진 채택 및 Postgre 구성SQL 에코시스템 write-large.

포스트그레SQL은 원래 이름이 POSTGRES로 명명되었는데, 이는 캘리포니아 대학교 버클리에서 개발된 Ingres 데이터베이스의 후속 모델로서 SQL의 기원을 언급한 것입니다.[25][26] 1996년, 이 프로젝트는 Postgre로 이름이 변경되었습니다.SQL에 대한 지원을 반영하기 위한 SQL. 개발팀은 2007년 검토를 거쳐 Postgre라는 이름을 유지하기로 결정했습니다.SQL과 Postgres라는 별칭.[27]

역사

포스트그레SQL은 캘리포니아 대학교 버클리의 Ingres 프로젝트에서 발전했습니다. 1982년, 잉그레스 팀의 리더인 마이클 스톤브레이커는 독점적인 잉그레스 버전을 만들기 위해 버클리를 떠났습니다.[25] 그는 1985년 버클리로 돌아와 1980년대 초에 점점 더 명확해진 현대 데이터베이스 시스템의 문제를 해결하기 위해 포스트 잉그레스 프로젝트를 시작했습니다. 그는 이런 프로젝트들과 다른 프로젝트들,[28] 그리고 그 프로젝트들에서 개척된 기술들로 2014년 튜링 상을 수상했습니다.

새로운 프로젝트인 POSTGRES는 데이터 유형을 완벽하게 지원하는 데 필요한 최소한의 기능을 추가하는 것을 목표로 했습니다.[29] 이러한 기능에는 유형을 정의하고 관계를 완전히 설명하는 기능이 포함되어 있습니다. 이 기능은 널리 사용되지만 사용자에 의해 완전히 유지됩니다. POSTGRES에서 데이터베이스는 관계를 이해하고 규칙을 사용하여 관련 테이블의 정보를 자연스럽게 검색할 수 있습니다. POSTGRES는 잉그레스의 많은 아이디어를 사용했지만 코드는 사용하지 않았습니다.[30]

1986년부터 발표된 논문에서 시스템의 기초에 대해 기술하였으며, 1988년 ACM SIGMOD 컨퍼런스에서 시제품 버전을 선보였습니다. 이 팀은 1989년 6월에 소수의 사용자들에게 버전 1을 출시했고, 1990년 6월에 다시 작성된 규칙 시스템을 갖춘 버전 2를 출시했습니다. 1991년에 출시된 버전 3은 다시 규칙 시스템을 다시 작성하고 여러 스토리지 관리자를[31] 위한 지원과 향상된 쿼리 엔진을 추가했습니다. 1993년까지 사용자 수가 지원 및 기능 요청으로 프로젝트를 압도하기 시작했습니다. 1994년 6월 30일 버전 4.2가[32] 출시된 후, 프로젝트는 종료되었습니다. 버클리는 MIT 라이선스 변형으로 POSTGRES를 출시하여 다른 개발자들이 어떤 용도로도 코드를 사용할 수 있게 했습니다. 당시 POSTGRES는 Ingres의 영향을 받은 POSTQUEL 쿼리 언어 인터프리터를 사용했는데, 이 인터프리터는 이름이 붙은 콘솔 애플리케이션과 상호작용적으로 사용될 수 있었습니다.

1994년 버클리 대학원생인 Andrew Yu와 Jolly Chen은 Postgres95를 SQL 쿼리 언어용으로 대체했습니다. 콘솔도 로 대체되었습니다. Yu와 Chen은 1995년 5월 5일 베타 테스트를 위한 첫 번째 버전(0.01)을 발표했습니다. Postgres95 버전 1.0은 1995년 9월 5일에 발표되었으며, 소프트웨어를 자유롭게 수정할 수 있는 보다 자유로운 라이선스를 제공합니다.

1996년 7월 8일, Hub.org 네트워킹 서비스의 마크 포니에(Marc Fournier)는 오픈 소스 개발 노력을 위한 최초의 대학 외 개발 서버를 제공했습니다. Bruce Momjian과 Vadim B의 참여로. 미히예프, 버클리에서 물려받은 암호를 안정화하기 위한 작업이 시작되었습니다.

1996년, 이 프로젝트는 Postgre로 이름이 변경되었습니다.SQL에 대한 지원을 반영하기 위한 SQL. Postgre 웹사이트의 온라인 존재감SQL.org 은 1996년 10월 22일에 시작했습니다. 제1차 포스트그레SQL 릴리스는 1997년 1월 29일 버전 6.0을 형성했습니다. 그 이후로 전 세계의 개발자들과 자원봉사자들은 Postgre로 소프트웨어를 유지해 왔습니다.SQL 글로벌 개발 그룹.[2]

이 프로젝트는 자유 오픈 소스 소프트웨어인 Postgre로 출시를 계속하고 있습니다.SQL 라이센스. 코드는 독점 공급업체, 지원 회사 및 오픈 소스 프로그래머의 기여에서 비롯됩니다.

멀티버전 동시 제어(MVCC)

포스트그레SQL은 MVCC(Multiversion Concurrency Control)를 통해 동시성을 관리하며, 를 통해 각 트랜잭션에 데이터베이스의 "스냅샷"을 제공하여 다른 트랜잭션에 영향을 주지 않고 변경할 수 있습니다. 이를 통해 읽기 잠금이 필요하지 않고 데이터베이스가 ACID 원칙을 유지할 수 있습니다. 포스트그레SQL은 Read Committed, Repeatable Read 및 Serializable의 세 가지 트랜잭션 격리 수준을 제공합니다. 왜냐하면 포스트그레SQL은 더티 리드에 대한 면역성이 있으므로, Read Uncommitted 트랜잭션 격리 수준을 요청하면 대신 리드 커밋이 제공됩니다. 포스트그레SQL은 SSI(Serializable Snapshot Isolation) 방법을 통해 전체 직렬화를 지원합니다.[34] PostreSQL MVCC 구현 시 버전 복사, 테이블 블로우, 보조 인덱스 유지 보수 및 진공 관리로 인해 성능 문제가 발생합니다.[35]

스토리지 및 복제

복제

포스트그레SQL에는 이러한 복제된 노드에 대해 읽기 전용 쿼리를 실행할 수 있는 기능과 함께 변경사항(WAL(write-ahead log)을 비동기식으로 복제 노드로 전송하는 것을 기반으로 하는 내장 바이너리 복제가 포함되어 있습니다. 이를 통해 여러 노드 간에 읽기 트래픽을 효율적으로 분할할 수 있습니다. 유사한 읽기 확장을 허용한 이전 복제 소프트웨어는 일반적으로 마스터에 복제 트리거를 추가하여 부하를 증가시킵니다.

포스트그레SQL에는 각 쓰기 트랜잭션에 대해 적어도 하나의 복제본 노드가 해당 트랜잭션 로그에 데이터를 기록할 때까지 마스터가 대기하도록 하는 동기식[36] 복제가 내장되어 있습니다. 다른 데이터베이스 시스템과 달리 트랜잭션의 내구성(비동기식이든 동기식이든)은 데이터베이스별, 사용자별, 세션별 또는 트랜잭션별로 지정할 수 있습니다. 이는 이러한 보장이 필요 없는 워크로드에 유용할 수 있으며, 동기식 대기 상태에 도달하는 트랜잭션의 확인이 필요하기 때문에 성능이 저하되기 때문에 모든 데이터에 대해 원하지 않을 수 있습니다.

대기 서버는 동기식 또는 비동기식일 수 있습니다. 동기식 대기 서버는 동기식 복제 후보 서버를 결정하는 구성에서 지정할 수 있습니다. 목록에서 가장 먼저 스트리밍 중인 것이 현재 동기화 서버로 사용됩니다. 이 작업이 실패하면 시스템이 다음 줄로 넘어갑니다.

동기식 다중 마스터 복제가 Postgre에 포함되지 않음SQL 코어. Postgre 기반의 Postgre-XCSQL은 확장 가능한 동기식 멀티마스터 복제를 제공합니다.[37] Postgre와 동일한 라이센스로 라이센스가 부여됩니다.SQL. 관련 프로젝트를 Postgres-XL이라고 합니다. 포스트그레스-R은 또 다른 포크입니다.[38] 양방향 복제(BDR)는 Postgre를 위한 비동기 다중 마스터 복제 시스템입니다.SQL.[39]

repmgr과 같은 툴을 사용하면 복제 클러스터를 보다 쉽게 관리할 수 있습니다.

여러 비동기식 트리거 기반 복제 패키지를 사용할 수 있습니다. 확장된 핵심 기능을 도입한 후에도 전체 데이터베이스 클러스터의 이진 복제가 부적절한 경우 다음과 같이 유용하게 사용할 수 있습니다.

  • 슬로니-아이
  • Londiste, SkyTools의 일부 (Skype에서 개발)
  • Bucardo 멀티마스터 복제(Backcountry.com 에서 개발)
  • Symmetric DS 멀티마스터, 멀티 계층 복제

인덱스

포스트그레SQL에는 일반 B-트리해시 테이블 인덱스에 대한 내장 지원과 일반화된 검색 트리(GiST), 일반화된 반전 인덱스(GIN), SP-GiST(Space-Partitioned GiST)[41] 및 BRIN(Block Range Index)의 네 가지 인덱스 액세스 방법이 포함됩니다. 또한 사용자 정의 인덱스 메서드를 만들 수 있지만 이는 상당히 관련된 프로세스입니다. Postgre의 인덱스SQL은 다음과 같은 기능도 지원합니다.

  • 식 인덱스는 단순히 열 값이 아닌 식 또는 함수의 결과 인덱스를 사용하여 만들 수 있습니다.
  • 테이블의 일부만 인덱스하는 부분 인덱스는 CREATE INDEX 문 끝에 WHERE 절을 추가하여 만들 수 있습니다. 따라서 더 작은 인덱스를 만들 수 있습니다.
  • 플래너는 일시적인 인메모리 비트맵 인덱스 작업을 사용하여 복잡한 쿼리를 만족시키기 위해 여러 인덱스를 함께 사용할 수 있습니다(스타 스키마에 배열된 것과 같이 큰 사실 테이블을 작은 차원 테이블에 연결하는 데 유용한 데이터 웨어하우스 응용 프로그램).
  • k-NN(k-nearest neighbors) 인덱싱(KNN-GiST라고도[42] 함)은 지정된 값에 가장 가까운 값을 효율적으로 검색하거나 유사한 단어를 찾는 데 유용하거나 공간 데이터로 가까운 객체 또는 위치를 검색합니다. 이는 값의 완전한 일치 없이 달성됩니다.
  • 인덱스 전용 검색을 사용하면 시스템이 메인 테이블에 액세스할 필요 없이 인덱스에서 데이터를 가져올 수 있습니다.
  • BRIN(블록 범위 인덱스).

쉐마스

포스트그레SQL 스키마는 이름 공간으로, 동일한 종류와 이름의 개체가 단일 데이터베이스에 공존할 수 있습니다. 데이터베이스 스키마(모든 테이블의 데이터가 다른 테이블의 데이터와 어떻게 연관되는지 정의하는 추상적이고 구조적이며 조직적인 사양)와 혼동해서는 안 됩니다. 올포스그레역할 및 테이블스페이스와 같은 일부 글로벌 개체를 제외한 SQL 데이터베이스 개체는 스키마 내에 존재합니다. 중첩할 수 없으며 스키마에는 스키마를 포함할 수 없습니다. 권한 시스템은 스키마와 해당 콘텐츠에 대한 액세스를 제어합니다. 기본적으로 새로 생성된 데이터베이스에는 public이라는 단일 스키마만 있지만 다른 스키마를 추가할 수 있으며 public 스키마는 필수 사항이 아닙니다.

A search_path setting은 Postgre의 순서를 결정합니다.SQL은 수식화되지 않은 개체(전치 스키마가 없는 개체)에 대한 스키마를 검사합니다. 기본적으로 다음과 같이 설정됩니다. $user, public ($user 현재 연결된 데이터베이스 사용자)를 나타냅니다. 이 기본값은 데이터베이스 또는 역할 수준에서 설정할 수 있지만 세션 매개변수이므로 클라이언트 세션 중에 자유롭게 변경할 수 있으며(심지어 여러 번) 해당 세션에만 영향을 미칩니다.

search_path에 나열된 존재하지 않는 스키마 또는 로그인한 사용자가 액세스할 수 없는 다른 스키마는 개체 검색 중에 자동으로 건너뜁니다.

search_path에 먼저 나타나는 유효한 스키마(액세스 가능한 스키마)에 새 개체가 생성됩니다.

데이터 종류

다음과 같은 다양한 기본 데이터 유형이 지원됩니다.

  • 부울
  • 임의의 정밀도 수치
  • 문자(텍스트, varchar, char)
  • 이진법
  • 날짜/시간(시간대, 날짜, 간격이 있거나 없는 시간 스탬프/시간)
  • 돈.
  • 열거
  • 비트 스트링
  • 텍스트검색유형
  • 합성
  • Hstore, Postgre 내의 키-밸류 스토어를 지원하는 확장 기능SQL[43]
  • 총 스토리지 크기 최대 1GB의 어레이(길이 가변, 텍스트 및 복합 유형 포함 모든 데이터 유형 가능)
  • 기하학적 원시
  • IPv4IPv6 주소
  • CIDR(Classless Inter-Domain Routing) 블록 및 MAC 주소
  • XML 지원 XPath 쿼리
  • 범용 고유 식별자(UUID)
  • 자바스크립트 객체 표기법(JSON), 더 빠른 이진 JSONB(BSON[44] 동일하지 않음)

또한 사용자는 Postgre를 통해 일반적으로 완전히 색인화할 수 있는 자신만의 데이터 유형을 만들 수 있습니다.SQL의 인덱싱 인프라 – GiST, GIN, SP-GiST. 이러한 예로는 Post지리 정보 시스템(GIS) 데이터 유형이 있습니다.Postgre를 위한 GIS 프로젝트SQL.

도메인이라는 데이터 유형도 있는데, 다른 데이터 유형과 동일하지만 해당 도메인의 생성자가 정의한 선택적 제약 조건이 있습니다. 즉, 도메인을 사용하여 열에 입력한 데이터는 도메인의 일부로 정의된 제약 조건을 준수해야 합니다.

데이터 범위를 나타내는 데이터 유형을 사용할 수 있으며 이를 범위 유형이라고 합니다. 이들은 이산 범위(예를 들어, 모든 정수 값 1~10) 또는 연속 범위(를 들어, 오전 10:00~11:00 사이의 임의의 시간)일 수 있습니다. 사용 가능한 기본 제공 범위 유형에는 정수, 큰 정수, 10진수, 타임스탬프(시간대 포함 및 없음) 및 날짜 범위가 포함됩니다.

사용자 정의 범위 유형을 생성하여 inet 유형을 기본으로 사용하는 IP 주소 범위 또는 Float 데이터 유형을 기본으로 사용하는 Float 범위와 같은 새로운 유형의 범위를 사용할 수 있습니다. 범위 유형은 ]/ 및 )/ 문자를 각각 사용하여 포함 범위와 배타적 범위 경계를 지원합니다(예: [4,9) 는 4부터 시작하여 포함하는 모든 정수를 나타내고 9까지는 포함하지 않습니다.) 범위 유형은 중복, 포함, 권한 등을 확인하기 위해 사용되는 기존 연산자와도 호환됩니다.

사용자 정의 개체

데이터베이스 내의 거의 모든 개체에 대해 다음과 같은 새로운 유형을 생성할 수 있습니다.

  • 캐스트
  • 변환
  • 데이터 종류
  • 데이터 도메인
  • 집계 기능 및 창 기능을 포함한 기능
  • 사용자 정의 유형에 대한 사용자 정의 인덱스를 포함하는 인덱스
  • 연산자(기존 연산자는 과부하 가능)
  • 절차언어

상속

테이블은 상위 테이블에서 특성을 상속하도록 설정할 수 있습니다. 상위 테이블에서 ONLY 키워드를 사용하여 데이터를 선택하지 않는 한 하위 테이블의 데이터는 상위 테이블에 존재하는 것으로 나타납니다. SELECT * FROM ONLY parent_table;. 상위 테이블에 열을 추가하면 해당 열이 하위 테이블에 나타납니다.

상속은 트리거 또는 규칙을 사용하여 상위 테이블의 삽입물을 적절한 하위 테이블로 유도하는 테이블 분할을 구현하는 데 사용할 수 있습니다.

이 기능은 완전히 지원되지 않습니다. 특히 테이블 제약 조건은 현재 상속할 수 없습니다. 상위 테이블의 모든 검사 제약 조건 및 not-null 제약 조건은 하위 테이블에서 자동으로 상속됩니다. 다른 유형의 제약 조건(고유, 기본 키 및 외부 키 제약 조건)은 상속되지 않습니다.

상속은 엔티티 관계 다이어그램(ERD)에 표시된 일반화 계층의 특징을 Postgre에 직접 매핑하는 방법을 제공합니다.SQL 데이터베이스.

기타 스토리지 기능

  • 외부 키 제약 조건, 열 제약 조건 및 행 검사를 포함한 참조 무결성 제약 조건
  • 이진 및 텍스트 대용량 스토리지
  • 테이블스페이스
  • 기둥별조율
  • 온라인 백업
  • 사전 기록 로깅을 사용하여 구현된 시점 단위 복구
  • 다운타임 감소를 위한 pg_upgrade를 통한 인플레이스 업그레이드

제어 및 연결

해외 데이터 포장기

포스트그레SQL은 FDW(Foreign Data Wrapper)를 통해 다른 시스템에 연결하여 데이터를 검색할 수 있습니다.[45] 이들은 파일 시스템, 다른 RDBMS(Relational Database Management System) 또는 웹 서비스와 같은 모든 데이터 소스의 형태를 취할 수 있습니다. 즉, 일반 데이터베이스 쿼리는 이러한 데이터 소스를 일반 테이블과 같이 사용할 수 있으며 여러 데이터 소스를 함께 결합할 수도 있습니다.

인터페이스

포스트그레SQL은 응용프로그램이 데이터베이스 서버에 연결할 수 있는 이진 통신 프로토콜을 지원합니다. 프로토콜 버전(현재 3.0, Postgre 기준)SQL 7.4)에 대한 자세한 사양이 있습니다.[46]

이 통신 프로토콜의 공식적인 클라이언트 구현은 C API, libpq입니다.[47] 또한 공식적으로 지원되는 ECPG 툴을 통해 SQL 명령어를 C 코드에 내장할 수 있습니다.[48] 둘 다 표준 Postgre의 일부입니다.SQL 배포.[49]

Postgre 연결을 위한 타사 라이브러리SQL are available for many programming languages, including C++,[50] Java,[51] Julia,[52][53][54] Python,[55] Node.js,[56] Go,[57] and Rust.[58]

절차언어

프로시저 언어를 사용하면 개발자는 종종 저장 프로시저라고 불리는 사용자 지정 서브루틴(기능)으로 데이터베이스를 확장할 수 있습니다. 이러한 기능은 데이터베이스 트리거(특정 데이터를 수정할 때 호출되는 기능) 및 사용자 정의 데이터 유형 및 집계 기능을 구축하는 데 사용할 수 있습니다.[59] SQL 수준에서 DO 명령을 사용하여 함수를 정의하지 않고 절차 언어를 호출할 수도 있습니다.[60]

언어는 두 그룹으로 나뉩니다. 안전한 언어로 작성된 절차는 샌드박스 처리되어 누구나 안전하게 작성하고 사용할 수 있습니다. 안전하지 않은 언어로 작성된 프로시저는 데이터베이스의 보안 제한을 무시할 수 있지만 데이터베이스 외부 소스에 액세스할 수도 있기 때문에 수퍼유저만 만들 수 있습니다. Perl과 같은 일부 언어는 안전한 버전과 안전하지 않은 버전을 모두 제공합니다.

포스트그레SQL에는 다음과 같은 세 가지 절차 언어가 내장되어 있습니다.

  • 일반 SQL(안전). 더 단순한 SQL 함수는 호출(SQL) 쿼리에 인라인으로 확장할 수 있으므로 함수 호출 오버헤드가 절약되고 쿼리 최적화자가 함수를 "내부에서" 볼 수 있습니다.
  • 절차 언어/PostgreSQL(PL/pgSQL)(안전)은 오라클의 절차 언어 for SQL(PL/SQL) 절차 언어 및 SQL/영구 저장 모듈(SQL/PSM)과 유사합니다.
  • C(안전하지 않음). 하나 이상의 사용자 정의 공유 라이브러리를 데이터베이스에 로드할 수 있습니다. C로 작성된 기능은 최고의 성능을 제공하지만 코드의 버그는 충돌하여 데이터베이스를 손상시킬 수 있습니다. 대부분의 내장 기능은 C로 작성됩니다.

또한 PostgreSQL을 사용하면 확장을 통해 절차 언어를 데이터베이스에 로드할 수 있습니다. Postgre에는 3개의 언어 확장자가 포함되어 있습니다.Perl, TclPython을 지원하는 SQL. Python의 경우 현재 Python 3이 사용되고 있으며, Postgre 현재 단종된 Python 2는 더 이상 지원되지 않습니다.SQL 15. 이전에는 둘 다 Python 2로 기본 설정되어 지원되었지만 이전 버전과 새 버전은 동일한 세션에서 사용할 수 없었습니다.[61] 외부 프로젝트는 PL/Java, 자바스크립트(PL/V8), PL/Julia,[54] PL/R,[63] PL/Ruby 등을 [62]포함한 많은 다른 언어를 지원합니다.

트리거

트리거는 SQL 데이터 조작 언어(DML) 문의 동작으로 트리거되는 이벤트입니다. 예를 들어 INSERT 문은 문 값이 유효한지 확인하는 트리거를 활성화할 수 있습니다. 대부분의 트리거는 INSERT 또는 UPDATE 문에 의해서만 활성화됩니다.

트리거는 완전히 지원되며 테이블에 부착할 수 있습니다. UPDATE 트리거가 테이블의 특정 열을 대상으로 할 수 있고 트리거가 트리거의 WHERE 절에 지정된 조건에서 실행되도록 지시할 수 있다는 점에서 트리거는 열 단위 및 조건부일 수 있습니다. 트리거는 BATHERE OF 조건을 사용하여 뷰에 연결할 수 있습니다. 여러 트리거가 알파벳 순서로 실행됩니다. 트리거는 네이티브 PL/pgSQL로 작성된 호출 함수 외에도 PL/Python 또는 PL/Perl과 같은 다른 언어로 작성된 함수를 호출할 수 있습니다.

비동기식 알림

포스트그레SQL은 NOTIFY, LISTEN 및 UNLISTEN 명령을 통해 액세스되는 비동기 메시징 시스템을 제공합니다. 세션은 특정 이벤트가 발생했음을 표시하기 위해 사용자 지정 채널 및 선택적 페이로드와 함께 NOTIFY 명령을 발행할 수 있습니다. 다른 세션에서는 특정 채널을 청취할 수 있는 LISTEN 명령을 실행하여 이러한 이벤트를 감지할 수 있습니다. 이 기능은 테이블이 업데이트된 시점을 다른 세션에 알려주거나 특정 작업이 수행된 시점을 탐지하기 위한 별도의 응용프로그램을 위해 사용되는 등 매우 다양한 용도로 사용될 수 있습니다. 이러한 시스템은 애플리케이션이 아직 변경된 사항이 없는지 지속적으로 투표할 필요가 없고 불필요한 오버헤드를 줄일 수 있습니다. 통지는 발송된 트랜잭션이 커밋될 때까지 메시지가 전송되지 않으므로 완전히 트랜잭션입니다. 이렇게 하면 수행 중인 작업에 대해 메시지가 전송되고 롤백되는 문제가 제거됩니다.

Postgre용 많은 커넥터SQL은 이 알림 시스템(libpq, JDBC, Npgsql, psycopg 및 node.js 포함)을 지원하므로 외부 응용 프로그램에서 사용할 수 있습니다.

포스트그레SQL은 LISTEN을 FOR UPDATE SKIP LOCKED와 결합하여 효과적이고 지속적인 "pub/sub" 서버 또는 작업 서버 역할을 할 수 있습니다.[64][65][66]

규칙.

규칙은 들어오는 쿼리의 "쿼리 트리"를 다시 쓸 수 있게 해줍니다. 이들은 SQL을 위한 자동으로 호출되는 매크로 언어입니다. "쿼리 다시 쓰기 규칙"은 테이블/클래스에 첨부되며 들어오는 DML을 "다시 쓰기"합니다(선택, 삽입, 업데이트, 그리고/또는 삭제)는 원래의 DML 문을 대체하거나 추가로 실행하는 하나 이상의 쿼리로 변환됩니다. 쿼리 다시 쓰기는 DML 문 구문 분석 후 쿼리 계획 전에 발생합니다.

제공되는 기능 규칙은 거의 모든 방법으로 나중에 새로운 유형의 트리거가 도입되면서 복제되었습니다. 트리거 사용은 일반적으로 규칙보다 트리거 동작 및 상호 작용에 대해 추론하는 것이 더 쉽기 때문에 규칙보다 선호됩니다.

기타 조회 기능

  • 거래
  • 전체 텍스트 검색
    • 구체화된[67]
    • 업데이트 가능한[68] 보기
    • 재귀적 보기[69]
  • 이너, 아우터(풀, 좌우), 크로스 조인트
  • 하위선택사항
    • 연관된 하위[70] 쿼리
  • 정규식[71]
  • 공통 테이블 식 및 쓰기 가능한 공통 테이블 식
  • TLS(Transport Layer Security)를 통한 암호화된 연결. 현재 버전에서는 취약한 SSL을[72] 사용하지 않음(해당 구성 옵션이 있더라도)
  • 도메인
  • 포인트 저장
  • 2단계 커밋
  • TOAST(Overside-Attribute Storage Technique)는 자동 압축을 통해 큰 테이블 속성(예: Big MIME 첨부 파일 또는 XML 메시지)을 별도의 영역에 투명하게 저장하는 데 사용됩니다.
  • 임베디드 SQL은 전처리기를 사용하여 구현됩니다. SQL 코드는 먼저 C 코드에 내장되어 작성됩니다. 그런 다음 코드는 ECPG 전처리기를 통해 실행되며, 이는 SQL을 코드 라이브러리에 대한 호출로 대체합니다. 그런 다음 C 컴파일러를 사용하여 코드를 컴파일할 수 있습니다. 임베딩은 C++에서도 작동하지만 모든 C++ 구조를 인식하지는 않습니다.

동시성모델

포스트그레SQL 서버는 프로세스 기반이며(쓰레드가 아님) 데이터베이스 세션당 하나의 운영 체제 프로세스를 사용합니다. 여러 세션이 운영 체제에서 사용 가능한 모든 CPU에 자동으로 분산됩니다. 여러 CPU나 코어를 활용하여 여러 백그라운드 워커 프로세스에 걸쳐 여러 유형의 쿼리를 병렬화할 수도 있습니다.[73] 클라이언트 응용프로그램은 스레드를 사용하고 각 스레드에서 여러 데이터베이스 연결을 만들 수 있습니다.[74]

보안.

포스트그레SQL은 역할별로 내부 보안을 관리합니다. 역할은 일반적으로 사용자(로그인할 수 있는 역할) 또는 그룹(다른 역할이 구성원인 역할)으로 간주됩니다. 열 수준까지 모든 개체에 대한 사용 권한을 부여하거나 취소할 수 있으며 데이터베이스, 스키마, 테이블 및 행 수준에서 개체의 가시성/생성/변경/삭제를 허용하거나 방지할 수 있습니다.

포스트그레SQL의 SECURITY LABEL 기능(SQL 표준으로의 확장)은 보안 강화 리눅스(SELinux) 보안 정책에 기반한 레이블 기반 의무 액세스 제어(MAC)를 지원하는 번들 로드 가능 모듈을 통해 추가 보안을 제공합니다.[75][76]

포스트그레SQL은 다음과 같은 광범위한 외부 인증 메커니즘을 기본적으로 지원합니다.

GSSAPI, SSPI, Kerberos, 피어, ID 및 인증서 메서드는 해당 인증 시스템과 일치하는 사용자를 특정 데이터베이스 사용자로 연결할 수 있는 지정된 "맵" 파일을 사용할 수도 있습니다.

이러한 방법은 허용되는 연결을 결정하는 클러스터의 호스트 기반 인증 구성 파일()pg_hba.conf에 지정됩니다. 이를 통해 어떤 사용자가 어떤 데이터베이스에 연결할 수 있는지, 어디에서 연결할 수 있는지(IP 주소, IP 주소 범위, 도메인 소켓), 어떤 인증 시스템이 적용되는지, 연결에 TLS(Transport Layer Security)를 사용해야 하는지 여부를 제어할 수 있습니다.

표준준수

포스트그레SQL은 최신 SQL 표준("2022년 10월 버전 15 릴리스 기준, Postgre")을 충족하지만 완전하지는 않습니다.SQL은 SQL:2016 Core 적합성"에 대한 179개 필수 기능 중 170개 이상을 준수하며, 이를[78] 완벽하게 준수하는 다른 데이터베이스는 없습니다. 한 가지 예외는 테이블 또는 열 이름과 같은 따옴표가 없는 식별자를 처리하는 것입니다. 인 포스트그레SQL은 내부적으로 소문자로[79] 접히는 반면 표준에는 따옴표를 사용하지 않는 식별자는 소문자로 접어야 한다고 나와 있습니다. 따라서, Foo 와 동등해야 합니다. FOO 것은 아니다. foo 기준에 따라서 다른 단점들은 비교적 SQL 호환 서드 파티 확장을 사용할[15] 수 있지만,[citation needed] 시간에 따라 탐색할 수 있는(FOR SYSTEM TIME 술어) 트랜잭션 동안 행 버전의 자동 로깅을 허용하는 시간 테이블의 부재와 관련이 있습니다.

벤치마크 및 성능

Postgre의 많은 비공식 성능 연구SQL이 완료되었습니다.[80] 확장성 향상을 목표로 하는 성능 향상은 버전 8.1부터 크게 시작되었습니다. 버전 8.0과 버전 8.4 사이의 간단한 벤치마크를 통해 후자는 읽기 전용 워크로드에서 10배 이상, 읽기 및 쓰기 워크로드 모두에서 최소 7.5배 이상 빠른 것으로 나타났습니다.[81]

업계 최초의 표준 및 동료 검증 벤치마크는 2007년 6월에 완료되었으며, Sun Java System Application Server(GlassFish의 독점 버전) 9.0 Platform Edition, UltraSPARC T1 기반 Sun Fire 서버 및 Postgre를 사용했습니다.SQL 8.2.[82] 778.14 SPECjAppServer2004 JOPS@Standard의 결과는 Itanium 기반 HP-UX 시스템에서 Oracle 10을 사용하는 874 JOPS@Standard와 비교할 때 유리합니다.[80]

2007년 8월, Sun은 813.73의 향상된 벤치마크 점수를 제출했습니다. SPECjAppServer2004 JOPS@Standard. 시스템을 할인된 가격으로 테스트하면서 가격 대비 성능이 84.98달러/JOPS에서 70.57달러/JOPS로 향상되었습니다.[83]

Postgre의 기본 구성SQL은 데이터베이스 블록 캐싱 및 정렬과 같은 성능에 중요한 목적을 위해 소량의 전용 메모리만 사용합니다. 이 제한은 주로 오래된 운영 체제에서 공유 메모리의 큰 블록을 할당할 수 있도록 커널 변경이 필요했기 때문입니다.[84] 포스트그레SQL.org 은 위키에서 기본적으로 권장되는 공연 연습에 대한 조언을 제공합니다.

2012년 4월, 엔터프라이즈의 로버트 하스(Robert Haas)DB가 Postgre를 시연했습니다.64개의 코어가 있는 서버를 사용하는 SQL 9.2의 선형 CPU 확장성.[86]

Matloob Khushi가 Postgre 간의 벤치마킹을 수행했습니다.게놈 데이터를 처리할 수 있는 SQL 9.0 및 MySQL 5.6.15. 그의 성능 분석에서 그는 Postgre가SQL은 무작위 인간 DNA 영역을 형성하는 각각 8만 개의 데이터 세트 2개를 이용해 MySQL보다 8배 빠른 속도로 중복되는 유전체 영역을 추출합니다. Postgre에서 삽입 및 데이터 업로드두 데이터베이스의 일반적인 검색 능력은 거의 동등했지만 SQL도 더 우수했습니다.[87]

플랫폼

포스트그레SQL은 다음 운영 체제에서 사용할 수 있습니다: Linux(모든 최신 배포판), 64비트 ARMx86-64 설치 프로그램을 사용할 수 있고 macOS(OS [88]X) 버전 10.12 이상에 대해 테스트되었으며 Windows(설치 프로그램을 사용할 수 있고 64비트 Windows Server 2019 및 2016에 대해 테스트됨), 일부 오래된 Postgre(일부 오래된 Postgre)SQL 버전은 윈도우 2012 R2[89]), FreeBSD, OpenBSD,[90] NetBSD 등 공식적이지 않은 바이너리 실행 파일, Solaris,[91] AIX, HP-UX 등으로 다시 테스트되었습니다.[92] 대부분의 다른 (현대판) 유닉스 계열 시스템들도 작동합니다.

포스트그레SQL은 Windows XP(또는 그 이후) 및 기타 운영 체제에서 64비트 x86-6432비트 x86 명령어 세트 아키텍처에서 작동할 것으로 예상됩니다. 이 명령어들은 Windows 이외의 다른 운영 체제에서 지원됩니다. 64비트 ARM[93] Raspberry Pi[94] ARMv6와 같은 오래된 32비트 ARM, z/Architecture, S/390, PowerPC(64비트 Power ISA 포함), SPARC(64비트), IA-64 Itanium(HP-UX), MIPSPA-RISC. 또한 일부 다른 플랫폼에서도 작동하는 것으로 알려져 있습니다(몇 년 동안 테스트되지는 않았지만, 최신 버전의 경우).[95]

데이터베이스관리

오픈 소스 프론트 엔드 및 Postgre 관리 도구SQL은 다음을 포함합니다.

psql
Postgre의 기본 프론트 엔드SQL은 psql SQL 쿼리를 직접 입력하거나 파일에서 실행하는 데 사용할 수 있는 명령줄 프로그램. 또한 psql은 여러 메타 명령어와 다양한 셸과 같은 기능을 제공하여 스크립트 작성과 다양한 작업 자동화(예: 개체 이름 탭 완료 및 SQL 구문)를 용이하게 합니다.
pgAdmin
pgAdmin 패키지는 Postgre용 무료 및 오픈 소스 그래픽 사용자 인터페이스(GUI) 관리 도구입니다.많은 컴퓨터 플랫폼에서 지원되는 SQL.[96] 이 프로그램은 12개 이상의 언어로 제공됩니다. pgManager라는 이름의 첫 번째 프로토타입은 Postgre를 위해 작성되었습니다.SQL 6.3.2는 1998년부터 시작되었으며, 몇 달 후 GNU 일반 공중 사용 허가서(GPL)에 따라 pgAdmin으로 다시 작성되어 출시되었습니다. 두 번째 화신(pgAdmin II로 명명됨)은 2002년 1월 16일에 처음 출시된 완전한 재작성입니다. 세 번째 버전인 pgAdmin III는 원래 Artistic License로 출시되었다가 Postgre와 같은 라이선스로 출시되었습니다.SQL. 비주얼 베이직으로 작성된 이전 버전과 달리 pgAdmin III는 대부분의 일반 운영 체제에서 실행할 수 있도록 wxWidgets[97] 프레임워크를 사용하여 C++로 작성됩니다. 쿼리 도구에는 관리 및 개발 작업을 지원하기 위한 pgScript라는 스크립팅 언어가 포함되어 있습니다. 2014년 12월,[98] pgAdmin 프로젝트의 설립자이자 주요 개발자인 Dave Page는 웹 기반 모델로 전환하면서 클라우드 구현을 용이하게 하기 위한 목적으로 pgAdmin 4에 대한 작업을 시작했다고 발표했습니다.[99] 2016년에 pgAdmin 4가 출시되었습니다. pgAdmin 4 백엔드는 플라스크와 Qt 프레임워크를 사용하여 파이썬으로 작성되었습니다.[100]
phpPgAdmin
pphPgAdmin은 Postgre용 웹 기반 관리 도구입니다.PHP로 작성되고 MySQL 관리를 위해 원래 작성된 인기 있는 pphMyAdmin 인터페이스를 기반으로 하는 SQL.[101]
포스트그레SQL 스튜디오
포스트그레SQL Studio를 통해 필수 Postgre를 수행할 수 있습니다.웹 기반 콘솔에서 SQL 데이터베이스 개발 태스크. 포스트그레SQL Studio를 사용하면 방화벽을 열지 않고도 클라우드 데이터베이스를 사용할 수 있습니다.[102]
팀 포스트그레SQL
Postgre용 AJAX/JavaScript 기반 웹 인터페이스SQL. 웹 브라우저를 통해 데이터 및 데이터베이스 개체를 탐색, 유지 관리 및 생성할 수 있습니다. 이 인터페이스는 자동 완성 기능이 있는 탭핑된 SQL 편집기, 행 편집 위젯, 행과 테이블 사이의 클릭스루 외부 키 탐색, 일반적으로 사용되는 스크립트의 즐겨찾기 관리 등을 제공합니다. 웹 인터페이스와 데이터베이스 연결 모두에 SSH를 지원합니다. 설치 프로그램은 Windows, Macintosh 및 Linux용으로 사용할 수 있으며 스크립트에서 실행되는 간단한 교차 플랫폼 아카이브입니다.[103]
Libre Office, OpenOffice.org
LibreOfficeOpenOffice.org Base를 Postgre의 프론트 엔드로 사용할 수 있습니다.SQL.[104][105]
pg 오소리
Pg Badger PostgreSQL 로그 분석기는 Postgre에서 상세 보고서를 생성합니다.SQL 로그 파일.[106]
pgDevOps
pgDevOps는 여러 개의 Postgre를 설치 및 관리할 수 있는 웹 도구 모음입니다.SQL 버전, 확장 및 커뮤니티 구성 요소, SQL 쿼리를 개발하고 실행 중인 데이터베이스를 모니터링하며 성능 문제를 찾습니다.[107]
관리자
관리자는 Postgre를 위한 간단한 웹 기반 관리 도구입니다.PHP로 작성된 SQL 및 기타.
pgBackRest
pgBackRest는 Postgre를 위한 백업 및 복원 도구입니다.전체, 차등 및 증분 백업을 지원하는 SQL.[108]
콩트
pgudit is a PostgrePostgre에서 제공하는 표준 로깅 기능을 통해 세부 세션 및/또는 객체 감사 로깅을 제공하는 SQL 확장SQL.[109]
왈-에
Wal-e는 Postgre를 위한 백업 및 복원 도구입니다.Python으로[110] 작성된 물리적(WAL 기반) 백업을 지원하는 SQL

많은 회사들이 Postgre를 위한 독점적인 도구를 제공하고 있습니다.SQL. 이들은 종종 다양한 특정 데이터베이스 제품에 맞게 조정된 범용 코어로 구성됩니다. 이러한 도구는 대부분 오픈 소스 도구와 관리 기능을 공유하지만 데이터 모델링, 가져오기, 내보내기 또는 보고 기능이 향상됩니다.

주목할만한 사용자

Postgre를 사용하는 주목할 만한 조직 및 제품기본 데이터베이스로서의 SQL은 다음과 같습니다.

  • 800M 이상의 Windows 장치에서 20,000가지 유형의 메트릭을 분석하는 Windows 업데이트 품질을 추적하는 페타바이트 규모의 RQV(Release Quality View) 분석 대시보드에 사용되는 Microsoft.[111]
  • 2009년, 소셜 네트워킹 웹사이트 Myspace는 수정되지 않은 Postgre를 기반으로 구축된 Aster Data Systems의 nCluster 데이터베이스를 데이터 웨어하우징에 사용했습니다.SQL.[112][113]
  • Geni.com 은 Postgre를 사용합니다.그들의 주요 계보 데이터베이스를 위한 SQL.[114]
  • 무료로 편집 가능한 세계 지도를 만들기 위한 공동 프로젝트인 OpenStreetMap.[115]
  • .org, .info 및 기타에 대한 파일리아, 도메인 등록.[116][117]
  • 소니 온라인 멀티플레이어 온라인 게임.[118]
  • 그들의 농업 비즈니스 포털을 위한 쇼핑 플랫폼 BASF.[119]
  • 레딧 소셜 뉴스 웹사이트.[120]
  • Skype VoIP 애플리케이션, 중앙 비즈니스 데이터베이스.[121]
  • Sun의 가상화 및 데이터 센터 자동화 제품군인 Sun xVM.[122]
  • 뮤직브레인즈,[123] 온라인 음악 백과사전 오픈.
  • 국제 우주 정거장 – 궤도에서 원격 측정 데이터를 수집하여 지상으로 복제합니다.[124]
  • 의 연보 소셜 네트워킹 사이트.[125]
  • 모바일 사진 공유 서비스 [126]인스타그램
  • 온라인 토론 및 댓글 서비스 디스커스.[127]
  • 트립어드바이저, 대부분 사용자가 제작한 콘텐츠의 여행 정보 웹사이트.[128]
  • 러시아의 한 인터넷 회사인 Yandex가 Yandex를 바꿨습니다.오라클에서 포스트그레스로 메일 서비스.[129]
  • Amazon Redshift, AWS의 일부, ParAcel의 Postgres 수정에 기반한 칼럼형 온라인 분석 처리(OLAP) 시스템.
  • NEXRAD 기상 레이더, 지표, 수문 시스템의 데이터를 통합하여 상세한 지역화 예보 모델을 구축하는 시스템인 국립해양대기청(NOAA)의 국립기상청(NWS), 대화형 예보 준비 시스템(IFPS).[117][130]
  • 영국 국립 기상청인 Met Office는 오라클을 Postgre로 교환하기 시작했습니다.더 많은 오픈 소스 기술을 구현하기 위한 전략으로 SQL.[130][131]
  • WhitePages.com 은 Oracle과 MySQL을 사용해왔으나 핵심 디렉토리를 사내로 이전하는 것과 관련하여 Postgre로 전환했습니다.SQL. WhitePages.com 은 여러 소스의 대규모 데이터 집합을 결합해야 하기 때문에 PostgreSQL이 Postgre를 사용하기로 결정한 데는 높은 속도로 데이터를 로드하고 인덱싱하는 기능이 핵심이었습니다.SQL.[117]
  • 비행 추적 웹사이트인 FlightAware.[132]
  • 온라인 식료품 배달 서비스 그로퍼스.[133]
  • 가디언은 MongoDB에서 Postgre로 마이그레이션했습니다.2018년도 SQL.[134]
  • 유가바이트DB가 Postgre를 구현합니다.기본 SQL 모드로 SQL 쿼리 계층
  • OpenAI는 Postgre를 사용합니다.기본 API 서비스의 일부로 SQL.[135]

서비스 구현

일부 주목할 만한 공급업체는 Postgre를 제공합니다.서비스형 소프트웨어로서의 SQL:

출고이력

출고이력
풀어주다 첫출시 최신 마이너 버전 최신출시
인생[153]
마일스톤
6.0 1997-01-29 Postgre 첫 정식 발매SQL, 고유 인덱스, pg_dumpall 유틸리티, 식별 인증
6.1 1997-06-08 이전 버전,이상 유지되지 않음: 6.1.1 1997-07-22 멀티컬럼 인덱스, 시퀀스, 금전 데이터 유형, GEQO(GENETIC Query Optimizer)
6.2 1997-10-02 이전 버전,이상 유지되지 않음: 6.2.1 1997-10-17 JDBC 인터페이스, 트리거, 서버 프로그래밍 인터페이스, 제약 조건
6.3 1998-03-01 이전 버전,이상 유지되지 않음: 6.3.2 1998-04-07 2003-03-01 SQL-92 서브선택가능, PL/pgTCL
6.4 1998-10-30 이전 버전,이상 유지되지 않음: 6.4.2 1998-12-20 2003-10-30 VIEWS(읽기 전용) 및 RULE, PL/pgSQL
6.5 1999-06-09 이전 버전,이상 유지되지 않음: 6.5.3 1999-10-13 2004-06-09 MVCC, 임시 테이블, 더 많은 SQL 문 지원(CASE, INSTARD, EXECIT)
7.0 2000-05-08 이전 버전,이상 유지되지 않음: 7.0.3 2000-11-11 2004-05-08 외부 키, 조인을 위한 SQL-92 구문
7.1 2001-04-13 이전 버전,이상 유지되지 않음: 7.1.3 2001-08-15 2006-04-13 미리 쓰기 로그, 외부 조인
7.2 2002-02-04 이전 버전,이상 유지되지 않음: 7.2.8 2005-05-09 2007-02-04 PL/Python, OID가 더 이상 필요하지 않음, 메시지의 국제화
7.3 2002-11-27 이전 버전,이상 유지되지 않음: 7.3.21 2008-01-07 2007-11-27 스키마, 테이블 함수, 준비된 쿼리[154]
7.4 2003-11-17 이전 버전,이상 유지되지 않음: 7.4.30 2010-10-04 2010-10-01 JOIN 및 데이터 웨어하우스 기능[155] 최적화
8.0 2005-01-19 이전 버전,이상 유지되지 않음: 8.0.26 2010-10-04 2010-10-01 마이크로소프트 윈도우즈의 네이티브 서버, 저장점, 테이블스페이스, 시점 복구[156]
8.1 2005-11-08 이전 버전,이상 유지되지 않음: 8.1.23 2010-12-16 2010-11-08 성능 최적화, 2단계 커밋, 테이블 파티셔닝, 인덱스 비트맵 검사, 공유 행 잠금, 역할
8.2 2006-12-05 이전 버전,이상 유지되지 않음: 8.2.23 2011-12-05 2011-12-05 성능 최적화, 온라인 인덱스 빌드, 조언 잠금, 따뜻한 대기[157]
8.3 2008-02-04 이전 버전,이상 유지되지 않음: 8.3.23 2013-02-07 2013-02-07 힙 전용 튜플, 전체 텍스트 검색,[158] SQL/XML, ENUM 유형, UUID 유형
8.4 2009-07-01 이전 버전,이상 유지되지 않음: 8.4.22 2014-07-24 2014-07-24 창 기능, 열 수준 사용 권한, 병렬 데이터베이스 복원, 데이터베이스별 대조, 공통 테이블 식 및 재귀적 쿼리[159]
9.0 2010-09-20 이전 버전,이상 유지되지 않음: 9.0.23 2015-10-08 2015-10-08 내장된 바이너리 스트리밍 복제, 핫 스탠바이, 인플레이스 업그레이드 기능, 64비트 Windows[160]
9.1 2011-09-12 이전 버전,이상 유지되지 않음: 9.1.24 2016-10-27 2016-10-27 동기식 복제, 열 단위 대조, 기록되지 않은 테이블, 직렬화 가능한 스냅샷 분리, 쓰기 가능한 공통 테이블 식, SELinux 통합, 확장, 외부 테이블[161]
9.2 2012-09-10[162] 이전 버전,이상 유지되지 않음: 9.2.24 2017-11-09 2017-11-09 캐스케이드 스트리밍 복제, 인덱스 전용 검색, 기본 JSON 지원, 향상된 잠금 관리, 범위 유형, pg_receivexlog 툴, 공간 분할 GiST 인덱스
9.3 2013-09-09 이전 버전,이상 유지되지 않음: 9.3.25 2018-11-08 2018-11-08 사용자 지정 배경 작업자, 데이터 체크섬, 전용 JSON 연산자, LATAL JOIN, 더 빠른 pg_dump, 새로운 pg_isready 서버 모니터링 툴, 트리거 기능, 보기 기능, 쓰기 가능한 외부 테이블, 구체화된 보기, 복제 개선 기능
9.4 2014-12-18 이전 버전,이상 유지되지 않음: 9.4.26 2020-02-13 2020-02-13 JSONB 데이터 유형, 구성 값 변경을 위한 ALTER SYSTEM 문, 읽기 차단 없이 구체화된 보기 새로 고침 기능, 백그라운드 워커 프로세스의 동적 등록/시작/중지, 논리적 디코딩 API, GiN 인덱스 개선, 리눅스 대용량 페이지 지원, pg_prewarm을 통한 데이터베이스 캐시 다시 로드, Hstore를 문서 스타일 데이터에 대한 선택 열 유형으로 재도입합니다.[163]
9.5 2016-01-07 이전 버전,이상 유지되지 않음: 9.5.25 2021-02-11 2021-02-11 UPSERT, 행 수준 보안, 표 샘플, 큐브/롤업, 그룹화 세트 및 새 BRIN 인덱스[164]
9.6 2016-09-29 이전 버전,이상 유지되지 않음: 9.6.24 2021-11-11 2021-11-11 병렬 쿼리 지원, Postgre정렬/조인 푸시다운, 다수의 동기식 대기, 대형 테이블의 진공 청소 속도 향상을 통한 SQL FDW(Foreign Data Wrapper) 향상
10 2017-10-05 이전 버전,이상 유지되지 않음: 10.23 2022-11-10 2022-11-10 논리적 복제,[165] 선언적 테이블 파티셔닝, 향상된 질의 병렬 처리
11 2018-10-18 이전 버전,이상 유지되지 않음: 11.22 2023-11-09 2023-11-09 파티션 분할, 저장 프로시저에서 지원되는 트랜잭션, 질의 병렬 처리 기능 향상, 표현식에[166][167] 대한 JIT(Just-in-Time) 컴파일 기능 향상
12 2019-10-03 이전 버전, 그러나 여전히 유지: 12.17 2023-11-09 2024-11-14 쿼리 성능 및 공간 활용도 향상, SQL/JSON 경로 표현 지원, 생성된 열, 국제화 및 인증 개선, 새로운 플러그인 테이블 스토리지 인터페이스.[168]
13 2020-09-24 이전 버전, 그러나 여전히 유지: 13.13 2023-11-09 2025-11-13 B-트리 인덱스 항목의 중복 제거를 통한 공간 절약 및 성능 향상, 집계 또는 분할 테이블을 사용하는 쿼리의 성능 향상, 확장된 통계 사용 시 쿼리 계획 향상, 인덱스의 병렬 진공화, 증분 정렬[169][170]
14 2021-09-30 이전 버전, 그러나 여전히 유지: 14.10 2023-11-09 2026-11-12 공통 테이블 식에 대한 SQL-standard Search 및 CYCLE 절을 추가하여 GROUP BY에[171][172] DISTINT를 추가할 수 있습니다.
15 2022-10-13 이전 버전, 그러나 여전히 유지: 15.5 2023-11-09 2027-11-11 SQL 표준 MERGE 문을 구현합니다. PL/Python은 현재 Python 3만 지원하며, plpythonu 이제 더 이상 단종된 파이썬 2가 아닌 파이썬 3을 의미합니다.
16 2023-09-14 현재 안정 버전: 16.1 2023-11-09 2028-11-09 논리적 복제, pg_stat_io 보기 도입(I/O 메트릭의 경우)
범례:
구 버전
이전 버전, 여전히 유지 관리됨
최신버전
최신 미리보기 버전
향후출시

참고 항목

참고문헌

  1. ^ "PostgreSQL". Retrieved September 21, 2019. PostgreSQL: The World's Most Advanced Open Source Relational Database
  2. ^ a b "Contributor Profiles". PostgreSQL Global Development Group. Retrieved March 14, 2017.
  3. ^ a b "Happy Birthday, PostgreSQL!". PostgreSQL Global Development Group. July 8, 2008.
  4. ^ "PostgreSQL 16.1, 15.5, 14.10, 13.13, 12.17, and 11.22 Released!". November 9, 2023.
  5. ^ a b "License". PostgreSQL Global Development Group. Retrieved September 20, 2010.
  6. ^ "PostgreSQL licence approved by OSI". Crynwr. February 18, 2010. Archived from the original on August 8, 2016. Retrieved February 18, 2010.
  7. ^ a b "OSI PostgreSQL Licence". Open Source Initiative. February 20, 2010. Retrieved February 20, 2010.
  8. ^ "Debian -- Details of package postgresql in sid". packages.debian.org. Retrieved January 25, 2021.
  9. ^ "Licensing:Main". FedoraProject.
  10. ^ "PostgreSQL". fsf.org.
  11. ^ "FAQ: What is PostgreSQL? How is it pronounced? What is Postgres?". PostgreSQL Wiki. PostgreSQL community. Retrieved October 2, 2021.
  12. ^ "Audio sample, 5.6k MP3".
  13. ^ "What is PostgreSQL?". PostgreSQL 9.3.0 Documentation. PostgreSQL Global Development Group. Retrieved September 20, 2013.
  14. ^ "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.
  15. ^ a b "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.
  16. ^ "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.
  17. ^ "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.
  18. ^ "WiltonDB". WiltonDB. 2023. Retrieved December 18, 2023. WiltonDB [is] packaged for Windows. It strives to be useable as a drop-in replacement to Microsoft SQL Server.
  19. ^ "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.
  20. ^ "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.
  21. ^ "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.
  22. ^ "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.).
  23. ^ "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...
  24. ^ 이것은 Postgre를 사용할 수 있는 자유로운 허가에 의해 인정됩니다.승인된 대로 SQL 이름(공정한 사용을 위해, 실제 Postgre와의 법적 관계에 대해 사람들을 혼란스럽게 하지 않는 경우)SQL project) Postgre 지원에 사용되는 경우SQL, Postgre 대상SQL 상표 정책:
  25. ^ a b Stonebraker, 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.
  26. ^ "PostgreSQL: History". PostgreSQL Global Development Group. Archived from the original on March 26, 2017. Retrieved August 27, 2016.
  27. ^ "Project name – statement from the core team". archives.postgresql.org. November 16, 2007. Retrieved November 16, 2007.
  28. ^ "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.
  29. ^ 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.
  30. ^ Pavel Stehule (June 9, 2012). "Historie projektu PostgreSQL" (in Czech).
  31. ^ 포스트그레의 간략한 역사SQL "버전 3은 1991년에 등장하여 여러 스토리지 관리자, 향상된 쿼리 실행기 및 다시 작성된 규칙 시스템에 대한 지원을 추가했습니다." postgresql.org . 포스트그레SQL Global Development Group, 2020년 3월 18일 검색.
  32. ^ "University POSTGRES, Version 4.2". July 26, 1999.
  33. ^ Page, Dave (April 7, 2015). "Re: 20th anniversary of PostgreSQL ?". pgsql-advocacy (Mailing list). Retrieved April 9, 2015.
  34. ^ 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.
  35. ^ 포스트그레의 파트가장 싫어하는 SQL
  36. ^ PostgreSQL 9.1 with synchronous replication (news), H Online
  37. ^ "Postgres-XC project page" (website). Postgres-XC. Archived from the original on July 1, 2012.
  38. ^ "Postgres-R: a database replication system for PostgreSQL". Postgres Global Development Group. Archived from the original on March 29, 2010. Retrieved August 27, 2016.
  39. ^ "Postgres-BDR". 2ndQuadrant Ltd. Retrieved August 27, 2016.
  40. ^ Marit Fischer (November 10, 2007). "Backcountry.com finally gives something back to the open source community" (Press release). Backcountry.com. Archived from the original on December 26, 2010.
  41. ^ Bartunov, O; Sigaev, T (May 2011). SP-GiST – a new indexing framework for PostgreSQL (PDF). PGCon 2011. Ottawa, Canada. Retrieved January 31, 2016.
  42. ^ Bartunov, O; Sigaev, T (May 2010). K-nearest neighbour search for PostgreSQL (PDF). PGCon 2010. Ottawa, Canada. Retrieved January 31, 2016.
  43. ^ "PostgreSQL, the NoSQL Database Linux Journal". www.linuxjournal.com.
  44. ^ Geoghegan, Peter (March 23, 2014). "What I think of jsonb".
  45. ^ Obe, Regina; Hsu, Leo S. (2012). "10: Replication and External Data". PostgreSQL: Up and Running (1 ed.). Sebastopol, CA: O'Reilly Media, Inc. p. 129. ISBN 978-1-4493-2633-3. Retrieved October 17, 2016. Foreign Data Wrappers (FDW) [...] are mechanisms of querying external datasources. PostgreSQL 9.1 introduced this SQL/MED standards compliant feature.
  46. ^ "Frontend/Backend Protocol". postgresql.org. Retrieved December 17, 2023. This document describes version 3.0 of the protocol, implemented in PostgreSQL 7.4 and later.
  47. ^ "libpq". postgresql.org. Retrieved December 17, 2023.
  48. ^ "Embedded SQL in C". postgresql.org. Retrieved December 17, 2023.
  49. ^ "Client Interfaces". postgresql.org. Retrieved December 17, 2023.
  50. ^ "libpqxx". Retrieved April 4, 2020.
  51. ^ "PostgreSQL JDBC Driver". Retrieved April 4, 2020.
  52. ^ "[ANN] PostgresORM.jl: Object Relational Mapping for PostgreSQL". JuliaLang. June 30, 2021. Retrieved August 26, 2021.
  53. ^ "GitHub - invenia/LibPQ.jl: A Julia wrapper for libpq". GitHub. Retrieved August 26, 2021.
  54. ^ a b "PL/Julia extension ( minimal )". JuliaLang. March 8, 2020. Retrieved August 26, 2021.
  55. ^ "PostgreSQL + Python Psycopg". initd.org.
  56. ^ "node-postgres". Retrieved April 4, 2020.
  57. ^ "SQL database drivers". Go wiki. golang.org. Retrieved June 22, 2015.
  58. ^ "Rust-Postgres". Retrieved April 4, 2020.
  59. ^ "Server Programming". PostgreSQL documentation. Retrieved May 19, 2019.
  60. ^ "DO". PostgreSQL documentation. Retrieved May 19, 2019.
  61. ^ "PL/Python - Python Procedural Language". PostgreSQL documentation. Retrieved October 23, 2022.
  62. ^ "Procedural Languages". postgresql.org. March 31, 2016. Retrieved April 7, 2016.
  63. ^ "postgres-plr/plr". June 17, 2021 – via GitHub.
  64. ^ Chartier, Colin (November 8, 2019). "System design hack: Postgres is a great pub/sub & job server". LayerCI blog. Retrieved November 24, 2019.
  65. ^ "Release 9.5". postgresql.org. February 11, 2021.
  66. ^ Ringer, Craig (April 13, 2016). "What is SKIP LOCKED for in PostgreSQL 9.5?". 2nd Quadrant. Retrieved November 24, 2019.
  67. ^ "Add a materialized view relations". March 4, 2013. Retrieved March 4, 2013.
  68. ^ "Support automatically-updatable views". December 8, 2012. Retrieved December 8, 2012.
  69. ^ "Add CREATE RECURSIVE VIEW syntax". February 1, 2013. Retrieved February 28, 2013.
  70. ^ Momjian, Bruce (2001). "Subqueries". PostgreSQL: Introduction and Concepts. Addison-Wesley. ISBN 0-201-70331-9. Archived from the original on August 9, 2010. Retrieved September 25, 2010.
  71. ^ Bernier, Robert (February 2, 2006). "Using Regular Expressions in PostgreSQL". O'Reilly Media. Retrieved September 25, 2010.
  72. ^ "A few short notes about PostgreSQL and POODLE". hagander.net.
  73. ^ Berkus, Josh (June 2, 2016). "PostgreSQL 9.6 Beta and PGCon 2016". LWN.net.
  74. ^ "FAQ – PostgreSQL wiki". wiki.postgresql.org. Retrieved April 13, 2017.
  75. ^ "SEPostgreSQL Documentation – PostgreSQL wiki". wiki.postgresql.org.
  76. ^ "NB SQL 9.3 - SELinux Wiki". selinuxproject.org.
  77. ^ "PostgreSQL 10 Documentation: Appendix E. Release Notes". August 12, 2021.
  78. ^ "PostgreSQL: About". www.postgresql.org. Retrieved August 26, 2021.
  79. ^ "Case sensitivity of identifiers". PostgreSQL Global Development Group. November 11, 2021.
  80. ^ a b Berkus, Josh (July 6, 2007). "PostgreSQL publishes first real benchmark". Archived from the original on July 12, 2007. Retrieved July 10, 2007.
  81. ^ Vilmos, György (September 29, 2009). "PostgreSQL history". Retrieved August 28, 2010.
  82. ^ "SPECjAppServer2004 Result". SPEC. July 6, 2007. Retrieved July 10, 2007.
  83. ^ "SPECjAppServer2004 Result". SPEC. July 4, 2007. Retrieved September 1, 2007.
  84. ^ "Managing Kernel Resources". PostgreSQL Manual. PostgreSQL.org. Retrieved November 12, 2011.
  85. ^ Greg Smith (October 15, 2010). PostgreSQL 9.0 High Performance. Packt Publishing. ISBN 978-1-84951-030-1.
  86. ^ Robert Haas (April 3, 2012). "Did I Say 32 Cores? How about 64?". Retrieved April 8, 2012.
  87. ^ Khushi, Matloob (June 2015). "Benchmarking database performance for genomic data". J Cell Biochem. 116 (6): 877–83. arXiv:2008.06835. doi:10.1002/jcb.25049. PMID 25560631. S2CID 27458866.
  88. ^ 오류 인용: 명명된 참조 OS X 호출되었지만 정의되지 않았습니다(도움말 페이지 참조).
  89. ^ "PostgreSQL: Windows installers". www.postgresql.org. Retrieved August 26, 2021.
  90. ^ "postgresql-client-10.5p1 – PostgreSQL RDBMS (client)". OpenBSD ports. October 4, 2018. Retrieved October 10, 2018.
  91. ^ "Installing and Configuring PostgreSQL - Oracle Solaris Cluster Data Service for PostgreSQL Guide". docs.oracle.com. Retrieved February 4, 2023.
  92. ^ "HP-UX Porting and Archive Centre postgresql-12.4". hpux.connect.org.uk. Retrieved February 4, 2023.
  93. ^ "AArch64 planning BoF at DebConf". debian.org.
  94. ^ Souza, Rubens (June 17, 2015). "Step 5 (update): Installing PostgreSQL on my Raspberry Pi 1 and 2". Raspberry PG. Retrieved August 27, 2016.
  95. ^ "Supported Platforms". PostgreSQL Global Development Group. Retrieved April 6, 2012.
  96. ^ "pgAdmin: PostgreSQL administration and management tools". website. Retrieved November 12, 2011.
  97. ^ "Debian -- Details of package pgadmin3 in jessie". Retrieved March 10, 2017.
  98. ^ "pgAdmin Development Team". pgadmin.org. Retrieved June 22, 2015.
  99. ^ Dave, Page (December 7, 2014). "The story of pgAdmin". Dave's Postgres Blog. pgsnake.blogspot.co.uk. Retrieved December 7, 2014.
  100. ^ "pgAdmin 4 README". GitHub. Retrieved August 15, 2018.
  101. ^ phpPgAdmin Project (April 25, 2008). "About phpPgAdmin". Retrieved April 25, 2008.
  102. ^ PostgreSQL Studio (October 9, 2013). "About PostgreSQL Studio". Archived from the original on October 7, 2013. Retrieved October 9, 2013.
  103. ^ "TeamPostgreSQL website". October 3, 2013. Retrieved October 3, 2013.
  104. ^ oooforum.org (January 10, 2010). "Back Ends for OpenOffice". Archived from the original on September 28, 2011. Retrieved January 5, 2011.
  105. ^ libreoffice.org (October 14, 2012). "Base features". Archived from the original on January 7, 2012. Retrieved October 14, 2012.
  106. ^ Greg Smith; Robert Treat & Christopher Browne. "Tuning your PostgreSQL server". Wiki. PostgreSQL.org. Retrieved November 12, 2011.
  107. ^ "pgDevOps". BigSQL.org. Archived from the original on April 1, 2017. Retrieved May 4, 2017.
  108. ^ "pgbackrest/pgbackrest". GitHub. November 21, 2021.
  109. ^ "pgaudit/pgaudit". GitHub. November 21, 2021.
  110. ^ "wal-e/wal-e". June 24, 2021 – via GitHub.
  111. ^ Claire Giordano (October 31, 2019). "Architecting petabyte-scale analytics by scaling out Postgres on Azure with the Citus extension". Blog. Microsoft Tech Community.
  112. ^ Emmanuel Cecchet (May 21, 2009). Building PetaByte Warehouses with Unmodified PostgreSQL (PDF). PGCon 2009. Retrieved November 12, 2011.
  113. ^ "MySpace.com scales analytics for all their friends" (PDF). case study. Aster Data. June 15, 2010. Archived (PDF) from the original on November 14, 2010. Retrieved November 12, 2011.
  114. ^ "Last Weekend's Outage". Blog. Geni. August 1, 2011.
  115. ^ "Database". Wiki. OpenStreetMap.
  116. ^ PostgreSQL affiliates .ORG domain, Australia: Computer World, August 24, 2023
  117. ^ a b c W. Jason Gilmore; R.H. Treat (2006). Beginning PHP and PostgreSQL 8: From Novice to Professional. Apress. ISBN 978-1-43020-136-6. Retrieved August 30, 2017.
  118. ^ Sony Online opts for open-source database over Oracle, Computer World
  119. ^ "A Web Commerce Group Case Study on PostgreSQL" (PDF) (1.2 ed.). PostgreSQL.
  120. ^ "Architecture Overview". Reddit software wiki. Reddit. March 27, 2014. Retrieved November 25, 2014.
  121. ^ Pihlak, Martin. "PostgreSQL @Skype" (PDF). wiki.postgresql.org. Retrieved January 16, 2019.
  122. ^ "How Much Are You Paying For Your Database?". Sun Microsystems blog. 2007. Archived from the original on March 7, 2009. Retrieved December 14, 2007.
  123. ^ "Database – MusicBrainz". MusicBrainz Wiki. Retrieved February 5, 2011.
  124. ^ Duncavage, Daniel P (July 13, 2010). "NASA needs Postgres-Nagios help".
  125. ^ Roy, Gavin M (2010). "PostgreSQL at myYearbook.com" (talk). USA East: PostgreSQL Conference. Archived from the original on July 27, 2011.
  126. ^ "Keeping Instagram up with over a million new users in twelve hours". Instagram-engineering.tumblr.com. May 17, 2011. Retrieved July 7, 2012.
  127. ^ "Postgres at Disqus". Retrieved May 24, 2013.
  128. ^ Kelly, Matthew (March 27, 2015). At the Heart of a Giant: Postgres at TripAdvisor. PGConf US 2015. Archived from the original on July 23, 2015. Retrieved July 23, 2015. (발표 영상)
  129. ^ "Yandex.Mail's successful migration from Oracle to Postgres [pdf]". Hacker News: news.ycombinator.com. Retrieved September 28, 2016.
  130. ^ a b S. Riggs; G. Ciolli; H. Krosing; G. Bartolini (2015). PostgreSQL 9 Administration Cookbook - Second Edition. Packt. ISBN 978-1-84951-906-9. Retrieved September 5, 2017.
  131. ^ "Met Office swaps Oracle for PostgreSQL". computerweekly.com. June 17, 2014. Retrieved September 5, 2017.
  132. ^ "Open Source Software". FlightAware. Retrieved November 22, 2017.
  133. ^ "Ansible at Grofers (Part 2) — Managing PostgreSQL". Lambda - The Grofers Engineering Blog. February 28, 2017. Retrieved September 5, 2018.
  134. ^ McMahon, Philip; Chiorean, Maria-Livia; Coleman, Susie; Askoolum, Akash (November 30, 2018). "Digital Blog: Bye bye Mongo, Hello Postgres". The Guardian. ISSN 0261-3077.
  135. ^ "Elevated Errors on API and ChatGPT". Retrieved December 2, 2023.
  136. ^ Alex Williams (April 1, 2013). "Heroku Forces Customer Upgrade To Fix Critical PostgreSQL Security Hole". TechCrunch.
  137. ^ Barb Darrow (November 11, 2013). "Heroku gussies up Postgres with database roll-back and proactive alerts". GigaOM.
  138. ^ Craig Kerstiens (September 26, 2013). "WAL-E and Continuous Protection with Heroku Postgres". Heroku blog.
  139. ^ "EnterpriseDB Offers Up Postgres Plus Cloud Database". Techweekeurope.co.uk. January 27, 2012. Retrieved July 7, 2012.
  140. ^ "Alibaba Cloud Expands Technical Partnership with EnterpriseDB". Milestone Partners. September 26, 2018. Retrieved June 9, 2020.
  141. ^ O'Doherty, Paul; Asselin, Stephane (2014). "3: VMware Workspace Architecture". VMware Horizon Suite: Building End-User Services. VMware Press Technology. Upper Saddle River, NJ: VMware Press. p. 65. ISBN 978-0-13-347910-2. Retrieved September 19, 2016. In addition to the open source version of PostgreSQL, VMware offers vFabric Postgres, or vPostgres. vPostgres is a PostgreSQL virtual appliance that has been tuned for virtual environments.
  142. ^ Al Sargent (May 15, 2012). "Introducing VMware vFabric Suite 5.1: Automated Deployment, New Components, and Open Source Support". VMware blogs.
  143. ^ "VMware vFabric Suite EOA" (PDF). September 1, 2014. Retrieved December 17, 2023.
  144. ^ Jeff (November 14, 2013). "Amazon RDS for PostgreSQL – Now Available". Amazon Web Services Blog.
  145. ^ Alex Williams (November 14, 2013). "PostgreSQL Now Available On Amazon's Relational Database Service". TechCrunch.
  146. ^ "Amazon Aurora Update – PostgreSQL Compatibility". AWS Blog. November 30, 2016. Retrieved December 1, 2016.
  147. ^ "Announcing Azure Database for PostgreSQL". Azure Blog. May 10, 2017. Retrieved June 19, 2019.
  148. ^ "Aliyun PolarDB released major updates to support one-click migration of databases such as Oracle to the cloud". Develop Paper. July 6, 2019.
  149. ^ "Asynchronous Master-Slave Replication of PostgreSQL Databases in One Click". DZone. Retrieved May 26, 2017.
  150. ^ "IBM Cloud Hyper Protect DBaaS for PostgreSQL documentation". cloud.ibm.com. Retrieved June 24, 2020.
  151. ^ "Crunchy Data Continues PostgreSQL Support with the Release of Crunchy Bridge". September 18, 2020.
  152. ^ "SELECT 'Hello, World' Serverless Postgres built for the cloud". June 15, 2022.
  153. ^ "Versioning policy". PostgreSQL Global Development Group. Retrieved October 4, 2018.
  154. ^ Vaas, Lisa (December 2, 2002). "Databases Target Enterprises". eWeek. Retrieved October 29, 2016.
  155. ^ Krill, Paul (November 20, 2003). "PostgreSQL boosts open source database". InfoWorld. Retrieved October 21, 2016.
  156. ^ Krill, Paul (January 19, 2005). "PostgreSQL open source database boasts Windows boost". InfoWorld. Retrieved November 2, 2016.
  157. ^ Weiss, Todd R. (December 5, 2006). "Version 8.2 of open-source PostgreSQL DB released". Computerworld. Retrieved October 17, 2016.
  158. ^ Gilbertson, Scott (February 5, 2008). "PostgreSQL 8.3: Open Source Database Promises Blazing Speed". Wired. Retrieved October 17, 2016.
  159. ^ Huber, Mathias (July 2, 2009). "PostgreSQL 8.4 Proves Feature-Rich". Linux Magazine. Retrieved October 17, 2016.
  160. ^ Brockmeier, Joe (September 30, 2010). "Five Enterprise Features in PostgreSQL 9". Linux.com. Linux Foundation. Retrieved February 6, 2017.
  161. ^ Timothy Prickett Morgan (September 12, 2011). "PostgreSQL revs to 9.1, aims for enterprise". The Register. Retrieved February 6, 2017.
  162. ^ "PostgreSQL: PostgreSQL 9.2 released". www.postgresql.org. September 10, 2012.
  163. ^ "Reintroducing Hstore for PostgreSQL". InfoQ.
  164. ^ Richard, Chirgwin (January 7, 2016). "Say oops, UPSERT your head: PostgreSQL version 9.5 has landed". The Register. Retrieved October 17, 2016.
  165. ^ "PostgreSQL: Documentation: 10: Chapter 31. Logical Replication". www.postgresql.org. August 12, 2021.
  166. ^ "PostgreSQL 11 Released". October 18, 2018. Retrieved October 18, 2018.
  167. ^ "PostgreSQLRelease Notes". Retrieved October 18, 2018.
  168. ^ "PostgreSQL: PostgreSQL 12 Released!". Postgresql News. October 3, 2019.
  169. ^ "PostgreSQL 13 Release Notes". www.postgresql.org. August 12, 2021.
  170. ^ "PostgreSQL 13 Released!". www.postgresql.org. September 24, 2020.
  171. ^ "PostgreSQL 14 Release Notes". www.postgresql.org. November 11, 2021.
  172. ^ "PostgreSQL 14 Released!". www.postgresql.org. September 30, 2021.
  173. ^ https://www.postgresql.org/about/news/postgresql-16-released-2715/
오류 인용: "OS X Lion Server"라는 이름의 목록 정의 참조가 컨텐츠에 사용되지 않습니다(도움말 페이지 참조).

더보기

외부 링크