[sql] 정규화된 테이블과 역정규화된 테이블 비교

데이터베이스 설계 과정에서 정규화와 역정규화는 중요한 부분입니다. 이 두 가지 개념을 비교해보고 각각의 장단점을 살펴보겠습니다.

정규화된 테이블

정규화는 데이터 중복을 최소화하고 무결성을 유지하기 위해 데이터를 구조화하는 프로세스입니다. 정규화된 테이블은 다음과 같은 특징을 가집니다:

CREATE TABLE customer (
  customer_id INT PRIMARY KEY,
  customer_name VARCHAR(100)
);

CREATE TABLE order (
  order_id INT PRIMARY KEY,
  customer_id INT,
  order_date DATE,
  FOREIGN KEY (customer_id) REFERENCES customer(customer_id)
);

역정규화된 테이블

역정규화는 성능 향상을 위해 정규화된 테이블을 다시 조정하는 프로세스입니다. 역정규화된 테이블은 다음과 같은 특징을 가집니다:

CREATE TABLE customer_order (
  customer_id INT,
  customer_name VARCHAR(100),
  order_id INT,
  order_date DATE
);

이러한 비교를 통해 정규화된 테이블이 데이터 무결성을 유지하고 중복을 최소화하는 데 도움이 되는 반면, 역정규화된 테이블은 성능을 향상시킬 수 있다는 것을 알 수 있습니다.