강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

김진님의 프로필 이미지
김진

작성한 질문수

[2026] 비전공자도 한 번에 합격하는 SQLD 올인원

정규화

제 3정규화 관련 질문

작성

·

19

0

  • 아래 빨간색 박스에 해당하는 내용이 이해가 되지 않아서 여쭤봅니다.

image.png

 

  • 아래 과목 테이블을 보시면, 과목명 (미적분)을 알아도 담당교수가 홍길동인지 나적분인지 모르는데 , A -> B 함수 종속이 어떻게 이루어지는건지 모르겠습니다.

image.png

 

답변 3

0

교재를 보시면 아래의 테이블은 제2정규화가 완료된 테이블입니다.

image.png

 

이 테이블은 과목과 개설과목의 성격을 모두 가지고 있습니다. 왜냐하면 과목 테이블과 + 담당교수가 함께 있기 때문이죠. 개설과목의 성격을 가진 이 테이블에서 개설과목ID 가 없는 상태입니다. 때문에 담당교수가 과목명을 결정하게 됩니다. 그래서 이행함수 종속성의 성격이 발생하는 데요. (현재 한 과목을 두 명의 교수가 담당하는 경우가 있어서 담당교수가 과목명을 결정하는 구조도 아닙니다. 이 조건이 충족하려면 하나의 과목은 한명의 교수가 담당한다는 제약이 있으면 가능합니다.)

 

그렇기 때문에 과목과 개설과목을 분리해야 합니다.

교안의 설명이 다소 부족한 것으로 보입니다. 해당 내용은 보완을 해두겠습니다.

 

[보완설명]

  • 현재 [과목] 테이블은 [개설과목]의 성격을 띠고 있으나 고유한 개설과목 식별자(ID)가 없다. 이로 인해 담당교수와 과목명이 직접 연결된 구조를 보인다. 만약 ‘하나의 과목은 한 명의 교수만 개설할 수 있다’라는 제약 조건이 있다면 교수가 과목을 결정하는 구조가 성립한다. 이때는 개설과목 → 담당교수 → 과목명으로 이어지는 이행함수 종속이 발생할 수 있다. 

  • 하지만 현재 구조는 하나의 과목을 두 명의 교수가 개설하고 있으므로 교수와 과목명 사이에는 이행함수 종속이 성립하지 않는다. 오히려 [개설과목]의 성격을 가진 이 엔터티에서 과목ID는 일반속성이 되기 때문에 개설과목ID → 과목ID → 과목명의 이행함수 종속이 발생하게 된다.

 

 

감사합니다.

 

 

 

0

김진님의 프로필 이미지
김진
질문자

그리고 담당교수가 과목명을 결정하는게 아니라, 과목 ID + 담당 교수로 과목명이 결정되는게 맞지 않나요??

 

현재 엔터티는 과목과 개설과목의 성격을 모두 가지고 있기 때문에, 과목ID + 담당 교수가 과목명을 결정한다는 설명이 적합해보일 수 있습니다. 교안의 설명이 충분치 못해서 발생한 문제입니다.

 

이 엔터티를 개설과목엔터티로 본다면 과목id 가 과목명을 결정하는 구조로 볼 수 있습니다. 이때 과목id는 개설과목 엔터티의 일반속성이 됩니다.

0

김진님의 프로필 이미지
김진
질문자

A -> B : A를 알면 B가 결정되어야 하는건데, 미적분을 알아도 담당교수가 결정되는게 어렵지 않나요?? ( 미적분 담당교수가 홍길동/나적분이기 때문 )

네. 맞습니다. 현재 구조로는 알기 어렵습니다. 만약 하나의 과목은 한 명의 교수가 개설할 수 있다는 제약 조건이 붙는다면 가능한데, 현재는 제약조건이 안 붙어 있기 때문입니다.

김진님의 프로필 이미지
김진

작성한 질문수

질문하기