"Post-GRES"로 발음!

PostgreSQL
오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)이다.
PostgreSQL 구조
- 클라이언트/서버 모델을 사용한다.
- SQL(Structured Query Language)을 사용하여 데이터를 관리한다.
- 테이블, 열, 행의 형태로 데이터를 구조화하여 저장한다.
- 관계형 데이터베이스 모델을 따르며, 복잡한 데이터 관계를 처리할 수 있다.
- 다양한 데이터 유형을 지원하며, 사용자가 사용자 정의 데이터 유형을 생성할 수 있다.
PostgreSQL 기능
- ACID(Atomicity, Consistency, Isolation, Durability) 트랜잭션을 지원하여 데이터 일관성과 안전성을 보장한다.
- 외부 키, 제약 조건, 트리거와 같은 고급 데이터베이스 기능을 제공한다.
- 다양한 인덱싱 기능을 제공하여 데이터 검색 및 조회 속도를 향상시킨다.
- 다양한 프로그래밍 언어와의 상호 작용을 지원한다. JDBC, ODBC, Python, Ruby, 등 다양한 언어를 사용하여 PostgreSQL을 연동할 수 있다.
- 확장 기능을 통해 사용자가 필요에 따라 기능을 추가하거나 확장할 수 있다.
✅ PostgreSQL 공부를 해보자
기본적인 SQL 문법부터 고급 기능까지 다양한 주제로 학습할 수 있다.
1. 기본 SQL 이해
SQL(Structured Query Language)의 기본 문법을 이해해야 한다.
- SELECT, INSERT, UPDATE, DELETE: 기본적인 데이터 조작 명령어.
- WHERE, ORDER BY, GROUP BY, HAVING: 데이터 조회 시 사용되는 필터링 및 정렬 조건.
- JOIN: 여러 테이블에서 데이터를 결합하여 조회.
- 기본 함수: COUNT, SUM, AVG, MIN, MAX 등의 집계 함수와 문자열, 날짜 함수.
2. PostgreSQL 설치 및 기본 설정
- 설치: PostgreSQL 공식 사이트에서 설치 파일을 다운로드하고 설치.
- 기본 설정: 데이터베이스 생성, 사용자 및 권한 설정.
- 도구 사용: pgAdmin 또는 DBeaver와 같은 GUI 도구를 사용하여 PostgreSQL 관리.
3. 데이터베이스 및 테이블 생성
- CREATE DATABASE: 새로운 데이터베이스 생성.
- CREATE TABLE: 테이블 생성 및 데이터 타입 설정.
- ALTER TABLE: 테이블 구조 변경(열 추가, 수정, 삭제).
4. 고급 SQL 및 PostgreSQL 확장 기능
PostgreSQL는 다른 관계형 데이터베이스보다 많은 고급 기능을 제공한다.
- 인덱스: CREATE INDEX, 다양한 인덱스 유형(B-tree, Hash, GIN, GIST) 이해.
- 트랜잭션: BEGIN, COMMIT, ROLLBACK을 사용한 트랜잭션 관리.
- 서브쿼리: 중첩 쿼리와 공통 테이블 표현식(CTE).
- 뷰(View): CREATE VIEW를 사용한 뷰 생성과 관리.
- 스토어드 프로시저 및 함수: PL/pgSQL을 사용한 함수와 트리거 생성.
5. 성능 최적화 및 튜닝
PostgreSQL의 성능을 최적화하는 방법을 배우는 것은 실무에서 매우 중요하다.
- 쿼리 계획 및 분석: EXPLAIN 명령어를 사용하여 쿼리 실행 계획 분석.
- 인덱스 최적화: 인덱스의 적절한 사용과 관리.
- 파티셔닝: 테이블 파티셔닝을 사용하여 대용량 데이터 관리.
- 캐싱: PostgreSQL의 캐시 메커니즘 이해 및 설정.
6. 백업 및 복구
데이터베이스의 백업과 복구 방법은 데이터베이스 관리에서 필수적인 부분이다.
- pg_dump: 데이터베이스 백업 도구 사용법.
- pg_restore: 백업된 데이터베이스 복구 방법.
- Point-in-Time Recovery (PITR): 특정 시점으로 데이터베이스 복구.
7. 보안 및 사용자 관리
PostgreSQL의 보안 설정과 사용자 관리는 데이터 보호에 중요하다.
- 사용자 및 역할 관리: CREATE USER, CREATE ROLE, GRANT 및 REVOKE 명령어.
- 암호화: 데이터 암호화 및 SSL 설정.
- 접근 제어: pg_hba.conf 파일 설정.
학습 리소스
튜닝부터는 어렵게 느껴지지만 열심히 따라가보자 !
코끼리 귀엽다.