数据库 (一) -- 关系代数和关系模型

关系代数

一个集合施加一个操作得到一个集合;最后得到想要的结果

关系 R:

A B C
a b c
b a d
c d e
d f g

关系 S:

A C D
b a d
d f g
f h k

基本操作

R(A1, A2..., AN) S(B1, B2..., BN)

前提:并相容性

  1. N = M
  2. Domain(Ai) = Domain(Bi)

合并,去掉重复元组,R 并 S 和 S 并 R 结果相同

例:两表中记录合并,是...或者是...或者是...的记录

R-S: 出现在 R 中,但不出现在 S 中的元组

R-S:

A B C
a b c
c d e

S-R:

A B C
f h k

例:R 为计算机学院学生, S 为四年级学生,
R-S: 计算机学院但不是四年级学生
S-R: 四年级但不是计算机学院的学生
是...但不是...的记录

广义笛卡尔积

R 和 S 所有可能元组的穷举,笛卡尔积属性个数 n + m

连接的基础

选择

在 R 中找出符合条件 condition 的行, 组成新的关系

投影

在关系 R 中选择若干列,组成一个新关系(并去重)

更名操作

起别名,自身连接自身

扩展操作

交 Intersection

既属于 R 又属于 S ( 并且 )

R 交 S = R - (R - S) || S - (S - R)

连接

  1. θ 连接

    给定一个条件进行连接

  2. 等值连接 特殊的 θ 连接 (当条件相等时)

  3. 自然连接 *

    要求两个关系中进行比较的必须是相同的属性组,并去掉重复列

前提

R 为 n 度, S 为 m 度,需要 m < n

查询... 全部的/所有的 ... (一般都是主键或者候选键)

R 中的象集包含 S 的投影集 (属于一个关系,但是不属于另一个关系的元组)

关系 R:

A B C D
a b c d
a b e f
a b h k
b d e f
b d d l
c k c d
c k e f

关系 S:

C D
c d
e f

cd 对应 {{a, b}, {c, k}}
ef 对应 {{a, b}, {c, k}, {b, d}}

取交集

外连接

连接运算的扩展,可以处理连接时,没有相同字段而丢失的信息

  • 左外连接

    在连接基础上,用 null 填满没有没有与左侧记录匹配的右侧元组的属性,去除没有匹配到的右侧记录

  • 右外连接

    在连接基础上,用 null 填满没有没有与右侧记录匹配的左侧元组的属性,去除没有匹配到的左侧记录

  • 全外连接

    完成 左外连接 + 右外连接

关系模型

完整性约束

  • 实体完整性 -- 主码

    主码不能为空

  • 参照完整性 -- 外码、候选码

  • 用户自定义完整性 -- 属性、属性值

    自定义属性值的取值范围

数据库 (一) -- 关系代数和关系模型

上一篇:Mysql导入大sql文件方法


下一篇:mysql 连接查询