[每天五分钟,备战架构师-10]数据库系统
事务管理
事务是数据库系统运行的基本工作单位,相当于操作系统中的进程,事务具有ACID特性。从用户的角度来看,事务中的操作要么都做,要么都不做。
- 原子性 Atomicity
- 一致性 Consistency
- 隔离性 Isolation,表示不能被其他事务干扰
- 持久性 Durability,一旦提交改变就是永久性的
处理并发控制 Concurrency
多个用户对同一数据进行并发操作时,如果没有控制,可能会产生丢失更新、读到过时的数据(不一致分析问题)、读到脏数据(依赖于未提交更新的问题)的情况。并发控制的主要方法是采用封锁技术,有两种类型:排他型封锁、共享型封锁。
- 排他型封锁(简称X封锁)。如果事务T对数据A实现了X封锁,那么只允许T读取修改数据A,其他事务需等T解除X封锁后,才能进行后续动作。
- 共享型封锁(简称S封锁)。X封锁要求太严,于是产生S封锁。如果事务T对数据A实现了S封锁,那么允许事务T读取数据A,但不能修改数据A,在所有S封锁解前不允许任何事务
处理并行控制 Parallelism
并行控制主要通过封锁协议来进行处理。
- 一级封锁协议。事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。
- 二级封锁协议。一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。
- 三级封锁协议。一级封锁协议加上事务T在读取R之前先对其加S锁,直到事务结束才释放。
- 两段锁协议。所有事务必须分两个阶段对数据项加锁和解锁。
死锁问题
采用封锁方法可以防止数据不一致,但是会带来死锁问题。死锁的避免一般有预防法和解除法。
故障与恢复
数据库的故障主要分为4类:
- 事务故障。事务未能正常终止被撤销的情况。
- 系统故障。事务以非正常方式终止的情况,此时内存信息丢失。
- 介质故障。物理存储介质的故障,可能性虽低,但破坏性大。
- 计算机病毒。
针对不同的故障,可以采用不同的恢复策略:
- 事务故障恢复。应对未完成事务进行撤销,系统自动完成恢复。
- 系统故障恢复。数据库根据日志,在重新启动时对事务进行撤销,对重做队列事务进行重做。
- 介质故障恢复需要依赖备份的副本,将数据库恢复到最近一次备份时的状态,会丢失数据。
- 具有检查点的恢复技术。
大型数据库系统,例如Oracle提供了安全机制保证,但是小型的数据库并非都有相应的功能,有时需要人工辅助,保证数据库的安全和恢复。
备份与恢复
为应对数据库损坏的可能性,需要指定合适的备份和恢复计划。备份计划制定的原则包括:
- 保证数据丢失得尽量少或完全不丢失
- 备份和恢复时间尽量短,保证系统最大得可用性
根据备份内容,分为物理备份和逻辑备份。根据效率,分为完全、增量、累积三种备份方式。
分布式数据库
概念
分布式数据库系统是相对于集中系统而言的,确切的含义是通过数据库技术与网络技术相结合,由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力,成为场地自治,它可以执行局部应用,同时,每个节点也能通过网络通信子系统执行全局应用。
负责分布式数据库的建立、查询、更新、复制、管理和维护的软件,称为分布式数据库管理系统(Distributed Database Management System,DDBMS)。
分布式数据库系统具有以下几个特点:
- 数据的分布性
- 统一性。表现在数据逻辑上的统一性和数据管理上的统一性。
- 透明性,用户无须关心数据存放的位置。
体系机构
分布式数据库系统的模式有6个层次:
- 全局外模式,是全局应用的用户视图
- 全局概念模式,定义分布式数据库中数据的整体逻辑结构
- 分片模式
- 分布模式
- 局部概念模式
- 局部内模式,类似于集中式数据库系统中的内模式
并行数据库系统
对比互联网领域的技术发展路径来看,目前基本上看不到并行数据库系统使用的场景。教材中提到的Sequent系统在网上也是资料寥寥,建议可以直接略过这一节了。但是后面提到的并行处理技术,可能和目前的大数据处理、人工智能平台有结合点,感兴趣的可以自己研究下。
数据仓库
数据仓库的概念:Data Warehouse 是一个面向主题的、集成的、相对稳定的、且随时间变化的数据集合,用于支持管理决策。
数据仓库的结构包括:
- 数据源
- 数据的存储与管理
- OLAP服务器
- 前端工具,主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具等
参考资料
- [每天五分钟,备战架构师-11]数据库系统
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- (10) 什么是数据结构--每天五分钟学习数据结构
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 求大虾指点(MS2005数据库,win2003系统,数据库账户每天不定时被锁)
- 【紧急】系统每天访问人数800万左右,数据库频繁报连接池达到最大错误
- 好消息:网易云课堂-《每天五分钟菜鸟变架构师》同步上线
- 在Windows 10系统下安装Oracle 11g数据库
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计(转载)
- 通向架构师的道路之漫谈基于数据库的权限系统的设计 .
- 系统架构师复习-数据库系统
- 每天五分钟linux(10)-cat
- 通向架构师的道路(第六天)之漫谈基于数据库的权限系统的设计
- 【架构师】【数据库基础】【笔记 01】快速了解数据库系统的重要概念02
- 软考-架构师-知识总结 :二、数据库系统 v2
- 【架构师】【数据库基础】【笔记 01】快速了解数据库系统的重要概念01