系统架构师-数据库系统基础知识
数据库(Database
)是指长期存储在计算机内的、有组织的、可共享的大量数据的集合。数据库管理系统(DBMS
)是位于用户与操作系统之间的一层数据管理软件,它是一个大型的软件系统,用于管理数据库的创建、维护、使用和控制。数据库系统(DBS
)是由数据库、硬件、软件和人员组成的一个系统。DBMS
通常分为三类:关系数据库(RDBMS
)、面向对象数据库(OODBMS
)和面向对象关系数据库(ORDBMS
)。
关系数据库基础
关系数据库的结构与模式
数据库结构的基础是数据模型。数据模型的三要素是数据结构、数据操作和数据约束。常用的数据模型有概念数据模型、基本数据模型和面向对象数据模型。
关系数据模型由关系数据结构、关系操作集合和关系完整性约束集合组成。
实体-联系(E-R
)模型
实体-联系(E-R
)模型是一种用于描述现实世界的概念模型。实体-联系模型的基本概念有实体、联系、属性。E-R
模型强调的是语义,与现实世界的问题密切相关。E-R
图的主要构件:
- 矩形框表示实体集
- 椭圆表示属性
- 菱形表示联系集
- 线段将属性与实体集,或将实体集与联系集相连
- 双椭圆表示多值属性
- 虚椭圆表示派生属性
- 双线表示一个实体全部参与到联系集中
数据的规范化
规范化理论研究的是关系模式中各属性的依赖关系及其对关系模式性能的影响。
范式是关系模型满足的确定约束条件。常用的范式有:第一范式(1NF
)、第二范式(2NF
)、第三范式(3NF
)、巴斯-科德范式(BCNF
)、第四范式(4NF
)、第五范式(5NF
)。
关系模式的规范化是指把一个低一级范式的关系模式转换为高一级范式的关系模式的过程。
事务管理
事务是数据库管理系统中的一个基本概念,是用户定义的一个数据库操作序列。这些操作要么全部执行,要么全部不执行。
事务的特性有原子性(Automicity
)、一致性(Consistency
)、隔离性(Isolation
)和持久性(Durability
)。
并发控制
并发控制是指在多个用户并发访问数据库时,保证数据库的一致性和完整性的一种机制。并发操作带来的问题是数据的不一致,主要有丢失更新、读脏数据、不可重复读和幻读。主要原因是事务的并发操作破坏了事务的的隔离性。
并发控制的主要技术是锁技术,包括共享锁(S
锁)和排他锁(X
锁)。并发控制还与三级封锁协议、活锁与死锁、并发调度的可串行性、两段封锁协议、封锁的粒度、事务的嵌套等相关。
数据库的备份恢复
备份数据的方法是进行数据转储和建立日志文件。数据的转储分为静态转储和动态转储、海量转储和增量转储。
数据库的4类故障是事务故障、系统故障、介质故障和计算机病毒。
事务故障的恢复一般有两个操作:撤销事务(Undo
)和重做事务(Redo
)。
介质故障的恢复需要数据库管理员(DBA
)的参与,转入数据库的副本和日志文件副本,再由系统执行撤销和重做操作。
关系数据库设计
数据库设计的特点
从数据模型开始,并以数据模型为展开;静态结构设计与动态行为设计分离;试探性;反复性和多步性。
数据库设计的方法
目前已知的方法有四类:直观设计法、规范设计法、计算机辅助设计法和自动化设计法。
数据库设计的步骤
数据库设计的步骤有需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用程序设计和运行维护。
- 需求分析:通过对用户需求的调查,了解用户的需求,确定数据库的功能和性能要求。通过自顶向下、逐步分解的方法分析系统。分析的结果用数据流图(
DFD
)表示,最后形成需求说明书。 - 概念结构设计:概念模型最常用的的设计方法是实体-联系方法(
E-R
方法)。 - 逻辑结构设计:逻辑结构设计是在概念结构设计的基础上,将概念模型转换为数据模型、确定完整性约束、确定用户视图。
- 物理结构设计:物理结构设计是在逻辑结构设计的基础上,确定存储结构、存取路径、存取方法、存取控制、存储空间分配等。
- 应用程序设计:应用程序设计要做的工作有选择设计方法、制定开发计划、选择系统架构、设计安全性策略。
- 运行维护:运行维护是指数据库系统投入运行后,对数据库的转储、恢复、性能监控、安全性监控、数据维护等工作。
分布式数据库系统
分布式数据库的概念
满足分布性、逻辑相关性、场地透明性和场地自治性的数据库系统被称为分布式数据库系统。
分布式数据库的特点是数据的集中控制性、数据独立性、数据冗余可控性、场地自治性和存取的有效性。
分布式数据库的体系结构
分布式数据库抽象为4层的结构模式:全局外层、全局概念层、局部概念层和局部内层。
分布式数据库的应用
分布式数据库的应用有:分布式计算、Internet应用、数据仓库、数据复制以及全球联网查询等。
商业智能
商业智能的概念
商业智能(BI
)是企业对商业数据的搜集、管理、分析的过程,目的是帮助企业做出更好的商业决策。主要包括数据预处理、建立数据仓库、数据分析、数据展现。
数据仓库
数据仓库的概念与特性
数据仓库是一个面向主题的(Subject-Oriented
)、集成的(Integrated
)、非易失的(Non-Volatile
)、时间一致的(Time-Variant
)数据集合。数据仓库的特性有面向主题、集成的、非易失的、时变的。
数据仓库的结构
数据仓库采用三层结构:底层是数据仓库服务器,中间层是OLAP
服务器,顶层是前端工具。
数据仓库的实现方法
实现步骤有:规划、需求研究、问题分析、数据的抽取清洗集成装载、数据仓库设计、数据仓库管理、分析报表查询、数据仓库的性能优化及数据仓库的部署发布等。
实现方法有:自顶向下、自底向上、混合方法。
多维分析海量数据分析器–OLAP
联机分析处理OLAP
是On-Line Analytical Processing
的缩写,是一种多维分析技术。联机分析处理利用了多维的概念,提供了切片、切块、旋转、钻取、透视等功能。OLAP
系统架构主要分为基于关系数据库的ROLAP
、基于多维数据库的MOLAP
和基于混合数据组织的HOLAP
。
数据挖掘
数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的数据中,通过一系列的数据处理技术,发现隐藏在其中的、对决策有用的、新颖的、潜在的、有价值的知识的过程。
数据挖掘所得到的信息应具有先知、有效、实用三个特点。
- 数据挖掘的功能:自动预测趋势和行为、关联分析、聚类、概念描述和偏差检测。
- 常用的数据挖掘技术:关联分析、序列分析、分类分析、聚类分析、预测以及时间序列分析。
- 数据挖掘的流程:确定挖掘对象->准备数据->建立模型->数据挖掘->结果分析->知识应用。
- 数据挖掘的应用:空间数据库的数据挖掘、Web数据挖掘、多媒体数据库的挖掘、时序数据和序列数据的挖掘、文本数据的挖掘。
常见的数据库管理系统
Oracle
、SQL Server
、DB2
、MySQL
、Sybase
等