데이터베이스

PostgreSQL에 대해 알아보겠습니다.

forward error correction Circle 2024. 10. 29. 08:23
반응형

Ⅰ. PostgreSQL이란?

 오픈소스 객체-관계형 데이터베이스 관리 시스템(ORDBMS)으로, 확장성과 신뢰성이 뛰어나고 복잡한 트랜잭션을 처리할 수 있는 기능을 제공합니다. PostgreSQL은 높은 호환성을 자랑하며, ANSI SQL 표준을 준수하고 대규모 데이터와 복잡한 연산을 처리하는 데 매우 적합합니다.

Ⅱ. PostgreSQL의 주요 특징

ⅰ. ACID 준수:원자성, 일관성, 고립성, 지속성(ACID)을 철저하게 준수하여 트랜잭션의 안정성을 보장합니다.
ⅱ. MVCC(Multi-Version Concurrency Control): 여러 사용자가 동시에 데이터를 수정할 때 발생할 수 있는 충돌을 방지하며, 동시성 처리 성능을 향상시킵니다.
ⅲ. 확장성: 사용자 정의 데이터 타입, 함수, 집계 함수, 저장 프로시저 등을 지원하며, 다양한 방식으로 기능을 확장할 수 있습니다.
ⅳ. 복잡한 쿼리 처리: 서브쿼리, 윈도우 함수, 공통 테이블 표현식(CTE) 등을 통해 복잡한 데이터 쿼리 및 분석을 할 수 있습니다.
ⅴ. 오픈소스: 오픈소스 라이선스로 제공되며, 무료로 사용 가능합니다. 대규모 커뮤니티와 광범위한 플러그인 및 도구들이 지원됩니다.
ⅵ. JSON 및 XML 지원: 비정형 데이터도 처리할 수 있으며, JSON 및 XML 데이터를 효율적으로 다룰 수 있습니다.
지리정보 시스템(GIS): PostGIS라는 확장을 통해 공간 데이터를 처리하는 데 강력한 기능을 제공합니다.

Ⅲ. PostgreSQL 기본 사용법

ⅰ. PostgreSQL에 접속
PostgreSQL에 접속하기 위해 psql이라는 명령줄 도구를 사용합니다. 기본적으로 PostgreSQL이 설치되면 postgres라는 기본 유저가 생성됩니다.

sudo -u [계정명] psql
ex) sudo -u postgres psql


ⅱ. 특정 데이터베이스에 접속

psql -U username -d dbname

username은 사용자의 이름, dbname은 데이터베이스 이름을 의미합니다.

ⅲ. 데이터베이스 생성

CREATE DATABASE dbname;


ⅳ. 데이터베이스 목록 보기

\l


ⅴ. 접속된 데이터베이스 내의 모든 테이블 목록 보기

\dt


ⅵ. 특정 데이터베이스에 접속

\c dbname;


ⅶ 테이블 생성

CREATE TABLE users (
    user_id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    job INT
);


ⅷ. 데이터 삽입

INSERT INTO users (user_id, job) VALUES ('SABUN', 'system');


ⅸ. 데이터 조회

SELECT * FROM users;


ⅹ. 테이블 삭제

DROP TABLE users;

Ⅳ. DBMS별 비교표

특징 PostgreSQL MariaDB MSSQL Oracle DB
라이선스 오픈소스 오픈소스 상용 소프트웨어 상용 소프트웨어
지원 플랫폼  Windows, macOS,
Linux 
Windows, macOS,
Linux
주로 Windows
(Linux 일부 지원)
 Windows, Linux, Unix
확장성 매우 뛰어남 뛰어남 적당함 매우 뛰어남
보안 고급 보안 기능 제공 기본적인 보안 기능 제공 엔터프라이즈급 보안 매우 강력한 엔터프라이즈급 보안 기능
복잡한 쿼리 매우 잘 지원 MySQL과 유사 잘 지원 매우 잘 지원
ACID 준수 완전 준수
가격 무료 무료 상용 (비용 발생) 상용 (비용 높음)

Ⅴ. DBMS별 장단점

DBMS 장점 단점
PostgreSQL  - 확장성과 커스터마이징 가능성 매우 높음
- JSON, XML, GIS 지원 등 다기능
- ACID 완벽 준수 
- 학습 곡선이 높아 초보자에게 복잡하게 느껴질 수 있음
- 성능 튜닝이 필요할 수 있음
MariaDB  - MySQL과 호환성이 높아 전환이 쉬움
- 성능 개선 및 보안 강화
- 오픈소스로 무료
 - 빠르게 추가되는 기능이 때로는 불안정할 수 있음
- 대규모 상업적 지원 부족
MSSQL  - Windows 및 Microsoft 생태계와 강력한 통합성
- 높은 보안성 및 쉬운 관리 도구 제공
 - 상용 라이선스 비용이 높음
- 주로 Windows에 최적화되어 다른 OS에서 제약
Oracle DB  - 대규모 데이터 처리에 탁월한 성능
- 강력한 엔터프라이즈급 보안 및 지원
- 확장성 매우 우수 

- 라이선스 및 유지보수 비용이 매우 높음
- 설정 및 관리가 복잡하고 학습 곡선이 높음






반응형