2.1.1 关系数据结构
关系数据库简介
IBM E.F.Codd 1970年提出关系数据模型
之后,提出关系代数和关系演算的概念
本章内容介绍
1.关系模型
关系数据结构
关系完整性约束
2.关系代数
传统集合操作
关系特有操作
综合例子
3.关系演算
单一的数据结构---关系
显示世界的实体以及实体间的各种联系均用关系来表示
在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表
关系模型(数据模型,三要素:数据结构,数据操作,数据的完整性约束)-->关系模式(数据库模式)--->关系数据库(数据库)
关系模型是建立在集合代数的基础上
下面从集合论的角度给出关系数据结构的形式化定义
1.域(Domian)
域是一组具有相同数据类型的值的集合。
2.笛卡尔积(Cartesian Product)
1.笛卡尔积的概念
给定一组域D1,D2...Dn,允许其中某些域是相同的。
D1,D2...Dn的笛卡尔积为
D1×D2×...×Dn={(d1,d2...dn)|di∈Di,i=1,2,..,n}
即:所有域的所有取值的任意组合
2.基数(Cardinal number)
若Di为有限集,其基数为mi,则D1×D2×...×Dn的基数M为
M=m1*m2*...*m(n)
3.笛卡尔积的表示方法
笛卡尔积可表示为一张二维表
表中的每行对应一个元组,表中的每列对应一个域
3.关系(Relation)
1.关系的概念
D1×D2×...×Dn的子集叫作在域D1,D2...Dn上的关系,表示为
R(D1,D2...Dn)
R:关系名
n:关系的目或度(Degree)
n=1时,称该关系为单元关系或一元关系(Unary relation)
n=2时,称该关系为二元关系(Binary relation)
2.关系中的每个元素(d1,d2,...,d(n))叫作一个n元组(n-tuple)
或简称元组,通常用t表示
3.属性(Attribute)
关系中不同列可以对应相同的域
为了加以区分,必须对每列起一个名字,称为属性
n目关系必有n个属性
4.码
1.候选码(Candidate key)
若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
简单的情况:候选码只包含一个属性
2.全码(All-key)
最极端的情况:关系模式的所有属性作为一个属性组是这个关系模式的候选码
3.主码
若一个关系有多个候选码,则选定其中一个为主码(Primary key)
4.主属性
候选码的诸属性陈我给·称为主属性(Prime attribute)
不包含在任何候选码中的属性称为非主属性(Non-Prime attribute)
或非码属性(Non-key attribute)
5.关系分为3类
1.基本关系(通常又称为基本表或基表):实际存储的表
2.查询表:查询结果对应的表
3.视图表:由基本表和其他视图表导出的表,是虚表,不对应实际存储的数据
6.基本关系的性质(6条)
1.列是同质的(Homogeneous)
2.不同的列可出自同一域
3.列的顺序无所谓,列的次序可以任意交换
4.任意两个元组的候选码不能相同
5.行的顺序无所谓,行的次序可以任意交换
6.分量必须去原子值,即属性的值不能再分(最基本的一条)
7.D1×D2×...×Dn的某个子集才有实际含义,D1×D2×...×Dn的全集没有任何含义
4.关系模式(Relation Schema)
1.关系模式的概念
1.关系模式是型,关系是值
(注意把此处的关系与数据结构关系加以区分,此处的关系可以看做是数据结构关系的实例)
2.关系模式是对关系的描述,描述的内容如下
1.元组集合的结构
1.属性的构成
2.属性来自的域
3.属性与域之间的映射关系
2.完整性约束
2.如何定义一个关系模式
关系模式可以形式化地表示为:R(U,D,DOM,F)
R:关系名
U:组成该关系的属性名集合
D:U中属性所来自的域的集合
DOM:属性向域的映象集合
F:属性间数据的依赖关系集合
关系模式通常可以简记为R(U),或者R(A1,A2,...,An)
R:关系名
A1,A2,...,An:属性名
注:域名和属性向域的映象常常直接说明为属性的类型、长度
3.关系模式与关系的关系
关系模式
对关系的描述
静态的、稳定的
关系
关系模式在某一时刻的状态或内容
动态的、随时间不断变化的
关系模式和关系往往笼统称为关系,注意通过上下文加以区分
5.关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
关系数据库的型和值
关系数据库的型:
关系数据库模式,是对关系数据库的描述
关系数据库模式可以看成是关系模式的集合
关系数据库的值:
关系数据库模式在某一时刻对应的关系的集合,通常称为关系数据库
关系数据库可以看成是关系的集合
本节概念加以区分示意图