知识要点
数据仓库包括数据源、数据的存储与管理、OLAP 服务器与各种报表工具、查询工具、数据分析工具、数据挖掘工具及各种基于数据仓库或数据集市的应用开发工具。
OLTP 是传统的关系型数据库联机事务处理过程。
在数据库系统中,数据的完整性,是指数据的有效性、正确性和一致性。
数据仓库 4 大特点:
- 面向主题:数据按主题组织;
- 集成的:消除了源数据中的不一致性,提供整个企业的一致性全局信息;
- 相对稳定的(非易失的):主要进行查询操作,只有少量的修改和删除操作(或是不删除);
- 反映历史变化(随着时间变化):记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测。
分布透明性包括:分片透明性、位置透明性和局部数据模型透明性。
- 分片透明性:是分布透明性的最高层次。所谓分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑数据的分片。当分片模式改变时,只要改变全局模式到分片模式的映像(映像 2),而不影响全局模式和应用程序。全局模式不变,应用程序不必改写,这就是分片透明性。
- 位置透明性:是分布透明性的下一层次。所谓位置透明性是指,用户或应用程序应当了解分片情况,但不必了解片段的存储场地。当存储场地改变时,只要改变分片模式到分配模式的映像(映像 3),而不影响应用程序。同时,若片段的重复副本数目改变了,那么数据的冗余也会改变,但用户不必关心如何保持各副本的一致性,这也提供了重复副本的透明性。
- 局部数据模型(逻辑透明)透明性:指用户或应用程序应当了解分片及各片断存储的场地,但不必了解局部场地上使用的是何种数据模型。
分片透明:指用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的;
复制透明:指采用复制技术的分布方法,用户不需要知道数据是复制到哪些节点及如何复制的;
位置透明:指用户无须知道数据存放的物理位置;
逻辑透明(局部数据模型透明):是指用户或应用程序无须知道局部场地使用的是哪种数据模型。
数据库的原子性:指操作序列要么全做要么全不做。设计时用影子拷贝(浅拷贝)实现。浅拷贝就是你的影子,深拷贝是你的克隆人,你没了影子也就没了,但是克隆人还活着。
数据库的一致性:指数据库从一个一致性状态变到另一个一致性状态。设计时用完整性约束检查实现。
实体联系图(ER)图可用于描述数据流图中数据存储及其之间的关系,最初用于数据库概念设计。在实体联系图中,有实体、联系和属性三个基本成分。在某学生选课系统中,学生属于实体,而学生的学号则属于该实体的属性。
ER 图集成时产生的冲突及解决办法:
- 属性冲突:包括属性域和属性取值的冲突。
- 命名冲突:包括同名异义和异名同义。
- 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同的局部 E-R 图中所包含的属性个数和属性排列次序不完全相同。
举例:培训师属于员工的一种,所以不应该抽象为两个不同的实体,这种冲突属于命名冲突,解决方案是员工实体中加入职称属性,然后把培训教师实体删除。
数据库设计主要分为用户需求分析、概念结构、逻辑结构和物理结构设计四个阶段。其中,在用户需求分析阶段中,数据库设计人员采用一定的辅助工具对应用对象的功能、性能、限制等要求所进行的科学分析,并形成需求说明文档、数据字典和数据流程图。用户需求分析阶段形成的相关文档用以作为概念结构设计的设计依据。
两阶段锁协议是实现事务隔离性的常见方案,该协议通过定义锁的增长和收缩两个阶段约束事务的加锁和解锁过程,能够保证事务的串行化执行,但由于事务不能一次得到所有需要的锁,因此该协议会可能会导致死锁。
数据库访问中间件:通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型的技术如 Windows 平台的 ODBC 和 Java 平台的 JDBC 等。
远程过程调用(RPC):是一种广泛使用的分布式应用程序处理方法。一个应用程序使用 RPC 来远程“执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。
面向消息中间件(MOM):利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息排队模型,可在分布环境下扩展进程间的通信,并支持多种通信协议、语言、应用程序、硬件和软件平台。典型的产品如 IBM 的 MQSeries。
分布式对象中间件:随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,并发展成为当今软件技术的主流方向。典型的产品如 OMG 的 CORBA、Sun 的 RMI/EJB、Microsoft 的 DCOM 等。
事务中间件:也称事务处理监控器(TPM)最早出现在大型机上。事务处理监控程序位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,提高系统的整体性能。
分布式缓存技术对比
案例分析
1.数据库在线访问 / ORM / 工厂模式
2.数据架构集中式vs分布式 / 数据库实现 / 可扩展性
3.SQL优化策略
4.逻辑数据模型设计过程 / 派生属性
5.数据结构的问题 / 提高数据访问性能的策略
6.反规范化 / 数据不一致问题
7.并发 / 数据不一致问题
8.web系统架构设计
9.NoSQL / 分布式缓存技术
10.数据库选择
11.数据实时同步问题的常见方案
12.NoSQL
13.NoSQL优点