关系数据库
关系数据结构及形式化定义
关系
1、域
- 域是一组具有相同数据类型的值的集合
2.笛卡尔积
3.关系
- 若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性或非码属性。
- 关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中,基本表是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是虚表,不对应实际存储的储数据。
- 关系的每一个分量必须是一个不可分的数据项
关系模式
- 关系的描述称为关系模式。它可以形式化地标识为R(U,D,DOM,F)其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性想域的映像集合,F为属性见数据的依赖关系集合。
关系数据库
- 在一个给定的应用领域中,所有关系的集合构成一个关系数据库。
- 关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库模式包括若干域的定义,以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。
关系操作
基本的关系操作
- 关系模型中常用的关系操作包括查询(query)操作和插入(insert)、删除(delete)、修改(updata)操作两大部分。
- 关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择(select)、投影(project)、连接(join)、除(divide)、并(union)、差(except)、交(intersection)、笛卡尔积等。其中选择、投影、并、差、笛卡尔积是5种基本操作。
关系数据语言的分类
关系代数语言(例如ISBL)
关系演算语言
- 元组关系盐酸语言(例如ALPHA、QUEL)
- 域关系演算语言(例如QBE)
具有关系代数和关系演算双重特点的语言(例如SQL)
关系的完整性
实体完整性
- 若属性(指一个或一组属性)A是基本关系R的主属性,则A不能取控制。所谓控制就是“不知道”或“不存在”或“无意义”的值。
参照完整性
设F是基本关系R的一个或一组属性,但不是关系R的码,K是基本关系S的住吗。如果F与K相对于,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系
若属性(属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R种每个元组在F上的值必须:
- 或者取空值
- 或者等于S种每个元组的主码值
用户定义的完整性
- 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用设计的数据必须满足的语义要求。







