概念
关系模型
用二维表格结构来表示实体及实体间的联系的模型称为“关系模型”。
属性和值域
在二维表格中的列(字段、数据项)称为属性,列值称为属性值,属性值的取值范围称为值域。
关系模式
在二维表格中,表名及表中行结构定义(记录的型)的集合称为关系模式。它包括关系名、属性名、值域、初始值等的定义。一般可表示为 R ( A1, A2,…, An ),其中 R 为关系名, A1, A2,…, An 为属性名;或者表示为 R ( U ), U 是属性的集合。
元组与关系
在二维表中的行(记录的值)称为元组,元组的集合称为关系,关系模式通常也称为关系。
关键字或码
在关系的属性中,能够用来唯一标识一个元组的属性(或属性组合)称为关键字或码( Key )。
候选关键字或候选码
如果一个关系中,存在着多个属性(或属性组合)都能用来唯一标识该关系的元组,这些属性或属性的组合都称为该关系的候选关键字或候选码。
主关键字或主码
在一个关系中的若干候选码中指定为关键字的属性(或属性组合)称为该关系的主关键字或主码。
外部关键字或外键
当关系中的某个属性或属性组合虽不是该关系的关键字或只是关键字的一部分,但却是另一个关系的关键字时,称该属性或属性的组合为这个关系的外部关键字或外键。
非主属性或非码属性
关系中不组成码的属性均为非主属性或非码属性。
关系模型的性质
每一列中的分量是类型相同的数据;列的顺序可以是任意的;行的顺序可以是任意的;表中的分量是不可再分割的最小数据项,即表中不允许有子表;表中的任意两行不能完全相同。
关系的完整性
数据完整性是指关系模型中数据的正确性与一致性。关系模型允许定义3 类完整性约束:实体完整性、参照完整性和用户自定义的完整性约束。关系数据库系统提供了对实体完整性、参照完整性约束的自动支持,就是在插入、修改、删除操作时,数据库系统自动保证数据的正确性与一致性。
- 实体完整性规则( Entity Integrity Rule )。这条规则要求关系中的元组在组成主键的属性上不能为空
- 参照完整性规则( Reference Integrity Rule )。首先如果在一个关系中定义有外键 F ,则我们把这个表称为被参照表,而把外键 F 所在的另一个表(也可为本表, F 为表的主码或主码的一部分)称为参照表。参照完整性规则要求参照表中 F 的属性值或者为空,或者等于被参照表中某个元组 F 属性列的值
- 用户自定义的完整性规则。用户自定义的完整性规则是应用领域需要遵守的约束条件,体现了具体应用领域的语义约束
运算
关系在数学上表示的是序对的集合,所以关系运算的特点是集合运算,即运算的对象和结果都是集合。关系的主要运算有选择( Select )、投影( Project )、连接( Join )、并( Union )、交( Intersection )、差( Difference )、广义笛卡儿积( Extended Cartesion Product )、除( Divide )等,其中选择、投影、连接运算是关系的主要特征。关系运算可以用关系代数来表达,也可以用元组关系演算或域关系演算表达,它们表达了抽象的查询语言,这些抽象的语言与具体的 DBMS 中实现语言并不完全一致,但却是 DBMS 中实现语言的基础。
并
设关系 R 和关系 S 具有相同的目 n (即 R 和 S 有 n 个属性),且相应的属性取自同一个域,关系 R 和关系 S 的并记做: RUS ,由属于 R 或属于 S 的元组组成,结果仍为 n 目关系。
差
设关系 R 和关系 S 具有相同的目 n (即 R 和 S 有 n 个属性),且相应的属性取自同一个域,关系 R 和关系 S 的差记做: R-S ,由属于 R 而不属于 S 的元组组成,结果仍为 n 目关系
广义笛卡儿积
两个分别为 n 目和 m 目的关系 R 和 S 的广义笛卡儿积 R×S 是一个( n+m )列的元组的集合。元组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组。若 R 有 kl 个元组, S 有 k2 个元组,则 R×S 有 kl×k2 个元组。
选择
选择运算是一个单目运算,是从关系 R 中选取满足一定条件的元组子集。
投影
投影运算也是一个单目运算,是从关系 R 中选取所需的列组成一个新关系
连接
连接运算是从两个关系的笛卡儿积中选取属性间满足一定连接条件的元组集合。自然连接是一种特殊的最有用的连接运算,参加连接的两个关系具有部分同名的属性,则两个关系中同名属性值相等的连接称为自然连接,连接结果要把重复的属性去掉,即重复的列只保留一个。