PostgreSQL 기초
PostgreSQL은 강력한 기능과 높은 안정성을 자랑하는 오픈소스 객체-관계형 데이터베이스 관리 시스템(ORDBMS)입니다. 복잡한 데이터 처리와 대용량 데이터 관리에 적합합니다.
개요
PostgreSQL은 SQL 표준을 잘 준수하며, 트랜잭션, 동시성 제어, 복구 등 데이터베이스의 핵심 기능을 강력하게 지원합니다. 또한, JSON, 배열, 사용자 정의 타입 등 다양한 데이터 타입을 지원하여 유연한 데이터 모델링이 가능합니다. 이로 인해 웹 서비스, 데이터 웨어하우스, GIS(지리 정보 시스템) 등 광범위한 분야에서 사용됩니다.
참고
PostgreSQL은 뛰어난 안정성과 성능으로 인해 'Postgres'라고도 불리며, Docker, Kubernetes 등 클라우드 환경에서도 널리 활용됩니다.
핵심 개념
PostgreSQL은 다음과 같은 특징을 가집니다:
개념 | 설명 |
---|---|
객체-관계형 DB |
객체 지향 개념(클래스, 상속 등)을 관계형 데이터베이스에 통합하여 더 풍부한 데이터 모델을 지원합니다. |
트랜잭션 |
일련의 SQL 작업이 하나의 논리적 단위로 처리되도록 보장합니다. ACID(원자성, 일관성, 고립성, 지속성) 속성을 강력하게 지원합니다. |
스키마 |
테이블, 뷰, 함수 등 데이터베이스 객체들을 논리적으로 그룹화하는 구조입니다. 사용자 계정과는 별개로 존재할 수 있습니다. |
데이터 타입 |
정수, 문자열 같은 기본 타입 외에 JSONB, 배열, hstore 등 다양한 고급 데이터 타입을 지원합니다. |
사용 예제
users 테이블을 생성하고 데이터를 삽입, 조회하는 예제입니다.
SQL
-- 테이블 생성 CREATE TABLE users ( id SERIAL PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); -- 데이터 삽입 INSERT INTO users (name, email) VALUES ('김민지', 'minji@example.com'); -- 데이터 조회 SELECT id, name, created_at FROM users WHERE email = 'minji@example.com';
주의사항 및 팁
SERIAL
데이터 타입은 MySQL의AUTO_INCREMENT
와 유사하게 자동으로 증가하는 정수형을 만듭니다.- PostgreSQL은 기본적으로 대소문자를 구분합니다. 특히 테이블명이나 컬럼명은 큰따옴표(
"
)로 감싸면 대소문자가 유지됩니다. - PostgreSQL은 데이터 정합성과 안정성을 매우 중요시하므로, 트랜잭션과 데이터 타입에 대한 깊이 있는 이해가 필요합니다.
주의
PostgreSQL은 복잡한 쿼리와 대용량 데이터 처리에 강하지만, 초기 설정과 학습이 다른 경량 데이터베이스에 비해 복잡할 수 있습니다.