数据库——候选码、超码等码的概念

    科技2024-04-16  8

    在学习码的概念之前,我们必须掌握数据库函数依赖的相关概念。数据库函数依赖的概念

    举栗子🌰:假设我们有一个关系模式:S(Sno,Sid,Sname,Cno,Grade),其中Sid表示的是学生的身份证号码。

    1、候选码(Candidate Key):若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。 用人话来解释:想要知道某位学生的某门课程的成绩Grade,那我们必须要知道该学生的学号Sno以及课程号Cno。此时X[Sno,Cno]称为S的一个候选码。 当然,因为Sid也是唯一的,也就是说[Sid,Cno]也是可以映射到唯一的Grade、Sname、Sno,所以[Sid,Cno]也是候选码。 这也说明了候选码可以存在多个,这时候我们取其中一个作为主码就可以了。

    2、超码(Surpkey):是指一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一地标识一个实体。 留意到”超码“说的是一个集合,也就说[Sno,Cno]是一个超码,[Sno,Sid,Cno]也是一个超码,甚至[Sno,Sid,Sname,Cno,Grade]也是一个超码。也就是说,只要你能唯一表出一个元组,那你就是超码!很明显,候选码是最小的超码。

    主属性(Prime attribute):包含在任意一个候选码中的属性。 🌰如:Sno,Sid,Cno 非主属性(Nonprime attribute):不包含在任何一个候选码中的属性。 🌰如:Sname,Grade

    注:主码、外码在此不做介绍。

    Processed: 0.013, SQL: 9