数据库学习笔记之关系数据库
1 关系语言的分类
关系语言分为三种:
- 关系代数语言
- 关系演算语言
- SQL 语言
2 关系代数语言
-
定义:关系代数是一种抽象的查询语言,它用对关系的运算来表达查询
-
三大要素
- 运算对象(关系)
- 运算符(集合运算符和专门的关系运算符)
- 运算结果(关系)
-
关系代数运算符
运算符类型 | 符号表示 | 含义 |
---|---|---|
集合运算符 | 并 | |
集合运算符 | 差 | |
集合运算符 | 交 | |
集合运算符 | 笛卡尔积 | |
关系运算符 | 选择 | |
关系运算符 | 投影 | |
关系运算符 | ⋈ | 连接 |
关系运算符 | 除 |
2.1 关系运算举例
以两个关系 R 和 S 为例,集合之间的运算如下:
R 关系如下:
A B C S 关系如下:
A B C
1 并集()
A | B | C |
---|---|---|
2 交集()
A | B | C |
---|---|---|
3 差集()
A | B | C |
---|---|---|
4 笛卡尔积()
R.A | R.B | R.C | S.A | S.B | S.C |
---|---|---|---|---|---|
5 选择()
例如:查询关系 R 中 A 属性值等于 的集合:
- 条件表达式中的运算符
运算符类型 | 运算符符号 | 含义 |
---|---|---|
比较运算符 | 大于 | |
比较运算符 | 大于等于 | |
比较运算符 | 小于 | |
比较运算符 | 小于等于 | |
比较运算符 | 等于 | |
比较运算符 | 不等于 | |
逻辑运算符 | ¬ | 非 |
逻辑运算符 | Ʌ | 与 |
逻辑运算符 | ∨ | 或 |
6 投影()
例如:对关系 R 中属性 A 和 B 进行投影: ,结果如下
A | B |
---|---|
7 连接
-
四种连接符号
-
悬浮元组:两个关系 R 和 S 在做自然连接时,关系 R 中某些元组有可能在 S 中不存在公共属性上值相等的元组,从而造成 R 中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组
例:有两个关系 R 和 S ,其属性值分别如下:
R 关系如下:
A B C D S 关系如下:
B D E
1 自然连接
- 定义:将共同属性进行等值连接
A | B | C | D | E |
---|---|---|---|---|
**2 外连接 **
- 定义:把悬浮元组也保存在结果关系中,而在其他属性上填入空值()就叫做外连接
A | B | C | D | E |
---|---|---|---|---|
3 左外连接
- 定义:只保留左边关系 R 中的悬浮元组
A | B | C | D | E |
---|---|---|---|---|
4 右外连接
- 定义:只保留右边关系 S 中的悬浮元组
A | B | C | D | E |
---|---|---|---|---|
8 除 (R S)
- 定义:保留 R 中满足 S 的,而且 R 中的列要去掉 S 的列
设关系 R 如下:
姓名 选修课程 张三 计算机 张三 数据库 张三 网络 李四 网络 李四 计算机 王五 数据库 王五 网络 设关系 S 如下:
选修课程 数据库 网络
则 为:
姓名 |
---|
张三 |
王五 |
2.2 关系的完整性
1 实体完整性
- 主码唯一且非空
2 参照完整性
- 外码要么为空,要么对应另一表的主码
3 用户定义完整性
- 用户定义的关系属性要完整
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本