RDBMS | 青训营笔记
这是我参与「第五届青训营」伴学笔记创作活动的第13天
经典案例
每一年的春节,抖音上都会下一场温暖人心的红包雨
- 从抖音的账户上扣除一个小目标
- 给羊老师的账户加上一个小目标
SQL: UPDATE account_table SET balance = balance - '小目标' WHERE name = '抖音'
UPDATE account_table SET balance = balance + '小目标' WHERE name = '羊老师'
- 事务(Transaction):是由一组SQL语句组成的一个程序执行单元,它需要满足ACID特性
ACID:
- 原子性(Atomicity):事务是一个不可再分割的工作单元,事务的操作要么都发生,要么都不发生
- 一致性(Consistency):数据库事务不能破坏关系数据的完整性以及业务逻辑的一致性
- 隔离性(Isolation):多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其他事务运行效果
- 持久性(Durability):在事务完成以后,该事务对数据库所作的更改便持久的保存在数据库之中,并不会被回滚
发展历史
数据模型
-
网状模型
-
优势
- 能直接描述现实世界
- 存取效率较高
-
劣势
- 结构复杂
- 用户不易使用
- 访问程序设计复杂
-
-
层次模型
-
优势
- 结构简单
- 查询效率高
- 可以提供较好的完整性支持
-
劣势
- 无法表示M:N的关系
- 插入、删除限制多
- 遍历子节点必须经过父节点
- 访问程序设计复杂
-
-
关系模型
-
优势
- 实体及实体间的关系都通过二维表结构表示
- 可以方便的表示M:N关系
- 数据访问路径对用户透明
-
劣势
- 关联查询效率不够高
- 关系必须规范化
-
SQL语言
- 语法风格接近自然语言
- 高度非过程化
- 面向集合的操作方式
- 语言简洁,易学易用
关键技术
-
SQL引擎
- Parser
- Optimizer
- Executor
-
存储引擎
-
事务引擎