[데이터처리와활용] 2강. RDB 설계 기초 정규화 개념 총정리

데이터베이스 설계 기초 — E-R 모델과 정규화 개념 총정리

데이터베이스 설계란?

데이터베이스를 처음 만들 때 가장 중요한 건 어떻게 데이터를 체계적으로 정리할 것인가입니다.
잘못 설계하면 데이터 중복, 오류, 관리 어려움이 생깁니다.
그래서 설계단계에서 현실세계를 데이터로 바꾸는 과정을 꼼꼼하게 하는 게 핵심입니다.

이번 글에서는 E-R 모델 개념부터 정규화 과정까지 한 번에 정리해볼게요!

E-R 모델 (Entity-Relationship Model)

E-R 모델이란?

현실에 존재하는 정보를 개체(Entity)와 개체들 간의 관계(Relationship)로 표현한 모델
즉, 세상의 구조를 데이터로 바꾸는 설계도 같은 것!

E-R 도(E-R Diagram)

E-R 모델을 쉽게 표현하기 위해 만든 그림 형태의 표기법이 바로 E-R 도입니다.

E-R 모델의 데이터 추상화 기법

현실세계를 데이터로 모델링할 때 불필요한 세부사항은 감추고, 핵심만 표현하는 방법을 데이터 추상화라고 합니다.
대표적인 방법은 아래 두 가지입니다.

1️⃣ 일반화/특수화 (Generalization / Specialization)

  • 일반화 : 서로 비슷한 개체 타입에서 공통 속성을 뽑아 상위 개체로 정리

  • 특수화 : 상위 개체 타입을 기준으로 세부적인 개체로 나누는 것

예)

  • 직원과 교수 → 상위개체 : 사람

  • 사람 → 특수화 : 학생, 직원, 교수

2️⃣ 집성화 (Aggregation)

여러 개체 타입 간 관계성을 하나의 상위 개체로 묶어 표현하는 방법

예)

학생, 과목 → ‘수강’ 관계 → ‘수강정보’ 상위 개체로 표현 가능

관계를 마치 개체처럼 취급해서 데이터 설계를 더 유연하게 하는 방식

E-R 도 기반 관계 스키마 생성

현실세계를 E-R 모델로 표현했으면, 이제 그것을 관계형 데이터베이스의 테이블(관계스키마)로 바꿔야합니다.

방법은 아래와 같아요.

1️⃣ 기본 E-R 도 변환

  • 각 개체(Entity) → 테이블

  • 속성(Attribute) → 컬럼

  • 관계(Relationship) → 외래키 활용

2️⃣ 일반화/특수화 변환

  • 상위개체, 하위개체를 테이블로 나눌지

  • 상속 형태로 표현할지 설계자가 선택

예)
사람 테이블 → 학생 테이블, 직원 테이블

3️⃣ 집성화 변환

  • 관계를 테이블로 승격

  • 관련 속성과 연결키 설정

예)
수강 테이블 (학생ID, 과목ID, 수강년도)

정규화 (Normalization)

설계가 끝났다고 바로 쓰면 안됩니다.
데이터의 중복과 이상현상(Anomaly)을 방지하려면 정규화 과정을 거쳐야 합니다.

정규화의 목적

  • 중복 제거

  • 데이터 일관성 유지

  • 데이터 저장 효율화

함수적 종속성 (Functional Dependency)

정규화의 기준이 되는 개념으로
어떤 속성 A의 값이 결정되면, 속성 B의 값이 반드시 결정되는 관계

표기법

ABA \rightarrow B

예)
학번 → 이름, 학과 (학번이 같으면 이름과 학과도 같다)

정규형 (Normal Form)

정규화 과정에서 테이블이 만족해야 할 기준

주요 정규형

정규형 조건
제1정규형(1NF) 모든 속성값이 원자값(Atomic value)
제2정규형(2NF) 1NF 만족 + 부분함수종속 제거
제3정규형(3NF) 2NF 만족 + 이행함수종속 제거

※ 여기까지 정규화하면 웬만한 데이터 이상현상은 해결 가능!

중요 내용 정리

구분 내용
E-R 모델 현실세계를 개체와 관계로 표현
E-R 도 E-R 모델을 그림으로 표현
데이터 추상화 일반화/특수화, 집성화
관계스키마 생성 E-R 모델을 테이블로 변환
정규화 데이터 중복, 이상현상 방지
함수적 종속성 A 값 → B 값 결정
정규형 1NF, 2NF, 3NF

객관식 3문제 + 정답과 해설

Q1. E-R 모델의 구성요소가 아닌 것은?

① 개체
② 관계
③ 속성
④ 프로세스

정답: ④
해설: E-R 모델은 개체, 관계, 속성으로 구성. 프로세스는 없음.

Q2. 일반화(Generalization)에 대한 설명으로 옳은 것은?

① 상위 개체를 세부 개체로 나눈다
② 서로 유사한 개체의 공통 속성을 추출하여 상위 개체로 만든다
③ 관계를 개체로 승격시킨다
④ 관계형 데이터베이스를 테이블로 변환한다

정답: ②
해설: 일반화는 비슷한 개체의 공통 속성을 상위개체로 묶는 것.

Q3. 제2정규형(2NF)을 만족하기 위한 조건으로 옳은 것은?

① 모든 속성값이 원자값
② 부분 함수적 종속 제거
③ 이행 함수적 종속 제거
④ 트랜잭션 동시성 제어

정답: ②
해설: 2NF는 1NF 만족 + 부분 함수 종속을 제거해야 함.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다