의견.png

포스트그레스큐엘

해시넷
ansdj17 (토론 | 기여)님의 2020년 8월 11일 (화) 10:40 판 (특징)
이동: 둘러보기, 검색
포스트그레스큐엘(PostgreSQL) 로고
포스트그레스큐엘(PostgreSQL) 로고와 글자

포스트그레스큐엘(PostgreSQL)은 객체-관계형 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다. 1982년 미국 버클리 대학교의 학생들이 개발한 인그레스(Ingres)를 기반으로, 1996년 에스큐엘(SQL) 질의어를 추가하고 포스트그레스큐엘(PostgreSQL)로 이름을 변경하였다. 포스트그레 에스큐엘이라고도 한다. 로고는 슬로닉(Slonik)이라는 이름의 파랑색 코끼리이다.

개요

포스트그레스큐엘(PostgreSQL)은 오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)로, 엔터프라이즈급 데이터베이스 관리 시스템(DBMS)의 기능과 차세대 데이터베이스 관리 시스템에서나 볼 수 있을 법한 기능들을 제공한다.약 20여년의 오랜 역사를 갖는 포스트그레스큐엘은 다른 관계형 데이터베이스 시스템과 달리 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 제공함으로써 마치 새로운 하나의 프로그래밍 언어처럼 무한한 기능을 손쉽게 구현할 수 있다.[1]

특징

  • 휴대가 쉽다 : 포스트그레스큐엘은 안시 시(ANSI C)로 개발되었으며, 지원하는 플랫폼의 종류로는 윈도우, 리눅스, 맥 OS/X, 유닉스 등 다양한 플랫폼을 지원한다.
  • 신뢰할 수 있다 : 트랜잭션 속성인 ACID(Atomic Consistent Isolated Durable)에 대한 구현 및 다중 버전 동시성 제어(multi version concurrency control)가 가능하며, 로우 레벨 라킹 등을 구현할 수 있다.
  • 확장 가능성이 넓다 : 포스트그레스큐엘의 멀티 버전에 대해 사용이 가능하고 대용량 데이터 처리를 위한 테이블 파티셔닝과 테이블 스페이스 기능 구현이 가능하다.
  • 보안성이 높다 : 데이터베이스 보안은 데이터 암호화, 접근 제어 및 감시의 3가지로 구성된다. 호스트-기반의 접근 제어, 오브젝트-레벨 권한, SSL(Secure Sockets Layer) 통신을 통한 클라이언트와 네트워크 구간의 전송 데이터 암호화를 지원한다.
  • 복구성과 가용성이 높다. : 스트리밍 레플리케이션을 기본으로, 동기식/비동기식 상시 대기 방식(Hot Standby) 서버를 구축할 수 있다. 왈 로그(WAL Log) 아카이빙 및 핫 백업(Hot Back up) 장치를 통해 시점복구(Point in time recovery)가 가능하다.
  • 진보됐다 : pg_upgrade를 통해 업그레이드를 할 수 있으며, 웹 또는 C/S 기반의 그래픽 사용자 인터페이스(GUI) 관리 도구를 제공하여 모니터링 및 관리는 물론 튜닝까지 가능하고, 사용자 정의 프로시듀얼(Procedural)로 , 자바, PHP 등의 스크립트 언어 지원이 가능하다.[1]
구조

클라이언트/서버 모델을 사용한다. 서버는 데이터베이스 파일들을 관리하며, 클라이언트 애플리케이션으로부터 들어오는 연결을 수용하고, 클라이언트를 대신하여 데이터베이스 액션을 수행한다. 서버는 다중 클라이언트 연결을 처리할 수 있는데, 서버는 클라이언트의 연결 요청이 오면 각 커넥션에 대해 새로운 프로세스를 포크한다. 그리고 클라이언트는 기존 서버와의 간섭 없이 새로 생성된 서버 프로세스와 통신하게 된다.[1]

기능

관계형 데이터베이스 관리 시스템의 기본적인 기능인 트랜잭션과 ACID(Atomicity, Consistency, Isolation, Durability)를 지원한다. 안시:2008 구격을 상당 부분 만족시키고 있으며, 전부 지원하는 것을 목표로 계속 기능을 추가하고 있다. 포스트그레스큐엘은 기본적인 신뢰도와 안정성을 위한 기능뿐만 아니라 진보적인 기능이나 학술적 연구를 위한 확장 기능도 많이 가지고 있는데, 포스트그레스큐엘의 주요 기능은 네스트화 트랜잭션(세이브 포인트), 시점 복구, 온라인/핫 백업, 병렬 복원, 룰 시스템(질 재구성 시스템), 비-트리, 알-트리, 해시, 기스트 메소드 인덱시즈(GiST method indexes), 다중 버전 병행 수행 제어, 테이블 스페이스, 프로시듀얼 언어, 스키마 정보, I18N, L10N, 데이터베이스 & 열 수준 데이터 정렬, 배열, XML, 범용 고유 식별자(UUID) 타입, 자동 증가(수열), 비동기식 복제, 리밋/오프셋, 전문 검색(Full text search), SSL(Secure Sockets Layer), IPv6(Internet Protocol Version 6), 키/값 스토리지, 테이블 인헤리턴스(Table inheritance) 등이 있다.[1]

항목별 제한사항
항목 제한사항
최대 데이터베이스 크기
(Database Size)
무제한
최대 테이블 크기
(Table Size)
32TB
최대 레코드 크기
(Row Size)
1.6TB
최대 컬럼 크기
(Field Size)
1GB
테이블당 최대 레코드 개수
(Rows per Table)
무제한
테이블당 최대 컬럼 개수
(Columns per Table)
250~1600개
테이블당 최대 인덱스 개수
(Indexes per Table)
무제한

같이 보기


  의견.png 이 포스트그레스큐엘 문서는 데이터에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.  

  1. 1.0 1.1 1.2 1.3 망나니개발자, 〈(PostgreSQL) PostgreSQL이란?〉, 《티스토리》, 2020-04-09