第二章 关系数据模型
关系数据库系统
*关系数据库系统是支持关系模型的数据库系统
*1970年IBM公司的E. F. Codd提出的关系数据模型
*之后提出了关系代数和关系演算的概念
*1972年提出了关系的第一、第二、第三范式
*1974年提出了关系的BC范式
1、关系数据结构
*单一的数据结构——关系
-现实世界的实体以及实体间的各种联系均用关系来表示
*数据的逻辑结构——二维表
-从用户的角度,关系模型中数据的逻辑结构就是一张二维表
相关概念:
①域:是一组具有相同数据类型的值的集合
例如:整数、实数、指定长度的字符串集合、介于某个取值范围的整数、{'男"女'}、介于某个取值范围的日期
②笛卡尔积:
*给定一组域
D1,D2,⋯Dn
-这些域可以完全不同
-也可以部分或全部相同
∗D1,D2,…Dn
的笛卡尔积为:
D1×D2×⋯×Dn={(d1,d2,⋯dn)|di∈di,i=1,2,⋯n}
-所有域的取值的一个组合
-不能重复
③关系的表示:关系也是一个二维表,表中每行对应一个元组,每列对应一个域码(key,键)
*候选码:在关系中能唯一表示元组的属性或属性集
*主属性:候选码的各个属性
*主码:用户选作元组标识的候选键
*全码:关系的所有属性是这个关系的候选码
④关系模式:
-关系模式是对关系的描述
-关系模式是型,关系时值
关系模式VS关系
*关系模式:对关系的描述、静态的、稳定的
*关系:关系模式在某一时刻的状态或内容、动态的、随时间不断变化
⑤关系数据库
*在一个给定的应用领域中,所有实体及实体之间的联系的关系的集合构成一个关系数据库
*关系数据库模式是关系数据库的型,是对关系数据库的描述
关系模型:关系数据结构、关系操作、完整性约束
2、关系操作:
*查询、插入、删除、修改
*特点:集合操作方式
*关系数据语言的种类:关系代数语言、关系演算语言、具有上两者双重特点的语言,如SQL
*关系数据语言的特点:是一种高度非过程化的语言、能够嵌入高级语言中使用
3、关系完整性约束
*关系模型的完整性规则是指对关系的某种约束条件
*关系模型中三类完整性约束:
——实体完整性
——参照完整性
——用户定义的完整性
*实体完整性和参照完整性是关系模型必须满足的完整性约束条件被称作是关系的两个不变性,应该由关系系统自动支持。
①实体完整性:
主码唯一且不能为空
主属性不能取空值
关系模型必须遵守的实体完整性规则
1)实体完整性规则是针对基本关系而言的
2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识
3)关系模型中以候选码作为唯一性标识
4)所谓空值就是“不知道”或“无意义”的值
注意:如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与(2)矛盾,因此这个规则称为实体完整性
②参照完整性
*实体→ 关系
*联系→ 关系
外码:如果一份关系R中的一个属性f对应哲另一个关系S的主码K,那么F在关系R中称为外码。
主码:用下划线表示
外码:用波浪线表示
说明:
-关系R和S不一定是不同的关系
-被参照关系S的主码K和参照关系的外码F必须定义在同一个(或一组)域上
-外码并不一定要与相应的主码同名
-当外码与相应的主码属于不同关系时,往往取相同的名字,以便识别
*参照完整性规则就是定义外码与主码之间的引用规则
*外码的取值必须为:
或者取空值
或者等于被参照表中某个元祖的主码值
第三章关系代数基础
*并、差、交
*投影、选择
*笛卡尔积
*重命名
关系代数:
*是一种抽象的数据查询语言
*用对关系的运算来表达查询
-运算对象:关系
-运算符:4类
-运算结果:关系
关系运算符分类
*传统的集合运算符
- U ∩
-将关系看成元组的集合
-所有的运算对象必须具有相同的结构
*专门的关系运算符
-选择和投影σπ
-笛卡尔积,连接×
-重命名ρ
辅助专门的关系运算符
比较运算符< <= >>== <>
逻辑运算符 ¬∧∨
传统集合运算
①传统的集合运算
*RUS
-并,结果由属于R或属于S的所有元组组成
*R∩S
-交,结果由即属于R又属于S的元组组成
*R-S、
-差,结果由属于R而不属于S的所有元组组成
*先决条件
-R和S的属性个数必须相同
-对应属性必须取自同一个域
②投影和选择
投影
*用于从R中选择出若干个属性列组成新的关系
πL(R)
*L为R中的属性列表
*结果为只包含R中某些列的新的关系
*结果要去掉重复元组
选择
*用于在关系R中选择满足给定条件的各个元组
σc(R)
-C选择条件,是一个逻辑表达式
-结果为只包含R中某些元组的新的关系
③笛卡尔积,连接
-θ连接
连接也称为θ连接
RDS
AθB
A和B:分别为R和S上度数相等且可比的属性组θ:比较运算符
-等值连接
θ为“=”的连接运算称为等值连接
RDS
A=B
含义:从关系R和S的笛卡尔积中选取A、B属性值相等的哪些元组-自然连接
R
自然连接是在公共属性(组)上进行的等值连接
-两个关系中必须具有公共属性(组)
-在结果中把重复的属性列去掉
④重命名ρ
Ps(A1,……,An)(R)
-将关系R重命名为S
-将关系S中的各个属性命名为A1,A2,……,An
关系运算符的优先级
1、单目运算符优先级最高---select,project
2、笛卡尔积和连接运算符
3、交
4、并和差
注意:括号的优先级最高