第一章 引言
一、分布式DBMS体系架构的模型
1.自治性——对于控制的分配
(1)设计自治:每个单独的DBMS可以自由的选择数据模型和事务处理技术。
(2)通信自治:每个单独的DBMS可以自由的决定什么样的信息可以提供给其他DBMS,或提供给控制全局执行的软件。
(3)执行自治:每个单独的DBMS能用用它自己的方式执行提交给它的事务。
PS:事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。
例如:A——B转帐,对应于如下两条sql语句
update from account set money=money+100 where name=‘B’;
update from account set money=money-100 where name=‘A’;
2.分布——如何处理数据
(1)C/S:数据的管理的任务在server端,客户端集中提供包括用户界面在内的应用环境。
(2)P2P:不存在client和server的区别,每台机器都有完备的DBMS功能
3.异构性
分布式系统中从硬件的异构到不同的网络协议,还有数据管理程序的变化等。比较关心的是:数据模型、查询语言、事务管理的协议。
PS数据异构性:数据的异构性,简单的说,可以是指数据的结构不同。
举个例子,小说通常是txt文件,是以txt这种规范存在的,而音乐通常为mp3文件,它又是以mp3这种规范存在的。 小说和音乐它们数据的组织方式是不一样的。
数据的异构性为什么重要?会导致什么问题呢?
因为,无论是进行数据挖掘也好,还是人工智能建模也好,在工作流里面,第一步都是接入数据。
而接入数据最重要的一步就是解析数据。要解析数据,我们就必须了解数据的结构。
因此,在第一步接入数据中,如果数据的结构乱七八糟,那么相应的解析工作量也会增大。因此数据的异构性以及数据的异构程度,在进行数据读取和解析时,是特别需要关心的一点。
二、体系架构的不同选择
1.客户/服务器系统
服务器完成大部分的管理工作,所有的查询处理和优化,事务管理和存储管理都是在服务器端完成的。客户端负责应用、界面。
优点:(1)单一集中的数据管理使得为了增加数据可靠性和可用性而开发特殊的技术成为可能。(2)数据管理的总体性能可通过使用数据库系统大幅度提高。(3)数据库服务器可利用最新的硬件体系架构提高性能和数据可用性。
缺点:在应用和数据服务器间通信开销成本高。
2.P2P系统
从数据组织角度考虑:
本地内部模式:每个站点上需要单独的内部模式定义,因为每台机器上数据的物理组织可能有所不同。
全局概念模型:描述的是所有站点上数据的逻辑结构
本地概念模式:为了处理数据复制和分片,需要描述一下每个站点数据的逻辑组织。故加入本地概念模式
外部模式:用户的应用和对数据的访问由其支持。
优点:可应对现代系统大规模分布的情况。同时可应对每一个站点在自治等方面表现出来的固有的异构性。
3.多数据库体系架构
每个单独的DBMS是完全自治的并没有合作的意图。他们可以通过定义出口模式,使得他们自己的某些数据被其他DBMS访问。
第六章 查询处理概述
查询的层次
一、查询分解
把演算查询分解为全局关系上的代数查询。
二、数据本地化
面对的数据是已被分割的,放在了不同的站点上;这一层判断哪些片段被用到了查询中,并把分布查询转换为在片段上的查询。
三、全局查询优化
上一步输入的是针对片段的代数查询。查询优化的目的是要寻找一个接近最优的查询执行策略。
四、分布式查询执行
查询所需片段的所有站点共同执行。