数据库系统概论第二章笔记(2)

关系数据库(2)

1. 专门的关系运算

  • 选择
  • 投影
  • 连接
  • 除运算

2. 选择

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

  • 表达式

    • t代表元组
    • F代表一个公式
      • 基本形式:X1θY1
      • θ表示比较运算符:>,<,>=…
    • F(t)代表一个命题:可以判读真假的表达式
    • 公式与命题之间的关系

在这里插入图片描述

在这里插入图片描述

示例:使用关系代数实现选择

  • Student表

在这里插入图片描述

  • 选择语法

在这里插入图片描述

  • 结果

在这里插入图片描述

3. 投影

  • 从关系R中选择出若干属性列组成新的关系(选择列)

  • 记作

在这里插入图片描述

  • A为R中的属性列

  • 注意点

    • 投影之后不仅取消了原关系中某些列,还可能取消原关系中的某些元组,因为取消了某些列后,可能出现重复的行

示例

  • Student表

在这里插入图片描述

  • 投影语法

在这里插入图片描述

  • 投影结果
    • 取消了重复的元组

在这里插入图片描述

4. 连接

设有关系R,S,R上有属性组A,B,S上有属性组B

  • F连接:多个θ连接(笛卡儿积+选择)

    • θ连接:两个关系的笛卡儿积中选取属性间满足一定条件的元组

    在这里插入图片描述

    • 等值连接:θ为’='的连接运算,从关系R和关系S中选取A,B属性值相等的那些元组
  • 自然连接(笛卡儿积+选择+投影)

    • 特殊的等值连接
    • 要求进行比较的分量是同名的属性组并在结果中把重复的列去除

示例

在这里插入图片描述

5.除运算

5.1 象集

  • 在关系R(X,Z)中,X,Z为属性组
  • 象集表示X的的取值为x时的元组在Z上分量的集合
  • 通俗理解:某一属性X的所有其他属性

示例

  • 关系R

在这里插入图片描述

  • 取值的象集
    • x1在R中的象集{Z1,Z2,Z3}
    • x2在R中的象集{Z2,Z3}
    • x3在R中的象集{Z1,Z3}

5.2 除运算

  • 设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都在R中

用象集定义除法

  • 给定关系R(X,Y),S(Y,Z),其中X,Y,Z为属性组,R中的Y与S中的Y可以有不同的属性名,但Y来自同一个域
  • 通俗理解:R除S得到一个新关系,这个**关系中X的取值满足在R关系对应取值的象集包含关系S在Y上投影的集合**

示例

在这里插入图片描述

6.用5种基本运算表示除运算

  • 设有关系R(X,Y),S(Y,Z)

最终结果

在这里插入图片描述

  • 下面这张图片表示在X列上的投影

在这里插入图片描述

分步过程

  1. 使R中X的每个分量x的象集都包含关系S在Y上的投影

在这里插入图片描述

  1. 减去实际的R(如果**某个X的取值的元组记录完全被减去了,说明这个X取值,包含S在Y上的投影集,包含在除法的结果中**)

    在这里插入图片描述

  2. 2步骤中得到的结果集,把**结果集在X上投影这些X的取值就是没有完全包含S在Y上的投影集**,不包含在除法结果中)

在这里插入图片描述

  1. 对**实际的R(最初的R)在X上投影(包含所有的X)-步骤3的投影(这些X没有完全包含S在Y上的投影集)**,得到的结果就是完全包含S在Y上的投影集的X的取值的集合

在这里插入图片描述

示例

  • 选出选了1,3课程学生的学号

    • R/S
  • 关系R :SC学生选课表

学号Sno(X)课程号Cno(Y)
0211
0212
0213
0222
0223
  • 关系S
课程号Cno(Y)课程名Cname(Z)
1离散数学
3数据库
第一步(笛卡儿积)
  • 得到一个笛卡尔积(假设所有学生都选了),注意投影会去除重复的元组(见上文)
XY
0211
0213
0221
0223
第二步(差)
  • 减去实际的R(差运算)
XY
0221
第三步(投影)
  • 在第二步的结果基础上对X投影

X集合={022}

第四步(投影,差)
  • 对最初的关系R在X上投影(所有学生),减去第三步得到的集合(这些学生没有完全包含要求的课程)

{021,022}-{022}={021}

{021} 就是既选择了1,又选择了3课程的学生

posted @ 2022-03-15 12:24  凌歆  阅读(101)  评论(0)    收藏  举报