国开《数据库基础与应用》第二章 2-1-4:广义码
2-1-4:广义码
广义码是关系中各种与码有关的属性或属性组的总称,可以被细分为超码、候选码、主码(码)、备用码、外码等5种。
超码(super key)是关系中能够区别每个元组的属性或属性组。
候选码(candidate key)是能够区别每个元组的一个属性或最少属性组合。
主码(primary key)简称码,从候选码中选择一个作为该关系的主码。
备用码(alternate key)是关系中除主码之外的所有其他的候选码。
例如:设一个关系R为(学生号,姓名,性别,年龄,专业,身份证号),学生号和身份证号合起来可以构成该关系的超码。如(学生号,姓名)、(学生号,专业)等属性组都是R关系中的一个超码。
外码(foreign key),它在关系R1中存在而在另一个关系R2中对应为主码。R1中的外码和R2中的主码必须定义在相同的域上,使用相同或不同的属性名。
例如:设学生关系为(学生号,姓名,性别,班级号),班级关系为(班级号,班级名,班主任),学生关系中的班级号属性在班级关系中是主码,班级号是学生关系中的外码。若把班级关系修改为(班级号,班级名,班主任,班长)。
主属性和非主属性
把存在于任何候选码中的属性称为主属性,其他的任何属性被称为非主属性。
例如:在学生关系中,学生号和身份证号都为主属性,剩余的姓名、性别、班级号等都是非主属性。在学生选课的关系中,学生号和课程号合起来构成惟一的侯选码,所以,学生号和课程号都是主属性,而剩余的考试成绩为非主属性。