PostgreSQL은 SQL을 지원하는 오픈소스 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다. UC 버클리의 POSTGRES 프로젝트를 바탕으로 발전했으며, 데이터를 저장하고 조회하는 기능과 사용자가 기능을 확장할 수 있는 구조를 제공한다.
개요
관계형 데이터베이스는 데이터를 테이블 형태로 다룬다. PostgreSQL은 SQL을 통한 질의와 함께 외래 키, 트리거, 갱신 가능한 뷰, 트랜잭션 무결성 등 여러 기능을 지원한다.
출처: PostgreSQL 공식 소개, 공식 문서: What Is PostgreSQL?
데이터 형식과 무결성
숫자·문자열·날짜와 시간뿐 아니라 JSON·JSONB, 배열, UUID 등 다양한 데이터 형식을 사용할 수 있다. 제약 조건은 저장할 데이터가 따라야 할 규칙을 표현하는 데 사용한다.
| 구분 | 제공 기능 |
|---|---|
| 데이터 형식 | 숫자, 문자열, 날짜·시간, JSON·JSONB, 배열, UUID |
| 무결성 제약 | 기본 키, 외래 키, UNIQUE, NOT NULL |
| 데이터 처리 | SQL 질의, 트리거, 갱신 가능한 뷰, 트랜잭션 |
출처: PostgreSQL 기능 소개, 공식 문서 개요
동시 처리와 확장
PostgreSQL은 다중 버전 동시성 제어(MVCC)를 이용해 SQL 문장이 데이터 스냅샷을 참조하도록 한다. 이를 통해 여러 트랜잭션이 같은 데이터를 다루는 상황에서 일관성을 관리한다. 명시적인 테이블·행 잠금과 애플리케이션이 관리하는 자문 잠금도 제공한다.
사용자는 데이터 형식, 함수, 연산자, 집계 함수, 인덱스 방식, 절차적 언어를 추가해 기능을 확장할 수 있다.