PostgreSQL 은 오픈소스 DBMS이다.
DBMS
DBMS stands for Database Management System. It is a software application that provides a user interface for interacting with a database, enabling the user to retrieve, store, and manipulate data stored in the database. The purpose of a DBMS is to provide an organized and efficient way of managing large amounts of data, as well as providing security, data integrity, and recoverability in the event of a system failure. Examples of DBMS include Oracle, Microsoft SQL Server, MySQL, and PostgreSQL.
기능과 성능면에서 매우 훌룡한 RDBMS
RDBMS ? 관계형 데이터베이스
https://cloud.google.com/learn/what-is-a-relational-database?hl=ko
관계형 데이터베이스(RDB)는 테이블, 행, 열의 정보를 구조화하는 방식입니다. RDB에는 테이블을 조인하여 정보 간 관계 또는 링크를 설정할 수 있는 기능이 있어, 여러 데이터 포인트 간의 관계를 쉽게 이해하고 정보를 얻을 수 있습니다.
Postgresql은 객체-관계형 데이터베이스 시스템 (ORDBMS)이다.
객체 관계 데이터베이스(object-relational database; ORD, ORDB) 또는 객체 관계형 데이터베이스 관리 시스템(object-relational database management system; ORDBMS)은 객체지향 데이터베이스 모델을 가진 관계형 데이터베이스 관리 시스템(RDBMS, 관계 데이터베이스)을 말합니다. 소프트웨어 개발자가 스스로 데이터 형과 메서드(이 두 조합은 객체 지향에서 말하는 객체의 클래스에 해당)를 자유롭게 정의하여 데이터베이스를 개발할 수 있는 데이터베이스 관리 시스템 (DBMS)입니다. 쉽게 풀어 쓰면 ORDBMS는 오브젝트 지향 모델 (OODBMS)과 관계형 모델 (RDBMS) 사이의 하이브리드 인 데이터베이스 관리 시스템입니다. 이 두 모델은 각각 장단점이 있습니다. DBMS는 두 모델을 결합하여 각 모델의 다양한 장점을 활용할 수 있습니다.
엔터프라이즈급 DBMS의 기능과 차세대 DBMS 에서나 볼수 있을법한 많은 기능을 제공하는 오픈소스이다.
실제 기능적인 면에서 Oracle과 유사한것이 많다.
클라이언트로부터 질의 요청이 들어오면 구문 분석과정(1.) 을 통해 Parse Tree를 생성하고
의미 분석과정(2.) 를 통해 새로운 트랜잭션을 시작하고 Query Tree를 생성한다.
이후 서버에 정의된 Rule에 따라 Query Tree가 재 생성 (3.) 되고
실행 가능한 여러 수행 계획중 가장 최적화된 Plan Tree 를 생성한다.(4.)
서버 는 이를 수행(5.)하여 요청된 질의에 대한 결과를 클라이언트로 전달하게된다.
--
서버 쿼리 수행 과정에서는 데이터베이스 내부의 시스템 카탈로그가 많이 사용되는데
사용자가 함수나 데이터 타입은 물론 인덱스 접근 방식 및 RULE 등을 시스템 카탈로그에 직접 정의할 수도 있다.
따라서 PostgreSQL 에서는 이것이 기능을 새로 추가하거나 확장하는데 있어 중요한 포인트로 활용 된다.
데이터 저장되는 파일들은 여러 개의 페이지들로 구성되며, 하나의 페이지는 확장 가능한 slotted page 구조를 가진다.