文章目录
一、 关系模型有关概念
- 关系模型:用二维表结构形式表示实体及实体之间联系的数据模型。
- 属性:二维表的列称为属性(也称字段),各属性有独立的名称,属性值对应于各行的字段值。
- 记录:二维表的行称为记录(也称元组);一条记录的一个属性值被称为一个分量(也称为数据项)。
- 关系:二维表记录的集合称为关系,每个关系有一个关系名。
- 域:是一组相同数据类型的属性值的集合。在关系中用域表示属性的取值范围。
属性A的域用D(A)表示,域中所包含的值的个数(行数)称为域的基数(用m表示)。
二. 关系的类型和性子
2.1 类型
类型:关系有三种类型:基本表,查询表和视图表
(1)基本表实际存在的表,存储数据的逻辑表示
(2)查询表示查询结果对应的表
(3)视图表由表/其他视图表导出的表,虚表,不对应实际存储数据(一张图而已)
2.2 基本关系的六条性质
(1)同一属性(列)的数据是同质的(Homogeneous),即每列值为同类数据,且来自同域.(同列同类同域)。
(2)关系中每个属性值都不可分解.即各分量都是不可分的数据项。
(3)任意两列不能相同,同一关系的属性(列)名不能重复,即不同列可出自同一个域,称其中的每列为一个属性。
(4)任意两行元组(记录)不能完全相同。
(5)列的顺序无所谓,即列的次序可任意交换。
(6)行的顺序无所谓,即行的次序可任意交换。
三、 E-R图转换为关系模型的方法
(1)实体转换关系规则:将每个实体转换成一个关系模式时,实体的属性就是关系的属性。如学生实体中的属性“学号” 就是关系的属性
(2)二元联系转换规则
3.1 实体联系 1:1
可以在两个实体任选一个,其关键字和联系的属性放入另一个实体对应的关系模式中
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称,辅导员教师号,接管时间)PK:班号 和 辅导员教师号
3.2 实体联系:1:n
方法一
1 端实体的关键字放入 n 端实体的关系模式中,联系有属性也一起放进 n 端中,关键字是n端的关键字
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称,辅导员教师号,接管时间)PK:班号 和 辅导员教师号
方法 二
是独立构建一个关系模型,实体是两端实体的关键字加上联系的属性,而关键字为n 端实体的关键字
辅导员(教师号,教师名,性别,年龄,称职)PK:教师号
班级(班号,所在系,班级名称)PK:班号
管理(辅导员教师号,班号,接管时间)FK:辅导员教师号,班号
3.3 联系实体 m: n
新构建一个关系模型,其属性为两端实体关键字加上联系的属性,而关键字为两端实体关键字的组合
学生(学号,姓名,性别,年龄,籍贯)PK:学号
课程(課号,科目,课程性质)PK:課号
选课(学号,课程,成绩)
四、 关系模型的完整性
4.1 实体完整性规则
(1)实体完整性规则:主键中的主属性不可取空值。一个基本关系通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。实体完整性如图2-7所示。
4.2 参照完整性
2)参照完整性规则(Referential Integrity)要求:若属性组F是关系模式R1的主键,同时F 也是关系模式R2的外键,则在R2的关系中,F 的取值只允许两种可能**:空值或等于R1关系中某个主键值**.R1称为被参照关系模式,R2称为参照关系模式
参照完整性就是定义外键和主键之间的引用规则。学生选修表中每个元组上的学号属性必须为空(F的每个属性值均为空值);或等于S即学生数据表中某个元组的主键。
4.3 用户定义完整性
用户定义的完整性:是针对某一具体关系数据库的约束条件,反映出某一具体应用所涉及的数据必须满足的语义要求。(特定的查询数据)
五、 关系运算种类及运算符
- 传统的集合运算:将元组(记录)作为集合中元素进行运算,其运算是从关系的**“水平”方向即行的角度进行的。包括并、差、交和笛卡尔积**等运算。
- 专门的集合运算:针对关系数据库的应用而专门设计的。涉及关系的行运算和关系的列运算。它包括选取、投影连接和除等运算。
- 关系代数所使用的运算符有4类:
(1)集合运算符:∪(并),—(差),∩(交),×(广义笛卡儿积)。
(2)专门的关系运算符:σ(选择),π(投影), (连接),÷(除)
(3)比较(算数)运算符:>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于)
(4)逻辑运算符:¬(非),∧(与),∨(或)。
5.1 并
关系R和关系S的并由属于R或属于S的元组组成,即R和S的所有元组合并,删除重复元组,组成一个新的关系,其结果仍为n目关系。记作:
R∪S = { t | t∈R ∨ t∈S } 其中,t是元组变量(关系表的行)
注意:并、差和交运算R和S的属性一定要相同,否则无法进行运算。
5.2 交
关系R和关系S 交由既属于R又属于S的元组组成,运算结果是R和S中相同的元组组成一个新的关系,仍为n目关系。记作:
R∩S = { t | t∈R ∧t∈S }
关系的交也可用差表示,即R∩S =R-(R-S)。
5.3 差
关系R和关系S的差由属于R而不属于S的所有元组组成,即R中删除与S中相同的元组,组成一个新的关系,其结果仍为n目关系。记作:
R-S = { t | t∈R ∧t S } t是元组变量
5.4 广义笛卡尔积
两个分别为n目和m目的关系R和 S的广义笛卡尔积是一个(m+n)列的元组的集合,元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔有k1×k2个元组,记作: R×S≡{t︱t=<t r, t s>∧t r∈R∧t s∈S }
5.5 选择
选择运算是在表中选择符合给定条件的元组,即对二维表进行水平分割
5.6 投影
投影运算是在一个关系中选取某些列,并重新安排列的顺序,再删去重复元组,即对二维表进行垂直分割.
5.7 连接
在R 与 S 的笛卡尔积中进行连接
B>D
R.A=R.A(同时也删除重复元组)
R与S 的自然连接
那两个相同的属性进行比较,值相同则保留,重复则保留一个,其他属性列没有相同的那就直接加进来
5.8 除
除运算过程:
关系的除运算操作是从行和列同时进行的。具体计算过程为:
(1)将被除关系的属性分为像集属性和结果属性两部分,与除关系相同的属性属于像集属性,不相同的属性属于结果属性。
(结果属性是指最后结果表,需要具备这些结果属性列)
(2)在除关系中,在与被除关系相同的属性(像集属性)上投影,得到除目标数据集。
(3)将被除关系分组,将结果属性值相同的元组分为一组。
(4)观察每个组,若其像集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集.并差去与原被除关系相同的分组.
(1)先分出像集属性进而结果属性
在R关系中学号属性的值可以取
BX15120 对应的像集为{(P2637,周),(A3103,杨),(P637,张) }
BE16227 对应的象集为{(李),(杨),(张)}
BG16245 对应的象集为{ (王),(杨)}
BG16238 值对应的象集为{(张) }
关系S在学号上的投影为{(周),(杨),(张)}
(其实大概意思就是查找满足信息是周+杨+张的学号)
只有 BX15120 的值对应象集包含关系S的投影集,所以只有a1包含在A属性中
结果为这个: