与数据库安全系统打交道的人员可以分为两类:数据库管理员和普通用户。DBA要对安全负责,所以他(们)要创建授权规则,定义谁可以使用哪部分数据,以及如何使用。图13.1数据库安全系统由图13.1可知,数据库安全系统里存放着授权规则,在每次数据库存取时强制满足其规则。从完整性方面考虑,数据库安全可以包含以下两方面。1)设计阶段的数据库安全在设计阶段必须关注数据库的安全性。DBA负责处理整个数据库系统里的用户账号和口令。......
2023-10-28
要在并行数据库系统中查找数据,首先要确定数据由哪些处理器管理,放在哪里,这就是数据定位。并行数据库系统中的数据定位(data placement)和分布式数据库系统中的数据分片相似。显然数据分片也是可以增加并行性的。下面会使用分割(partition)这个词来代替分片,以示区别(有些文献中使用declustering这个词汇)。
与分布式数据库方法相比,并行数据库中需要指出两个重要区别:首先,不存在将本地运算最大化的问题;其次,负载均衡在大量处理器情况下也很难实现。现在的问题是如何避免竞争资源(即有的节点忙不过来,有的节点闲着没事干)。因为希望在数据所在处执行程序,所以数据定位就是判断系统性能好坏的一个重要因素。
恰当的数据定位必须能让系统性能最大化,这可以用要做的工作总量和各个查询的响应时间的综合因素来量度。
数据的全分割也是一种替代解决方案,即把关系分片后分配到各个节点中去。大多数系统使用全分割(full partitioning),如Teradata公司的DBC/1012和Tandem公司的NonStop SQL等。
有round-robin分割、哈希分割和归类分割三种基本分割方法,如图14.14所示。
图14.14 不同的分割模式
round-robin分割是最简单的一种分割方法,它能保证均匀分配。令系统有n个分割,第i个元组的分配是按照i mod n来实施的。这个策略使得对一个关系的顺序存取可并行处理。但是在要求按照一个谓词随机存取一个元组时,就要访问整个关系。
哈希分割(hash partitioning)是对某个属性应用哈希函数,产生分割号。按这个分割号将数据分配到相应的节点上,这可以方便随机查找。(www.chuimin.cn)
归类分割(range partitioning)是将元组按其值的区间来分配。例如,按字母序区间来分配。
不管怎么分割,为了提高负载均衡,需要定期进行数据重组。这种重组对编译好的程序来说应当是透明的。这些程序无需再由于数据重组而重新编译。为了解决这个问题,提出了在每个节点上建立一个全局索引机制的方法。全局索引指示出关系在节点上的定位情况。这个全局索引可以构造成两级机制,一级记录关系的主聚合(major clustering),另一级是关于属性的子聚合(minor clustering)。索引结构既可以使用哈希函数也可以使用B树。
数据定位中涉及的一个严重问题是如何处理数据分布不均匀的问题,这是由于数据初次分配(此时是均匀的)后数据的多次删(除)、(添)加导致的。它会导致分割不一致,伤害负载均衡。归类分割时问题更严重。解决方法是将大的分割继续分割以达到基本均衡。分离逻辑节点和物理节点也是一个解决办法,这样一个逻辑节点可以对应于几个物理节点。
为了达到高可用性,采取数据复制也是一个办法。解决问题的一个简单办法是为同一数据提供两个副本,一个为原本,另一个为副本,分别放在不同的节点上。这其实是一种镜像磁盘结构。不过,当一个节点发生故障时,有副本的那个节点的负载就要加倍,负载均衡就受到损害。为了解决这个问题,学术界为并行数据库系统提出了一些高可用的数据复制策略。一个很有趣的解决方案是Teradata公司采用的叠加分割技术,即分割副本放到几个节点上。一个节点有故障时,它的负载就分摊给几个有副本的节点。
我们再讨论Teradata DBC的数据分布示例。Teradata DBC的数据分布如图14.15所示。由图可知,假设有一批数据(块)分别表示为6,2,5,12,8,11,3,1,9,10,4,7,…,有四个AMP分别各由一个DSU存放数据,则这些数据会均匀分配给这四个DSU。例如,从左往右,第一个DSU存放12,1,7;第二个DSU存放5,3,4;第三个DSU存放2,11,10;第四个DSU存放6,8,9;等等。
图14.15 Teradata DBC的数据分布
由图14.15可知,Teradata DBC采用的策略是将数据均匀地分布到其存储设备中。round-robin是一种典型的算法。
有关分布式数据库技术的文章
与数据库安全系统打交道的人员可以分为两类:数据库管理员和普通用户。DBA要对安全负责,所以他(们)要创建授权规则,定义谁可以使用哪部分数据,以及如何使用。图13.1数据库安全系统由图13.1可知,数据库安全系统里存放着授权规则,在每次数据库存取时强制满足其规则。从完整性方面考虑,数据库安全可以包含以下两方面。1)设计阶段的数据库安全在设计阶段必须关注数据库的安全性。DBA负责处理整个数据库系统里的用户账号和口令。......
2023-10-28
Oracle公司的OPS环境比一般的(单实例)Oracle环境复杂得多。不同结构下的OPS的实施略有不同。图14.23OPS体系结构为了利用这些特性,需要专业人员合适的设计以及恰当的手工配置。下面对有些关键问题进行简单讨论,讨论中会涉及一些Oracle系统专用的术语,读者可参阅Oracle公司的相关文档。DLM与Oracle进程一起工作并相互通信。DLM相关的初始化参数在每个实例的SGA[12]中分配必要的结构以处理消息机制、封锁与实例相关的Cache管理,这样就为各种Oracle进程操纵提供了基础。......
2023-10-28
图5.6以网络为中心的计算驱动力量、增长领域与示例值得注意的是,美国国防部的Net-Centric的数据策略是从用户出发考虑的。根据DoD的描述:以网络为中心是指实现一个联网环境,包括基础设施、系统、过程和个人,使之能够按照完全不同的方式实施战斗和商务活动。以网络为中心的基础是GIG。以网络为中心,通过安全互联时间或地点独立的人和系统,充分支持军事态势知识的改进和更好地访问商务信息,大大缩短了决策周期。......
2023-10-28
查询优化的本地化分层聚焦于将查询转换成本地数据。一个全局关系可以通过应用重构规则来重构,从而导出一个关系代数程序,其操作数是数据片,这个程序称为本地化程序。将分布查询分配到节点上的自然办法是生成查询,让每个全局关系使用本地化程序来代替。这可以看成是在一棵分布查询的算符树上将叶子用与本地化程序对应的子树来替代。数据水平分片关系的连接也可以简化。......
2023-10-28
前面提及的OPS是Oracle 6.0中引入的,RAC源自OPS,但作为新的产品推出。一个4节点的集群结构如图14.24所示。图14.24一个4节点的集群结构RAC起源于OPS,在Oracle 6.0.35版本中引入。最初只适用于Digital VAX/VMS集群使用Oracle开发的分布式封锁管理器。从Oracle 9.0.1开始,OPS重新改为RAC可选项。在商业上,RAC已是一个完整的新产品。然而在技术上,OPS和RAC的一个重要区别是超高速缓存相关性。OPS里,实例间的块协调由PCM处理。Oracle 8i引入了Cache Fusion PhaseⅠ,部分淘汰了磁盘ping。......
2023-10-28
为了集成海量的、异构的、多形态的数据,首先要将它们的描述统一起来,这就引出了对集成数据的元数据描述和管理的要求。事实上,人们对元数据的理解和认识还存在不少争议,迄今尚未形成真正统一的元数据定义。与数据字典不同,数据仓库主要是将元数据进行分析处理。2)元数据分类元数据广泛存在的多形态导致到目前还没有形成一个统一的分类标准。......
2023-10-28
自1995年以来,基于CORBA软件的企业级应用发展迅猛。CORBA是OMG随着硬件和软件产品的快速增长,针对互操作性的需要而提出的。CORBA 2.0于1994年12月被提出,它定义了不同供应商的ORB怎样才能实现真正的互操作性。图12.4OMA体系结构OMA体系结构主要包括以下几部分。ORB用于发现与该请求对应的对象实现,对所要求的所有机制做出响应,准备好对象实现以响应请求,并完成请求所需要的数据通信。由图12.5可知,客户端通过ORB向对象实现发送请求。......
2023-10-28
图3.1软件开发过程数据库设计的过程与软件开发的过程类似。下面先来看一下集中式数据库设计的情况。在分布式数据库系统中,集中式数据库设计的问题依然存在,且有以下两个新的问题需要考虑。这个过程就是确定如何将全局关系划分成水平、垂直或者混合的数据片。数据片的分配,即决定数据片如何映射到物理镜像上,决定如何复制数据片。数据片的分配问题则研究已久,当然,过去研究的则是“文件分配”问题。......
2023-10-28
相关推荐