PostgreSQL 개요 및 기본 개념

PostgreSQL 개요 및 기본 개념

1️⃣ PostgreSQL 소개 및 기본 개념

1. PostgreSQL 소개 및 역사

PostgreSQL(줄여서 Postgres)는 객체-관계형 데이터베이스 관리 시스템(ORDBMS)으로, 뛰어난 확장성, ACID 트랜잭션 지원, JSON/BSON 데이터 타입을 포함한 다양한 기능을 제공합니다.

  • 최초 개발: 1986년 캘리포니아 버클리 대학에서 시작
  • 공식 출시: 1996년 PostgreSQL 6.0 발표
  • 현재 PostgreSQL은 전 세계 오픈소스 커뮤니티에 의해 활발히 개발 및 유지보수됨

PostgreSQL은 MySQL, MariaDB보다 더욱 강력한 데이터 무결성 및 확장 기능을 제공하는 오픈소스 RDBMS입니다.


2. PostgreSQL vs MySQL vs MariaDB vs Oracle

기능 PostgreSQL MySQL MariaDB Oracle
라이선스 PostgreSQL 라이선스 (BSD 스타일) GPL v2 GPL v2 상용 (Oracle 라이선스)
데이터베이스 엔진 자체 엔진 InnoDB, MyISAM InnoDB, Aria, TokuDB 자체 엔진
ACID 트랜잭션 ✅ (InnoDB) ✅ (InnoDB)
JSON 지원
확장성 매우 높음 (다양한 확장 기능 지원) 낮음 중간 매우 높음

PostgreSQL은 고급 쿼리 최적화, JSON 지원, 확장 가능성 면에서 강력한 장점을 가집니다.


3. PostgreSQL의 주요 기능 및 특징

PostgreSQL의 주요 기능을 정리하면 다음과 같습니다.

강력한 ACID 트랜잭션 지원
다양한 데이터 타입 지원 (JSON, XML, UUID, HSTORE, 배열 등)
MVCC (Multi-Version Concurrency Control)으로 동시성 지원
CTE(Common Table Expressions) 및 윈도우 함수 지원
파티셔닝 및 샤딩 기능 지원
확장 기능 및 사용자 정의 함수 지원 (PL/pgSQL, Python, JavaScript 등)
물리적/논리적 복제 및 스트리밍 복제 지원


4. 라이선스 및 배포 방식 (오픈소스 정책)

  • PostgreSQL은 BSD 스타일의 PostgreSQL 라이선스를 따르며, 상업적 사용에 대한 제한이 없습니다.
  • PostgreSQL은 공식 배포판 외에도 Amazon RDS, Google Cloud SQL, Microsoft Azure Database와 같은 클라우드 서비스에서도 사용할 수 있습니다.

2️⃣ PostgreSQL 설치 및 설정 (Linux, Windows, Docker)

1. Linux에서 PostgreSQL 설치

Ubuntu에서 PostgreSQL을 설치하는 방법:

sudo apt update
sudo apt install postgresql postgresql-contrib

PostgreSQL 서비스 실행 및 확인:

sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql

2. Windows에서 PostgreSQL 설치

  1. PostgreSQL 공식 웹사이트에서 Windows용 설치 파일 다운로드
  2. 실행 후 설치 진행 (pgAdmin 포함)
  3. PostgreSQL 서비스 실행 확인

3. Docker를 이용한 PostgreSQL 실행

docker run --name postgres-container -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 postgres

컨테이너 내부에서 PostgreSQL 접속:

docker exec -it postgres-container psql -U postgres

3️⃣ 기본적인 psql CLI 사용법

PostgreSQL의 CLI 도구인 psql을 사용하면 SQL 쿼리를 실행하고 데이터베이스를 관리할 수 있습니다.

1. psql 접속

sudo -u postgres psql

2. 기본적인 psql 명령어

명령어 설명
\l 데이터베이스 목록 조회
\c database_name 특정 데이터베이스로 접속
\dt 테이블 목록 조회
\d table_name 특정 테이블의 구조 확인
\q psql 종료

4️⃣ 데이터베이스 생성 및 삭제

1. 데이터베이스 생성

CREATE DATABASE mydb;

PostgreSQL은 UTF-8을 기본 인코딩으로 사용하며, 특정 인코딩을 지정할 수도 있습니다.

CREATE DATABASE mydb WITH ENCODING 'UTF8' LC_COLLATE='en_US.UTF-8' LC_CTYPE='en_US.UTF-8' TEMPLATE=template0;

2. 데이터베이스 삭제

DROP DATABASE mydb;

5️⃣ 기본적인 SQL 문법 복습 (SELECT, INSERT, UPDATE, DELETE)

1. 테이블 생성

CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    age INT,
    email VARCHAR(100) UNIQUE
);

2. 데이터 삽입

INSERT INTO users (name, age, email) VALUES ('Alice', 30, 'alice@example.com');

3. 데이터 조회

SELECT * FROM users;

4. 데이터 수정

UPDATE users SET age = 31 WHERE name = 'Alice';

5. 데이터 삭제

DELETE FROM users WHERE name = 'Alice';

RSS Feed
마지막 수정일자