如何根据此案例研究确定功能依赖性和候选键?
课程模块,可由讲师,学生或访客执行
用户。课程模块由学科代码和学科名称组成。什么时候
管理员创建课程,它将存储课程ID,主题代码,讲师
ID,课程名称和.....
学生必须报名参加
课程和课程注册包括注册ID,学生
信息,注册日期,完成日期和...
根据我的假设,Course ID -> {subject code, subject name}
但在同一时间
Admin ID -> (Course ID, subject code, lecturer ID, course name, course description, course category)
这会以某种方式正确吗,因为我将需要在管理模块上编写另一个功能依赖项?
最佳答案
首先,我们确定我们感兴趣的应用程序关系。例如,“用户[用户ID]具有角色讲师”或“用户[用户ID]具有名[名字]和密码[密码]和...”。
每个对象都获得一个基本关系,该关系包含以这种方式相关的值的行。关系的应用程序关系的参数是其属性。例如,讲师(用户ID)或用户(用户ID,名字,密码等)。
对于每个关系,其应用关系的含义为每个列确定其在功能上依赖于哪些列集。例如:给定用户[用户ID]有名字[名字]和密码[密码]和...,如果您知道用户ID,那么您知道名字吗?如果是这样,则有FD {用户ID}-> {名字}。如果您知道用户名和密码,您知道名字吗?对于每个关系和(可能确定的)每组属性以及(可能确定的)每一个属性,依此类推。
然后,我们为此找到了一个最小的掩护。这确定候选密钥。
因此,如果您想对这些步骤提供一些反馈,请执行。
关于mysql - 查找功能依赖性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26796963/