一、关系数据结构及形式化定义
1.关系
- 单一的数据结构-关系
- 现实世界的实体以及实体之间的各种联系都可以用关系来表示
- 逻辑结构–二维表
- 从用户角度来看,关系模型中数据的逻辑结构是一张二维表
- 关系模式是建立在集合代数的基础上
接下来看和关系相关的几个名词
- 域
- 域是一组具有相同数据类型的值的集合
- 数学中的取值范围在数据库中就是域
- 笛卡尔积
笛卡儿积就是关系代数里的一个概念,表示两个表中的每一行数据任意组合的结果。比如:有两个表,左表有m条数据记录,x个字段,右表有n条数据记录,y个字段,则执行交叉连接后将返回m*n条数据记录,x+y个字段。笛卡儿积示意图如图所示。
-
元组
- 笛卡尔积中每一个元素称为一个n元组,简称元组
- 在我们的二维表中一行就是一个元组
-
分量
- 笛卡尔积元素(d1,d2,d3,…,dn)中的每一个值di称为一个分量
- 基数
-
基数是针对域来说的
-
一个域允许的不同取值个数称为这个域的基数。若Di(i=1,2,……,n)为有限集,其基数为mi(i=1,2,……,n),则 D1 * D2 * …… * Dn 的基数M为:
-
笛卡尔积可表示为一张二维表,表中的每行对应一个元组,表中的每一列的值来自同一个域。
-
- 笛卡尔积元素(d1,d2,d3,…,dn)中的每一个值di称为一个分量
-
关系:D1 * D2 * …… * Dn的子集叫做在域D1,D2,……,Dn上的关系,表示为 R(D1,D2,……,Dn).
- 这里的 R 表示关系的名字(二维表的名字),n 是关系的目或度。比如二维表有5个属性,那么关系的目就是5
- 关系中的每个元素是关系中的元组,通常用 t 表示。
- 当n=1时,称该关系为单元关系,或一元关系。
- 当n=2时,称该关系为二元关系。
- D1,D2,…DN表示属性名
- 这里的 R 表示关系的名字(二维表的名字),n 是关系的目或度。比如二维表有5个属性,那么关系的目就是5
2.关系的表示
-
关系的表示
- 关系也是一个二维表,表的每一行对应一个元组,表的每一列对应一个域,一个属性
-
属性
- 关系中不同列可以对应相同的域,为了进行区分,对每一个列起名字,叫做属性,n目关系必有n个属性
-
码
- 候选码(Candidate key)
- 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
简单的情况:候选码只包含一个属性 - 比如说学生的学号和身份证号都可以唯一确定一条记录,这个时候选择哪一个都可以,它们都是候选码
- 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
- 全码(All-key)
- 最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)
- 也就是说给一个属性,不能确定是哪一条记录
- 下面这个表是学生选课表,一个学生选了很多的课,根据学号,或者课程号,我们并不能唯一确定一条记录,不过学号和课号联合在一起,可以唯一确定
- 最坏的情况就是,要给出表中所有的属性,我们才可以唯一确定一条记录,这样叫做全码
- 候选码(Candidate key)
学号 | 课号 | 成绩 |
---|---|---|
001 | 01 | 85 |
001 | 02 | 98 |
001 | 03 | 89 |
002 | 01 | 75 |
002 | 02 | 86 |
002 | 03 | 100 |
- 主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)
主码和码的关系就像班长和班长候选人之间的关系 - 主属性
候选码的属性称为主属性(Prime attribute) - 非主属性
不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或非码属性(Non-key attribute) - 三类关系
①基本关系(基本表):实际存在的表,是实际存储数据的逻辑表示
②查询表:查询结果对应的表(虚拟的表)
③视图表:由基本表或其他视图表导出的表,是虚拟的表,不对应实际存储的数据 - 基本关系的性质
① 列是同质的(Homogeneous)
② 不同的列可出自同一个域
其中的每一列称为一个属性
不同的属性要给予不同的属性名
③ 列的顺序无所谓,,列的次序可以任意交换
④ 任意两个元组的候选码不能相同
⑤ 行的顺序无所谓,行的次序可以任意交换
⑥ 分量必须取原子值(这是规范条件中最基本的一条)
二.关系模式
1.关系模式的定义
关系模式是对关系的描述,关系模式是型,关系是值
- 元组集合的结构
- 属性构成、属性来自的域、属性和域之间的映像关系
- 一个关系通常由赋予它的元组语义确定
- 现实的世界还存在着完整性约束
2.关系模式与关系
关系模式是静态的,稳定的
关系是动态的,随着世界不断变化的
就相当于我们现在有一个模具,通过它可以生产产品,这个模具是固定不变的,但是生产出来的产品是不一样的
关系是关系模式在某一时刻的状态或内容,在实际工作中,关系模式和关系往往统称位关系,需要通过上下文加以区别
三、关系数据库
1.关系数据库定义
关系数据库:所有关系的集合构成一个关系数据库
2.关系数据库的型与值
①关系数据库的型: 关系数据库模式,是对关系数据库的描述
②关系数据库模式:
若干域的定义,在这些域上的若干关系模式
③关系数据库的值: 关系模式在某一时刻对应的关系的集合,通常称为关系数据库
四、关系模型的存储结构
①有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成
②有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理