DBMS中的规范化

时间:2014-04-28 13:49:13

标签: database

以下关系是1NF还是非标准化?根据我的说法,这是非标准化的,因为属性RoomRoom_capcity是重复的组,违反了1NF的属性。关系:

Teacher := <Course, Professor, Room, Room_capacity, Enrolment_limit>

此处Course唯一标识所有其他属性,Room唯一标识Room_capacity。也就是说,如果在同一个房间内进行了不同的课程,则会一次又一次地重复房间和room_capacity值。
每门课程都有入学限制,每门课程可由多位教授同时在不同的房间教授。

2 个答案:

答案 0 :(得分:0)

它可能是非标准化的,但您描述中的某些内容对我来说并不清楚。

如果有一个&#34; CS101&#34;不同的教授可以在不同的房间里教导吗?如果他们可以<Course, Professor, Room>进行标准化,因为您无法从任何其他方面唯一地确定该行的元素。

Room可能唯一地确定Room_capacity,但不清楚它是否唯一地确定了Enrolment_limit。例如,琼斯教授可以允许30名学生参加她的CS101课程,但史密斯教授可能只允许20名学生注册,即使该房间可以容纳30名学生。

如果您想澄清说明,请修改您的问题。

答案 1 :(得分:0)

这取决于数据(元组)。

对于处于 1NF 中的关系,它不应具有任何 MULTIVALUE 属性。例如,电话号码(一个人可以输入 2 个电话号码)。它将在 1 个元组中有 2 行,这表明它不是 1NF。

这里,看到你的属性<课程,教授,房间,房间容量,注册限制>。课程是上面给出的主键。这意味着如果只有雷迪教授和普拉迪普教授教授课程“CS101”,那么除了这两个教授之外,其他任何教授都不会教授该课程,因为主键不允许。

如果在您的关系中,任何单个元组有 2 位教授在同一个元组中教授 1 门课程,则该关系不属于 1 NF。

如果在你的关系中,每个属性中的每个元组只允许 1 个值,那么它是 1NF。例如 <"CS103" , "prof Reddy","A51",300,200>

如果您以行形式提供您的数据,那么我们可以回答。