案例分析-数据库系统
案例分析考点分类:
软件架构设计:考质量属性、软件架构分析(第一题)、软件架构评估、MVC架构、SOA架构、ESB、J2EE架构、DSSA、ABSD等(第二题)、
系统开发基础:考UML的图、关系的识别,尤其是类图、用例图、活动图、状态图、设计模式识别、数据流图、ER图简单识别、信息安全相关技术、项目管理-进度管理-关键路径
数据库系统:关系型数据库、内存数据库以及NoSQL、反规范化、主从复制、负载均衡
嵌入式系统:嵌入式系统的实时性和可靠性以及容错
Web应用开发:如果听说过,就选,没有听过就不选
建议做题从2015年之后开始做,没有必要做很前面的题目。以及选题技巧:首先做完比做第一题,后面四题先看问题,再看题目,选择自己能拿到15分以上的题目。如果拿不准,就选择有图,有表格的题目。
1. ORM
ORM的优点:1、使用ORM可以大大降低学习和开发的成本。2、程序员不用再写SQL来警醒数据库操作。3、减少程序的代码量。4、降低由于SQL代码质量差而带来的影响
ORM的缺点:1、不太容易处理复杂查询操作。2、性能较直接用SQL差。
2. 数据库分类
- 关系型数据库:建立在关系模型基础上的数据库,多能能够相互连接的二维行列组成的数据库。
- NoSQL:非关系型数据库,是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
- 内存数据库:讲数据库整体存储在内存中,提高性能。
特征 | 关系数据库模式 | NoSQL模式 |
---|---|---|
并发支持 | 支持并发、效率低 | 并发性能高 |
存储与查询 | 关系表方式存储、SQL查询 | 海量数据存储、查询效率高 |
扩展方式 | 向上扩展 | 向外扩展 |
索引方式 | B树、哈希等 | 键值索引 |
应用领域 | 面向通用领域 | 特定应用领域 |
数据一致性 | 实时一致性 | 弱一致性 |
数据类型 | 结构化数据 | 非结构化数据 |
事务 | 高事务性 | 弱事务性 |
水平扩展 | 弱 | 强 |
数据容量 | 有限数据 | 海量数据 |
主要数据模型 | 读写性能 | 存储容量 | 可靠性 | |
---|---|---|---|---|
内存数据库 | 键-值对模式 | 内存直接读写,性能相对较高 | 基于内存存储,存储容量受限 | 恢复机制复杂,可靠性较低 |
关系数据库 | 关系模式 | 外存读写,性能相对较低 | 基于存盘存储,存储容量大 | 内建恢复机制,可靠性高 |
设计难度 | 数据冗余程度 | 数据架构 | 应用扩展性 | |
---|---|---|---|---|
关系型数据库 | 针对特定应用系统设计,难度较大 | 遵循数据库范式,数据冗余较小 | 以数据库为中心,管理数据 | 数据库独立于应用系统,数据库接口标准化,易于在不同应用之间共享数据 |
文件系统 | 针对特定应用系统设计,难度较小 | 可能在多个文件中复制相同的数据属性,数据冗余较大 | 以应用为中心管理数据 | 符合特定应用系统要求的文件数据很难在不同的应用系统之间共享 |
3. 缓存技术
MemCache:一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频的结果等。
Redis:一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、键值对数据库,并提供多种语言的API。
MemCache和Redis的同异:
同:都存数据与内存,都支持键值对数据类型
异:MemCache可用于缓存图片、视频等等。Redis还支持list/set/hash等数据结构存储
Redis并不是多有的数据都存在内存中
Redis在哼多方面支持数据库的特性,可以说他是数据库系统,而MemCache只是简单的K/V缓存
4. 并发控制
- 丢失更新
- 不可重复读
- 读脏数据
5. 规范化和反规范化
不规范化的四大问题:数据冗余、修改异常、插入异常、删除异常
反规范化设计:牺牲部分规范化来提高性能
反规范化的益处:降低连接操作的需求、降低外码和索引的数目,可能减少表的数目,能够提高查询效率
反规范化的问题:数据的重复存储、可能出现数据完整性问题、降低修改速度
反规范化的具体方法:1、增加冗余列。2、增加派生列。3、重新组表。4、水平分割表。5、垂直分割表
6. 分布式数据库
分布式数据库的定义:由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(场地自治),它可以局部执行。同时,每个节点也可以通过网络通信子系统执行全局应用。
特点:
- 数据独立性:逻辑独立性、物理独立性和数据分布独立性
- 集中于自治共享结合的控制结构
- 适当增加数据冗余度
- 全局的一致性、可串行性和可恢复性
优点:
- 可以解决企业部门分散而数据需要相互联系
- 可以满足负债均衡的需要
- 可靠性较高
- 可以使用最小影响,来扩充
7. 数据仓库
特点:集成的数据、面向主题、数据相对稳定、包含历史信息
四个层次:数据源、数据的存储与管理、OLAP服务器、前端工具
商业智能:BI系统主要包括数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段