← Back to Blog

[데이터베이스] 관계DB 설계

computer science > database

2026-05-303 min read

#Computer Science #Database

관계 데이터베이스에서 정확하게 보면 6단계이지만,
일반적으로 4단계 정도면 설명 가능하다.

정규화 1단계로 갈 수록 제약조건이 약하고, 3.5단계로 갈 수록 제약조건이 강하다.


1NF (제1정규형)

조건

즉, 하나의 칸에 하나의 값만 저장되어야 한다.

정규화 전

학번이름전화번호
1001김민섭010-1234, 010-5678

1NF 후

학번이름전화번호
1001김민섭010-1234
1001김민섭010-5678

2NF (제2정규형)

조건

부분 함수 종속 제거

예를 들어,

학생ID과목ID학생이름과목이름
1DB민섭데이터베이스
1OS민섭운영체제

기본키

(학번, 과목코드)

하나,

학번 --> 학생명
과목코드 --> 과목명

이 성립한다.

즉 키의 일부에만 종속된다.

분해

학생

학생ID학생이름
1민섭

과목

과목ID과목이름
DB데이터베이스
OS운영체제

수강

학생ID과목ID
1DB
1OS

3NF (제3정규형)

조건

여기서 부터 2NF랑 엄청 헷갈리는데 간단하게 짚어보면,
2NF는 기본키에 대해서만 종속성 문제를 해결하고,
3NF는 기본키를 포함해서 모든 값에 대해 종속성 문제를 해결한다.

이행적 함수 종속 제거

학번학과코드학과명
1001CS컴퓨터공학
학번 --> 학과코드
학과코드 --> 학과명

분해

학생

학번학과코드
1001CS

학과

학과코드학과명
CS컴퓨터공학

3.5NF (BCNF, Boyce-Codd Normal Form)

조건

예시

교수과목강의실
홍길동DB101
홍길동OS101

규칙

교수 --> 강의실
과목 --> 강의실

후보키

(교수, 과목)

인데

교수 --> 강의실

에서 교수는 후보가 아니다.
따라서 BCNF 위반이다.


Closure of Functional Dependencies

함수 종속의 집합 FF 가 있다고 하자.
모든 함수 종속성들이 FF 에 의해 적용될 때 F+F^+ 라 할 수 있다.

Armstrong's Axioms

Additional Rules