第8章 分布式数据库.ppt_第1页
第8章 分布式数据库.ppt_第2页
第8章 分布式数据库.ppt_第3页
第8章 分布式数据库.ppt_第4页
第8章 分布式数据库.ppt_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统基础教程 第2版 叶小平汤庸汤娜潘明编著 普通高等教育 十一五 国家级规划教材 清华大学出版社 2 随着数据库技术日趋成熟 传统集中式数据库系统显现出一些自身弱点和不足 由于物理上分散的公司 团体和组织对数据库提出更为广泛的应用需求 由此 作为数据库技术和网络技术相互渗透 有机结合的分布式数据库受到人们广泛关注 成为数据库发展一个重要方向 第8章分布式数据库 3 传统数据库系统作为一种主机 终端式系统 表现出明显的集中式数据库体系结构 集中式数据库基本特征 单点 数据存取 单点 数据处理 8 1分布式数据库系统 8 1 1集中式与分布式 4 数据库管理系统 所有用户数据以及应用程序都安装和存储在一个 中心 计算机系统当中 其通常为大型机 也称为主机 用户通过终端发出存取数据请求 由通信线路传输到主机 主机予以响应并加以相应处理 再由通信线路将处理结果返回用户终端 集中式数据库结构如图8 1所示 8 1分布式数据库系统 8 1 1集中式与分布式 5 8 1 1集中式与分布式 6 在网络环境下 分布计算 具有下述三种含义 1 处理分布基本特征 数据集中 处理分布网络中各用户结点向同一数据库存取数据 然后在各自结点进行处理 处理分布作为一种单点数据 多点处理方式 只是在相当于智能终端的用户计算机上具有应用处理能力 并增加网络接口以便在网络环境中运行 所以本质仍属于集中式数据库 本章不讨论这种情形 8 1 1集中式与分布式 7 2 功能分布基本特征 网络中每个结点都是一个通用计算机 同时执行分布式功能和应用程序 为解决计算瓶颈口问题 需将数据库管理功能和应用机制分开 某些结点专门执行数据库管理系统功能 称之为数据库服务器 DBServer 另外一些结点上专门处理用户应用程序 称之为客户机 Client 8 1 1集中式与分布式 8 3 数据分布基本特征 数据分布在不同物理结点上 但构成一个逻辑整体 各结点具有独立处理本地数据库中数据能力 各结点还具有存取处理其他站点数据库中数据能力 数据分布实现途径就是分布式数据库技术 这是本章讨论重点内容 8 1 1集中式与分布式 9 分布式数据库 distributeddatabase DDB 是由一组物理上分布在网络不同结点而在逻辑上属于同一系统的多个数据库子系统组成 这些数据库子系统分散在计算机网络不同计算实体之中 每个结点具有独立处理数据的站点自治能力 同时也可通过网络通信系统执行全局应用 由上述定义可知 DDB具有 物理分布性 和 逻辑整体性 8 1 2DDB基本概念 10 DDBS具有 六层模式五级映射 的体系结构 物理分布性数据存储在不同计算机的存储设备当中 而不是集中存储于一个结点 这不同于数据存放在服务器上而由客户共享的网络数据库系统 逻辑整体性数据在物理上分散存储 但在逻辑上相互关联 构成整体 数据被所有用户 全局用户 共享 有一个DDBMS统一管理 这不同于由网络连接的多个独立的数据库 8 1 2DDB基本概念 11 1 六层模式结构图8 3是一种分布式数据库的分层模式结构 可从整体上分为两大部分 集中式模式结构由最底两层组成 本质上是集中式数据库原有模式结构 式各站点局部分布式数据库结构 分布式模式结构由上面四层组成 是DDBS新增加的分布式模式结构 8 1 2DDB基本概念 12 8 1 3DDB模式结构 13 1 全局外模式 全局外模式层全局应用的用户视图 可看作全局概念模式的一个子集 一个分布式数据库可有多个全局外模式 2 基于分布的概念模式该层是基于DDBS基本要求构建 包括三个结构层面 8 1 3DDB模式结构 14 全局概念模式层类似于集中式数据库的概念模式 它定义DDB中全体数据的逻辑结构 是整个DDB所有全局关系的描述 提供了DDBS数据的物理独立性 而全局外模式提供了数据的逻辑独立性 8 1 3DDB模式结构 15 分片模式层描述数据在逻辑上如何进行划分 每个一个全局关系可划分为若干个互不相交的片 fragment 片是全局关系的逻辑划分 在物理上位于网络的若干个结点上 全局关系和片之间的映射在分片模式层中定义 这种映射通常是一对多 一个全局关系可对应多个片 而一个片只能来自一个全局关系 8 1 3DDB模式结构 16 分配模式层定义了片的存储结点 即定义了一个片位于哪一个结点或哪些结点 8 1 3DDB模式结构 17 3 局部数据库模式结构 局部概念模式层全局关系被逻辑划分成为一个或多个逻辑分片 每个逻辑分片被放置在一个或多个站点 称为逻辑分片在某站点的物理映像或分片 分配在同一站点的同一全局概念模式的若干物理片断构成全局模式的一个物理映像 一个站点局部概念模式是该站点所有全局概念模式物理映像集合 全局概念模式与站点无关 而局部概念模式相关 8 1 3DDB模式结构 18 局部内模式层DDB中关于物理数据库的描述 与集中式数据库内模式相似 但描述内容不仅包含局部本站点数据存储 也包含全局数据在本站点存储描述 8 1 3DDB模式结构 19 2 五级映射与分布透明集中式数据库中数据独立性通过两级映射实现 在DDB中 六层模式间存在着五级映射 映射1 全局外模式层到全局概念模式层之间映射 映射2 局部概念模式层到分片层之间映射 8 1 3DDB模式结构 20 映射3 分片层到分配层之间的映射 映射4 分配层到局部概念模式层之间映射 映射5 局部概念层到局部内模式层之间映射 8 1 3DDB模式结构 21 映射1和5类似集中式数据库中体现逻辑与物理独立性的 两级映射 映射2 3和4是DDB所特有 DDB中为突出其基本特点 数据独立性通常包括数据的 分布透明性 映射2 3和4体现的相应独立性分别称为数据的 分片透明性 位置透明性 和 模型透明性 三者就组成了数据的 分布透明性 8 1 3DDB模式结构 22 1 分片透明性分片透明性 fragmentationtransparency 是最高层面的分布透明性 由位于全局概念层和分片层之间的映射2实现 当DDB具有分片透明性时 应用程序只需要对全局关系操作 不必考虑数据分片及存储站点 当分片模式改变时 只需改变映射2即可 不会影响全局概念模式和应用程序 8 1 3DDB模式结构 23 2 位置透明性位置透明性 locationtransparency 由位于分片层和分配层的映射3实现 当DDB不具有分片透明性但具有位置透明性时 编写程序需要指明数据片断名称 但不必指明片断存储站点 当存储站点发生改变时 只需改变分片模式到分配模式之间映射3 而不会影响分片模式 全局概念模式和应用程序 8 1 3DDB模式结构 24 3 局部数据模型透明性局部数据模型透明性 localdatatransparency 也称为局部映像透明性或模型透明性 由位于分配模式和局部概念模式之间的映射4实现 当DDB不具有分片透明性和位置透明性 但具有模型透明性时 用户编写的程序需要指明数据片断名称和片断存储站点 但不必指明站点使用的是何种数据模型 而模型转换和查询语言转换都由映射4完成 8 1 3DDB模式结构 25 1 DDBS基本概念分布式数据系统 distributeddatabasesystem DDBS 由DDB和DDBMS组成 DDB分为局部数据库 LDB 和全局数据库 GDB 8 1 4分布式数据库系统 26 DDBMS分为局部数据库管理系统 LDBMS 和全局数据库管理系统 GDBMS 用户分为局部用户和全局用户 DBA分为局部数据库管理人员 LDBA 和全局数据库管理人员 CDBA 8 1 4分布式数据库系统 27 2 DDBS基本特征 1 数据分布透明性数据独立性是数据库技术需实现基本目标之一 在集中式数据库 数据独立性分为逻辑和物理独立性 要求应用程序与数据逻辑结构和物理结构无关 在DDBS中 数据独立性包括数据的逻辑 物理独立性和数据的分布透明性 具有更广泛含义 8 1 4分布式数据库系统 28 数据分布透明性要求用户或应用程序不必关心数据的逻辑分片 数据物理位置分配细节以及各个站点数据库使用何种数据模型 可以像使用集中式数据库一样对物理上分布的数据库进行数据操作 8 1 4分布式数据库系统 29 2 集中与自治相结合控制机制DDBS中数据共享有两个层面 局部共享 每个站点上各个用户可共享本站点数据 以完成局部应用 全局共享 系统中用户可以共享各站点存储数据 以完成全局应用 8 1 4分布式数据库系统 30 相应控制机构也分为两个层面 集中控制和自治控制 局部DBMS独立管理局部数据库 具有自治功能 同时系统也设有集中控制机制 协调各个局部DBMS工作 执行全局管理功能 8 1 4分布式数据库系统 31 3 适度数据冗余性质集中式数据库中冗余消耗存储空间 可能引起数据不一致等 除非特别需要总是追求尽量减少冗余 在DDBS中 数据冗余却可作为提高系统可靠性 可用性和改善基性能的基本手段 当一个站点出现故障时 通过数据冗余 系统就可以对另一个站点相同副本进行操作 避免因个别站点故障而使整个系统瘫痪 8 1 4分布式数据库系统 32 同时 系统也可通过选择距用户最近的数据副本进行操作 减少通信代价 改善整个系统性能 由于DDBS是集中式数据库的拓广 数据冗余也会带来各副本间数据可能不一致的问题 设计时需要权衡利弊 优化选择 8 1 4分布式数据库系统 33 4 事务管理分布性质数据分布引发事务执行和管理分布 一个全局事务执行能够分解为在若干个站点上子事务 局部事务 的执行 事务的ACID性质和事务恢复具有分布性特点 8 1 4分布式数据库系统 34 DDB各个站点数据在逻辑上是一整体 但数据存放却是分散 对于关系数据库中关系R 通常使用 数据复制 和 数据分片 来存储数据库 数据复制数据复制 datareplication 即将关系R的若干个完全相同的副本分别存储在不同的站点 8 2分布式数据存储 35 数据分片数据分片 datafragmentation 将R分割成几个部分 每部分存储在不同站点 数据复制和数据分片可以结合起来使用 即将R分割成几片之后 每个分片再拥有几个副本 分别存储在不同的站点之中 8 2分布式数据存储 36 1 数据复制当DDB中存在着数据分片时 数据分布在各个站点上 此时结合采用数据复制技术则具有 连续操作性增强 和 本地自治性提高 的优势 8 2 1数据复制方法 37 连续操作性设某数据在不同站点存有副本 当一个全局事务在某站点涉及此数据时 只要此站点存在数据副本 就能 就地 读取和操作 不会因为站点没有相应数据而影响这一全局事务连续执行 8 2 1数据复制方法 38 系统自治性本地自治性部分事务可以在本地副本上进行 而不需要通过网络和远程的站点进行通信 从而提高系统自治性能 同时也减少信息传输开销 采用数据复制技术也会带来如下需要考虑的问题 8 2 1数据复制方法 39 更新传播由于存在多个副本 一旦某个副本发生改动操作 如何进行操作使得所有副本保持一致 此时即是传播更新的问题 8 2 1数据复制方法 40 冗余控制数据复制就是数据冗余 此时有三种冗余方式 完全冗余分配 每个站点都配置一个完整数据库 由于存在大量副本 可连续操作性强 操作所需数据均在本地则查询效率高 但此时会导致传播更新困难 8 2 1数据复制方法 41 非冗余分配 每个片段存在于惟一站点上 所有片段都不相交 除垂直片段的关键字属性 部分冗余分配 介于前述两者之间 某些片段只存在于一个站点 没有冗余 另外一些片段则存在于多个站点 8 2 1数据复制方法 42 数据独立用户操作时感觉不到副本的存在 数据就像没有复制过一样 即副本对于用户透明 8 2 1数据复制方法 43 2 更新传播当数据存在大量副本时 当一个副本发生了更新 就必须及时将这种更新传播到所有副本上去 以保证数据一致性 更新传播有下述两种方式 8 2 1数据复制方法 44 更新内容传播到所有副本此时可能会出现下述问题 如果一个副本当时的状态是不可修改的 站点故障 站点关闭和通信故障等 则导致对更新对象的修改失败 涉及到对象修改的事务也相应失败 如果所有副本的状态都可以修改 则整个修改的性能将取决于速度最慢的站点 8 2 1数据复制方法 45 将一副本指定为主副本 primarycopy 其余指定为从属副本完成了对主副本更新即认为在逻辑完成了所有副本更新 拥有主副本的站点负责将更新传播到其它所有从属副本上去 此时各副本修改不同步进行 不能保证各个副本在某一时刻的绝对一致性 8 2 1数据复制方法 46 例如在银行系统中 个人账户可同其开户站点联系起来 将其开户站点上数据作为主副本 当用户异地存取资金时 首先更新开户站点数据 再更新其他副本上数据 8 2 1数据复制方法 47 数据分片有 水平分片 垂直分片 导出分片 和 混合分片 四种基本方式 无论哪种分片都应当满足下述条件 完备性条件必须将全局关系所有数据都映射到分片中 在划分片段时不允许存在这样的属性 其属于全局关系但不属于任何数据分片 8 2 2数据分片 48 不相交性条件全局关系被分片后所得到的各个数据分片互不重叠 但对垂直分片的主键除外 可重构性条件分片后数据片通过适当操作重新构建全局关系 水平分片 通过并操作重构全局关系 垂直分片 通过连接操作重构全局关系 8 2 2数据分片 49 1 水平分片按照行的关系 关系的水平方向 将全局关系分成若干个不相交的元组子集 每个子集均为关系的一个片断 具有必要的逻辑意义 水平分片通过对关系进行选择运算实现 例8 1设有如下表所示学生信息关系表S S Sn Sa Sd 8 2 2数据分片 50 8 2 2数据分片 51 8 2 2数据分片 按照系别水平分片 将S关系水平分片为S CS和S IS如下两图所示 52 2 垂直分片按照列的方向 关系的垂直方向 将关系分为若干个子集 每一个子集保留了关系的某些属性 例8 2将学生信息关系S按照垂直分片分解为S 1 S Sn Sa 和S 2 S Sd 如下两表所示 8 2 2数据分片 53 8 2 2数据分片 54 3 导出分片即 导出 的水平分片 此时 定义水平分片的选择条件不是关系本身的属性条件而是其他关系的属性条件 设如下表所示学生选课关系SC S C G 8 2 2数据分片 55 8 2 2数据分片 56 如果不是按照S 或C 或G的某个条件分片 而是按照学生年龄小于19和大于等于19分片 此时由于Sa不是SC的属性 由此得到的水平分片就是导出分片 可以使用下述SQL语句表示上述两个数据分片 8 2 2数据分片 57 学生年龄小于19的学生课程关系分片SC 1 S C G 是下述查询的结果 SELCETS C GFROMS SCWHERES S SC S ANDS Sa 19 8 2 2数据分片 58 学生年龄大于或等于19的学生课程关系分片SC 1 S C G 是下述查询的结果 SELCETS C GFROMS SCWHERES S SC S ANDS Sa 19 8 2 2数据分片 59 4 混合分片交替使用水平分片和垂直分片 比如先用水平分片的方式得到某一个分片再采用垂直分片的方式对这个分片进行再分片 这种分片方式由于在实际操作中具有较大的复杂性 因此很少使用 见教材p247例8 3 8 2 2数据分片 60 查询处理是用户与数据库之间接口 在分布式环境下 查询可以分为 局部查询 远程查询 和 全局查询 三种类型 局部查询 只涉及本地站点 远程查询 只涉及一个外地站点两者都只涉及单一站点数据 仍以集中式查询方法进行相关操作 集中式查询开销 数据存取延迟时间 8 3分布式数据查询 8 3 1分布式查询处理 61 全局查询 涉及数据分布在多个站点 其中包括站点之间数据交换 此时查询开销需要加上 存取延迟时间 传输数据数量 传输数据速度 8 3 1分布式查询处理 62 数据传输速度是一个相对常量 取决于通信站场所间的通信速度 存取延迟时间和传输数据量值取决于查询处理所采取存取策略 采用不同存取策略 时间开销差别可以很大 高达几个数量级 8 3 1分布式查询处理 63 集中式数据库查询开销公式为 CPU代价 I O代价CPU代价以ms计算 可忽略不计 磁盘I O比内存I O代价大得多 此时查询开销主要是磁盘I O代价 DDB中 需考虑通信网络速度 查询开销公式为 CPU代价 I O代价 通信代价 8 3 1分布式查询处理 64 1 半连接优化策略数据在网络中夫人传送以整个关系或关系片进行 这是一种冗余方法 将一个关系从一个站点传送到另一个站点后 并非传输中每个数据都参与运算例如连接运算 不参与运算的数据实际上可以不必传送 基于上述考虑 可得到所谓半连接优化策略 基本点是在网络中只传送参与连接的数据 8 3 2分布式查询优化 65 1 半连接代数运算关系R和系S半连接 semi join 运算结果记为R S 表示先进行R和S自然连接 再将结果投影在R的属性集上 也就是说R S R R S 由此可知 R和S半连接是从R中选出与S连接时可匹配的元组 8 3 2分布式查询优化 66 半连接运算说明 一般来说 R S S R 可以证明 R S R R S S 即R S可以采取一种等价方法计算 先求出S在R和S公共属性集上投影 再求出R和该投影的自然连接 见教材实例 8 3 2分布式查询优化 67 2 半连接计算策略设关系R和S分别存储在站点1和站点2 实际应用要求在站点2获得自然连接R S 直接进行操作如图8 16所示 8 3 2分布式查询优化 68 8 3 2分布式查询优化 69 设R和S公共属性集合为T 按照如下步骤实现半连接计算策略 Step1在站点2计算S在公共属性T上投影 T S Step2将 T S 由站点2传输到站点1 Step3在站点1连接运算R1 R T S 8 3 2分布式查询优化 70 Step4将R1由站点1传输到站点2 Step5在站点2进行连接运算R1 S R T S S其中 Step1 Step3和Step5不需通信开销 8 3 2分布式查询优化 71 2 连接优化策略连接优化策略分为两种情形 1 连接关系在同一站点优化算法与集中式相同 根据两个关系的扫描顺序 将其中之一看成是外层关系 例如R 将另外一个看成是内层关系 例如S 外层关系看作前一连接结果 有两种策略选择 8 3 2分布式查询优化 72 嵌套循环顺序扫描外层关系R 对R每个元组扫描内层关系S 查找在连接属性上一致的元组 将匹配的元组组合起来使之成为连接结果的一部分 这种方法要求扫描一次关系R和card R 次关系S以查找匹配的元组 此时S的元组越少越好 8 3 2分布式查询优化 73 排序扫描将两个关系按照连接属性进行排序 然后依照连接属性值顺序扫描这两个关系 使匹配的元组成为连接结果的一个组成部分 此时 对两个关系只须扫描一次 但增加了排序代价 8 3 2分布式查询优化 74 2 连接关系不在同一站点对于存储在不同站点的关系R和S连接 可选择在R站点或S站点进行 也可选择在第三站点进行 在确定好的连接方法时 除了考虑局部代价外 还要考虑通信代价 通常系统支持两种传送方式 8 3 2分布式查询优化 75 整体传送如需连接R和S R为外层关系 S为内层关系 当传送内层关系S时 在传送目的地不将其存入一个临时关系当中 这是因为S将被多次扫描 当传送是外层关系R时 内层关系S可直接使用依次到来的R元组 不必保存R 但此时传送量较大 8 3 2分布式查询优化 76 按需传送只传送所需要连接的元组 一次一个元组 不必临时存储器 每次提取都是只交换一次信息 此时传送代价较高 只有在高速网络中按需传送才较为合算 上述两种策略可以配合使用 8 3 2分布式查询优化 77 在集中式环境中 事务具有ACID 原子性 一致性 隔离性和持久性 特性 事务是在单个站点上的单个处理器 该处理器只需要与一个调度器和一个日志管理器进行通信 所执行的一段代码 8 4分布式事务管理 78 在分布式环境中 数据分布会导致一个事务涉及多个站点处理 此时 事务可看作由一些相互通信的子事务构成 每个子事务位于不同的站点 为保持事务ACID特性 需考虑两个问题 8 4分布式事务管理 79 如何管理分布式事务提交和回滚 事务原子性要求组成事务的所有子事务要么全部提交 要么全部回滚 如何保证涉及多站点分布事务可串行性 80 分布式环境中常采用两段提交协议 2 Phase CommitmentProtocol 2PC 技术 在2PC中 协调者站点 如事务发起站点 决定整个分布式事务的提交与回滚 其他执行子事务的是参与者站点 负责管理子事务执行并记录在该站点上发生操作的日志 此时没有全局的日志 协调者负责和参与者进行通信和消息发送 发送站点需将将发送消息记录到该站点日志中 8 4 1故障恢复控制 81 1 2PC第一阶段 协调者将 准备 Prepare 信息写入站点日志 协调者将 准备 信息发送给子事务所在站点 每个接收到消息站点决定子事务提交与回滚 8 4 1故障恢复控制 82 如决定事务回滚 将 不提交 don tcommit 写入日志 向协调者发送 不提交 消息 如决定提交事务 将所有子事务相关操作日志刷新到磁盘 为防站点发生故障 可不取消整个事务 而是根据日志恢复子事务状态 另外 将 就绪 Ready 消息写入日志 向协调者发送 就绪 消息 8 4 1故障恢复控制 83 2 2PC第二阶段该阶段由协调者收到自事务各参与者消息开始 如果没有收到来自于某个参与者消息 在超时后将这些节点视为发送了 回滚 消息 收到信息中只要有一个 不提交 协调者在其站

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论