[DB] PostgreSQL이란? (Feat.학습법)

김엄지·2024년 5월 20일
0

Database

목록 보기
1/5

"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 파일 설정.

학습 리소스

  • 공식 문서: PostgreSQL 공식 문서(https://www.postgresql.org/docs/)는 가장 권위 있는 학습 자료
  • 온라인 강좌
  • 실습 프로젝트: 간단한 프로젝트를 통해 실습하면서 배운 내용을 적용해보자.

튜닝부터는 어렵게 느껴지지만 열심히 따라가보자 !
코끼리 귀엽다.

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글