文章目录
2.1.1 基本术语
定义2.1 用二维表格表示实体集,用关键码表示实体间联系的数据模型称为关系模型(relational Model)。
在关系模型中,
- 字段称为属性,
- 字段值称为属性值,
- 记录称为元组(tuple),
- 元组的集合称为关系(relation)或实例(instance)。
- 关系为表或表格,元组为行(row),属性为列(column)。
- 关系中属性个数称为“元数”(arity),元组个数为“基数”(cardinality)。
- 关系元数为5,基数为4
关键码(key,简称键)由一个或多个属性组成。在实际使用中,有下列几种键。
- (1)超键(super Key)在关系中能唯一标识元组的属性集
- (2)候选键(candidate Key)不含有多余属性的超键
- (3)主键(primary Key) 在图2.1中,(工号,姓名)是模式的一个超键,但不是候选键,而(工号)是候选键。在实际使用中,如果选择(工号)作为删除或查找元组的标志,那么称(工号)是主键。
- (4)外键(foreign Key)如果模式R中属性K是其他模式的主键,那么K在模式R中称为外键。
注意
- 候选键+任意一个或者多个属性都是超键
- 候选键可能不唯一
- 候选键也可能是多个属性的组合
- 一个表的外键,一定是另一个表的主键
- 外键可以为空
2.1.2 关系的定义和性质
定义2.2 关系是一个属性数目相同的元组的集合。
在关系模型中,对关系作了下列规范性限制:
- (1)关系中每一个属性值都是不可分解的;
- (2)关系中不允许出现重复元组(即不允许出现相同的元组);
- (3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序;
- (4)元组中的属性在理论上也是无序的,但使用时按习惯考虑列的顺序。
2.1.3 关系模型的三类完整性规则
实体完整性规则(entity integrity rule)
要求关系中元组在组成主键的属性上不能有空值。如 果出现空值,那么主键值就起不了唯一标识元组的作用。
定义2.3 参照完整性规则的形式定义如下:
- 如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。
- 这条规则的实质是“不允许引用不存在的实体”。
用户定义的完整性规则
-
在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。
- 例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:
CHECK(AGE BETWEEN 15 AND 30)
- 例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:
2.1.4 关系模型的三级体系结构
三级体系结构 – 关系模式
在关系模型中,记录类型称为关系模式,而关系模式的集合就是数据库的概念模式。在系统实现时,关系模式和属性的命名一般都用英文单词。譬如图2.5的ER图转换成的关系模式集可用图2.6表示。而图2.7是这个关系模型的三个具体关系。
子模式
子模式是用户所用到的那部分数据的描述。除此之外,还应指出数据与关系模式中相应数据的联系。例如,用户需要用到子模式G。
存储模式
在有些DBMS中,关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。如果关系的元组数目较少(100个以内),那么也可以用“堆文件”方式实现(即没有特定的次序)。此外,还可对任意的属性集建立辅助索引。
2.1.5 关系模型的形式定义和优点
关系模型的形式定义
关系模型有三个重要组成部分:数据结构,数据操纵,数据完整性规则。
(1)数据结构:数据库中全部数据及其相互联系都被组织成“关系”(二维表格)的形式。关系模型基本的数据结构是关系。
(2)数据操纵:关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分成关系代数、关系演算和关系逻辑等三类。
(3)数据完整性规则:数据库中数据必须满足实体完整性,参照完整性和用户定义的完整性等三类完整性规则。
关系模型的优点
与其它数据模型相比,关系模型突出的优点如下:
(1)关系模型提供单一的数据结构形式,具有高度的简明性和精确性。
(2)关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性。
(3)关系模型使数据库的研究建立在比较坚实的数学基础上。
(4)关系数据库语言与一阶谓词逻辑的固有内在联系,为以关系数据库为基础的推理系统和知识库系统的研究提供了方便。