PostgreSQL

데이터베이스를 관리할 때, 여러분들은 어떤 프로그램을 사용하고 계신가요?

저는 원래 MySQL을 자주 사용했었는데, 회사에서는 PostgreSQL을 자주 사용하더군요..

그래서 PostgreSQL이 무엇이고, 어떤 특징을 가지고 있는 지 알아봅시다!

 


1. PostgreSQL

PostgreSQL이란? 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)를 뜻해요.

데이터베이스를 관리하고 쿼리할 수 있도록 해줍니다.

높은 안전성과 확장성을 제공하며, 다양한 기능을 지원하여, 기업용 애플리케이션에서도 많이 사용됩니다.

 


2. PostgreSQL의 특징

그러면 주요 특징은 무엇이 있는 지 알아봅시다.

 

2-1. 오픈 소스

PostgreSQL은 오픈 소스로, 누구나 무료로 다운로드하고 사용할 수 있습니다.

또한, 소스 코드가 공개되어 있어, 사용자가 필요에 따라 수정 or 커스터마이즈할 수 있어요. 이를 통해 특정 요구 사항에 맞는 기능을 추가할 수 있습니다.

다양한 운영 체제에서 실행 가능하며, 특정 비즈니스 요구에 맞춰 데이터베이스를 최적화할 수 있어요.

 

2-2. ACID 준수

PostgreSQL트랜잭션을 처리할 때, ACID(Atomicity, Consistency, Isolation, Durability)를 준수하고 있습니다.

그렇기에, 신뢰할 수 있는 데이터베이스로 자리잡고 있으며, 중요한 비즈니스 애플리케이션에서 널리 사용되고 있어요.

※ ACID : 데이터베이스의 네 가지 주요 속성. 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영속성(Durability)

 

2-3. SQL 표준 준수

PostgreSQL은 대부분의 ANSI SQL 표준을 지원하며, 추가적인 기능을 통해 SQL의 한계를 보완하고 있어요.

 

2-4 확장성과 유연성

PostgreSQL데이터베이스 기능을 확장할 수 있도록 다양한 확장 모듈을 지원하며, 사용자가 직접 새로운 타입, 함수, 연산자를 추가할 수 있어요.

이를 통해 다양한 요구 사항을 충족하고, 복잡한 비즈니스 환경에서 효과적으로 사용할 수 있습니다.

 

2-5. JSON 및 NoSQL 지원

PostgreSQL전통적인 관계형 데이터뿐 아니라 JSON 타입을 통해 NoSQL 데이터베이스 기능도 제공하여, 구조화되지 않은 데이터를 저장하고 관리할 수 있어요. 즉, 비정형 데이터 처리에 유연성을 제공한다는 뜻이죠.

 

2-6. 강력한 확장성

PostgreSQL마스터-슬레이브 복제를 지원하여 읽기 작업을 여러 서버에 분산 시킬 수 있으며, 대량의 데이터를 여러 개의 파티션으로 나눌 수 있습니다.

또한, 여러 서버에 걸쳐 데이터베이스를 분산하여 처리할 수 있는 클러스터링 솔루션도 지원해요.

이처럼 PostgreSQL복잡한 쿼리, 인덱스, 파티셔닝리플리케이션 기능을 통해 대용량 데이터베이스에서도 우수한 성능을 발휘합니다.

 

2-7. 트랜잭션 및 동시성 처리

PostgreSQL트랜잭션이 강력하고 멀티 버전 동시성 제어(MVCC)를 통해 많은 사용자가 동시에 데이터베이스에 접근해도 성능 저하 없이 처리할 수 있어요.

 

※ 다중 버전 동시성 제어(MVCC, Multi-Version Concurrency Control) : 여러 트랜잭션이 동시에 데이터에 접근할 수 있도록 하면서, 데이터의 일관성을 유지하는 기술

 


3. PostgreSQL 기본 명령어

그러면 직접 사용해봐야 겠죠. PostgreSQL의 기본 명령어는 다음과 같이 있습니다.

 

3-1. 데이터베이스 생성

데이터베이스를 생성하려면, CREATE DATABASE를 입력하면 됩니다.

사용 방법은 다음과 같아요.

CREATE DATABASE my_database;

 

위 명령어를 실행하면, my_database라는 이름의 데이터베이스가 생성됩니다.

 

3-2. 테이블 생성

테이블을 생성하려면, CREATE TABLE를 입력하면, 됩니다.

사용 방법은  다음과 같아요.

CREATE TABLE my_table (
    column1 datatype,
    column2 datatype,
    ...
);

 

CREATE TABLE 옆에 생성할 테이블의 이름을 지정한 후, 테이블의 열 이름과 데이터 타입 및 제약 조건을 정의합니다.

 

3-3. 테이블 삽입

테이블에서 데이터를 삽입하는 기본 명령어는 INSERT INTO입니다.

사용 방법은 다음과 같아요.

INSERT INTO my_table (column1, column2, ...)
VALUES (value1, value2, ...);

 

  • INSERT INTO 옆에 데이터를 삽입할 테이블 명을 지정합니다.
  • 그 다음, 처음 ( )안에 데이터를 삽입할 열의 이름을 나열합니다.
  • 나열한 후, VALUES 옆 ( )안에 각 열에 삽입할 값을 지정합니다.

이를 통해 기존 테이블에 새로운 행(레코드)를 추가할 수 있어요.

 

3-4. 테이블 조회

테이블의 데이터를 조회하는 기본 명령어는 SELECT입니다.

사용 방법은 다음과 같아요.

SELECT column1, column2, ...
FROM my_table;
  • SELECT 옆에 조회할 열의 이름을 지정합니다.
  • FROM 옆에는 데이터를 조회할 테이블의 이름을 지정해요.

이를 통해 특정 테이블에서 원하는 데이터를 선택하고 표시할 수 있어요.

 

3-5. 테이블 업데이트

테이블의 데이터를 업데이트하는 기본 명령어는 UPDATE입니다.

사용 방법은 다음과 같아요.

UPDATE my_table
SET column1 = value1, column2 = value2, ...
WHERE condition;
  • UPDATE 옆에 업데이트할 테이블의 이름을 지정합니다.
  • SET 옆에 수정할 열과 새 값을 지정합니다.
  • WHERE 옆에 어떤 행을 업데이트할 지 결정하는 조건을 명시합니다. 이 절이 없으면, 테이블의 모든 행이 업데이트 되니 주의하세요!

이렇게 하면, 특정 행의 데이터를 수정할 수 있어요.

 

3-6. 데이터 삭제

테이블의 데이터를 삭제하는 기본 명령어는 DELETE입니다.

사용 방법은 다음과 같아요.

DELETE FROM my_table
WHERE condition;

 

  • DELETE FROM 옆에 삭제할 데이터를 포함하는 테이블 명을 지정합니다.
  • WHERE 옆에 어떤 행을 삭제할 지 결정하는 조건을 명시합니다. 이 절이 없으면, 테이블의 모든 행이 삭제되니 주의하세요!

이를 통해, 특정 행을 삭제할 수 있어요.

 


4. 정리하며

지금까지 PostgreSQL정의특징기본 명령어에 대해 알아보았습니다.

PostgreSQL은 다양한 기능과 성능으로 인해 웹 애플리케이션, 데이터 분석, 클라우드 기반 서비스 등 다양한 분야에서 널리 사용되고 있어요. 즉, 이를 공부하면, 데이터 관리에 많은 도움이 될 것 같습니다!

 

참고

무작정 개발 님의 PostgreSQL이란?

망나니개발자 님의 [PostgreSQL] PostgreSQL이란?

Hiner_torr 님의 [DB] PostgreSQL이란? 및 설치 방법

'Back-End Study > DBMS' 카테고리의 다른 글

A 테이블 - B 테이블 쿼리  (1) 2024.11.20
MySQL vs PostgreSQL  (0) 2024.10.30
SQL의 여러 종류의 키(Key)  (1) 2024.09.06
사용자 계정 생성 및 삭제  (2) 2023.11.20
AQueryTool  (0) 2022.09.08