DATABASE SYSTEM CONCEPTS-Chapter1 Introduction
什么是DBMS?
数据库是数据的存储、维护一个非常大的集成的数据
数据库是对现实世界的建模(实体entities 关系)
数据库管理系统DBMS是存储和管理数据库的软件包
文件系统和DBMS的对比
文件系统:应用程序访问的单个文件的集合
DBMS:用电脑处理的用于记录保存的系统
文件系统的缺点:
- 数据冗余和不一致:多种文件格式,不同文件中的信息重复
- 访问数据困难:需要编写新程序来执行每项新任务
- 数据孤立
- 完整性问题
- 原子性问题
- 并发访问异常
- 安全性问题
DBMS的优点:
- 独立性
- 检索 selcet 查询 query
- 完整性约束
- 安全性(权限、访问控制)
- 方便管理和使用
- 并发访问
- 恢复崩溃
- 减少应用开发时间
数据模型
数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合
- 关系模型 (第二章)
- 关系relation,就是由列和行组成的表格
- 每个关系都有模式 schema
- 模式就是一个实体的模版
- 记录record:行
- 属性attribute:列
- 实体-关系数据模型(主要用于数据库设计)
- 基于对象的数据模型(面向对象和对象关系)
- 半结构化数据模型 (XML)
- 其他旧模型:
- 网络模型
- 层次模型
数据抽象
- 外模式(视图) external schema
- 概念模式(逻辑模式) conceptual schema
- 物理模式(内模式) physical schema
原因:数据独立性 data independence = 逻辑独立性 + 物理独立性
DBMS的查询queries
- 关系代数和关系演算
- structural query language(SQL)
- 数据操作语言DML
- 过程化DML:要求用户指定需要什么数据以及如何获得这些数据
- 声明化DML:只要求用户指定需要什么数据
1 | select name |
- 数据定义语言DDL
1 | create table instructor ( |
数据库设计
数据库设计分为 6 个阶段:
- 需求分析
- 调查机构情况与熟悉业务活动,明确用户的需求,确定系统的边界,生成数据字典和用户需求规格说明书
- 搜集资料
- 分析整理
- 数据流图
- 数据字典
- 用户确认
概念结构设计
将需求分析得到的用户需求抽象为概念模型,绘制E-R图
逻辑结构设计
将E-R图转换为与 DBMS相符合的逻辑结构(包括数据库模式和外模式),例如E-R图向关系模型转换,再根据规范化理论对数据模型进行优化,设计用户子模式
物理结构设计
通常关系数据库物理设计的内容包括关系模式选择存取方法、以及设计关系、索引等数据库文件的物理存储结构
数据库实施
建立实际数据库结构、试运行、装入数据
数据库运行和维护
维护数据库的安全性、完整性控制以及系统的转储和恢复;性能的监督、分析和改进;增加新功能;发现错误和修改错误
事务
- 原子性
- 一致性
- 隔离性
- 持久性
ACID properties
DBMS结构
- 数据库管理系统
- 查询评估引擎
- 分析器
- 优化器
- 操作器
- 操作评估器
- CPU
- 缓存管理器
- 磁盘空间管理器
- 并发控制
- 事务管理器
- 锁管理器
- 恢复管理器
SQL语句执行流程
MySQL 可以分为 Server 层和存储引擎层两部分
连接器
mysql -h10.10.0.18 -p3306 -uroot -p
主要负责用户登录数据库,进行用户的身份认证,包括校验账户密码,权限等操作
查询缓存(已经移除)
查询缓存主要用来缓存我们所执行的 SELECT 语句以及该语句的结果集
执行查询语句时,看看有没有查询过,有则返回之前结果(以 Key-Value 的形式缓存在内存中),没有则继续查询。当然在真正执行缓存查询的时候还是会校验用户的权限,是否有该表的查询条件。
分析器
分析器主要是用来分析 SQL 语句是来干嘛的
第一步,词法分析
第二步,语法分析
然后报错
优化器
去选择最优的执行方案
执行器
首先执行前会校验该用户有没有权限,如果没有权限,就会返回错误信息,如果有权限,就会去调用引擎的接口,返回接口执行的结果。开始执行的时候,要先判断一下你对这个表 T 有没有执行查询的权限,如果没有,就会返回没有权限的错误