教材:

数据库系统概论(第6版)王珊,杜小勇,陈红编著

目录

一、关系模型的数据结构及形式化定义

关系

关系模式

ER图→关系模型(概念模型→关系模型)

​编辑

关系数据库

二、关系的完整性

实体完整性

参照完整性

用户定义的完整性

三、关系操作

四、关系代数

传统的集合运算   

(1)并        R∪S

(2)交        R∩S

(3)差        R - S

(4)笛卡儿积

专门的关系运算

(1)选择(又称为限制)

(2)投影

(3)连接

(4)除


关系模型

E.F.Codd首次系统地提出了关系模型的相关理论

一、关系模型的数据结构及形式化定义

基本数据结构:关系

实体+联系→关系

逻辑结构:二维表

定义一个关系

        ↓

定义列的取值范围 → 

        ↓

定义所有可能的元组 → 笛卡尔积 → 有意义的元组

域是一组具有相同数据类型的值的集合。

基数:一个域允许的不同取值个数

笛卡儿积(笛卡尔积中所有的元组并不都是有意义的)

90c2cc32ae6a467fb0df9010c6bb855a.png

每一个值 di 叫作一个分量

关系

关系模式是型,关系是值

关系是笛卡尔积的子集

         R(D1,D2,…,Dn)        

R:关系名

n:关系的目或度(degree)

三类关系:

基本关系(基本表或基表)

实际存在的表,是实际存储数据的逻辑表示

查询结果

查询执行产生的结果对应的临时表

视图表

由基本表或其他视图表导出的虚表,不存储实际数据

几个概念

码(键)

在关系中由唯一可标识元组的属性或属性组构成

候选码(键)

且属性个数最少的码

主码(键)

多个候选码,则选定其中一个为主码。主码不允许为空值(非零和空格)

全码(键)

候选码包含关系模式的所有属性组

外码(键)

在关系R中包含另一个关系S的主键所对应的属性或属性组

性质:

关系模式

关系模式可以形式化地表示为:

                     R(U,D,DOM,F)

R      

     关系名

U      

     组成该关系的属性名集合

D      

     U中属性所来自的域

DOM 

     属性向域的映象集合

F       

     属性间数据的依赖关系集合

简记为

      R (U)    或    R (A1,A2,…,An)

        A1,A2,…,An  : 属性名

ER图→关系模型(概念模型→关系模型)

实体转换:

关系的属性为实体的属性,关系的码为实体的码

关系装换处理:

关系数据库

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

在一个关系数据库中,某一时刻所有关系模式对应的关系的集合构成一个关系数据库


二、关系的完整性

实体完整性

主码的约束:

数据非空,唯一,不重复

参照完整性

针对外码的约束:

用户定义的完整性

其他属性的约束


三、关系操作

常用的关系操作:

查询操作:选择、投影、连接、除、并、差、交、笛卡儿积

选择、投影、并、差、笛卡儿积是5种基本操作

更新操作:插入、删除、修改

特点:集合操作方式——操作的对象和结果都是集合


四、关系代数

是一种抽象的查询语言,它用对关系的运算来表达查询

分类:传统的集合运算和专门的关系运算

运 算 符

含 义

传统的

集合

运算符

-

×

笛卡儿积

专门的

关系

运算符

σ

选择

π

投影

连接

÷

传统的集合运算   

(1)并        RS

仍为n目关系,由属于R或属于S的元组组成

(2)交        RS

仍为n目关系,由既属于R又属于S的元组组成

(3)差        R - S

仍为n目关系,由属于R而不属于S的所有元组组成

(4)笛卡儿积

R: n目关系,k1个元组

S: m目关系,k2个元组

R×S

(n+m)列元组的集合

元组的前n列是关系R的一个元组

后m列是关系S的一个元组

行:k1×k2个元组

并、 差 前提条件:

 RS

  • 具有相同的目n(即两个关系都有n个属性)
  • 相应的属性取自同一个域

运算后不要有重复元组

笛卡儿积运算中属性名相同的要改一下属性名(eg:R关系中A属性改成R.A)

专门的关系运算

(1)选择(又称为限制

在关系R中选择满足给定条件的诸元组(行)

                

F:选择条件,是一个逻辑表达式,取值为“真”或“假”

基本形式为:X1θY1

θ表示比较运算符,它可以是>,≥,<,≤,=或<>

X1,Y1是属性名时可以用它的序号来代替

    eg:      σSbirthdate >= 2001-1-1(Student)

(2)投影

在关系R中选择出若干属性列组成新的关系(从的角度进行运算)

             

A:R中的属性列 

运算后不能有重复元组,可能会消除某些元组

eg:    πSname,Smajor(Student)

(3)连接

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

A和B:分别为R和S上度数相等且可比的属性组

θ:比较运算符 

连接运算从R和S的广义笛卡儿积R×S中选取R关系在A属性组上的值与S关系在B属性组上的值满足比较关系θ的元组(的角度进行运算

等值连接:θ为“=”的连接运算

从关系R与S的广义笛卡儿积中选取A、B属性值相等的那些元组

自然连接:一种特殊的等值连接

两个关系中进行比较的分量必须是同名的属性组(公共属性)

在结果中把重复的属性列去掉(增加了的角度

两个关系RS在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃

外连接是关系数据库中一种连接操作,用于从两个或多个表中提取数据。它的主要目的是确保某一表中的所有数据都被保留,即使与其他表的数据不完全匹配

悬浮元祖:被舍弃的元祖

左外连接

只保留左边关系R中的悬浮元组

右外连接

只保留右边关系S中的悬浮元组

如果把悬浮元组也保存在结果关系中,而在其他(没有配对上的)属性上填空值(Nul),就叫做外连接

外连接(全外连接)

(4)除

给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。

R中的YS中的Y可以有不同的属性名,但必须出自相同的域集

R与S的除运算得到一个新的关系P(X)

P是R中满足下列条件的元组在 X 属性列上的投影:

元组在X上分量值x的象集Yx包含S在Y上投影的集合

除运算的过程

  1. 投影:首先对关系S在Y属性上进行投影,得到一个集合Y',其中包含S中所有Y的值。
  2. 象集的定义:对于关系R中的每个元组(x, y),我们需要检查元组在X上分量值x的象集Yx是否存在于集合Y'中。如果存在,那么这个元组的X部分x会被保留。
  3. 满足条件:关系P(X)由所有满足以下条件的元组的X属性值组成:对于每个元组(x, y) ∈ R,若Yx(Y中与y相同的所有元组对应的X值)包含Y',则将x投影到关系P中

在关系R中,A可以取四个值{a1 a2a3a4}

    a1的象集为 {(b1c2)(b2c3)(b2c1)}

    a2的象集为 {(b3c7)(b2c3)}

    a3的象集为 {(b4c6)}

    a4的象集为 {(b6c6)}

S(BC)上的投影为

           {(b1c2)(b2c1)(b2c3) }

只有a1的象集包含了S(BC)属性组上的投影

     所以     R÷S ={a1}

除运算的功能是在被除数中查找能够完全覆盖除数所有记录的记录,并且只保留没有在除数中出现的属性。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐