RDBMS | 青训营笔记

56 阅读2分钟

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
  • 存储引擎

  • 事务引擎