软考系统架构师-数据库
数据库
1 数据库的三级模式和两级映射
- 三级模式:
- 用户:也就是体现给用户看的层次,用户不需要知道底层数据是什么样子的,是如何存储的,只需要看到这个数据出来即可
- 概念:类似mysql或者各种数据库表的层面,不需要知道底层的数据是存什么样子的,只需要建立起映射即可
- 物理:存的都是一个一个的文件,只要建立起映射,可以做好几种数据库的数据源
- 两级映射:
-内模式:从物理层面转成逻辑层面的映射,也就是从文件到表的映射
-外模式:从逻辑层到外模式(用户模式)的映射
2数据库的设计过程
- 1:通过当前和未来应用的数据要求,进行需求分析,产生数据流图和数据字典和需求说明书
- 2:经过需求分析之后,进行概念结构设计,产生用户的数据模型,ER模型,和DBMS无关的概念模型
- 3:经过转换规则和规范化处理,进行逻辑结构设计,产生关系模式,应该具有视图,完整性约束及应用处理说明书
- 4:经过DBMS特性和硬件,OS特性等进行物理设计
数据库安全
- 1:用户:用户登录数据库,相当于一个验证
- 2:存取控制:数据的输入和输出的控制
- 3:密码存储和传输:密码不能用明文来处理
- 4:视图的保护:产生的视图也是有权限的,不是所有的人都能接触到视图
- 5:审计:
##3.数据备份 - 1:热备份:动态备份,利用备份软件,在数据库正常运行的情况下,将数据库的数据备份出来
- 2:冷备份:静态备份,将数据库正常关闭 ,在停止的情况下,将数据库的数据备份出来
技术 | 优点 | 缺点 |
---|---|---|
冷备份 | 低度维护,高度安全,非常快速的复制方法, 容易归档,容易恢复到某个时间点的数据 ,做到数据库最佳状态的恢复 | 不能按照表和用户来恢复,要关闭数据库 ,单独使用只能做到单个时间段的备份,若是磁 盘空间不足,只能复制到外部存储设备 |
热备份 | 恢复比较快,可以边进行业务边备份,可以 达到任意时间段的备份,备份时间短 | 不能出错,如果失败,则不能用于恢复, 无法承受失败的后果 |
- 3:数据备份的形式:各有各的好处,可以穿插使用
- 3.1:完全备份:把所有数据库的数据都备份
- 3.2:差量备份:备份距离上一次完全备份到现在变化的数据
- 3.3:增量备份:备份距离上一次备份到现在变化的数据
- 4:数据库备份的形式
- 4.1: 静态海量转储:在系统无运行事务时进行,每次都转储全部数据库
- 4.2: 静态增量转储:在系统无运行事务时进行,每次都转储上次转储之后修改的数据库
- 4.3: 动态海量转储:转储期间允许对数据库进行存取或修改,每次都转储全部数据库
- 4.4: 动态增量转储:转储期间允许对数据库进行存取或修改,每次都转储上次转储之后修改的数据库
- 5:日志文件:事务日志是对数据库数据修改的记录,记录针对数据库的任何操作,并将记录保持到独立的文件
- 6:数据库故障和恢复
故障关系 | 故障原因 | 解决办法 |
---|---|---|
可预估的故障 | 本身逻辑 | 在程序中写上rollback操作 |
不可预估的故障 | 算法溢出,违反存储保护 | 通过日志恢复到故障之前的数据库 |
系统故障 | 系统停止运行 | 通常使用检查方法 |
介质故障 | 外存被破坏 | 用日志重做业务 |
- 7:分布式数据库
- 7.1:分布式透明性
- 7.1.1:分片透明性:
- 7.1.1.1:水平分片:等于是冗余字段,原本我需要你表的字段,后面我自己设置了就不需要你的了
- 7.1.1.2:垂直分片:等于是拆分列,把某些表拆分成小的表,数据量更小
- 7.1.1.3:混合分片:水平和垂直的混合
- 7.1.2:位置透明性
- 7.1.3:局部数据模型透明性
- 7.1.1:分片透明性:
- 7.2:数据库管理系统-组成
- 7.2.1:LDBMS
- 7.2.2:GDBMS
- 7.2.3:全局数据字典
- 7.2.4:通信管理
-7.3:数据库管理系统-结构 - 7.3.1:全局控制集中的DDBMS
- 7.3.2:全局控制分散的DDBMS
- 7.3.3:全局控制部分分散的DDBMS
- 7.1:分布式透明性
- 8 :数据库的优化
- 8.1:集中式数据库优化
- 8.1.1 硬件系统:cpu,io,内存,网络等
- 8.1.2 软件系统:参数,进程优先权,cpu使用权,内存使用等
- 8.1.3 数据库设计
- 8.1.3.1 表和视图:表的规划,物化视图
- 8.1.3.2 索引:常查询-建索引,常增删-不建索引
- 8.1.3.3 sql优化: 减少连表等
-8.1.4 应用软件: 数据库连接池
- 8.2:分布式数据库优化
- 8.2.1 通信代价:全局查询树的变换,多副本策略,查询树的分解,半连接和直接连接
- 8.1:集中式数据库优化
- 9 :数据库,数据仓库和数控挖掘
- 9.1 数据仓库:面对主题,集成的,相对稳定的,反应历史变化
- 9.2 数据库:按照业务需求来保存数据,面向应用
- 9.3 数据挖掘:抽取,清理,装载,刷新数据(决策树,神经网络,遗传算法,关联规则挖掘算法)
- 9.3.1 挖掘方法分类
- 9.3.1.1 关联分析:挖掘出隐藏在数据之间的相互关系
- 9.3.1.2 序列模式分析:侧重点在分析数据之间的因果关系
- 9.3.1.3 分类分析:为每一个记录赋予一个标志在分类
- 9.3.1.4 聚类分析:分类分析法的逆过程
- 9.3.1 挖掘方法分类
- 9.4 联邦数据库是一个批次协作却又相互独立的成员数据库的集合,他将成员数据库系统按不同程度进行集成,对该系统整体提供控制和协作
- 10 nosql数据库
- 10.1:并发性能高,海量数据存储,查询效率高,向外扩展(加机器),键值索引,特定的应用领域
- 10.2 缺点:成熟度不高,开源数据库产品支持力度不够,数据挖掘和商务智能支持不足,专家少,学习阶段
- 11 反规则
- 11.1 由于规范化,使得表的数量越来越多,虽然减少了数据的冗余,提高了增改删的效率,但是查询效率比较低,多次连表才能成功
- 11.2 技术手段:增加派生冗余列,增加冗余列,重新组表,分割表
- 12 大数据
- 12.1 特点:数据量大,速度快,数据多样性,需要对数据做深度分析,平台是集群平台
- 12.2 大数据系统特征:高度可扩展性,高性能,高度容错,支持异构环境,较短的分析延迟,易用且开放的接口,较低成本,向下兼容性