下面给出候选码的形式化定义 设关系R有属性A1,A2,…An,其属性集K=(Ai A ●● Ak),当且仅当满足下列条件时,K被称为 候选码: 1.唯一性( Uniqueness):关系R的任意两个不同元组,其属 性集K的值是不同的 2最小性( Minimally):组成关系键的属性集(Ai, Al Ak)中,任一属性都不能从属性集K中删掉,否则将 破坏唯一性的性质 例如:“学生关系”中的每个学生的学号是唯一的,“选课关 系”中“学号+课程号”的组合也是唯一的。对于属性集“学 号+课程号”去掉任一属性,都无法唯一标识选课记录
21 下面给出候选码的形式化定义: ➢ 设关系R有属性A1,A2,……An,其属性集K=(Ai, Aj,……Ak),当且仅当满足下列条件时,K被称为 候选码: 1. 唯一性(Uniqueness):关系R的任意两个不同元组,其属 性集K的值是不同的。 2. 最 小 性 ( Minimally ) : 组 成 关 系 键 的 属 性 集 ( Ai , Aj,……Ak)中,任一属性都不能从属性集K中删掉,否则将 破坏唯一性的性质 ➢ 例如:“学生关系”中的每个学生的学号是唯一的, “选课关 系”中“学号+课程号” 的组合也是唯一的。对于属性集“学 号+课程号” 去掉任一属性,都无法唯一标识选课记录
>如果一个关系中有多个候选码,可以从中选择一个作为 査询、插入或删除元组的操作变量,被选用的候选键称 为主码( Primary Key),或称为主键、关键字。 例如,假设在学生关系中没有重名的学生,则“学号”和“姓 名”都可作为学生关系的候选键。如果选定“学号”作为数据 操作的依据,则“学号”为主关系键 主码是关系模型中的一个重要概念。每个关系必需选择 个主码,选定以后,不能随意改变。每个关系必定有 且仅有一个主码,因为关系的元组无重复,至少关系的 所有属性的组合可作为主码
22 ➢ 如果一个关系中有多个候选码,可以从中选择一个作为 查询、插入或删除元组的操作变量,被选用的候选键称 为主码(PrimaryKey),或称为主键、关键字。 ➢ 例如,假设在学生关系中没有重名的学生,则“学号”和“姓 名”都可作为学生关系的候选键。如果选定“学号”作为数据 操作的依据,则“学号”为主关系键。 ➢ 主码是关系模型中的一个重要概念。每个关系必需选择 一个主码,选定以后,不能随意改变。每个关系必定有 且仅有一个主码,因为关系的元组无重复,至少关系的 所有属性的组合可作为主码
24.2主属性与非主属性 主属性( Prime Attribute):包含在主码中的的各属 性称为主属性。 非主属性(Non- Prime Attribute):不包含在任何候 选码中的属性称为非码属性。 >在最简单的情况下,一个候选码只包含一个属性,如 学生关系中的“学号”,教师关系中的“教师号” 在最极终端的情况下,所有属性的组合是关系的候选 码,这时称为全码(al-key)
23 2.4.2 主属性与非主属性 ➢ 主属性(Prime Attribute):包含在主码中的的各属 性称为主属性。 ➢ 非主属性(Non-Prime Attribute):不包含在任何候 选码中的属性称为非码属性。 ➢ 在最简单的情况下,一个候选码只包含一个属性,如 学生关系中的“学号” ,教师关系中的“教师号” 。 ➢ 在最极终端的情况下,所有属性的组合是关系的候选 码,这时称为全码(all-key)
下面是一个全码的例子: 假设图书馆有借书关系TCS,分别有三个属性读者编号(T)、图 书编号(C)和借阅时间(S) 在这种情况下,T,C,S三者之间是多对多关系,(TC,S)三个属 性的组合是关系TCS的候选码,称为全码,TC,S都是主属性。 CI 2005-4-1
24 ➢ 下面是一个全码的例子: ➢ 假设图书馆有借书关系TCS,分别有三个属性读者编号(T)、图 书编号(C)和借阅时间(S)。 ➢ 在这种情况下,T,C,S三者之间是多对多关系,(T,C,S)三个属 性的组合是关系TCS的候选码,称为全码,T,C,S都是主属性。 T C S T1 C1 ‘2005-4-1’
2.3外码( Foreign key) 如果关系R2的一个或一组属性X不是R2的主码,而是另 关系R1的主码,则该属性或属性组X称为关系R2的外码 或外部关系键。并称关系R2为参照关系 (referencing relation),关系R1为被参照关系( referenced relation) SNO SN SEX AGE DEPT SNO CNO SCORE 学号 姓名 性别年龄 系别 学号课程号成绩 赵亦 女 17 计算机 S1 c2 85 S2 钱尔 另 18 信息 S2 C5 孙珊 女 信息 >因此,“学号”属性是选课关系的外码。学生关系为被 参照关系,选课关系为参照关系
25 2.4.3 外码(Foreign key) 如果关系R2的一个或一组属性X不是R2的主码,而是另一 关系R1的主码,则该属性或属性组X称为关系R2的外码 或 外部 关系键 。并 称关 系 R2为 参照 关系 (referencing relation),关系R1为被参照关系(referenced relation)。 ➢因此,“学号”属性是选课关系的外码。学生关系为被 参照关系,选课关系为参照关系