인프런 커뮤니티 질문&답변
제 3정규화 관련 질문
작성
·
19
답변 3
0
교재를 보시면 아래의 테이블은 제2정규화가 완료된 테이블입니다.

이 테이블은 과목과 개설과목의 성격을 모두 가지고 있습니다. 왜냐하면 과목 테이블과 + 담당교수가 함께 있기 때문이죠. 개설과목의 성격을 가진 이 테이블에서 개설과목ID 가 없는 상태입니다. 때문에 담당교수가 과목명을 결정하게 됩니다. 그래서 이행함수 종속성의 성격이 발생하는 데요. (현재 한 과목을 두 명의 교수가 담당하는 경우가 있어서 담당교수가 과목명을 결정하는 구조도 아닙니다. 이 조건이 충족하려면 하나의 과목은 한명의 교수가 담당한다는 제약이 있으면 가능합니다.)
그렇기 때문에 과목과 개설과목을 분리해야 합니다.
교안의 설명이 다소 부족한 것으로 보입니다. 해당 내용은 보완을 해두겠습니다.
[보완설명]
현재 [과목] 테이블은 [개설과목]의 성격을 띠고 있으나 고유한 개설과목 식별자(ID)가 없다. 이로 인해 담당교수와 과목명이 직접 연결된 구조를 보인다. 만약 ‘하나의 과목은 한 명의 교수만 개설할 수 있다’라는 제약 조건이 있다면 교수가 과목을 결정하는 구조가 성립한다. 이때는 개설과목 → 담당교수 → 과목명으로 이어지는 이행함수 종속이 발생할 수 있다.
하지만 현재 구조는 하나의 과목을 두 명의 교수가 개설하고 있으므로 교수와 과목명 사이에는 이행함수 종속이 성립하지 않는다. 오히려 [개설과목]의 성격을 가진 이 엔터티에서 과목ID는 일반속성이 되기 때문에 개설과목ID → 과목ID → 과목명의 이행함수 종속이 발생하게 된다.
감사합니다.
0
0
네. 맞습니다. 현재 구조로는 알기 어렵습니다. 만약 하나의 과목은 한 명의 교수가 개설할 수 있다는 제약 조건이 붙는다면 가능한데, 현재는 제약조건이 안 붙어 있기 때문입니다.







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