无损连接分解 属性

Lossless Join Decomposition Property

我有以下具有给定函数依赖关系的关系模式 R。因为 R 不在 BCNF 中,所以我试图找到它的无损连接分解。任何人都知道我该如何处理这个问题。提前致谢!

R (SSN, PersonNo, CourseNo, Semester, FacultyName, PersonName, CourseTitle, Credit, Grade)

Functional Dependencies are as follows: 

SSN -> FacultyName;
PersonNo -> PersonName;
CourseNo -> CourseTitle;
(CourseNo, Semester) -> (SSN, Credit);
(CourseNo, Semester, PersonNo) -> Grade

看起来标准规范化就是所需要的。这种关系在 1nf 中似乎微不足道,所以首先,从学生的 POV 来看,参加多门课程意味着与课程相关的一切都是重复的。这意味着 R1( PersonNo, PersonName ) 和 R2( PersonNo, SSN, CourseNo, Semester, FacultyName, CourseTitle, Credit, Grade )。现在 R1 在 2nf 中并且到目前为止它是无损的:R1 X R2 = R.

现在用课程 POV 中的 R2 重复。每个实例化都意味着它所教授的学期、讲授它的教师和参加它的学生都是重复的,这意味着 R2( CourseNo, CourseTitle ) 和 R3( CourseNo, PersonNo, SSN, Semester, FacultyName, Credit, Grade )。

快速继续:R3 标准化为 R3(SSN、FacultyName)、R4(SSN、CourseNo、Semester、PersonNo、Credit、Grade)。

最后到 3nf,R4 到 R4(课程编号、学期、人员编号)、R5(课程编号、学期、人员编号、年级)和 R6(课程编号、学期)、R7(课程编号、学期、SSN、学分)。

这都是手工计算的,所以可能会有一两个差异。但这一切看起来都分为四个实体表:People、Faculty、Courses、类 和三个交集表 PersonClass(以 Grade 作为关系的属性)、FacultyClass(以 Credit 作为关系的属性)和 CourseClass .

如果我错了请纠正我,但看起来 People X PersonClass X Faculty X FacultyClass X Courses X CourseClass X 类 恢复了原来的 R。

所以整个事情是无损的。

理应如此。

除非我完全错过了重要的事情...