본문 바로가기
IT지식/데이터베이스

[데이터베이스] PostgreSQL에 대해 공부하기

by five-sun 2022. 12. 14.
728x90

출처: https://d2.naver.com/helloworld/227936

 

PostgreSQL은 북미와 일본에서는 높은 인지도와 인기를 갇고 있는 RDBMS이다.

국내에서는 아직 잘 사용하지 않고 있지만, 기능과 성능면에서 매우 훌륭한 RDBMS이다.

PostgreSQL의 로고

PostgreSQL은 객체-관계형 데이터베이스 시스템으로, 엔터프라이즈급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있는 많은 기능을 제공하는 오픈소스 DBMS이다.

 

기능:

PostgreSQL은 관계형 DBMS의 기본적인 기능인 트랜잭션과 ACID(Atomicity, Consistency, Isolation, Durability)를 지원한다. (원자성, 일관성, 독립성, 내구성) 또한 기본적인 신뢰도와 안정성을 위한 기능뿐만 아니라 진보적인 기능이나 학술적 연구를 위한 확장 기능도 많아지고 있다.

 

제한:

항목 제한 사항
최대 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) 무제한

 

PostgreSQL의 프로세스 구조를 간단히 살펴보면 다음과 같다.

클라이언트가 다양한 인터페이스를 통해 서버와의 연결을 요청하고, Postmaster 프로세스가 서버와의 연결을 중계한다. 이후 클라이언트는 할당된 서버와의 연결을 통해 질의를 수행한다.

 

서버 내부에서 질의 수행 과정은 다음과 같다.

클라이언트로부터 질의 요청이 들어오면 구문 분석과정을 통해 Parse Tree를 생성한다. 이후 의미 분석 과정을 통해 새로운 트랜잭션을 시작하고 Query Tree를 생성한다. 이후 서버에 정의된 규칙에 따라 Query Tree가 재 생성되고 실행 가능한 여러 수행 계획 중 가장 최적화된 Plan Tree를 생성한다. 서버는 이를 수행하여 요청된 질의에 대한 결과를 클라이언트로 전달하게 된다.

 

728x90