[Codeit]/Spring 백엔드 10기 위클리페이퍼

[08] DDL과 DML, 그리고 역정규화

uzlru 2026. 4. 5. 22:53

01. DDL과 DML

1. 데이터 정의어 (DDL, Data Defination Language)

데이터 정의어란 주로 DB를 설계 및 관리하는 사람이 사용하는 언어로, 데이터베이스 구조를 생성 / 수정 / 삭제하는 언어를 뜻한다.

DDL   예시
CREATE 데이터베이스 구조 생성 CREATE INDEX 인덱스 이름] ON [테이블(속성)]
ALTER 데이테베이스 구조 수정 ALTER TABLE [테이블] ADD [속성 이름] [속성 타입]
DROP 데이버테이스 구조 삭제 DROP [테이블]
TRUNCATE 데이터베이스 구조는 냅두되, 내용만 삭제 TRUNCATE [테이블]

 

2. 데이터 조작어 (DML, Data Manipulation Language)

데이터 조작어란 주로 데이터베이스 구조 내 테이블에 저장될 데이터를 생성 / 수정 / 삭제 / 조회하는 언어를 뜻한다.

DML 의미 예시
INSERT 데이터 삽입 INSERT INTO VALUES [(속성값1, 속성값2, ...)]
SELECT 데이터 조회 SELETE * FROM [테이블]
UPDATE 데이터 수정 UPDATE [테이블] SET [수정할 내용]
DELETE 데이터 삭제 DELETE FROM [테이블]

 

3. DDL vs DML

구분 DDL
(Data Definition Language)
DML
(Data Manipulation Language)
개념 데이터베이스 객체의 구조를 정의하는 언어 데이터 조회 / 저장 / 수정 / 삭제하는 언어
대상 테이블, 인덱스, 뷰 등 스키마 테이블 내의 실제 데이터인 레코드
반영 명령 실행 즉시 데이터베이스에 반영 Rollback이 가능 / Commit을 통해 최종 반영

 

 


 

02. 역정규화 (Denormalization)

역정규화란 데이터베이스의 성능 향상을 목적으로, 의도적으로 정규화 원칙을 위배하는 행위를 의미한다. 즉, 정규화를 통해 분리된 데이터를 다시 통합 / 중복 / 분리하여 데이터베이스의 전체적인 성능을 향상시키고 편의성을 개선하는 행위를 뜻한다.

 

1. 역정규화가 필요한 상황

필요한 상황  
조인 연산 과다 데이터를 조회할 떄 너무 많은 테이블에 조인 연산이 적용된 경우, 성능 저하가 발생
대량 데이터 조회 특정 범위의 데이터나 요약 통계를 너무 빈번하게 조회할 경우
성능 한계 인덱스나 캐시 등의 수단을 활용한 성능 최적화가 불가능한 경우

 

2. 역정규화의 장단점

     
장점 데이터 조회 속도 향상 조인 횟수가 줄어들어 데이터 조회 속도 개선
단점 데이터 무결성 파괴 데이터 중복으로 인한 데이터 무결성 파괴 가능성 증가
  비용 증가 데이터 중복 저장으로 인해 사용하는 저장 공간 크기 증가

 

3. 고려 사항

고려 사항  
데이터 무결성 유지 중복된 데이터 내용이 달라지지 않도록, 별도의 로직 필요
대안 검토 역정규화를 대신할 수 있는 인덱스 조정 / 뷰 활용 / 캐싱 레이어 도입 등을 먼저 시도했는지 확인
유지보수 비용 구조의 복잡도에 따라 개발 및 운영 비용이 얼마나 늘어날지 계산 필요