2014 系统分析师复习笔记精华版
(郑重声明 :本材料内容在多位前辈&础上加之个人经验修改完善而成,不得用于商业用途,仅供个人学习参考 ,祝各位顺利通滔}
1. 数据库
1.1. 死锁
数据库中死锁产生的原因是两个或多个数据事务部己封锁了一些数据对象,然后又部
请求已为其’自事务封锁的数据对象加锁, 从而出现死等待。
死锁的诊断方法一般由起且这和笠鱼图法。
1.2. 数据库体系结构食
三类数据库系统体系结构:
> 集中式: DBMS 和应用程序者Ii存放在一台计算机上;
> 主从式(客户机/服务器): DBMS 存放在服务器上,应用程序存放在客户机上;
> 分布式: 数据库缸物理 J-:分布’企不同的场地,巾逻辑上属于一个楼休。
对于分布式数据库, 分布透明性是指用户不必关心数据的逻辑分片 ,不必关心数据物
理位置分配的细节 , 也不必关心各个场地上的数据库数据模型。
分布透明性和归入场理祖llL性的也||斗, 包括i个层次:
> 分片透明性 : 最高层次的分布透明性,用户或应用程序只对全局关系进行操作,
不必考虑数据分片;
> 位置透明性: 用户或应用程序应当 了解分片情况, 但不必了解片段的存储场地;
> 局部数据模型透明 性 : 用户或应用程序要了解分片及各片段存储的场地,但不必
了解局部场地上使用的是何种数据模型 。
1.3. 分布式数据库食
【概念】 逻辑统一,物理分布:
分布式数据库必须保证数据库全局数扣一致性,并发操作可串行性,和故障的全局性;
【特点】
(1 )数据独立’性与位置透明性;
( 2 ) 集中和节点 自治相结合;
( 3 ) 支持全局数据库的-一致性和可恢复性;
(4)复制透明’性;
C s )易于扩展’性;
【优点 】
(1 )具有灵活的体系结啕 ;
( 2 ) 适应分布式的管理和控制机构 ;
( 3 )经济’性好:
(4)系统可靠性高、可J有性好;
C s )易于扩展好,到于集成现有系统。
( 6)局部应用响应速度快。如果存取的数据在本地数据库中 , 那末就可以由用户所在的计
1
算机来执行,速度就快。
【缺点】
( 1 )系统开悄大、主要花在通信部分,故障率高:
( 2 )存取结陶复杂 ; 一般来说,在分布时数据库中存取数据,比在集中时数据库中存取数
据更复杂,芳:销更大。
( 3 )数据的安全性和保密性较难控制。在具有高度场地自治的分布时数据库中,不同场地
的局部数据库管理员可以采用不同的安全措施,但是无法保证全局数据都是安全的。安全性
问题式分布式系统固有的问题。因为分布式系统式通过通信网络来实现分布控制的,而通信
网络本身却在保护数据的安全性和保密性方面存在弱点,数据很容易被窃取。
【保证数据一致性的方法 】
数据副本的一致性 、 保证分布式事务的 AC旧 属性、故障’恢复的一致性:
【数据库复制 】
向分布式环境中各个数据库节点提供数据复制,保持数据的一致性或者控制与维护冗余
数据。分为同步、 异步方式, 体系结构有主从(一个主点、多个复制点〉、对等、分布式(多
个主点,一个复制点)等。
同步复制,复制数据在任何时间在任何复制节点均保持一致 。 如果复制环榄中的任何一
个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点 。 这种技术
适用于那些对于实时性要求较高的商业应用中。
异步复制 ,所有复制节点的数据在一定时间内是不同步的 。 如果复制环境中的其中的一
个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复
制节点。这些不同的事务间可以间隔几秒, 儿分种, 几小时, 也可以是几天之后。复制节点
之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
Oracle 的数据库复制机制:
【 故障与恢复】
事务故障: 主要靠日志来实现; 2PC 协议,协调者, 参与者,提交过程分为表决和执行阶段:
系统故障:
介质故障:
【数据库服务器建设】 采用多机集群 Cluster, 存储采用全冗余 SAN 结构( HBA 卡··光纤存储
卡,用于服务器与光纤阵列规的连接。建立光纤通道一高性能的连接标准,用于服务器、 海
量存储子网络、外设间通过集线器、交换机和点对点连接进行双向、串行数据通讯。)
1.4. 范式
>
>
>
lNF 今2NF
: 消除盖全函数依赖
2NF今 3NF
: 消除笠豆豆函数依赖
BCNF
: 愕个决定冈素都包含吗!
如果一个关系模式 R 的决定因素都是单属性, 那就意味着不可能由部分函数依赖, 那
就是说至少是 2NF。
如果一个关系 R 不属于 2NF,WJ在企 以下儿个问题(举例, R (仓库号,仓库地址,商品
号 ,商品属性 1,商品属性 2 ),主键是〈仓库号,商品号)) :
2
1. 插入异常 : 新建一个仓库,没有商品,就无法插入仓库数据 ;
2. 删除异常 : 当一个仓库的所有商品被删掉时,仓库也随之被删掉;
3. 修改复杂 : 某个仓库地址改变,需要修改所有与该仓库有关的元组。
1.5. 数据仓库
数据仓库是一个雨向主题的、集成的、相对稳定且随时间变化的数据集合 , 用于支持
管理决策。
> 而向主题 : 操作型数据库的数据组织丽向事务处理 (应用〉,而数据仓库而向主题
(有可能横跨多个应用 的同类、基础数捷集合)。就保险公司来说,事务是指汽车
保险、人寿保险, 而主题是指顾客、保洋、保费。
>
l集成: 最重要的特性 。 操作型数据库与特定应用相关,不同应用系统的数据库相
互独立、异构。 数据仓库中的数据是经M、I各类分散的操作础数据库山」抽取、 |
畸型、加|;、汇总得到的,消除了数归不一敛性,数据仓库中的信息是企业内丛
抖二盘凶。
> 相对稳定 : 数据仓库的数据主要供决策少析用 ,所以不会像操作型数据库那样频
繁更新。数据仓库中的fj询埠作很多,但修边、删货操笠坐立,通常只需定期加
载 、 刷新。
> 随时间变化: 传统数据库只保留 当前值,数据不一定有时间属性; |数据仓库保仆
的足从建库时 r~1起,刽忖 Hij为止的数据坐化过擂,目的是对企业发展历程和未来
趋势做出定量分析和预测, 数据仓库的数据必然包含时间属性,是一系列传统数
据库的数据快照。
从结构来看,有 3 种数据仓库模型 : 企业仓库、数据集市、虚拟仓库:
> 企业仓库: 包含整个企业的各个主题的数据信息:
> 数据集市: 包含对特定用户有用的, 企业仓库数据的子菇,限定于选定的主题:
> 虚拟仓库: 传统数据库视同的集介 。
〈另分类: ODS、 DW、 DM )
数据清洗: 从多个数据源中提取数据, 解决不同数据说格式不统一的问题。
【设计方法 】
※ 自 顶向下: 总体规划开始,通过对原始数据 ETL, 传输至一个集中数据驻留单元,然
后数据和元数据载入数据仓库,各部门从建好的数据仓库中获取数据形成数据集市:
※ 白 底向上: 从关键部门(需求〉开始, 完成独立数据集市,然后从多个独立数据集市
中抽取数据,现成数据仓库。
1.6. 数据挖掘
是一种信息分析工具,能找出数据仓库中的模式和关系 。 常见的数据挖掘算法有: 决
策树、冲经网络、遗传算法、关联主!,\l!J!IJJ艺:t!:tl 算法。
数据挖掘分析方法:
> 关联分析: 挖掘出藏在数据间的相互关系;
> 厅,列模4分析: 挖掘出藏在数据间的 讪后关系、肉果关系 :
3
> 分类分析: 首先为何一个记录赋予一个标记(一细具有不同特征的炎别), 即按标
记分类记录, 然后柿伐这些标远的记录,描述这些记录的特11[;
> 聚类分析: 分类分析的逆过程, 肖先输入原始记录( 未际比,不做任何处理), 必
后根据一应得规则 , 划分记录集介 ,并用显示或隐式方法描述不同类别。
数据清洗: 解叹不同数据源j各式不统一的问题。
1.7. E-R 图
局部 ER 图合成为总 ER 图 时, 会发生一些冲突:
> 命名冲突 : 同名异议,异名同义 ;
> 属性冲突 : 同一属性在不同分 ER 闺 中 的变 4::类刷、取怕也||斗和数据单位等不一
致;
> 结构冲突 : 同一实体在不同 ER 阁中的有不同属性: 同一对象在某一分 ER 闺中被E
L象为实体, 向丘另一份 ER 阳中义被抽象为届ι。
> 联系冲突 : 实体闻的联系在不同分 ER 团 中是不同类型,需根据语义对实体进行
综合或调整。
分 ER 图中可能存在一些兀余的数据及刘余的实体问联系,合并 ER 图时应当予以消除。
1.8. 模式分解、函数依赖
R 分解为 阳 和 R2 面画就必须满足:
{Rl n R2)→{Rl-R2) 戚在 {Rl 门 R2)今 ( R2-Rl )
无损分解得到的子关系必须要能通过 白然连接恢复到原关系 !
分解是在司保持函数依赖|: 是否存在跨越了不同的子模式的 函数依赖,如果存在 ,则说
明不保持函数依赖。 注志 : 不是所有的函数依赖都要在何一个子模式中保持,毕竟模式分
解后每个子模式拥有的属性都不全,只要每一个函数依赖都能找到一个子模式能保持就
行! !!
最小函数依赖集: 所有依赖的右侧只有 1 个属性,消除冗余、 重复的依赖。
1.9. 关系代数
tl'i ~-,1,J<积 : R(A,B,C,D) X S(C,D,E) 得到的是 7 元关系,即逐个用 R 中 的每条数据与 S 中
的每条数据直接拼接起来。 如果 R 中有 r 条数据, 5 中有 s 条数据,那 R X S 中就有 r*s 条数
据。
自然连接: 向然连接(Natural join)是一种特殊的等值连接,官要求 两个关系中进行比键
的分 w:必须是相同的属性细, Jj:且在结果中把市复的属性列去悔 。 而等值连接并不去掉重
复的属性列 。
等值连接与 自然连接的区别 :
1. 等值连接中不要求相等属性值的属性名相同 , 而 自然连接要求相等属性值的属性
4
名必须相同,即 附关系只有在同名属性才能ill1f 白然连接。
2. -等的连接不将军贯复属性去坞, 而自然连接去掉重复属性, 也可以说, !自然连接启
!去占率军复列的非伯连接。
投影 {π}: π町 ,...、an ( li』 的一元运算, 这里的 α1 ,…7 岛z 是属性名字的集合,投影
是对 R 关系的列的映射。
选择 {σ}: σp ( li) 是对关系 R 的行的映射, 选出满足 伊 关系的行。
1.10. 三级模式 、 两级映射
外模式 、 模式 、 内模式
外模式/模式映射 、 模式/内模式映射
> 外模式: External Schema 或 Sub Schema , 用户模式, 是数据库用户能看见和使用
的局部数据的逻辑结构,勺某一应用有关的数据逻辑表水。外模式通常是模式的
子集,一个数据库有多个外模式。|概念结构设计|阶段的产物, E-R 阁 。
> 模式 : Schema ,也成为逻辑模式,数据库中全体数据的逻辑结构和特征的描述,
k有用户的公共数据视阁。模式实际上是数据库数据在逻辑级上的视阁。一个数
据库只有一个模式。 随辑结构设计|阶段的产物,表结构 。
> 内模式 : Storage Schema,存储模式。一个数据库只有一个 内模式,数据物理结
构和有储方式 的白述, 数据在数据库内部的表示方式。物理设计阶段产物。 困
因阶段产物。
两类独立性 :
> 数据的阳租lV.性: 当 |勾模式(物理模式)发生改变时,数据的逻辑结构(模式)
保持不妥。需要修改模王V内模式映射。
> 数据的温j茸独V.性 : 数据的逻辑结构(模式〉发生变化时, 同用程序不用修改。
需要修改外模式/模式映射。
(XX 独V.性,就是指 xx f变化时, k级模式不用变 !! ! !! 〉
1.11. 数据库设计
数据库设计阶段:
[1] 需求分析: 得到数据要求、处理要求。使用数据流罔描述业务流程 。
[2] 概念结构设计: 得到 E-R 阳 ,数据字典。 i 勺具体 DBMS 无关|。对应“外模式”。
[3] 逻辑结构设计: 将概念结构模型转换成一般的关系( E-R i割转技成表结构,〉 、 网状、
层次模型, 然后再向特定 DBMS 支持下的数据模型转换,最后对数据模剧进行1)f1
化(模式分解、什)i'、增加部分必要刊余〉。| 与具体 DBMS 有关|。 对应“模式”。
[4] 物理设计 : 基于具体数据库设计实现,包括文件结构 , 索引等。对应“ 内模式月
(存储模式〉。
5
1.12. 数据库备份
.数据库备份划分为: t令备份、热备份和|数据导出 。
数据导出根据导出数据的范围又分为 : 完全导出、增量导出(只导出上一次导出的基
础上把变化的数据导出)、 累计导出 (在上次完全导出 的基础上,把变化的所有数据都导出
来〉 。
导出备份是一种逻蠕备份, 冷备份和热备份是物理备份。
冷备份: Y令备份发生在数据库已经正常关闭 的情况下,当正常关闭时会提供给我们一
个完整的数据库。冷备份是将关键性文件拷贝 到另外位置的一种说法。
冷备份的优点是:
1. 是非常快速的备份方法(只需拷贝文件〉
2. 容易归档(简单拷贝即可)
3. 容易恢复到某个时间点上(只需将文件再拷贝回去〉
4. 能与归档方法相结合,作数据库“最新状态”的恢复。
5. 低度维护,高度安全。
但冷备份也有如下不足:
1. 单独使用 时,只能提供到“某一时间点上 ”的恢复。
2. 在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说 , 在冷
备份过程中, 数据库必须足关闭状盘。
3. 若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。
4 . 不能按表或投用 J' ' 恢写。
热备份: 数据库运行中对数据向关键数据1吐行的备份, 要求数据库管理系统提供支持。
热备份的优点是:
1. 可在农空间或数据文件级备份,备份时间短。
2. 备份时数据库仍可使用。
3. 可达到秒级恢复 ( 恢复到某一时间点 k,主要由 R 志来实圳〉。
4. 可对几乎所有数据库实体作恢复。
5. 恢复是快速的,在大多数情况下在数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重。
2. 若热备份不成功,所得结果不可用于时间点的恢复。
3. 因难于维护,所以要特别仔细小心,不允许“以失败而告终”。
。系统容灾 : 指灾难发生时,保证系统业务持续不间断运行的能力。包括数据容灾、应用容
灾。数据容灾包括数据备份技术、数据复制技术和数据管理技术,应用容灾包括灾难检测技
术、系统迁移技术和系统恢复技术。
。数据库备份常用技术: 数据转储和建立 H 志文件 。
【数据转储】 定期把整个数据库复制到另一个介质保存的过程。转储十分耗资源,不能频繁
进行。
.转储分类: 静态转储和动态转储两种,又细分海量转储和i曾量转储两种形式。
6
具体为 :
· 静态海量转储: 在无运行事务时进行,每次转储全部数据库1
· 静态增量转储: 在无运行事务时进行,每次转储更新数据 ;
· 动态海量转储: 允许事务运行,每次转储全部数据库; 如上丑志才能进行’恢复
· 动态增量转储: 允许事务运行,每次转储更新数据:
【 日志文件】
. 建立过程: 事务运行时, 系统把每个操作严格按执行时间以序作为记录存放到日志文件。
记录内容为事务开始标记、事务结束标记、事务所有更新操杠。先写日志后写文件。
。作用 : 进行事务故障恢复和系统故障恢复, 协助后备副本进吁介质恢复。
. 利用恢复事务过程: 扫描日志文件,哪些事务在故障发生时巳结束,哪些未结束,对尚
未结束的事务进行撤销处理( UNDO),对以及结束的事务进轩重做( REDO ),以保证数据一
致性。
1.13. 数据库恢复
数据库恢复是指在数据库中的数据被破坏时, 在尽可能短的时间内 , 把数据库恢复到故
障发生前的状态。
在进行事务处理时,对数据事新的全部有关操作内容都要写入 日志文件; 当系统在常运
行时,按一定的时间间隔,设立价丘点文件,把内 {!缓冲区 N 容还未写入到j磁在中去的司
关状态记录到该文件; 当发生故障时,根据现场数据内容及相关文件来恢复系统的状态。
价台!点记录的内容包括 :
[1] 建立检查点时刻所有if在执行的事务情吧。
[2) 这些事务最近一个同志记封的地址。
1.14. 数据库安全性
·数据库主全且包括两方面:
> 内部,全 : 数据库运行过程中, 由于自身的问题、错误而引起故障造成的问题,
主要是由故障引起, 事务故障、 系统故障(数据库系统、 操作系统、硬件崩溃〉 、
介质故障;
> 外部安全 : SQL 注入攻击,黑客软件攻击,病毒 、 木马攻击。
1.15. 数据库优化
集中式数据库优化考虑 CPU 和 1/0 代价,分布式考虑通信的代价:
※分布式数据库查询优化:
( 1 )全局查询树优化:片段代替查询树全局关系 : 尽可能将选择和投影等一元关系推向叶
端、 合并公共表达式等
( 2 )副本选择和多副本更新策略: 提高访问局部性,减少远距访问、 减少通信开销,减少
大数据传输、 考虑节点负载均衡
( 3 )查询树分解;
7
1.16. 综合
( 1) 故障
最严重的数据库故障是介质故障。
( 2 ) 属性类型
〉 简单属性: 原子的 , 不可再分;
〉单值属性: 对于特定的实体都只有单独的一个值;
》 多值属性: 如果某个属性可能有多重取值,则这样的属性称为多值属性。 比如:联系
方式、兴趣爱好。 多值属性一般抽取为独t的实你 (属性值、实体 id )。
〉 复合属性 : 可以细分为更小的部分,可以划分为多个属性。比如, 通信地址可以划
分为邮编 、 省 、 市、接到等 ;
〉 派生属性: 其值可以从一个相关属性和属性集的值派生得到 的属性,这个属性在实
体中不是必须的。比如 : age,可以由 birthday 派生得到。
( 3 ) 关系的三种类型
> 基本关系 : 基本表、基表。实际存在的表,实际存储数据的逻辑表示。
> 查询表:
> 视图表 : 由基本表或其它视图表导出的表, 虚表,不对阿实际仆销的数据 。(有物
-ct询结束对同的炭。
化视图〉
基本关系六条性质 :
[1] 列是同质的,每一列中的分量是同一类型数据,来自同一个域:
[2] 不同列可出自同一个域,每一列为一个属性,不同属性要给予不同属性名 ;
[3]列的顺序无所谓:
[4]行的顺序无所谓;
[SJ 任意两行不能完全相同 ;
[6] 分量必须取原子值。
( 4 ) 数据库完整性
数据库完整性是指数据库中数据的 正确性、有效性 、 相容性 (一致性) 。
Cs) 基本概念
包含在任何一个候选关键字(候选关键字可能是属性集合〉中的属性称为主属性。 不包
含在任何候选关键字中 的属性称为非主属性。
( 6 ) 表空间
表空间是组织数据和分配空间的逻辑结构。一个表空间只能属于一个数据库。表空间可
以理解为是数据库对象的容器。所有的数据库对象都存放在指定的表空间 中 。但主要存放的
是表, 所以称作表空间。
( 7 ) 数据分片
【 定义】 数据库整体逻辑结构分解为合适的逻辑单位(片段〉 , 然后由分配模式来定义
8