如何根据此案例研究确定功能依赖性和候选键?
课程模块,可由讲师,学生或访客进行 用户。课程模块由主题代码和主题名称组成。什么时候 admin创建课程,它将存储课程ID,主题代码,讲师 ID,课程名称和.....
学生必须报名参加 课程和课程注册包括注册ID,学生 信息,注册日期,完成日期......
基于我的假设,Course ID -> {subject code, subject name}
但同时
Admin ID -> (Course ID, subject code, lecturer ID, course name, course description, course category)
这是不正确的,因为我需要在管理模块上编写另一个功能依赖?
答案 0 :(得分:1)
首先,我们确定我们感兴趣的应用关系。例如"用户[用户ID]有角色讲师"或者"用户[用户ID]具有名字[名字]和密码[密码]和......"。
每个都获得一个基本关系,该关系包含与该方式相关的值行。关系的应用关系的参数是其属性。例如讲师(用户ID)或用户(用户ID,名字,密码......)。
对于每个关系,其应用关系的含义为每列确定它在功能上依赖的列集。例如:给定用户[用户ID]具有名字[名字]和密码[密码]和...,如果您知道用户ID,那么您知道名字吗?如果有,则有FD {用户ID} - > {名字}。如果你知道用户名和密码,你知道名字吗?对于每个关系和每组(可能确定的)属性和每个(可能确定的)属性等等。
然后我们找到了最小的封面。这确定了候选键。
因此,如果您想要对这些步骤提供一些反馈,请执行此操作。