inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Cơ sở dữ liệu thực chiến của Kim Young-han - Phần 1 Thiết kế, Chinh phục hoàn toàn mô hình hóa dữ liệu hiện đại

Sắp xếp

2NF의 엄밀한 정의

76

k454656922662

19 câu hỏi đã được viết

0

2NF를 충족하기 위한 조건은 다음과 같은 것으로 알고 있습니다.

 

예를 들어 수강 테이블의 컬럼이 다음과 같다고 할 때,

후보 키:

 

(student_id, course_id)는 복합 후보 키이고,

student_id -> student_name (부분 함수 종속)이므로 2NF에 위배되지 않나요?

따라서 대리 키만 써도 2NF에 위배되는 일이 발생할 수 있다고 생각합니다.

 

아니면, 실무에서는 2NF의 정의를 기본 키에만 한정하여 2NF를 만족하는 것으로 보나요?

 

 

 

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 매콤한각설탕님.

2NF(제2 정규형)는 제1 정규형을 만족하면서 모든 비프라이머리 속성이 테이블의 모든 후보 키에 대해 완전 함수 종속해야 한다는 조건을 만족해야 합니다. 후보 키란 테이블의 각 행(row)을 유일하게 식별할 수 있는 모든 키를 의미하며, 복합 후보 키가 있을 경우 해당 후보 키 전체에 완전 종속되어야 2NF를 만족한다고 볼 수 있습니다.

질문에서 주신 예시를 보면 student_id -> student_name 의 부분 함수 종속성이 있어 복합 후보 키 (student_id, course_id)에 대해 완전 함수 종속성을 만족하지 않기 때문에 2NF에 위배됩니다. 즉, 비프라이머리 속성인 student_name이 복합 키 전체에 종속되지 않고 그 일부인 student_id에만 종속되어 있으므로 이는 2NF를 충족하지 않는 상태입니다.

실무에서 대리 키를 사용하여도, 동일한 후보 키의 함수적 종속성을 염두에 두어야 하며, 2NF의 정의를 후보 키 전체에 대해 따르는 것이 일반적입니다. 따라서, 대리 키를 사용하더라도 후보 키 구성 요소 전체에 대해 정규화를 고려하는 것이 바람직합니다.

데이터 모델에서 비프라이머리 속성이 복합 후보 키의 일부에 종속되지 않도록 하여 모든 후보 키에 대한 완전 함수 종속을 확인함으로써 2NF를 만족할 수 있습니다.

이와 관련된 질문이 많으니 아래의 링크를 통해 더 많은 정보를 얻으실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

용어 사전

0

16

1

개념적 모델링 - 실습

0

21

1

DB 설계와 JPA 관련 질문입니다

0

26

1

아주 작은 정오표 전달드립니다.

0

60

2

실제로 작은 기업에서 기획 롤

1

31

1

order_product 까마귀발

0

48

2

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

0

57

1

자연키 vs 대리키 실무질문

0

28

1

1:N 관계에서 중간테이블 (연관엔티티)

0

58

2

일대일 fk 위치

0

47

1

제 3 정규형 vs BCNF 정규형 차이점?

0

115

3

BCNF 질문

0

80

2

연관 엔티티 네이밍 규칙

0

54

1

진짜 강의 듣는거 너무 고문

0

148

1

28강 sql 파일 어딨나여?

0

94

1

comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.

0

132

4

학습중인 수업자료를 받아볼 수 있을까요??

0

103

2

수업자료 pdf파일관련 건의 - 제목 링크위치 개선

0

92

2

서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문

1

110

2

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

0

82

1

슈퍼/서브 타입 joined 전략

0

74

2

created_at 관련 구현과 DB ENUM에 대해

0

75

1

M:N 관계의 연관 엔티티 설계 순서

0

81

2

데이터 역사성 훼손 문제

0

68

2