数据库学习笔记之关系数据库

1 关系语言的分类

关系语言分为三种:

  • 关系代数语言
  • 关系演算语言
  • SQL 语言

2 关系代数语言

  • 定义:关系代数是一种抽象的查询语言,它用对关系的运算来表达查询

  • 三大要素

    • 运算对象(关系)
    • 运算符(集合运算符和专门的关系运算符)
    • 运算结果(关系)
  • 关系代数运算符

运算符类型 符号表示 含义
集合运算符
集合运算符
集合运算符
集合运算符 × 笛卡尔积
关系运算符 σ 选择
关系运算符 投影
关系运算符 连接
关系运算符 ÷
2.1 关系运算举例

以两个关系 R 和 S 为例,集合之间的运算如下:
R 关系如下:

A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1

S 关系如下:

A B C
a1 b2 c2
a1 b3 c2
a2 b2 c1
1 并集(RS
A B C
a1 b1 c1
a1 b2 c2
a2 b2 c1
a1 b3 c2
2 交集(RS
A B C
a1 b2 c2
a2 b2 c1
3 差集(RS
A B C
a1 b1 c1
4 笛卡尔积(R×S
R.A R.B R.C S.A S.B S.C
a1 b1 c1 a1 b2 c2
a1 b1 c1 a1 b3 c2
a1 b1 c1 a2 b2 c1
a1 b2 c2 a1 b2 c2
a1 b2 c2 a1 b3 c2
a1 b2 c2 a2 b2 c1
a2 b2 c1 a1 b2 c2
a2 b2 c1 a1 b3 c2
a2 b2 c1 a2 b2 c1
5 选择(σ

例如:查询关系 R 中 A 属性值等于 a1 的集合: σA=a1(R)

  • 条件表达式中的运算符
运算符类型 运算符符号 含义
比较运算符 > 大于
比较运算符 大于等于
比较运算符 < 小于
比较运算符 小于等于
比较运算符 = 等于
比较运算符 不等于
逻辑运算符 ¬
逻辑运算符 Ʌ
逻辑运算符
6 投影(

例如:对关系 R 中属性 A 和 B 进行投影:A,B(R) ,结果如下

A B
a1 b1
a1 b2
a2 b2
7 连接
  • 四种连接符号

    四种连接

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

例:有两个关系 R 和 S ,其属性值分别如下:
R 关系如下:

A B C D
α 1 α a
β 2 γ a
γ 4 β b
α 1 γ a
θ 2 β b

S 关系如下:

B D E
1 a α
3 a β
1 a γ
2 b θ
3 b μ

1 自然连接

  • 定义:将共同属性进行等值连接
A B C D E
α 1 α a α
α 1 α a γ
α 1 γ a α
α 1 γ a γ
θ 2 β b θ

**2 外连接 **

  • 定义:把悬浮元组也保存在结果关系中,而在其他属性上填入空值(null)就叫做外连接
A B C D E
α 1 α a α
α 1 α a γ
α 1 γ a α
α 1 γ a γ
θ 2 β b θ
β 2 γ a null
γ 4 β b null
null 3 null a β
null 3 null b μ

3 左外连接

  • 定义:只保留左边关系 R 中的悬浮元组
A B C D E
α 1 α a α
α 1 α a γ
α 1 γ a α
α 1 γ a γ
θ 2 β b θ
β 2 γ a null
γ 4 β b null

4 右外连接

  • 定义:只保留右边关系 S 中的悬浮元组
A B C D E
α 1 α a α
α 1 α a γ
α 1 γ a α
α 1 γ a γ
θ 2 β b θ
null 3 null a β
null 3 null b μ
8 除 (R ÷ S)
  • 定义:保留 R 中满足 S 的,而且 R 中的列要去掉 S 的列

设关系 R 如下:

姓名 选修课程
张三 计算机
张三 数据库
张三 网络
李四 网络
李四 计算机
王五 数据库
王五 网络

设关系 S 如下:

选修课程
数据库
网络

R÷S 为:

姓名
张三
王五
2.2 关系的完整性
1 实体完整性
  • 主码唯一且非空
2 参照完整性
  • 外码要么为空,要么对应另一表的主码
3 用户定义完整性
  • 用户定义的关系属性要完整
posted @   悟道九霄  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示