21.3关系模型的完整性约束 (4)外键 也称外码,设F是基本关系R的一个或一组属性,但不是R的键(主键或候 选键),如果F与基本关系S的主键K相对应,则称F是R的外键 ( Foreign key),并称R为参照关系( Referencing relation),S为被 参照关系( Referenced relation)或目标关系( Target relation)。 可以这么理解:如果一个属性是其所在关系之外的另外一关系的主键,该 属性就是它所在当前关系的外键。外键实质就是外部关系的的主键。 (5)主属性和非主(码)属性 包含在任何一候选码中的属性称为主属性( Primary attribute),不包含在 任何候选码中的属性称为非码属性(Non- key attribute)。 (6)全码 式的所有属性组是这个关系模式的候选键,称为全码(N)。纔 在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关
(4)外键 也称外码,设F是基本关系R的一个或一组属性,但不是R的键(主键或候 选键),如果F与基本关系S的主键K相对应,则称F是R的外键 (Foreign key),并称R为参照关系(Referencing relation),S为被 参照关系(Referenced relation)或目标关系(Target relation)。 可以这么理解:如果一个属性是其所在关系之外的另外一关系的主键,该 属性就是它所在当前关系的外键。外键实质就是外部关系的的主键。 (5)主属性和非主(码)属性 包含在任何一候选码中的属性称为主属性(Primary attribute),不包含在 任何候选码中的属性称为非码属性(Non-key attribute)。 (6)全码 在最简单的情况下,候选键只包含一个属性。在最极端的情况下,关系模 式的所有属性组是这个关系模式的候选键,称为全码(All-key)。 2.1.3 关系模型的完整性约束
213关系模型的完整性约束 2.完整性约束 (1)实体完整性( Entity Integrity) 【规则2.1】实体完整性规则:若属性组(或属性)K是基本关系R的 主码(主键),则所有元组K的取值唯一,并且K中属性不能全部或 部分取空值 对于实体完整性规则说明如下: ①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实 世界的一个实体集。例如课程关系对应于所有课程实体的集合。 ②现实世界中实体是可区分的,即它们具有某种唯一性标识。相应地, 关系模型中以主码作为其唯一性标识。 ③主码中属性即主属性不能取空值,所谓空值就是“不知道”或“无 意义”的值。如果主属性取空值,就说明存在不可标识的实体,即 存在不可区分的实体,这与客观世界中实体要求唯一标识相矛盾, 因此这个规则不是人们强加的,而是现实世界客观的要求
2.1.3 关系模型的完整性约束 2.完整性约束 (1)实体完整性(Entity Integrity) 【规则2.1】 实体完整性规则:若属性组(或属性)K是基本关系R的 主码(主键),则所有元组K的取值唯一,并且K中属性不能全部或 部分取空值。 对于实体完整性规则说明如下: ①实体完整性规则是针对基本关系而言的。一个基本表通常对应现实 世界的一个实体集。例如课程关系对应于所有课程实体的集合。 ②现实世界中实体是可区分的,即它们具有某种唯一性标识。相应地, 关系模型中以主码作为其唯一性标识。 ③主码中属性即主属性不能取空值,所谓空值就是“不知道”或“无 意义”的值。如果主属性取空值,就说明存在不可标识的实体,即 存在不可区分的实体,这与客观世界中实体要求唯一标识相矛盾, 因此这个规则不是人们强加的,而是现实世界客观的要求
213关系模型的完整性约束 (2)参照完整性( Referential integrity) 现实世界中的实体之间往往存在某种联系的,在关系模型中实体及 实体之间的联系都是用关系来描述的,这样就自然存在着关系与 关系间的参照。 参照完整性规则就是定义外键与主键之间的引用规则。 【规则2.2】参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能 是相同的关系),则对于R中每个元组在F上的值必须取空值(F 的每个属性值均为空值)或者等于S中某个元组的主码值。 外键并不一定与相应的主键同名,但在实际应用中,为了便于识别, 当外键与相应的主键属于不同关系时,往往取相同名字。当关系 R和S是相同的关系时,称之为自身参照
2.1.3 关系模型的完整性约束 (2)参照完整性(Referential integrity) 现实世界中的实体之间往往存在某种联系的,在关系模型中实体及 实体之间的联系都是用关系来描述的,这样就自然存在着关系与 关系间的参照。 参照完整性规则就是定义外键与主键之间的引用规则。 【规则2.2】 参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能 是相同的关系),则对于R中每个元组在F上的值必须取空值(F 的每个属性值均为空值)或者等于S中某个元组的主码值。 外键并不一定与相应的主键同名,但在实际应用中,为了便于识别, 当外键与相应的主键属于不同关系时,往往取相同名字。当关系 R和S是相同的关系时,称之为自身参照
213关系模型的完整性约束 (3)用户定义的完整性(User- defined integrity) 用户定义的完整性是根据应用环境的要求和实际的需要,对关系中 的数据所定义的约束条件,它反映的是某一具体应用所涉及的 数据必须满足的语义要求。关系模型只提供定义并检验这类完 整性的机制,以便于系统用统一的方法来满足用户的需求,而 关系模型自身并不去定义任何这类完整性规则 用户定义完整性包括字段有效性(属性值域的约束)和记录有效性 两类,其中对属性值域的约束也称域完整性规则( Domain Integrity Rule),是指对关系中除主键和外键之外的其它属性 取值范围的约束定义,包括数据类型、精度、取值范围、是否 空值等 例如选课关系中成绩的取值范围是0~100,学生关系中性别的取值 范围为“男”或“女
2.1.3 关系模型的完整性约束 (3)用户定义的完整性(User-defined integrity) 用户定义的完整性是根据应用环境的要求和实际的需要,对关系中 的数据所定义的约束条件,它反映的是某一具体应用所涉及的 数据必须满足的语义要求。关系模型只提供定义并检验这类完 整性的机制,以便于系统用统一的方法来满足用户的需求,而 关系模型自身并不去定义任何这类完整性规则。 用户定义完整性包括字段有效性(属性值域的约束)和记录有效性 两类,其中对属性值域的约束也称域完整性规则(Domain Integrity Rule),是指对关系中除主键和外键之外的其它属性 取值范围的约束定义,包括数据类型、精度、取值范围、是否 空值等。 例如选课关系中成绩的取值范围是0~100,学生关系中性别的取值 范围为“男”或“女
22关系代数的原理 从关系的逻辑结构特征来看,直观上可以将关系 看作一个若干元组的集合,关系运算也可以转 换成集合的运算。事实上,关系模型的理论基 础是集合代数,下面就从集合论角度给出关系 数据结构的形式化定义 ●22.1关系的数学定义 2.2.2关系模式 ●223关系数据库
2.2 关系代数的原理 从关系的逻辑结构特征来看,直观上可以将关系 看作一个若干元组的集合,关系运算也可以转 换成集合的运算。事实上,关系模型的理论基 础是集合代数,下面就从集合论角度给出关系 数据结构的形式化定义。 ⚫ 2.2.1关系的数学定义 ⚫ 2.2.2 关系模式 ⚫ 2.2.3 关系数据库