Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

코딩 이래요래

위클리 페이퍼 8주차 본문

위클리 페이퍼

위클리 페이퍼 8주차

강범호 2025. 5. 30. 14:22

Q. SQL에서 DDL과 DML의 차이점을 설명하고, 각각의 대표적인 명령어들의 용도를 설명하세요.

1. DDL(Data Definition Language) - 데이터 정의 언어

데이터 베이스의 스키마, 테이블, 인덱스 등 구조를 정의하거나 수정,삭제할 때 사용하는 명령어이다.

 

대표적으로 아래와 같은 명령어가 있다.

명령어 설명
CREATE 테이블, 데이터베이스, 뷰 등을 생성
ALTER 테이블 구조를 수정 (컬럼 추가/삭제/변경 등)
DROP 테이블이나 데이터베이스 삭제
TRUNCATE 테이블의 모든 데이터를 빠르게 삭제 (롤백 불가)

 

※ TRUNCATE는 DELETE와 유사하지만, 로그 기록을 최소화하여 속도가 빠르며 롤백이 불가능함.

 

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

테이블에 저장된 데이터를 조회하거나 수정,삭제할 때 사용하는 명령어이다.

 

대표적으로 아래와 같은 명령어가 있다.

명령어 설명
SELECT 데이터를 조회
INSERT 데이터를 삽입
UPDATE 데이터를 수정
DELETE 데이터를 삭제

 

  • 트랜잭션의 대상이 되므로 COMMIT, ROLLBACK이 가능함.
    • 트랜잭션(Transaction) : 하나의 작업 단위를 말함. 즉, 데이터베이스의 데이터의 상태를 변화시키는(Insert, Update, Delete ...) 작업의 단위이다.
    • 이때, 트랜잭션 범위 내의 모든 작업이 성공해야 COMMIT이 되고, 하나라도 실패하면 ROLLBACK이 됨.
  • 사용자의 실제 데이터 조작을 위한 SQL이다.

Q. 역정규화가 필요한 상황과 적용 시 고려해야 할 사항, 그리고 역정규화를 적용할 때의 장단점을 설명해주세요.

 

데이터베이스 정규화 (1NF ~ 3NF + 역정규화)

정규화란?데이터베이스 설계 과정에서 데이터의 중복을 최소화하고, 데이터의 무결성과 일관성을 유지하기 위해 테이블을 체계적으로 나누는 과정이다. 정규화를 통해:불필요한 중복을 줄일

kh-coding.tistory.com

테이블을 정규화 하면 데이터의 중복을 최소화하고, 데이터의 무결성과 일관성을 유지하는 장점이 있지만, 지나친 정규화는 오히려 성능 저하를 일으키고, 복잡한 테이블 관계를 가질 수 있다.

이렇게, 정규화를 통해 지나치게 나뉘어진 테이블을 의도적으로 다시 합치거나 중복 데이터를 허용함으로써 성능을 개선시키는 정규화 기법을 역정규화라고 한다. (보통 읽기 성능 향상이 목적임)

 

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

  1. 조인(Join) 연산이 많아 쿼리 성능이 저하되는 경우
    • 복잡한 정규화로 인해 다수의 테이블 조인이 필요함 -> 조회 쿼리 성능이 느림
  2. 조회(Select) 성능이 중요한 시스템
    • 데이터 분석, 통계 시스템, 게시판 목록, 피드 등 조회가 빈번한 환경
  3. 일부 테이블에서 자주 사용되는 데이터를 함께 자주 조회할 경우
    • 사용자 테이블에서 유저 이름, 프로필 이미지 등을 자주 참조
  4. 실시간 응답이 중요한 서비스
    • 검색 엔진, 대시보드, 추천 시스템 등

2. 역정규화 적용 시 고려사항

  1. 데이터 중복
    • 중복 데이터로 인해 저장 공간 증가 및 데이터 불일치 위험 존재
  2. 쓰기 작업 복잡성 증가
    • 중복 필드가 여러 테이블에 존재할 경우, INSERT/UPDATE/DELETE 로직이 복잡해짐
  3. 트랜잭션 관리 필요
    • 중복 데이터가 여러 곳에 존재할 경우, 동기화 문제를 방지하기 위한 트랜잭션 처리가 필수
  4. 유지보수 비용 증가
    • 정규화보다 구조 변경이 어렵고 관리 부담이 커짐

3. 역정규화를 적용할 때의 장단점

  • 장점
장점 설명
빠른 조회 속도 조인 없이도 필요한 정보를 한 번에 조회 가능
단순한 쿼리 조인 줄어들어 쿼리 복잡도 ↓
캐싱에 유리 정적인 데이터는 캐시에 올려두기 편함

 

  • 단점
단점 설명
데이터 중복 저장 공간 낭비 및 관리 복잡성 증가
동기화 문제 중복된 필드의 변경 시 일관성 유지 어려움
유지보수 어려움 데이터 정합성 보장 위해 트랜잭션 처리 필수

 

지나친 정규화가 성능 저하를 일으킬 수 있다면 마찬가지로, 무분별한 역정규화 적용은 데이터 정합성과 유지보수성을 해칠 수 있으므로 상황을 잘 고려하여 적용해야 한다.

'위클리 페이퍼' 카테고리의 다른 글

위클리 페이퍼 10주차  (5) 2025.06.23
위클리 페이퍼 - 9주차  (2) 2025.06.02
위클리 페이퍼 - 7주차  (3) 2025.05.25
AOP (Aspect Oriented Programming)  (0) 2025.05.18
@Controller vs @RestController  (0) 2025.05.13