<aside> ✅ 확장성과 객체 관계형 데이터베이스의 기능, 데이터 보호, 다양한 언어지원의 장점 등을 가지고있는 PostgreSQL로 DB구축이 가능합니다. 간략하게 설명해보겠습니다.
</aside>
-- 대규모 데이터 세트를 위한 테이블 파티셔닝 예시
CREATE TABLE measurements (
city_id int not null,
logdate date not null,
peaktemp int,
unitsales int
) PARTITION BY RANGE (logdate);
-- 파티션 생성
CREATE TABLE measurements_y2021 PARTITION OF measurements
FOR VALUES FROM ('2024-01-01') TO ('2024-12-01');
대량의 데이터와 복잡한 쿼리를 효율적으로 처리가능합니다. 예를 들어, 파티셔닝 기능을 사용하여 대규모 데이터 세트를 관리하고 쿼리 성능을 향상시킬 수 있습니다.
-- 사용자 정의 타입 생성
CREATE TYPE address AS (
street VARCHAR(100),
city VARCHAR(50),
zip_code CHAR(5)
);
-- 사용자 정의 타입을 사용하는 테이블 생성
CREATE TABLE company (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
location address
);
복잡한 데이터 구조와 상속, 함수 오버로딩 등을 사용할 수 있습니다. 사용자 정의 타입과 도메인을 생성하여 데이터 무결성을 강화할 수 있습니다.
-- 행 수준 보안 정책 설정 예시
CREATE TABLE employee (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
department VARCHAR(50),
salary NUMERIC
);
-- 행 수준 보안 활성화
ALTER TABLE employee ENABLE ROW LEVEL SECURITY;
-- 정책 추가
CREATE POLICY employee_view_policy ON employee
USING (department = current_user);
SSL을 통한 데이터 암호화, 역활 기반 액세스 제어, 행수준 보안 등 다양한 데이터 보호 기능을 제공합니다.
-- PL/pgSQL을 사용한 저장 프로시저 예시
CREATE OR REPLACE FUNCTION update_salary(emp_id INT, new_salary NUMERIC)
RETURNS VOID AS $$
BEGIN
UPDATE employee SET salary = new_salary WHERE id = emp_id;
END;
$$ LANGUAGE plpgsql;
PL/pgSQL 이외에도 PL/Python, PL/Perl, PL/Java 등 다양한 프로그래밍 언어로 저장 프로시저와 트리거를 작성할 수 있는 확장 가능성을 제공합니다.