제3정규형(2NF) 총정리

제3정규형(3NF)

제3정규형(3NF), 제2 정규형(2NF)을 만족하는 상태에서, 이행 종속성을 제거하여 데이터를 더욱 체계적으로 관리하는 데 중점을 둡니다. 이 과정은 데이터베이스의 무결성을 높이고 중복을 줄이는 데 중요한 역할을 합니다.

제3 정규형의 정의

제3 정규형은 다음 조건을 만족해야 합니다:

  1. 제2 정규형(2NF)을 만족해야 합니다. 기본 키에 대해 부분 종속성이 없어야 하며, 모든 컬럼은 기본 키 전체에 종속되어야 합니다.

  2. 이행 종속성(Transitive Dependency)이 없어야 합니다. 기본 키가 아닌 속성이 다른 기본 키가 아닌 속성에 종속되어서는 안 됩니다. 즉, 비기본 키 속성들은 오직 기본 키에만 종속되어야 합니다.

이행 종속성의 이해

이행 종속성이란 A → B, B → C가 성립할 때, A → C의 관계가 존재하는 경우를 말합니다. 이는 데이터베이스에서 불필요한 중복과 무결성 문제를 유발할 수 있습니다.

예시

3NF 적용 전

다음은 제2 정규형을 만족하지만, 이행 종속성이 존재하는 테이블의 예시입니다:

주문번호 고객ID 고객명 고객주소
1 101 김철수 서울
2 102 이영희 부산
3 103 박민수 대전

문제점

  1. ‘고객명’과 ‘고객주소’는 ‘고객ID’에 종속되어 있지만, ‘주문번호’와는 직접적인 관계가 없습니다.

  2. 이행 종속성이 존재하므로, 고객 정보를 수정할 때 여러 행을 변경해야 하는 비효율성이 발생합니다.

3NF 적용 후

제3 정규형을 적용하면 테이블을 다음과 같이 나눌 수 있습니다:

주문 테이블

주문번호 고객ID
1 101
2 102
3 103

고객 테이블

고객ID 고객명 고객주소
101 김철수 서울
102 이영희 부산
103 박민수 대전

개선점

  1. 고객 정보를 별도의 테이블로 분리하여 이행 종속성을 제거했습니다.

  2. 데이터 중복이 줄어들고, 데이터 수정 및 관리가 더 간단해졌습니다.

3NF 적용 과정

  1. 이행 종속성 식별: 기본 키 외의 속성들 간에 종속 관계가 있는지 확인합니다. 위 예시에서는 ‘고객명’과 ‘고객주소’가 ‘고객ID’에 종속됩니다.

  2. 테이블 분리: 종속 관계에 있는 데이터를 별도의 테이블로 나누어 저장합니다.

  3. 참조 관계 설정: 분리된 테이블 간 관계를 유지하기 위해 외래 키를 설정합니다.

3NF 적용의 장점과 단점

장점

  1. 데이터 중복 최소화: 이행 종속성을 제거하여 데이터베이스의 효율성을 높입니다.

  2. 데이터 무결성 보장: 각 속성이 독립적으로 관리되므로, 데이터 불일치 문제를 방지할 수 있습니다.

  3. 유지보수 용이: 데이터 구조가 체계적으로 정리되어 유지보수가 쉬워집니다.

단점

  1. 테이블 증가: 데이터를 분리하면서 테이블 수가 늘어나 데이터베이스 관리가 복잡해질 수 있습니다.

  2. 조인 연산 증가: 분리된 데이터를 조회하기 위해 추가적인 조인 연산이 필요합니다.

결론

제3 정규형은 데이터베이스 정규화의 중요한 단계로, 데이터를 체계적으로 정리하고 이행 종속성을 제거하여 중복을 줄이는 데 중점을 둡니다. 실무에서는 데이터베이스의 성능과 요구 사항을 고려하여 3NF를 적용하며, 필요에 따라 비정규화(De-normalization)도 활용하여 효율성을 극대화할 수 있습니다.

제2정규형(2NF) 총정리

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] 3차 정규형(3NF): 이행 종속성 제거 […]

Loading...