forest_moon
DB-PostgreSQL ? 본문
PostgreSQL 이란?
PostgreSQL은 확장 가능성 및 표준 준수를 강조하는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 하나이다.
20년 이상의 오랜 역사를 가지고, 전세계의 오픈소스 개발자들과 관련 회사들이 참여하고 있습니다 .
다른 관계형 데이터베이스 시스템과 달리 연산자,복합 자료형, 집계 함수, 자료형 변환자, 확장기능 등등..
다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 제공하여 마치 새로운 프로그래밍 언어처럼
다양한 기능들을 손쉽게 구현이 가능합니다.
PostgreSQL은 무료이며 오픈 소스 소프트웨어 입니다. 소스코드는 자유 오픈 소스 라이센스인 PostgreSQL 라이센스에 따라
제공되고 있고, 어떠한 형태로든 사용하고 수정,배포할 수 있습니다
PostgreSQL의 구조
PostgreSQL은 클라이언트/서버 모델을 사용한다. 서버는 데이터베이스 파일들을 관리하며, 클라이언트 애플리케이션으로부터 들어오는 연결을 수용하고, 클라이언트를 대신하여 데이터베이스 액션을 수행한다. 서버는 다중 클라이언트 연결을 처리할 수 있는데, 서버는 클라이언트의 연결 요청이 오면 각 커넥션에 대해 새로운 프로세스를 fork한다. 그리고 클라이언트는 기존 서버와의 간섭 없이 새로 생성된 서버 프로세스와 통신하게 된다.
PostgreSQL의 특징
유연한 객체 생성
다른 관계형 데이터베이스 시스템과 달리, 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 SQL 차원에서 제공한다.
이런 특징은 단순한 자료 저장소로써의 기능을 넘어 마치 하나의 새로운 프로그래밍 언어처럼 개발자의 창의성에 따라 무한한 기능을 손쉽게 구현할 수 있도록 한다.
상속
java 또는 C++ 프로그래밍 언어와 같이 테이블을 만들어 그 테이블 상속 기능을 이용해 하위 테이블을 만들 수 있다.
테이블에 저장된 자료는 상위 테이블을 조회하면, 해당 테이블의 하위 테이블에 포함된 모든 자료를 조회할 수 있으며, 하위 테이블을 만들 때, 상위 테이블의 칼럼을 그대로 상속 받으면서, 하위 테이블에만 속하는 칼럼을 추가로 만들 수 있다.
함수
때때로, '저장 프로시저'라고 불리는 SQL문으로 작성된 함수를 서버환경에서 사용할 수 있다. 비록 다른 언어와는 달리 제어문과 반복문을 사용하지는 못하지만, 다른 언어와 결합시킬 수 있다. 일부 언어에서는 심지어 트리거 내부에서 실행시킬 수 있다.
이러한 언어의 예는 다음과 같다.
- PL/pgSQL (오라클의 PL/SQL과 유사하다)
- 스크립트 언어를 통한 지원 (예, PL/Python, PL/php, PL/Perl)
- 컴파일 언어를 통한 지원 (예, C/C++, PL/Java)
- 통계적 언어를 통한 지원 (예, PL/R)
PostgreSQL은 테이블에 대한 질의 결과를 반환하기 위한 '행 반환 함수'를 지원한다.
실행권한은 함수 작성자 및, 실행자 모두에게 있다.
라이선스에 대한 비용문제가 전혀 없음
BSD 라이선스이며, 라이선스의 가장 큰 특징은 소스를 변경하고 그 소스를 숨긴 채 재배포 해도 법적으로 문제가 없다는 점이다.
오래된 오픈소스의 안정성
큐브리드와 비교 시 Pg를 선택하게 된 가장 큰 이유이기도 하다. 매우 가볍게 돌아가는 데이터베이스지만, 대용량 데이터의 처리에도 큰 문제점이 발견되지 않았고, 표준SQL 잘 따르고있다.
장점이자 단점인 독창적인 자료형 및 문법
표준SQL 만으로 PG를 사용해도 좋다. 하지만 독창적인 자료형,문법, 함수들을 익힌다면 더욱 효과적이고 파워풀하게 데이터베이스를 활용할 수 있다.
Reference
https://ko.wikipedia.org/wiki/PostgreSQL
https://mangkyu.tistory.com/71
'이것저것' 카테고리의 다른 글
SQL 쿼리 예시 및 정리하기 (0) | 2022.12.21 |
---|---|
MyBatis 란? (1) | 2022.12.20 |
스프링(Spring) 의 기초 와 원리 (1) | 2022.10.06 |
Jmeter 기본세팅 및 사용법(mac) (0) | 2022.10.05 |
AWS EC2 SWAP메모리 생성 (0) | 2022.09.17 |