(数据库系统二)关系模型——关系代数

前言

通过关系代数来描述关系模型可进行的操作,然后通过SQL语言实现关系代数的操作

  • 关系:n元有序组的集合
  • 关系操纵:关系上的集合运算
  • 关系代数:(A,π,δ,×,∪,-)即有关系的集合A及其关系间的五种基本运算所构成的代数系统被称为“关系代数”,基本元素包括——并,差,投影,选择,笛卡尔积
  • 关系模型:数据结构+数据操纵+数据约束

一、关系模型概述

1.关系数据结构

1)表结构
二维表(简称表)的组成

  • 属性:表由n个命名的属性(n元表)组成,每个属性有一个取值范围(值域)
  • 元组:表中存放的数据,表存放的元组的个数被称为表的基数

2)键
在二维表中能为以最小标识元组的属性被成为该表的“键”(关键字)。例如,学号是学生表的关键字

  • 候选键
  • 主键:所有候选键中选取其中一个被称为该表的主键
  • 外键:表A中的属性集F是表B的关键字,则F是A的外键

2.关系操纵

1)查询
在一张表中查询指定元组(行选择)和属性(列选择),如果对多张表进行数据查询,则先将多张表合并成一张表,再进行查询

2)插入
在一个关系中插入新的元组

3)删除
数据删除的基本单位元组

4)修改
数据修改不是一个基本操作,通过删除原先元组和插入修改后的元组实现

3.关系中的数据约束

  • 实体完整性约束:主键中的属性不能有空值
  • 参照完整性约束:外键要么取空值,要么取被引用表中当前存在的某元组上的主键值
  • 用户定义的完整性:用户自己定义的属性取值约束

二、关系代数的重要运算

关系上的操作关系代数对应的运算
元组选择选择运算
属性指定投影运算

1.投影运算π( R )

投影运算:略去关系中的某些属性并重新安排剩余属性的排列次序

假设关系R有n个属性A1,A2,…,An,在其中m个属性B1,B2,…,Bm上的投影可表示为B1,B2,…,Bm( R )其中:Bi∈{A1,A2,…,An}(i=1,2,…,m)
例如
R:πC,A( R ) :

2.选择运算δF( R )

选择运算:根据给定的条件F从关系R中选出符合条件的元组。

例如δA>'c’∨C<‘d’( R )

ABC
abc
daf

3.结合使用投影和选择运算来实现单张表中的数据查询操作πA,CB=‘b’( R ))
R δB=‘b’( R )

πA,CB=‘b’( R )):

AC
ac
cd

三、关系代数中的运算

1.基本运算:交、并、差

假设关系R和S的关系模式Head( R )=Head(S)(属性相同)

运算表达式
R∪S
R∩S
R-S

2.除运算:R÷S

关系除法R÷S通常理解为:从关系R中,找出所有满足在S中的所有B属性组合的A属性集的值

假设关系R和S的关系模式为Head( R )和Head(S)(Head(S)∈Head( R ),其中Head( R )={A1,A2,…,An,B1,B2,…,Bm},Head(S)={B1,B2,…,Bm},那么Head(R÷S)=Head( R )-Head(S)={A1,A2,…,An}。如果R=T×S(笛卡尔积),那么T=R÷S。

推导公式:R÷S=πA1…An( R )-πA1…An((πA1…An( R )×S)-R)

给出一个例子便于理解:


请着重理解课后习题【例3.18】

3.笛卡尔积:R×S

假设关系R和S分别由n和m个属性R(A1,A2,…,An)和S(B1,B2,…,Bm),那么他们的笛卡尔积T=R×S为T(A1,A2,…,An,B1,B2,…,Bm),假设关系R和S分别有p和q个元组,笛卡尔积中有(p×q)个元组

假设Domain(dept)={数学,中文},Domain(name)={张山,李英,王华}那么dept和name的笛卡尔积为

4.联接运算 :R∞S(F)

关系R和S根据条件F合并为一个关系,Head(T)=Head(R )∪Head(S)

联接运算的推导公式:R∞S(F)=δF(R×S)

例如:
RS

联接运算R∞S(D>E):

下面再讲两种扩展的联接运算:
1.自然联接R∞S:从关系R和关系S中分别任取一个元组r和元组s,元组r和元组s在他们的同名属性上的取值都相等,由r和s合并构成结果关系中的一个元组

设有关系R和S,R有属性A1,A2,…,An,S有属性B1,B2,…,Bm,它们的公共属性为A1,A2,…,Aj和B1,B2,…,Bj
推导公式:R∞S=πA1…An,Bj+1…BmA1=B1∧A2=B2∧…∧Aj=Bj(R×S))
例如
R:S

R∞S:

ABCDE
24264
24268
11473

2.外联接
RS

R与S的外联接

四、关系代数实例

人事档案表

在这里插入图片描述

The CAP Datebase

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

The SC database

snosnsdsacnocnpnoG
学号学生姓名院系地址课程编号课程名预修课程号成绩

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
返回关系除法运算
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值