반응형
PostgreSQL은 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 다양한 기능과 확장성을 갖춘 데이터베이스
해당 데이터베이스는 신뢰성, 데이터 무결성, 표준 SQL 준수 등의 측면에서 강력한 성능을 자랑하며, 전 세계에서 가장 많은 개발자와 기업이 사용
특징
- 오픈 소스
PostgreSQL은 자유롭게 사용할 수 있는 오픈 소스 소프트웨어로, 누구나 코드에 접근 및 수정 가능 - ACID 준수
PostgreSQL은 트랜잭션에서 Atomicity, Consistency, Isolation, Durability를 준수하여 데이터의 일관성과 신뢰성 보장 - 표준 SQL 준수
PostgreSQL은 ANSI SQL 표준을 따르며, 표준 SQL 기능을 거의 완벽하게 지원 - 확장성
함수, 데이터 타입, 연산자 등을 확장할 수 있어 다양한 요구사항에 맞게 데이터베이스 기능 확장 가능 - 다양한 데이터 타입
기본적인 정수, 실수, 문자열, 날짜/시간 등의 데이터 타입 외에도 JSON, Hstore(키-값 저장), XML 등 비정형 데이터 저장 가능 - 복잡한 쿼리 지원
하위 쿼리, 복잡한 조인, CTE(Common Table Expression) 등 고급 SQL 쿼리 기능 지원 - 트리거*와 저장 프로시저**
데이터를 처리하기 전후에 자동으로 실행되는 트리거와 저장 프로시저를 지원하여, 데이터 처리 로직을 서버 측에서 관리 가능
트리거(Trigger)*
데이터베이스에서 특정 이벤트가 발생할 때 자동으로 실행되는 저장된 절차 트리거는 주로 INSERT, UPDATE, DELETE 등의 작업이 수행될 때 데이터 무결성을 유지하거나 자동으로 추가적인 작업을 처리하기 위해 사용
프로시저(Procedure)**
데이터베이스에서 미리 컴파일되어 저장된 SQL 문의 집합으로, 특정 작업이나 기능을 수행하기 위해 작성된 프로그램
주요 기능
- MVCC(다중 버전 동시성 제어)
트랜잭션의 격리성과 동시성을 보장 및 데이터의 일관성을 유지하기 위한 기술로, 동시에 여러 사용자가 데이터를 읽고 쓰기 가능 - 복제 및 클러스터링
PostgreSQL은 스트리밍 복제를 통해 데이터를 여러 서버에 실시간으로 복제하여 데이터 안정성과 확장성을 높임 - 파티셔닝
큰 테이블을 여러 개의 작은 테이블로 나누어 관리하는 파티셔닝 기능을 통해 성능 최적화 - JSON 및 NoSQL 기능
PostgreSQL은 JSON 형식의 데이터를 저장하고 쿼리 할 수 있어, 관계형 데이터베이스와 NoSQL* 데이터베이스의 장점을 결합한 하이브리드 환경 지원 - 전문 검색
텍스트 검색을 위한 Full-Text Search 기능을 제공해, 문서 내 검색을 효율적으로 수행 가능
NoSQL*
전통적인 관계형 데이터베이스(RDBMS)와 달리, 고정된 스키마 없이 데이터를 저장하고 관리하는 비관계형 데이터베이스 시스템 주로 대용량의 비정형 또는 반정형 데이터를 처리하고, 확장성을 중시하는 시스템에서 사용 현대의 데이터 관리 환경에서 많이 채택되고 있음
반응형
사용 사례
- 웹 애플리케이션 데이터베이스
많은 웹 애플리케이션에서 기본적인 데이터 저장소로 PostgreSQL을 사용 - 분석 및 데이터 웨어하우스
대량의 데이터를 저장하고 처리하는 데이터 웨어하우스 및 분석 시스템에서 사용 - GIS(지리 정보 시스템)
PostgreSQL은 PostGIS* 라는 확장을 통해 지리적 데이터 처리 가능 이는 위치 기반 서비스, 지도 데이터 관리 등에 사용
PostGIS*
PostgreSQL 데이터베이스에 지리 정보 시스템(GIS) 기능을 추가하는 확장 기능 위치 기반 데이터를 저장하고 관리하며, 공간 쿼리 및 분석을 수행 가능하게 해 줌
장점
- 성능 최적화
네트워크 트래픽 감소 및 실행 속도 향상 - 캡슐화
복잡한 로직을 프로시저 내에 감춰 응용 프로그램 코드를 단순화 - 보안 강화
사용자에게 직접 테이블 접근 권한을 부여하지 않고도 데이터 조작 가능
단점
- 이식성 제한
데이터베이스 벤더마다 프로시저 작성 방식이 달라 이식성이 낮을 수 있음. - 디버깅 어려움
서버 측에서 실행되므로 디버깅이 복잡할 수 있음. - 과도한 서버 부하
로직이 복잡해질수록 데이터베이스 서버에 부하가 증가할 수 있음.
참고할만한 사이트
반응형
'Database' 카테고리의 다른 글
[DB] 데이터베이스 정규화 (1NF, 2NF, 3NF) 개념 및 정리 (1) | 2022.10.09 |
---|---|
[DB] MySQL DDL, DML, DCL 등 명령어 (1) | 2022.10.07 |
[DB] 데이터베이스 관계 (1:1, 1:N, N:M) 정리 (1) | 2022.10.06 |
[DB] SQL (Structured Query Language)과 NoSQL 개념 및 정리 (2) | 2022.10.05 |