关系数据结构、关系操作(关系代数和关系演算)、关系完整性、关系代数(集合运算、专门的关系运算) | 数据库系统概论第二章

目录

 

一、关系数据结构定义及其形式化定义

二、关系操作

三、关系的完整性

四、关系代数

关系运算:下面开始逐个了解选择、投影、连接和除运算:

1.选择 / 限制:

2.投影:

3.连接 / θ连接:

4.除运算:

五、关系演算:略


一、关系数据结构定义及其形式化定义

关系数据库是支持关系模型的数据库系统。

而对于关系模型的数据结构有以下重要定义:

关系数据结构、关系操作(关系代数和关系演算)、关系完整性、关系代数(集合运算、专门的关系运算) | 数据库系统概论第二章_第1张图片

 

 

 

二、关系操作

分为关系代数和关系演算:

  • 关系代数
  • 关系演算

SQL具有关系代数和关系演算双重特点。

 

 

 

三、关系的完整性

关系模型有三种完整性约束:

  • 实体完整性:主属性不能取空值
  • 参照完整性:例如好几个表都有一个同样的属性,这个属性要参照不同的表,不能有冲突。
  • 用户定义的完整性:数据库的值是否符合现实。

 

 

 

四、关系代数

关系代数用关系的运算表示查询:

运算对象、运算符和运算结果是关系运算的三个要素。

都有以下这些运算:

关系代数运算符
运算符 含义
集合运算符
× 笛卡尔积
专门的关系运算符 σ 选择
投影
连接
÷
  • 1.传统的集合运算:并、差、交、笛卡尔积,具体实现略
  • 2.专门的关系运算:选择、投影、连接、除运算

 

关系运算:下面开始逐个了解选择、投影、连接和除运算:

1.选择 / 限制:

在关系 R 中选择逻辑表达式 F 为真的诸元组(F是个bool型值,表示 true 或 false)

例如:  查询Sdept='IS'的全体学生。

从行的角度进行的运算。

 

2.投影

关系R的投影是从R中选择若干列组成新的关系


例如:​  查询学生的姓名,所在系。

从列的角度进行的运算。

 

3.连接 / θ连接

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

  • 等值连接:θ为等于的连接运算称为等值连接。
  • 自然连接:它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。

例如:

同时从行和列的角度进行运算。

  • 悬浮元组:在自然连接的时候,有些R或者S的元组壮烈牺牲了(比如说有的R关系的元组的B属性值(R.B)在对面S.B匹配失败了(没有对应相等的),它就被抛弃了,这些被抛弃的元组就叫悬浮元组。)
  • 外连接:把这些可怜的悬浮元组收容进来,在其他属性填NULL,就是外连接(左外连接和右外连接就是只收容左边的 / 右边的)

例如:

上图中自然连接的部分,关系R的第4个元组和关系S的第5个元组都被抛弃了,现在它们得外连接就是原来的自然连接的关系再加上这两个元组呗,就是这样的↓↓↓

关系数据结构、关系操作(关系代数和关系演算)、关系完整性、关系代数(集合运算、专门的关系运算) | 数据库系统概论第二章_第2张图片

 

4.除运算:

若R÷S = T,则T属于R,不属于S,且S×T = R

 例如:求下图的R÷S

关系数据结构、关系操作(关系代数和关系演算)、关系完整性、关系代数(集合运算、专门的关系运算) | 数据库系统概论第二章_第3张图片

  • 如图关系R(A, B,C),关系S(B,C,D),都有B、C属性,我们不妨把BC属性看作一个整体。
  • A属性对应着BC属性,BC属性又对应着D属性(对应即存在某种关系)
  • 因为是除运算,所以只要找出A与BC的对应关系,就可以拿过来和关系S进行比较。

这种关系要通过象集来表示:

  1. 如果要知道A与BC的对应关系,可以从a1到a4逐个列出b、c对应的集合:
  2. 比如a1在表格R中对应着{(b1,c2),(b2,c3),(b2,c1)}这就称作象集!!!

则:

a1象集{(b1,c2),(b2,c3),(b2,c1)}

a2象集{(b3,c7),(b2,c3)}

a3象集{(b4,c6)}

a4象集{(b6,c6)}

显然只有a1的象集包含了S在(B,C)上的投影!!!所以R÷S = {a1}

 

五、关系演算:略

这部分就完成到这里,小伙伴们加油,欢迎一起探讨~

你可能感兴趣的:(数据库)