2.1 关系数据结构及形式化定义
2.1.2 关系
1. 域
一组具有相同数据类型的值的集合
2. 笛卡尔积
给定一组域D1、D2、D3等,允许其中某些域相同
笛卡尔积:D1 * D2 * D3
所有域的所有取值的一个组合
不能重复
- 元组:笛卡尔积中每一个元素 (d1,d2,...,dn)叫作一个n元组,如(张清玫,计算机专业,李勇)
- 分量:笛卡尔积元素 (d1,d2,...,dn)中的每一个值d;叫作一个分量,如张清政、计算机专业
- 基数:若笛卡尔积为有限集,数目称为其基数
3. 关系
①关系
D1 * D2 * Dn的子集叫作在域D1,D2,...,Dn上的关系,表示为R(D1,D2,...,Dn)。R表示关系名,n表示关系的目或度。
②元组
关系中的每个元素是关系中的元组
③单元关系与二元关系
单元关系:n=1 二元关系:n=2
④关系的表示
关系是一个二维表,行对应元组,列对应域
⑤属性
列名,用以区分不同列
⑥码
- 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码
- 全码:关系模式的所有属性组是这个关系模式的候选码
- 主码:若一个关系有多个候选码,则选定其中一个为主码
- 主属性:候选码的诸属性称为主属性,不包含在任何侯选码中的属性称为非主属性或非码属性
⑦三类关系
- 基本关系:实际存在的表
- 查询表:查询结构对应的表
- 视图表:由基本表或其他视图导出的表,是虚表,不对应实际存储数据
2.1.2 关系模式
1.什么是关系模式
关系模式是对关系的描述:
①元组集合的结构:属性构成 属性来自的域 属性与域之间的映像关系
②完整性约束条件
2.定义关系模式
R(U,D,DOM,F)
- R:关系名
- U:属性名集合
- U中属性来自的域
- DOM:属性向域的映象集合
- F:属性间数据的依赖关系的集合
3.关系模式与关系
关系模式:对关系描述、静态的、稳定的
关系:关系模式在某一时刻的状态或内容、动态的、变化的
2.1.3 关系数据库
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
- 关系数据库的型: 关系数据库模式,是对关系数据库的描述
- 关系数据库的值:关系模式在某一时刻对应的关系的集合,通常称为关系数据库
2.1.4 关系模型的存储结构
有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成
有的关系数据库管理系统从操作系统那里申请若个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理
2.2 关系操作
2.2.1 基本的关系操作
查询:选择、投影、并、差、笛卡尔积
更新:插入、删除、修改
集合操作方式:操作的对象和结果都是集合,一次一集合的方式
2.2.2 关系数据库语言的分类
关系代数语言(用对关系的运算来表达查询要求代表)
关系演算语言(用谓词来表达查询要求元组关系演算语言)
具有关系代数和关系演算双重特点的语言代表:SQL
2.3 关系的完整性
2.3.1 实体完整性
一个基本表通常对应现实世界的一个实体集。
若属性A是基本关系R的主属性,属性A不能取空值。
2.3.2 参照完整性
1.关系间的引用
在关系模型中实体及实体间的联系都是用关系来描述的,自然存在着关系与关系间的引用
2.外码
F是基本关系R的一个属性,但不是码,如果F与基本关系S主码K相对于,则称F是R的外码。
R:参照关系
S:被参照关系、目标关系
3.参照完整性规则
若F是R外码,且与S的主码K相对应,那么R中每个元组在F上的值必须为:
①空值(F每个属性值都为空)
②等于S中某个元组的主码值
2.3.3 用户定义的完整性
关系模型定义和检验这类完整性机制,满足数据库的约束条件
2.4 关系代数
关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
关系代数:运算对象是关系、运算结果亦为关系
关系代数的运算符有两类:集合运算符和专门的关系运算符
2.4.1 传统的集合运算
①并(Union)
R和S具有n个属性,且属性取自同一个域
②差(Difference)
R和S具有n个属性,且属性取自同一个域
③交(Intersection)
R和S具有n个属性,且属性取自同一个域
④笛卡尔积(Cartesian Product)
2.4.2 专门的关系运算
1.选择
选择有一定限制属性的数据,一行
2. 投影
选择若干属性列组成新关系,列
3. 连接
从两个关系的笛卡尔积中选取属性间满足一定条件的元组
①等值连接:从R与S笛卡尔积选取A、B属性值相等的那些元组
②自然连接:两个关系中进行比较的分量必须是相同的属性组。在结果中把重复的属性列去掉
悬浮元组:R和S自然连接,R中某些元组有可能在中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组。
外连接:把悬浮元组也保存在结果关系中,而在其他属性上填空值(Null)
- 左外连接:只保留左边关系R的悬浮元组(LEFT JOIN)
- 右外连接:只保留右边关系S的悬浮元组(RIGHT JOIN)
4.除运算
给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组
R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。
R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。