主码=主键=主关键字,关键字=候选码 候选关键字=候选码中除去主码的其他候选码
码:唯一标识实体的属性或属性组合称为码
候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组)
主属性:候选码包含的属性(一个或多个属性)
候选码:候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的。
主码:既然id都可以做候选码了,那么id和name这两个属性的组合可不可以唯一区别一个元组呢?显然是可以的,此时的id可以成为码和候选码,id和name的组合也可以成为码,但不能称之为候选码,因为即使去掉name属性,剩下的id属性也完全可以唯一标识一个元组。
就是说,候选码中的所有属性都是必须的,缺少了任何一个属性,就不能唯一标识一个元组了,给候选码下一个精确的定义就是:可以唯一标识一个元组的最少的属性集合。另外,一个表的候选码可能有多个,从这些个候选码中选择一个做为主码,至于选择哪一个候选码,这个是无所谓的,只要是从候选码中选的就行。
主属性:候选码中的任一属性都可以称之为主属性学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),有两个候选码:【学号】和【身份证号】,故学号、身份证号都可以称为主属性,但任意一个主属性不一定可以唯一标识表中的一行数据