PostgreSQL 소개
PostgreSQL은 오픈소스 ORDBMS(object-relational database management system) 이다.
미국 캘리포니아에 있는 버클리 대학 컴퓨터 과학부에서 개발한 POSTGRES v4.2를 기반으로 개발됨
엔터프라이즈급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있을 법한 많은 기능을 제공하는 오픈소스 DBMS 이다
역사
PostgreSQL은 마이클 스톤브레이커(Michael Stonebraker)가 Ingres 프로젝트로 시작되었다.
마이클 스톤브레이커는 1982년 Ingres의 상용화를 위해 학교를 떠났다.
그 후 1985년에 다시 학교로 돌아와 1980년대 초반부터 급증하게 된 당시의 데이터베이스 시스템의 문제점들을 해결하고자 "post-Ingres"(후기-Ingres) 프로젝트를 시작했다.
1989년 6월 첫 번째 버전과 그 이듬해 6월까지 두 번째 버전 1991년 세 번째 버전이 출시되면서 많은 사용자를 확보했으나 사용자 지원에 대한 부담이 증가해 결국 프로젝트는 1993년에 종료되었다.
BSD 허가권으로 인해 오픈소스 개발자들은 Postgres 시스템의 소스코드를 넘겨받아 개발을 계속했다.
1994년 에스큐엘 지원과 구조 개선을 통해 포스트그레스보다 40% 정도 빠른 성능을 보여 주는 Postgres95
1996년 기존의 데이터베이스 시스템에 새로운 SQL이 추가되었다는 것을 알리기 위해 PostgreSQL로 변경
1997년 최초 버전 6.0인 PostgreSQL로 출시
최신버전은 15.3 이고 16 Beta까지 출시가 되었다.
특징
- 오픈 소스: 무료로 사용할 수 있는 오픈 소스 소프트웨어로, 커뮤니티에 의해 개발 및 유지보수된다. 이는 비용을 절감하고 유연성을 높여준다
- 확장성: 대규모 데이터베이스와 고성능 애플리케이션을 지원하기 위해 설계되었다.
병렬 처리, 인덱싱, 파티셔닝 등 다양한 기능을 제공하여 성능과 확장성을 최적화할 수 있다 - ACID 준수: 데이터를 관리하는 과정에서 ACID(원자성, 일관성, 고립성, 지속성) 원칙에 따라 작동한다.
이는 데이터의 안정성과 신뢰성을 보장하며 트랜잭션 처리를 지원 - 완전한 SQL 지원: SQL 표준에 근거하여 완전한 SQL 문법과 기능을 제공.
복잡한 쿼리와 조인 작업도 처리할 수 있으며 서브쿼리 및 뷰 등 다양한 기능도 지원 - 다양한 데이터 타입: 정수형, 부동소수점형, 문자열 등 일반적인 데이터 타입뿐만 아니라 배열, JSON/XML 문서 등 다양한 형태의 데이터를 저장하고 조작할 수 있는 기능을 제공
- 확장 가능한 인덱싱: B-tree와 해시 인덱스 외에도 GIN(Generic Inverted Index), GiST(Generalized Search Tree), SP-GiST(Space-Partitioned Generalized Search Tree) 등 다양한 인덱싱 방식을 제공하여 검색 성능을 최적화할 수 있습니다.
- 복제와 고가용성: 스트리밍 복제 및 로그 적용 방식의 복제 기능을 제공하여 안정적인 데이터 백업과 고가용성 구축이 가능
- 저장 프로시저와 사용자 정의 함수: 저장 프로시저와 사용자 정의 함수를 작성하여 비즈니스 로직을 서버 내에서 실행할 수 있는 기능을 제공
- 외부 언어 연동: PL/pgSQL 외에도 PL/Python, PL/Java 등 여러 언어를 지원하여 개발자가 선호하는 언어로 직접 함수나 프로시저를 작성할 수 있다
제한
항목 | 제한 사항 |
최대 DB 크기(Database Size) | 무제한 |
최대 테이블 크기(Table Size) | 32TB |
최대 레코드 크기(Row Size) | 1.6TB |
최대 컬럼 크기(Field Size) | 1 GB |
테이블당 최대 레코드 개수(Rows per Table) | 무제한 |
테이블당 최대 컬럼 개수(Columns per Table) | 250~1600개 |
테이블당 최대 인덱스 개수(Indexes per Table) | 무제한 |
'Dev > DB' 카테고리의 다른 글
PostgreSQL 설치 (Ubuntu) (0) | 2023.10.13 |
---|---|
PostgreSQL 설치 (Windows) (0) | 2023.10.12 |