转化关系模型外键_关系型数据库基础理论

de45822711785c2221c8a15bd9e2e8e0.png

一、数据模型

  1. 层次模型
  2. 网状模型
  3. 关系模型(结构化数据模型)
  • 关系模型
  • E-R:实体关系模型
  • 对象关系模型 :基于对象的数据模型
  • 半结构化数据模型 xml(一条数据name、age、gender另一条数据 name、uid、birthday)

二、文件实现数据管理带来的缺陷

在数据库出现之前,所有的数据都是靠文件来实现数据管理的,那么文件管理数据的缺陷:

  • 数据冗余和不一致行
  • 数据访问困难(只能是将所有的数据载入内存中再来一个个比较我们需要的数据)
  • 数据是孤立的(不遵循统一规范)
  • 数据的完整性问题 (银行转账的例子)
  • 数据的原子性问题(数据必须从一种稳定的状态转换到另一种稳定的状态)
  • 并发访问异常
  • 安全性问题

三、文件和关系型数据的三层关系

  1. 文件
  • 表示层:文件
  • 逻辑层:文件系统 存储引擎 (将底层的数据块抽象成文件给用户 将文件结构为底层的数据块存储在磁盘中)
  • 物理层:在磁盘上是二进制数据 数据块 元数据

2. 关系型数据

  • 表示层:数据表
  • 逻辑层:存储引擎
  • 物理层:数据文件

四、SQL结构化查询语言

  1. DML数据操作语言:insert select delete update
  2. DDL数据定义语言:create drop alter 库 表 索引 视图 用户 存储过程 触发器 事件调度器

约束:

  • 域约束 数据存储的范围
  • 外键约束 引用完整性约束
  • 主键约束 某字段能唯一标示此字段所属的实体,且不能为空
  • 唯一性约束 每一行的某字段都不允许出现相同值,可以为空
  • 检查性约束

3. DCL数据控制语言:grant revote 控制用户访问权限

五、数据的存储和查询

  1. 存储管理器
  • 权限及完整性管理
  • 事物管理
  • 文件管理
  • 缓冲区管理

2. 查询管理器

  • DML解释器 (理解DML语句)
  • DDL
  • DCL
  • 查询执行引擎

补充:数据库是不能做到一个线程响应多个请求的,避免权限交叉。一个线程处理一个请求,所以mysql是多单进程多线程的,分为守护线程和应用线程;一个应用系统最慢的部分就是数据库,所以因减少与数据库的交互。提高效率应使用线程重用,用户退出之后不回收线程,放在线程池中,下一个用户直接拿来用。

六、mysql的执行流程

306129ccfbc3d4860052abf0c10cd255.png

微观层面解析:

36682f411c6f67114639702e520e4b61.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值