一 说说整理初衷
最近有一些网友问我要考试套路,我确实有,但是比较散乱,借此重新整理一下发出来。
此篇是四篇案例分析套路中的一篇,还有另外三篇。
欢迎加微信沟通交流,专门建了个软考架构的群,欢迎加我微信拉进群沟通交流。
二 数据库考察要点
- 设计过程、规范化、反规范化、索引、视图(****)
- 分库分区分表(***)
- 分布式数据库系统(**)
- NoSQL(**)
- 数据库性能优化(**)
- 大数据(*)
设计过程、规范化、反规范化、索引、视图(****)
一般是考察概念,常考察的概念如下:
数据库设计过程阶段(可能会考察某个阶段产出)
- 1 需求分析 输出数据流图、数据字典、需求说明书
- 2 概念(结构)设计:按照特定的方法将他们抽象为一个不依赖于任何DBMS产品的概念模型,一般就是用E-R图表示
- 3 逻辑(结构)设计:将E-R图转换为数据模型,如关系模型。
- 4 物理设计:对给定的逻辑模型选取一个最适合应用环境的物理结构(与DBMS相关)
规范化范式:
- 1NF:属性值都是不可再分的原子值
- 2NF:消除非主属性对候选键的部分依赖
- 3NF:消除非主属性对候选键的传递依赖
- BCNF:消除主属性对候选键的部分和传递依赖
范式解决的问题:
- 插入异常、删除异常、数据冗余
反规范化的技术手段:(一般结合案例考察,需要指出对应的列名)
- 1 增加派生性冗余列(已有单价和数量列,增加“总价”列)
- 2 增加冗余列(已有学号列,增加“姓名”列)
- 3 重新组表(把拆分的表重新组表)
- 4 分隔表(把用户表做水平分隔,如按区域分隔用户表)
反规范化的特点:
- 1 连接操作少,检索快、统计快
- 2 需要查的表减少,检索容易
- 3 容易出错
反规范化的缺点或带来的问题,及解决方案
- 1 数据冗余,需要更大的存储空间;无解
- 2 插入、更新、删除操作开销更大;无解
- 3 数据不一致(可能产生添加、修改、删除异常);触发器数据同步、应用程序数据同步
- 4 更新和插入代码更难写;无解
数据库索引优缺点:
- 优点:提升查询效率
- 缺点:降低添加、修改、删除效率
视图的优点:
- 1 视图能简化用户的操作
- 2 视图机制可以使用户以不同的方式查询同一数据
- 3 视图对数据库重构提供了一定程度的逻辑独立性
- 4 视图可以对机密的数据提供安全保护
物化视图概念:
- 将视图内容物理存储起来,其数据随原始表变化,同步更新。
分库分区分表(***)
主要考察概念
分区策略:
- 1 范围分区(Range)按数据的范围来做分区
- 2 散列分区(Hash) 通过对key进行hash运算分区
- 3 列表分区(List) 根据某字段的某个具体指进行分区
分区的优点:
- 1 相对于单个文件系统或是硬盘,分区可以存储更多的数据
- 2 数据管理比较方便,比如要清理或废弃某年的数据,就可以直接删除该日期的分区数据即可
- 3 精确定位分区查询数据,不需要全表扫描查询,大大提高数据检索效率。
- 4 可跨多个分区磁盘查询,来提高查询的吞吐量
- 5 在涉及聚合函数查询时,可以很容易进行数据的合并
分布式数据库系统
主要考察概念
分布式数据库的分布透明性包含:
1 分片透明性
2 位置透明性
3 局部数据模型透明性(逻辑透明)
NoSQL
主要考察与关系型数据库的对比
关系数据库与NoSQL数据库模式的对比
关系型 | NoSQL | |
---|---|---|
并发支持 | 支持并发、效率低 | 并发性能高 |
存储与查询 | 关联表方式存储,SQL查询 | 海量数据存储、查询效率高 |
扩展方式 | 向上扩展即服务器升级 | 向外扩展即集群 |
索引方式 | B+树、哈希等 | 键值索引 |
应用领域 | 面向通用领域 | 特定应用领域 |
数据库性能优化
主要考察概念
集中式数据库优化:
- 硬件系统:CPU、内存、IO、网络
- 系统软件:参数,如进程优先级,CPU使用权,内存使用
- 数据库设计:表与视图(表的规则、建立物化视图),索引(常查询-建索引,常修改-避免索引)、SQL优化(以不相干的子查询替代相干子查询、只检索需要的列、用带IN的条件子句等价替换OR子句、经常提交COMMIT以尽早释放锁、尽可能减少多表查询
大数据
主要考察与传统数据对比、和一些概念
大数据与传统数据对比
大数据 | 传统数据 | |
---|---|---|
数据量: | PB级或以上 | GB或TB级 |
数据分析需求: | 深度分析(关联分析、回归分析) | 现有数据的分析与检测 |
硬件平台: | 集群平台 | 高端服务器 |
大数据处理系统应该具有的重要特征
- 1 高度可扩展性
- 2 高性能
- 3 高度容错
- 4 支持异构环境
- 5 较短的分析延迟
- 6 易用开放的接口
- 7 较低成本
- 8 向下兼容性