21/7/23 读书笔记 关系模式的基本概念
21/7/23 读书笔记
数据挖掘导论 关系模型的基本概念
关系模型的数据结构——关系
模型一般由数据结构、操作集合和约束性条件构成。关系,就是关系模型的数据结构。
关系是动态的,我们认为在关系数据库系统中关系就是数据,因此数据更新时发生改变,关系也会随之改变。
对于关系的形式化定义,基于以下概念:
- 域:一组数据类型相同的值的集合,比如所有正整数、{东,南,西,北}等。
- 笛卡尔积:一组域之间构成的完全的笛卡尔积。笛卡尔积可以以每个域为列、每种组合情况为行,构成一张表。
- 元组:每种组合情况对应一个元组,又可称为一条记录
- 关系:笛卡尔积的一个子集,其关联的域的数量称为关系的目或度。关系可以表示为一张表。
- 在笛卡尔积基础上的限定与扩充:
- 笛卡尔积中,一个元组中域具有先后次序;关系中,列的次序可以任意交换,行的顺序也可以任意交换;
- 笛卡尔积中,每个元组中的元素还可以是一个集合;关系中,限定元组中的任一个元素必须是原子化的,不可再分(表中不能有表)
- 属性:由于域可以相同,我们对每个列对应称为属性,不同列之间即使对应的域相同,但是属性不同。关系的一个域可以对应多种属性,每种属性只能属于一个域。
- 候选码:关系中的某个属性的值能唯一标识一个元组,符合这个要求的属性的集合构成候选码
- 主码:从候选码中选出一个属性作为主码
- 主属性:候选码中所有的属性都称为主属性
- 在笛卡尔积基础上的限定与扩充:
- 关系模式:关系所关联的属性集合,以及属性与域之间的对应关系,构成一个关系模式。关系模式是静态的,其在数据库进行更新的过程中保持不变。
关系数据库系统是支持关系模型的数据库系统。
关系数据库系统与关系模式是两个层次的概念,他们都由型与值两方面组成。型是静态的、稳定的,值是在数据库更新过程中不断改变的。
关系数据库的型 = 关系数据库模式 = 对若干域的定义 + 对这些域上的关系模式的定义
关系数据库的值 = 若干关系模式在特定时刻对应关系的集合 = 若干关系模式的值的集合
关系模式的型 = 属性的集合 + 属性与域之间映像的集合
关系模式的值 = 关系 = 特定时刻内该关系模式描述下的取值
注意涉及的关系模式和关系都可能被称为关系,需要我们根据上下文加以区分。
关系模型的操作集合——关系操作
关系操作的特点在于集合操作,即操作的对象和结果都是集合。关系模型下定义的关系操作有增删改查四个方面,其中查询方面最为重要,包括选择、投影、并、差、笛卡尔积五种基本操作。
关系数据语言是各个数据库系统定义的用于描述关系操作的语言体系,可以分为三种:
- 关系代数语言:对关系本身进行运算来表达操作需求
- 关系演算语言:需要有谓语来指明操作对象
- 谓语是元组,则为元组关系演算
- 谓语是域,则为域关系演算(注意这里的域和属性是不加以区分的)
- 结构化查询语言SQL:既支持关系代数语言,也支持关系演算语言
关系模型的约束性条件——完整性约束
关系模型的完整性约束可以视作三个方面:
- 实体完整性:如果属性A是关系R的主属性,那么A不能取空值。空值表示无意义项。如果某条记录的一个主属性是空值,则表示该记录对应的实体不可区分,这是不合理的。
- 参照完整性:
- 外码(外键)、参照关系:F是关系R的一个或一组属性,但不是关系R的主码;G是关系S的主码。如果F与G相互对应,那么称F是R的外码(foreign key),R是参照关系,S是被参照关系或目标关系。
- 参照完整性约束了关系的对应关系:如果F是参照关系R的外码,与目标关系S的主码G相互对应,那么R中的每个元组在F上表现出的值必须:
- 或者取空值
- 或者等于S中某个元组的主码值
- 用户定义的完整性:一些更加实际需求出发的完整性要求,比如邮件地址一定要有@、一天最多24小时、一年只有12个月等等。关系模型应该提供定义与检验这些完整性的机制,而不是让程序员在每次增删改查前自己检查(所以有的数据库中定义数据类型的时候会有各种各样的选择,比如日期类型等,这样增删改查的时候数据库就根据类型进行检查)。

浙公网安备 33010602011771号