数据库系统二:关系数据库

系统讲解关系数据库的重要概念,包括关系模型和关系代数.


2.1 关系数据结构及形式化定义

2.1.1关系

关系数据库中数据的逻辑结构是一张扁平的二维表。

1.域(domain)

定义2.1 域是一组具有相同数据类型的值的集合。

2.笛卡尔积(cartesian product)

定义2.2 给定一组域Di , D2 , …,Dn , 允许其中某些域是相同的, Di , Di, …, Dn,笛卡儿积为
D1 xD2 x … xDn= {(di , d2, ···, dn ) l di∈Di, i=1, 2, …,n}
其中, 每一个元素(di , d2 , …, dn) 叫作一个n 元组(n-tuple), 或简称元组(tuple)。元素中的每一个值di叫做一个分量(component)。

一个域允许的不同取值个数称为这个域的基数(cardinal number)。

3. 关系(relation)

定义2.3 D 1xD 2 X … xD n 的子集叫做在域D1, D2, …, D n 上的关系,表示为
R(D1, D2, ···D,n)
这里R表示关系的名字,n是关系的目或度(degree)。
关系中的每个元素是关系中的元组,通常用t表示。

若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码(candjdate key)。
若一个关系有多个候选码,则选定其中一个为主码(primary key)。
候选码的诸属性称为主属性(prime attribute)。不包含在任何候选码中的属性称为非主属性(non-prime attribute)或非码属性(non-key attribute)。

关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示:查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。

规范条件中最基本的一条就是,关系的每一个分星必须是一个不可分的数据项。规范化的关系简称为范式(Normal Form, NF)。

2.1.2 关系模式

定义2.4 关系的描述称为关系模式(relation schema) 。它可以形式化地表示为
R(U,D,DOM , F)
其中R 为关系名,U 为组成该关系的属性名集合,D 为U 中属性所来自的域,D O M 属屈性向域的映像集合,F为属性间数据的依赖关系集合。

2.1.3 关系数据库

2.1.4 关系模型的存储结构


2.2 关系操作

2.2.1 基本的关系操作

查询(query)操作和插入(insert)、删除(delete)、修改(update)

查询操作又可以分为选择(select)投影(project)连接(join)除(divide)并(union)差(except)交(intersection)、笛卡儿积等。

2.2.2 关系数据语言的分类

数据库系统二:关系数据库_第1张图片


2.3 关系的完整性

关系模型中有三类完整性约束:实体完整性(entity integrity)、参照完整性(referential integrity)和用户定义的完整性(user-defined integrity)。

2.3.1 实体完整性

规则2.1 实体完整性规则 若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取空值(null value)。所谓空值就是“不知道” 或“不存在” 或“无意义” 的值。

2.3.2 参照完整性

定义2.5 设F 是基本关系R 的一个或一组属性,但不是关系R 的码,凡是基本关系S 的主码。如果F 与凡相对应,则称F 是R 的外码(foreign key), 并称基本关系R 为参照关系(referencing relation), 基本关系S 为被参照关系(referenced relation) 或目标关系
(target relation) 。关系R 和S 不一定是不同的关系。

规则2.2 参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S 的主码K 相对应( 基本关系R 和S 不一定是不同的关系),则对于R 中每个元组在F上的值必须:

  • 或者取空值(F的每个屈性值均为空值);
  • 或者等于S中某个元组的主码值。

2.3.3 用户定义的完整性


2.4 关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。

关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类。

数据库系统二:关系数据库_第2张图片

2.4.1 传统的集合运算

(1)并(union)
关系R 与关系S 的并记作
R U S = {t | t∈R ∨ t∈S}
其结果仍为n目关系,由属于R或屈千S的元组组成。
(2)差(except)
关系R 与关系S 的差记作
R-S = {t | t∈R ∧ t∉S}
其结果关系仍为n目关系,由屈千R而不属千S的所有元组组成。
( 3 ) 交(intersection)
关系R 与关系S 的交记作
R n S = {t | t∈R∧ t∈S}
其结果关系仍为n目关系,由既属千R又属千S的元组组成。关系的交可以用差来表示,
即R n S = R - (R -S)。
(4)笛卡儿积(cartesian product)
这里的笛卡儿积严格地讲应该是广义的笛卡儿积(extended cartesian product), 因为这
里笛卡儿积的元素是元组。
两个分别为n 目和m 目的关系R 和S 的笛卡儿积是一个(n + m ) 列的元组的集合。元
组的前n 列是关系R 的一个元组,后m 列是关系S 的一个元组。若R 有幻个元组,S 有
k2 个元组,则关系R 和关系S 的笛卡儿积有k1Xk2 个元组。记作
RxS={t,.t slt, ER/\t s ES}

你可能感兴趣的:(数据库系统概论)