文章目录
关系模型的数据结构
非结构化
这里从非结构化的角度出发
只包含单一的数据结构 ---- 关系
- 现实世界的实体以及实体间的各种联系均用关系来表示
逻辑结构 ---- 二维表
- 从用户角度,关系模型中数据的逻辑结构是一张二维表
结构化
下面内容从集合论角度给出关系数据结构的形式化定义
关系模型是建立在集合代数的基础上
关系
1.域
域是一组具有相同数据类型的值的集合
- 自然数集合
- 介于某个取值范围整数、实数集合
- 长度小于25字符的字符串集合
- {‘ 男’,‘女’ }
2.笛卡尔积
笛卡尔积是域上的一种集合运算
- 给定一组域 D1 , D2 ,…, Dn
- 这些域中可以有相同的。
- D1 , D2 ,…, Dn 的笛卡尔积为: D1×D2×…×Dn ={( d1 , d2 ,…, dn )| di ∈Di , i = 1 , 2 ,…, n }
简单的可以理解为从每个域中取一个,然后进行组合
笛卡尔积的表示方法
- 笛卡尔积可表示为一个二维表
- 表中的每行对应一个元组
- 表中的每列对应一个域
- 表中的每一个单元格是一个分量
元组( Tuple )
笛卡尔积中每一个元素( d1 , d2 ,…, dn )叫作一个 n 元组( n-tuple )或简称元组 (Tuple)
分量( Component )
笛卡尔积元素( d1 , d2 ,…, dn )中的每一个值 di 叫作
一个分量
基数( Cardinal number )
一个域允许的不同取值个数称为这个域的基数
- 若 Di ( i = 1 , 2 ,…, n )为有限集,其基数为 mi ( i = 1 , 2 ,…, n )
- 则 D1×D2×…×Dn 的基数 M 为: m1×m2×…×mn
3.案例
域
D1 = 导师集合 SUPERVISOR = {张清玫,刘逸}
D2 = 专业集合 SPECIALITY = {计算机专业,信息专业}
D3 = 研究生集合 SPECIALITY = {李勇,信息专业,王敏}
元祖
( 张清玫,计算机专业,李勇 ) 、 ( 张清玫,计算机专业,
刘晨 )、(张清玫 ,计算机专业|,王敏) 等都是元组
分量
张清玫、计算机专业、李勇、刘晨等都是分量
基数
笛卡尔积的基数为2 x 2 x 3 = 12
笛卡尔积
SUPERVISOR | SPECIALITY | POSTGRADUATE |
---|---|---|
张清玫 | 计算机专业 | 李勇 |
张清玫 | 计算机专业 | 刘晨 |
张清玫 | 计算机专业 | 王敏 |
张清玫 | 信息专业 | 李勇 |
张清玫 | 信息专业 | 刘晨 |
张清玫 | 信息专业 | 王敏 |
刘逸 | 计算机专业 | 李勇 |
刘逸 | 计算机专业 | 刘晨 |
刘逸 | 计算机专业 | 王敏 |
刘逸 | 信息专业 | 李勇 |
刘逸 | 信息专业 | 刘晨 |
刘逸 | 信息专业 | 王敏 |
4.关系
关系是笛卡尔积的有限子集
关系定义
D1×D2×…×Dn (笛卡尔积)的子集叫作在域 D1 , D2 ,…, Dn 上的关系,表示为
R ( D1 , D2 ,…, Dn )
- R :关系名
- n :关系的目或度( Degree )
元组
关系中的每个元素是关系中的元组,通常用 t 表示
单元关系与二元关系
- 当 n=1 时,称该关系为单元关系( Unary relation ) 或一元关系
- 当 n=2 时,称该关系为二元关系( Binary relation )
关系的表示
一般来说D1 , D2 ,…, Dn 的笛卡尔积没有实际意义,只有它的某个真子集有实际含义
- 关系也是一个二维表
- 表的每行对应一个元组
- 表的每列对应一个域
属性
- 关系中不同列可以对应相同的域
- 为了加以区分,必须对每列起一个名字,称为属性( Attribute )
- n 目关系必有 n 个属性
码
候选码( Candidate key )
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
- 主码
若一个关系有多个候选码,则选定其中一个为主码( Primary key )
- 主属性
候选码的诸属性称为主属性( Prime attribute )
不包含在任何侯选码中的属性称为非主属性( Non-Prime attribute ) 或非码属性( Non-key attribute )
全码( All-key )
最极端的情况:关系模式的所有属性组是这个关系模式的候选码,称为全码( All-key )
关系的三种类型
- 基本关系(基本表或基表)
实际存在的表,是实际存储数据的逻辑表示
- 查询表
查询结果对应的表
- 视图表
由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据
基本关系的性质
- 列是同质的( Homogeneous ),即每一列中的分量是同一类型数据
- 不同的列可出自同一个域
- 其中的每一列称为一个属性
- 不同的属性要给予不同的属性名
- 列的顺序无所谓 ,,列的次序可以任意交换
- 任意两个元组的候选码不能相同
- 行的顺序无所谓,行的次序可以任意交换
- 分量必须取原子值
- 这是规范条件中最基本的一条
关系模式
- 关系型数据库中关系模式是型,关系是值
- 关系模式是对关系的描述
- 关系是元素的集合
- 关系模式必须指出元素集合(关系)的结构
- 属性构成
- 属性来自的域
- 属性与域之间的映象关系
关系模式的定义
关系的描述称为关系模式,关系模式可以形式化地表示为:
R ( U , D , DOM , F )
元素 | 含义 |
---|---|
R | 关系名 |
U | 组成该关系的属性名集合 |
D | 属性组 U 中属性所来自的域 |
DOM | 属性向域的映象集合 |
F | 属性间的数据依赖关系集合 |
关系模式通常可以简记为
R (U) 或 R (A1 , A2 ,…, An)
元素 | 含义 |
---|---|
R | 关系名 |
A1 , A2 ,…, An | 属性名 |
- 域名及属性向域的映象常常直接说明为 属性的类型、长度
关系模式与关系
- 关系模式
- 对关系的描述
- 静态的、稳定的
- 关系
- 关系模式在某一时刻的状态或内容
- 动态的、随时间不断变化的
注意
关系模式和关系往往统称为关系
通过上下文加以区别
关系数据库
在一个给定的应用领域中,所有关系的集合
构成一个关系数据库
关系数据库的型与值
型(关系数据库模式)
对关系数据库的描述
- 关系数据库模式包括
- 若干域的定义
- 在这些域上定义的若干关系模式
值(关系数据库)
关系模式在某一时刻对应的关系的集合,简称为关系数据库