数据:有意义的符号
信息:数据中有价值的部分
数据库DB
定义:按照一定结构存储,组织,管理的电子仓库
功能:
- 数据更改
- 数据查询
数据库管理系统DBMS
定义:数据库操作工具
例子:MySQL -》 数据库客户端工具Dbeaver,Navicat
数据库系统
介绍:DBS= DB + DBMS + 数据库管理员DBA
特点:
-
一定组织形式
-
共享性
-
冗余低-》效率高
-
扩展性好
-
DB由DBMS统一管理
-
独立性(数据结构) -》 完成DB的内部封装,减少因内部结构改变影响外界功能
- 物理独立性
- 逻辑独立性
数据库DB架构:
三层模式架构:
内部模式:描述数据在物理硬件上的存储方式(比如物理内存分配)
概念模式:描述数据在计算机语言上的存储方式(比如数据结构)
外部模式:描述数据在用户前的存储方式
三层之间通过模式映射保证使用稳定性
数据模型:
定义:对数据系统的静态与动态特性以及完整性约束的概念描述集合,类似数据库设计的蓝图
类别:
概念模型:描述业务实体及关系,比如E-R实体关系图
逻辑模型:将概念模型转换为数据库可实现的模型,比如关系数据模型
物理模型:描述数据在硬件上的存储访问方式
主要组成:
数据结构:数据组织方式
数据操作:数据处理方式
数据完整性约束:
实体完整性约束:确保每一条存储记录保持唯一性与可识别,必须存在主键且主键不可重复,不能为空
域完整性约束:指字段的约束,约束目标区域的数据类型,取值范围与格式,比如1.学生学号限定为VARCHAR(20),取值约束为总字符数量必须小于等于20 2.非空约束 3.检查约束 4.唯一约束等
参照完整性约束:指两个表之间的约束
用户定义完整性约束:类似检查约束,该约束主要服务用户需求
数据库管理系统DBMS架构
三级模式结构:
外模式:用户直接看到的数据结构
模式:数据的逻辑结构
内模式:数据物理存储方式
数据库设计一句话概括:物理结构经过两级映像和逻辑抽象形成用户理解的直观视图,并提供操作接口。
数据库的具体应用
数据库的调度与常见问题:
为保证数据库的利用效率,往往会出现多个事务同时访问一个数据库的情况,而一个事务为了保证数据库的读取过程不被干扰,会为其加上特定功能的锁定,包括保证只有锁主体可读可写,其他不可读不可写的X锁;只有锁主体可读可写,其他只可读不可写的S锁,由此排列组合出了三级封锁协议:一级封锁协议,在事务执行时对数据库加X锁,避免因多个事务重复修改同一数据库导致的数据重叠引发的错误;二级封锁协议,在事务A进行数据库读取并上X锁时,若事务B需要读取数据库,则需要上S锁,但由于X与S锁冲突,事务B等待;同样地,若事务B需要读数据库,先上S锁,事务A的X锁由于互斥无法加上,只能等待,避免脏读问题(即读取数据的一方读到了正在修改的还未确定的数据,如果后续修改方回滚或者取消操作导致连锁错误);三级事务封锁,在二级的基础上,S锁的解除条件从读取操作完成变为了事务结束,防止因为读取操作完成后其他事务进行修改导致的读取数据失效或无效(不可重复读问题)。由上,并发操作会出现脏读,不可重复读,幻读(数据行的数量更改导致的不可重复读)等问题,尽管由对应的解决措施,但为了一劳永逸地结局问题,工程师提出可串行化调度的执行标准,要求一个并发操作的任务必须可以转换为串行调度方式同时结果保证不变,保证了并发控制的正确性。其中,如果在可串行化操作的基础之上可以做到仅仅对非冲突操作执行顺序进行更改便可以做到串行化调度,称为冲突可串行化调度,意味着在不更改冲突操作的顺序操作情况下完成错误修正。
解决方式/必需调度方式
可串行化调度与冲突可串行化调度:
可串行化调度的意思是一个·并发的调度,可以在保持结果一致的情况下转换为一个串行调度避免错误;在此基础上,若只通过交换并发操作中的非冲突事务执行顺序的时候就可以实现转换,那么就称其为冲突可串行化调度