Ⅰ. 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 | - 대규모 데이터 처리에 탁월한 성능 - 강력한 엔터프라이즈급 보안 및 지원 - 확장성 매우 우수 |
- 라이선스 및 유지보수 비용이 매우 높음 - 설정 및 관리가 복잡하고 학습 곡선이 높음 |
'데이터베이스' 카테고리의 다른 글
MySQL 8.0에서 패스워드 정책 확인 및 변경 방법에 대해 알아보겠습니다. (0) | 2024.11.07 |
---|---|
aria init function returned error 에러 조치 (0) | 2024.08.06 |
DDL, DML, DCL 에 대해 알아보겠습니다. (0) | 2024.07.27 |
오라클 데이터베이스에서 서비스 계정의 상태를 확인 및 관리 (0) | 2024.07.26 |
Oracle High Availability (HA) 구성 중 RAC 에 대해 알아보겠습니다. (0) | 2024.07.23 |