[SQL Study Log 01]데이터베이스 모델링이 중요한 이유

Kuromi·2026년 2월 12일

SQL

목록 보기
2/7
post-thumbnail

DDL, DML 그리고 데이터베이스 모델링 이해하기 🌸

“SQL은 문법이 아니라 구조를 이해하는 과정이다.”

오늘은 DDL, DML, 그리고 데이터베이스 모델링의 개념을 정리했다.
SQL을 단순한 조회 도구로 이해하는 것을 넘어,
데이터가 어떻게 설계되고 저장되는지를 이해하는 것이 중요하다는 점을 느꼈다.

데이터 분석에서 중요한 것은
데이터를 잘 뽑는 능력보다, 데이터를 정확히 이해하는 능력이라는 생각이 들었다.

1. DDL (Data Definition Language)

DDL은 데이터베이스의 구조를 정의하는 언어다.
데이터를 담는 틀을 설계하는 단계라고 볼 수 있다.

주요 명령어

  • CREATE
  • ALTER
  • DROP
  • TRUNCATE

예시

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    name VARCHAR(50),
    created_at DATE
);

위 쿼리는 데이터를 저장하기 위한 구조를 정의한다.
아직 데이터는 존재하지 않으며, 저장 방식을 설계하는 단계다.

핵심 특징

  • 데이터가 아닌 구조를 다룬다
  • 실행 즉시 반영되는 경우가 많다 (Auto Commit)
  • 롤백이 제한적이다

DDL은 설계 관점의 명령어다.

2. DML (Data Manipulation Language)

DML은 테이블 안의 데이터를 조작하는 언어다.
DDL이 구조를 만든다면, DML은 그 구조 안에서 데이터를 다룬다.

주요 명령어

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

예시

SELECT * FROM users;
INSERT INTO users (user_id, name, created_at)
VALUES (1, 'Kani', '2026-02-12');

핵심 특징

  • 실제 데이터를 다룬다
  • 트랜잭션의 영향을 받는다
  • ROLLBACK이 가능하다

3. DDL과 DML의 차이 정리

구분DDLDML
대상구조데이터
목적설계조작
트랜잭션자동 커밋롤백 가능

핵심은 명확하다.

DDL은 설계,
DML은 활용이다.


4. 데이터베이스 모델링의 의미 🌸

데이터베이스 모델링은
현실 세계의 정보를 논리적으로 구조화하여
테이블 형태로 설계하는 과정이다.

단순히 테이블을 만드는 것이 아니라,
비즈니스 구조를 데이터 구조로 표현하는 작업이라고 이해했다.


5. 데이터 모델링 3단계

  1. 개념적 모델링
  • ERD 작성
  • 엔터티와 관계 정의
  1. 논리적 모델링
  • 속성 정의
  • 기본키(PK) 설정
  • 관계 구체화
  1. 물리적 모델링
  • 실제 테이블 생성
  • 데이터 타입 지정
  • 인덱스 설계

6. ERD의 핵심 요소

  • Entity : 저장 대상 (예: 고객, 주문)
  • Attribute : 세부 정보 (고객ID, 이름 등)
  • Relationship : 엔터티 간 관계

예시:
고객 1 : N 주문

한 명의 고객은 여러 번 주문할 수 있다.
이 관계를 정확히 이해해야 올바른 JOIN이 가능하다.


7. 모델링이 중요한 이유

처음에는 SQL 문법이 더 중요하다고 생각했다.
하지만 모델링을 이해하지 못하면:

  • 잘못된 JOIN이 발생하고
  • 데이터가 중복되거나
  • 분석 결과가 왜곡될 수 있다.

결국 SQL 실력은
구조를 얼마나 이해하고 있는가에 달려 있다고 느꼈다.

8. 데이터 분석 / 마케팅 관점에서의 연결 🌸

마케팅 데이터를 예로 들면,

  • 고객 테이블
  • 캠페인 테이블
  • 반응(이벤트) 테이블

이 세 가지가 어떤 관계를 가지는지 이해해야
정확한 전환율과 성과 분석이 가능하다.

모델링을 이해한다는 것은
단순히 데이터를 조회하는 것이 아니라
비즈니스 흐름을 데이터 구조로 해석하는 능력이라고 생각한다.

정리

  • DDL은 구조를 정의하는 언어
  • DML은 데이터를 조작하는 언어
  • 모델링은 데이터 설계의 사고 과정

앞으로는 단순히 쿼리를 작성하는 것이 아니라,
“이 데이터는 어떤 구조로 설계되었는가?”를 먼저 고민하며 공부하려 한다. 🌸

profile
Code

0개의 댓글