Day1-1 데이터 모델의 이해

손주완·2026년 6월 20일

데이터 모델의 이해

정의

데이터 모델이란 현실 세계의 복잡한 정보를 컴퓨터에 저장하기 위해 그린 설계 도면이다

데이터 모델링의 3단계

추상적 개념 -> 구체적 구현 단계로 진행된다.
쉽게 암기 - '개-논-물'

Step1. 개념적 데이터 모델링
데이터 요구 사항을 분석해, 핵심 엔터티와 그들 간의 관계를 나타내는 ERD를 생성

Step2. 논리적 모델
속성, PK, FK 채움 + 정규화. DBMS와 무관

Step3. 물리적 모델
CREATE TABLE + 인덱스,파티션,자료형 명시

Step4. 데이터베이스
데이터가 차곡차곡 쌓인 상태. SQL로 조회,입력,수정

추가 개념 알 것들 - DBMS, 속성, PK, FK, 정규화화

DBMS란?
DBMS = Database Management System
말 그대로 데이터베이스를 관리해주는 소프트웨어임.
Oracle, MySQL 같은거

속성, PK, FK란?
속성 = 필드/칼럼 후보. 엔터티 세부 정보. (EX. 학생의 이름, 학과, 후보 등)
PK = Primary Key = 주식별자. ID 정도로 기억해두면 됨
FK = Foreign Key = 외래식별자. 다른 테이블의 PK를 참조하는 컬럼

FK 상세 예시

학생 테이블

학생ID(PK) | 이름
----------|------
202401    | 김철수
202402    | 이영희

수강 테이블

수강ID(PK) | 학생ID(FK) | 과목명
----------|------------|------
1         | 202401     | 데이터베이스
2         | 202402     | 운영체제
3         | 202401     | 알고리즘

여기서 수강.학생ID는 FK.

정규화는?
정규화 = 테이블을 잘 쪼개서 중복과 이상현상을 줄이는 과정
한 테이블에 전부 때려박지 말고, 쪼개서 별도 테이블로 나누는 것.

정규화 상세 예시

수강정보라는 아래 테이블이 있다면

학생ID학생명과목ID과목명교수명
202401김철수C001데이터베이스홍길동
202402이영희C001데이터베이스홍길동
202403박민수C002운영체제이몽룡

이를 학생/과목/수강 테이블로 쪼갤 수 있음

학생

학생ID(PK) | 학생명
----------|------
202401    | 김철수
202402    | 이영희
202403    | 박민수

과목

과목ID(PK) | 과목명       | 교수명
----------|--------------|------
C001      | 데이터베이스 | 홍길동
C002      | 운영체제     | 이몽룡

수강

학생ID(FK) | 과목ID(FK)
----------|----------
202401    | C001
202402    | C001
202403    | C002

정규화의 목적?

1. 데이터 중복 감소
2. 데이터 불일치 방지
3. 삽입 이상 방지
4. 삭제 이상 방지
5. 갱신 이상 방지

1,2는 위에서 다루었고,

3,4,5는

갱신 이상

같은 정보가 여러 곳에 있어서 하나만 수정되면 데이터가 불일치하는 문제.

C001 과목명이 어떤 행은 데이터베이스,어떤 행은 DB로 저장됨

삽입 이상

불필요한 정보가 없으면 필요한 정보를 넣지 못하는 문제.

아직 수강생이 없는 과목은 등록 못 함

삭제 이상

어떤 데이터를 삭제했더니 보존해야 할 정보까지 같이 사라지는 문제.

마지막 수강생을 삭제했더니 과목 정보도 사라짐

데이터 모델링의 3가지 관점

  1. 데이터 관점
  2. 프로세스 관점
  3. 상관관계 관점

1은 무엇을 저장할지. 어떤 테이블? 컬럼? 테이블끼리의 관계? 를 생각하는 관점
2는 어떻게 처리할지. 이건 게시판으로 따지자면 글을 쓰고 수정하고 삭제될때의 유저 플로우 관점
3은 언제 데이터가 변하는지. 1과 2가 어우러져서, 어떤 프로세스에 어떤 데이터가 CRUD 되는지 보는 것임

좋은 데이터 모델의 특징

특징핵심 의미키워드
완전성필요한 데이터가 빠지면 안 됨빠짐없음
중복 배제같은 사실을 반복 저장하면 안 됨한 번만 저장
업무 규칙업무 제약조건이 반영되어야 함규칙, 제약
데이터 재사용여러 업무에서 다시 쓸 수 있어야 함재사용
의사소통사람들이 모델로 같은 의미를 이해해야 함공유, 소통
통합성같은 데이터는 전사적으로 하나로 관리통합 관리

중복 배제 VS 통합성

중복 배제
= 같은 DB/모델 안에서 동일한 사실을 반복 저장하지 말자

통합성
= 조직 전체에서 같은 의미의 데이터를 하나로 통합 관리하자

업무 규칙 vs 의사소통

업무 규칙
= 업무의 제약조건이 모델에 표현됨

의사소통
= 그 모델을 보고 사람들이 같은 의미로 이해함

3층 스키마 (ANSI/SPARC)

3층 스키마
├─ 외부 스키마
│  └─ 사용자별 관점, View
│
├─ 개념 스키마
│  └─ 전체 DB의 논리적 구조
│
└─ 내부 스키마
   └─ 실제 저장 방식, 인덱스, 파일 구조

이것도 같은 데이터베이스를 세 가지 관점에서 본 것이다.

외부 -> 개념 -> 내부로 갈 수록 말 그대로 외부 인터페이스에서 내부 시스템으로 들어가는 것임

외부 = 사용자별 관점
개념 = 데이터 아키텍처
내부 = 데이터 관계

정도로 생각하면 된다

데이터 독립성 2가지
1. 논리적 독립성 - 개념 스키마가 변경되어도 외부 스키마는 영향이 없어야 함
2. 물리적 독립성 - 내부 스키마가 변경되어도 개념/외부 스키마는 영향이 없어야 함함

0개의 댓글