
정답
부분 종속 속성 쌍: (사번 → 이름), 정규형: 제2정규형(2NF), BCNF 분해 후보키: {사번}, {프로젝트명}
출제 의도
복합 기본키를 갖는 릴레이션에서 부분 종속을 식별하고 이를 제거했을 때 만족하는 정규형을 판단할 수 있는지, 또한 요구사항 변화에 따라 함수적 종속을 분석하여 BCNF 분해를 위한 후보키를 도출할 수 있는지를 평가한다.
풀이 과정
릴레이션 직원의 기본키는 (사번, 프로젝트명)이다. 요구사항에 따르면 사번은 직원에게 부여되는 고유 값이므로 이름과 연락처는 사번에 의해서만 결정된다. 즉, 이름과 연락처는 전체 기본키가 아니라 기본키의 일부인 사번에만 종속된다.
따라서 부분 종속의 예로는 (사번 → 이름) 또는 (사번 → 연락처)가 성립하며, 이 중 한 쌍으로 (사번 → 이름)을 쓸 수 있다. 이러한 부분 종속이 존재하므로 해당 릴레이션은 제1정규형은 만족하지만 제2정규형은 만족하지 못한다.
부분 종속을 제거하여 사번을 기본키로 하는 직원(사번, 이름, 연락처, 멘토사번, 평가부서)와 (사번, 프로젝트명, 예산) 등의 릴레이션으로 분해하면 제2정규형을 만족하게 된다.
마지막으로 요구사항을 ‘직원별로 한 명 이상의 멘토들이 존재하며’로 수정하면, 멘토사번이 사번을 결정하지 않고 다대다 관계가 된다. 이때 함수적 종속을 기준으로 BCNF 분해를 고려하면, 각각의 릴레이션에서 결정자가 되는 최소 속성 집합으로서 {사번}과 {프로젝트명}을 후보키로 들 수 있다.
<풀이가 부정확할 수 있으니 반드시 교차검증 확인 바랍니다.>