2NF의 엄밀한 정의
65
작성한 질문수 17
2NF를 충족하기 위한 조건은 다음과 같은 것으로 알고 있습니다.
제1 정규형을 만족하고,
모든 컬럼이
후보 키전체에 완전 함수 종속되어야 한다.
예를 들어 수강 테이블의 컬럼이 다음과 같다고 할 때,
id: PK [대리 키]
student_id: UK1 [자연 키]
course_id: UK1 [자연 키]
student_name [일반 컬럼]
후보 키:
id [기본 키 - 단일 후보 키]
(student_id, course_id) [대체 키 - 복합 후보 키]
(student_id, course_id)는 복합 후보 키이고,
student_id -> student_name (부분 함수 종속)이므로 2NF에 위배되지 않나요?
따라서 대리 키만 써도 2NF에 위배되는 일이 발생할 수 있다고 생각합니다.
아니면, 실무에서는 2NF의 정의를 기본 키에만 한정하여 2NF를 만족하는 것으로 보나요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 매콤한각설탕님.
2NF(제2 정규형)는 제1 정규형을 만족하면서 모든 비프라이머리 속성이 테이블의 모든 후보 키에 대해 완전 함수 종속해야 한다는 조건을 만족해야 합니다. 후보 키란 테이블의 각 행(row)을 유일하게 식별할 수 있는 모든 키를 의미하며, 복합 후보 키가 있을 경우 해당 후보 키 전체에 완전 종속되어야 2NF를 만족한다고 볼 수 있습니다.
질문에서 주신 예시를 보면 student_id -> student_name 의 부분 함수 종속성이 있어 복합 후보 키 (student_id, course_id)에 대해 완전 함수 종속성을 만족하지 않기 때문에 2NF에 위배됩니다. 즉, 비프라이머리 속성인 student_name이 복합 키 전체에 종속되지 않고 그 일부인 student_id에만 종속되어 있으므로 이는 2NF를 충족하지 않는 상태입니다.
실무에서 대리 키를 사용하여도, 동일한 후보 키의 함수적 종속성을 염두에 두어야 하며, 2NF의 정의를 후보 키 전체에 대해 따르는 것이 일반적입니다. 따라서, 대리 키를 사용하더라도 후보 키 구성 요소 전체에 대해 정규화를 고려하는 것이 바람직합니다.
데이터 모델에서 비프라이머리 속성이 복합 후보 키의 일부에 종속되지 않도록 하여 모든 후보 키에 대한 완전 함수 종속을 확인함으로써 2NF를 만족할 수 있습니다.
이와 관련된 질문이 많으니 아래의 링크를 통해 더 많은 정보를 얻으실 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
BCNF 질문
0
48
2
연관 엔티티 네이밍 규칙
0
39
1
진짜 강의 듣는거 너무 고문
0
110
1
28강 sql 파일 어딨나여?
0
77
1
comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.
0
104
3
학습중인 수업자료를 받아볼 수 있을까요??
0
91
2
수업자료 pdf파일관련 건의 - 제목 링크위치 개선
0
79
2
서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문
1
95
2
실무적인 설계로 접근했을 때 제 2정규형 항상 만족?
0
70
1
슈퍼/서브 타입 joined 전략
0
64
2
created_at 관련 구현과 DB ENUM에 대해
0
64
1
M:N 관계의 연관 엔티티 설계 순서
0
66
2
데이터 역사성 훼손 문제
0
60
2
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
0
77
1
구글이 이메일 변경을 허용하는 이유
0
117
1
order_item 테이블 (order_id, product_id) 유니크 제약조건 누락
0
97
2
BCNF 정규화에 대한 질문
0
117
2
주문, 결제 엔티티의 분류
1
111
1
실무에서의 복수 항목에 대한 관리 방법이 궁금합니다.
0
86
1
역할 및 발생 시점에 따른 엔티티 분류
0
82
1
대리키의 외부 노출에 대한 질문을 하고 싶습니다.
0
104
2
소프트 딜리트 정책에서 유니크 컬럼 중복 방지 전략
0
91
1
대리키 사용과 정규화
1
104
2
강의자료 까마귀발 잘못된거 아닌가요?
1
123
2





