[DB] PostgreSQL 이란?

코딩쟝이·2024년 1월 8일
1

내배캠 TIL

목록 보기
51/63

PostgreSQL 이란?

ostgreSQL은 가장 복잡한 데이터 워크로드를 안전하게 저장하고 확장하는 많은 기능과 결합된 SQL 언어를 사용하고 확장하는 강력한 오픈 소스 객체 관계형 데이터베이스 시스템입니다. PostgreSQL의 기원은 캘리포니아 대학교 버클리 캠퍼스의 POSTGRES 프로젝트 의 일환으로 1986년으로 거슬러 올라가며 핵심 플랫폼에서 35년 이상 활발한 개발을 진행해 왔습니다.

PostgreSQL은 입증된 아키텍처, 안정성, 데이터 무결성, 강력한 기능 세트, 확장성 및 성능이 뛰어나고 혁신적인 솔루션을 지속적으로 제공하기 위한 소프트웨어 뒤의 오픈 소스 커뮤니티의 헌신으로 강한 평판을 얻었습니다. PostgreSQL은 모든 주요 운영 체제 에서 실행되고 2001년부터 ACID를 준수 했으며 널리 사용되는 PostGIS 지리공간 데이터베이스 확장기 와 같은 강력한 추가 기능을 갖추고 있습니다 . PostgreSQL이 많은 사람과 조직이 선택하는 오픈 소스 관계형 데이터베이스가 된 것은 놀라운 일이 아닙니다.

PostgreSQL 사용을 시작하는 것이 그 어느 때보다 쉬워졌습니다. 구축하려는 프로젝트를 선택하고 PostgreSQL이 데이터를 안전하고 강력하게 저장하도록 하세요.

PostgreSQL 특징

PostgreSQL에는 개발자가 애플리케이션을 구축하고, 관리자가 데이터 무결성을 보호하고 내결함성 환경을 구축하는 데 도움을 주고, 데이터 세트의 크기에 상관없이 데이터를 관리하는 데 도움이 되는 다양한 기능이 포함되어 있습니다. 무료이며 오픈 소스 인 것 외에도 PostgreSQL은 확장성이 뛰어납니다. 예를 들어, 자신만의 데이터 유형을 정의하고, 사용자 정의 함수를 구축하고, 데이터베이스를 다시 컴파일하지 않고도 다양한 프로그래밍 언어 로 코드를 작성할 수도 있습니다!

PostgreSQL은 이러한 적합성이 기존 기능과 모순되지 않거나 잘못된 아키텍처 결정으로 이어질 수 있는 SQL 표준을 따르려고 노력합니다 . SQL 표준에 필요한 많은 기능이 지원되지만 구문이나 기능이 약간 다른 경우도 있습니다. 시간이 지남에 따라 적합성을 향한 추가 조치가 예상될 수 있습니다. 2023년 9월 버전 16 릴리스부터 PostgreSQL은 SQL:2023 Core 적합성을 위한 179개 필수 기능 중 최소 170개를 준수합니다. 이 글을 쓰는 시점에서 이 표준을 완벽하게 준수하는 관계형 데이터베이스는 없습니다.

다음은 PostgreSQL에 있는 다양한 기능의 전체 목록입니다. 모든 주요 릴리스 에는 더 많은 기능이 추가됩니다 .

데이터 유형
기본 요소: 정수, 숫자, 문자열, 부울
구조화: 날짜/시간, 배열, 범위/다중 범위, UUID
문서: JSON/JSONB, XML, 키-값(Hstore)
기하학: 점, 선, 원, 다각형
사용자 정의: 복합, 사용자 정의 유형
데이터 무결성
고유하며 NULL이 아님
기본 키
외래 키
제외 제약
명시적 잠금, 권고 잠금
동시성, 성능
인덱싱: B-트리, 다중 열, 표현식, 부분
고급 인덱싱: GiST, SP-Gist, KNN Gist, GIN, BRIN, 커버링 인덱스, 블룸 필터
정교한 쿼리 플래너/옵티마이저, 인덱스 전용 스캔, 다중 열 통계
트랜잭션, 중첩 트랜잭션(저장점을 통해)
다중 버전 동시성 제어(MVCC)
읽기 쿼리 병렬화 및 B-트리 인덱스 구축
테이블 파티셔닝
직렬화 가능을 포함하여 SQL 표준에 정의된 모든 트랜잭션 격리 수준
표현식의 JIT(Just-In-Time) 컴파일
신뢰성, 재해 복구
WAL(미리 쓰기 로깅)
복제: 비동기식, 동기식, 논리적
PITR(특정 시점 복구), 활성 대기
테이블스페이스
보안
인증: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, 인증서 등
견고한 출입 통제 시스템
열 및 행 수준 보안
인증서 및 추가 방법을 통한 다단계 인증
확장성
저장 함수 및 프로시저
절차적 언어: PL/pgSQL, Perl, Python 및 Tcl. 확장을 통해 사용할 수 있는 다른 언어(예: Java, JavaScript(V8), R, Lua 및 Rust)가 있습니다.
SQL/JSON 생성자 및 경로 표현식
외부 데이터 래퍼: 표준 SQL 인터페이스를 사용하여 다른 데이터베이스 또는 스트림에 연결
테이블을 위한 맞춤형 스토리지 인터페이스
PostGIS를 포함하여 추가 기능을 제공하는 많은 확장
국제화, 텍스트 검색
ICU 데이터 정렬을 통한 국제 문자 집합 지원
대소문자와 악센트를 구분하지 않는 데이터 정렬
전체 텍스트 검색
PostgreSQL 문서 에서 더 많은 기능을 찾을 수 있습니다 . 또한 PostgreSQL은 확장성이 뛰어납니다. 인덱스와 같은 많은 기능에는 PostgreSQL을 구축하여 문제를 해결할 수 있도록 API가 정의되어 있습니다.

PostgreSQL은 관리할 수 있는 데이터의 양과 수용할 수 있는 동시 사용자 수 측면에서 확장성이 뛰어난 것으로 입증되었습니다. 프로덕션 환경에는 수 테라바이트의 데이터를 관리하는 활성 PostgreSQL 클러스터와 페타바이트를 관리하는 특수 시스템이 있습니다.

profile
웹 프론트엔드 개발자를 꿈꾸고 있습니다!

0개의 댓글