一、 关系数据结构及形式化定义
关系数据库系统是支持关系模型的数据库系统
关系
关系模型的数据结构非常简单,只包含单一的数据结构--关系,在用户看来就是一张扁平的二维表
- 域(domain):是指一组具有相同数据类型的值的集合
- 笛卡尔积
- 关系:笛卡尔积的子集叫做在域D1...Dn上的关系,表示为R(D1...Dn),其中R表示关系的名字,n是关系的目或度。若关系中的某一属性组的值能够唯一地识别一个元组,而其他子集不能,则称该属性为候选码,若一个关系中有多个候选码时选一个为主码。
- 关系有三种类型:基本关系(表)、查询表和视图表
- 关系模型要求关系必须是规范化的,在这些规范条件中最基本的一条就是,关系中的每一分量必须是一个不可分的数据项。规范化的关系称为(NF)。
关系模型
- 定义: 关系的描述称为关系模型,可以形式的表示为R(U,D,DOM,F)其中U为该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。
- 关系是动态的,是关系模型在某一时刻的状态或内容,关系模型是静态的、稳定的。
关系数据库
在关系模型中,实体以及实体之间的联系都是用关系来表示,例如导师实体、研究生实体、导师域研究生之间的一对多的联系都可以用一个关系来表示,所有关系的集合构成一个关系数据库。
二、关系操作
基本的关系操作:
查询、插入、删除和修改,其中查询又可以分为选择、投影、连接、除、并、差、交和笛卡尔积等。
分类
- 关系代数
- 关系演算
- SQL
三、关系的完整性
实体完整性
定义:若属性A是基本关系R的主属性,则A不能取空值。如果取了空值,就说明存在个某个不可表识的实体,即存在不可区分的实体,而现实世界中的实体是可以区分的,例如每个学生都是一个独立的个体。
参照完整性
现实世界中存在实体之间的某种联系,即关系和关系之间的引用。
- 定义:设F是R的一个或一组属性,但不是R的码,Ks是基本关系S的主码,如果F和Ks相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或者目标关系。
- 规则:若F是R的外码,它与S的主码Ks相对应,则对于R中每一个元组在F上的值必须 等于S中某个元组的主码值或者取空值(未分配关系)
用户定义完整性
任何关系数据库都应支持实体完整性和参照完整性,这是关系模型所要求的,但是除此之外,还有一些用户定义的规则,如某个属性不能为空,或者取值范围为0~100等