分布数据库

2024-09-26

分布数据库(精选12篇)

分布数据库 篇1

1 概述

当今社会是信息的社会,随着科技的进步,随着网络的发展,信息的地位已经成为比能源、物资更重要的资源,以信息价值的生产为中心,以信息工业为支柱和主导,促进信息高速发展成为至关重要的课题。

如何更好的管理众多的信息,如何更好的存储大量的数据,特别是如何让大量的有用信息可以让大众共享,也就同时成为当今研究的重要项目之一。

分布式数据库的研究和应用已经成为这个项目的重要研究领域。为此,我们就需要对分布式数据库的优点,缺点详细了解,从而使分布式数据更好的为我们服务。

2 什么是分布式数据库系统

要研究分布式数据库首先就要先知道什么是分布式数据库。打个比方说,一个学校对学生进行管理工作,就是把学生安排在多个班里,每个班都是一个独立的数据库,而多个班合起来就是一个学校学生的整体数据库。这种分布处理的方式,能更好的对学生进行管理。

通过上面的例子我们可以看出,所谓分布式数据库系统就是由分布于多个计算机结点上的若干个数据库组成,每个子数据库系统都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统,分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。简单的说,分布式数据库系统是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的。

3 分布式数据库的前提———“分”

数据库技术主要研究的对象就是数据,那么如何处理数据就成为数据库技术主要面对的问题。在分布式数据库中,我们要进行的前提就是如何实现数据的“分”。

3.1 数据分片问题

从分布式数据库的定义中,我们知道,所谓的分布式简单的说,就是把一个整体分成多个独立的个体,所以对于分布式数据库系统来讲,就是把一个大片数据分成多个独立的小数据存放在网络中的各个主机上,我们把这个过程就称为数据分片。那么下面我们就来看看在分布式数据库系统中,是如何实现对数据的分片的。

1)水平分片

所谓水平分片就是按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段,简单地说,就是按关键字的特征来划分全局数据库。

2)垂直分片

所谓垂直分片就是把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片。

我们现在仍然用上面的例子对垂直分片的方法进行说明如下图所示,全局数据库XSXX,按字段名分成两片局部数据库,这里面学号和姓名字段出现重复,在对数据库分片时,最好应避免出现过多的重复字段,但这种重复又是必要的,因为它们能够表达记录特征,使局部数据库之间的记录能一一对应,这样的字段要求其值相对固定,不要随意改动。

3)导出分片

又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件。(也可以归为水平分片的特例)

4)混合分片

在分布式数据库应用中,仅仅进行单一的水平分片或垂直分片往往是不够的,在数据库设计的时候,一般都同时用到这两种方法,这就是混合分片的方法。所谓混合分片,简单地说就是以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。

我们还是通过上面的例子来理解混合分片的方法。

3.2 数据在进行分片时的要求

在对数据“化整为零”的过程中,并不是简单的水平,垂直分成多份就可以了,在“分”数据时必须有一定的要求和规则。

1)完整性要求

必须把全局关系的所有数据映射到片段中,决不允许有属于全局关系的数据却不属于它的任何一个片段。

2)可重构要求

必须保证能够由同一个全局关系的各个片段来重建该全局关系。对于水平分片可用并操作重构全局关系;对于垂直分片可用联接操作重构全局关系。即,“化整为零”的数据,还要能够再“化零为整”。

3)不重复要求

要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)。

3.3 数据的分配方法

1)集中式:所有数据片段都安排在同一个场地上。

2)分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。

3)全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。

4)混合式:这是一种介乎于分割式和全复制式之间的分配方式。

4 分布式数据库的应用———“查”

无论建立什么样的数据库,最终的目的就是对它内部数据的使用,当我们把大量数据分成多个部分,分配在各个网络和设备结点,那么在应用某些数据时,如何采用寻找最优解的算法,就成为一个重要的问题。所以如何“查”,就是我们关心的另一个主要问题。

“查”的主要工作就是在执行分布式查询时选择查询执行计划的方法和关系运算符的实现算法。根据系统环境的不同,查询优化所使用的算法也有所不同,通常分为远程广域网环境和高速局域网环境,其区别主要在网络的带宽。对于一元运算符可以采用集中式数据库中的查询优化方法。而对于二元运算符,由于涉及场地间的数据传输,因此必须考虑通信代价。

目前,在分布式查询中常见的连接运算执行策略包括:

1)半连接方法

利用半连接运算的转换方法R∞S=(RµS)∞S。假设场地1和场地2上分别有关系R和关系S,首先在S上执行连接属性上的投影并将结果传输至场地1,在场地1上执行关系R与投影的连接操作,再将结果传输至场地2与关系S执行连接操作。这种方法能够降低执行连接运算时的网络通信代价,主要适用于带宽较低的远程广域网络。

2)枚举法方法

指枚举关系运算符的物理执行计划,通过对比执行计划的代价选择执行算法的方法。其中,连接运算符的物理执行计划包括嵌套循环方法、哈希连接法和归并连接法。枚举法主要适用于以磁盘IO代价为主的高速局域网环境。

5 分布式数据库的特点及应用

从上面的分析,我们已经对分布式数据库系统有了一个大概的了解,从中我们可以看出分布式数据库在现代社会的海量数据管理和使用中,是功不可没的,但同时也面临着许多的问题,下面我们从分布式数据库的“功”与“过”来对它的特点进行一下简单的分析。

5.1 分布式数据库的“功”

1)对网络中各结点的要求不高

由于分布式数据库技术,将大量的数分成多个部分来进行管理,所以对某些结点计算机系统的配置要求可以放低。

2)降低了数据传送代价

大多数的对数据库的访问操作都是针对局部数据库的,而不是对其他位置的数据库访问的,所以降低了数据的传送代价。

3)提高了系统的可靠性

当网络出现故障时,仍然允许对局部数据库的操作,而且一个位置的故障不影响其他位置的处理工作,只有当访问出现故障位置的数据时,在某种程度上才受影响

4)便于扩充

由于在分布式数据库系统中各个数据库的位置是透明的,所以对于数据库的扩充更方便。

正因为分布式数据库有如此多的优点,所以对于数据信息需求日益增多的今天,它已经占有了一块十分重要的领域。但是,有些功能却需要付出更高的代价。

5.2 分布式数据库的“过”

1)事务管理性能要求高

由于,分布式数据库把数据分散到多个网络结点上,所以为了调配在几个位置上的活动,事务管理的性能比在中心数据库时花费更高,甚至抵消许多其他的优点。

2)数据的安全性存在隐患

由于分布式数据库的数是在各个数据库的位置是透明的,所以使大量信息的安全性存在隐患,甚至造成重要信息被泄漏。

我们正是要我利用分布式数据库系统的这些特点使其更好的为我们服务。

6 未来分布式数据库与移动Agent的绑定的展望

研究分布式数据库的目的是为了更好的“为己所用”。所以,我们要做的就是让分布式数据库的优点更可靠,更好的为我们服务,同时更重要的就是了解,发现它的缺点,并想办法来解决这些问题。

这让我想到了,前一段时间看到的移动Agent技术。移动Agent具有可以自由在网络中移动,并当从一个结点到另一个结点后,可以不占用带宽,也就意味着,此时如果断网,也不会影响,Agent的工作,所以如果用移动Agent来寻找数据就可以避免数据信息的泄漏,并且也不用耗费大量的精力来管理调配数据,只需对这种“数据探访”Agent进行控制就可以完成所需的大量工作。

所以,如果能使移动Agent技术与分布式数据库技术绑定,将会使未来的数据库管理技术的发展有着光明美好的前景。

7 结束语

分布式数据库技术是一项仍然会不断发展的技术,从总体上看,分布式数据的研究已经从起步阶段发展到了攻坚阶段,目前急需对分布式技术的某些问题进行深层研究,比如说查询的优化问题,并且同时需要对所存在的问题进行解决,如信息的安全隐患问题,事务管理要求过高的问题。写成本文,主要是为了让更多人关注分布式数据库的发展。我相信,随着研究和开发工作的不断深入,分布式数据库将在实际应用中不断的提高和完善,更好的为我们所用。

参考文献

[1]浙江中控软件技术有限公司.分布式实时数据库在钢铁中的应用[EB/OL]http://www.gkong.com/co/supcon/solution_detail.asp?solu-tion_id=5243.

[2]刘威.分布式数据库及其技术[J].长春大学学报,2000,10(1).

[3]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2006.

[4]武君胜,吴德州.面向电力系统的分布式实时数据库关键技术及应用[J].中国科技论文在线,2008,3(2).

分布数据库 篇2

Terrastore是一个基于Terracotta(一个业界公认的、快速的分布式集群组件)实现的高性能分布式文档数据库,可以动态从运行中的集群添 加/删除节点,而且不需要停机和修改任何配置,

支持通过http协议访问Terrastore。Terrastore提供了一个基于集合的键/值接口来管 理JSON文档并且不需要预先定义JSON文档的架构。易于操作,安装一个完整能够运行的集群只需几行命令。

项目主页:www.open-open.com/lib/view/home/1322728423093

关于分布式数据库的几点思考 篇3

关键词:分布式数据库;特点;模式;优劣势

中图分类号:TP392文献标识码:A文章编号:1007-9599 (2011) 03-0000-01

Analysis of Distributed Database

Yao Ye

(China University of Mining&Technology,School of Computer Science&Technology,Xuzhou221116,China)

Abstract:Distributed database system in the very great degree satisfied people’s requirements to solve problems of regional dispersion data storage,distributed database is convenientand practical.This paper analysed the concept,characteristics,development,advantages and disadvantages of distributed database.

Keywords:Distributed database;Characteristics;Pattern;Advantage and disadvantage

一、引言

伴随着计算机技术和互联网的的迅速普及,彼此之间的交流近在咫尺,人们的生产生活的数据越来越想着共享与统一的方向发展,分布式数据库系统也是在人们对资源利用率要求越来越高的形势下应运而生。伴随着人们越来越多的使用数据库技术,用户的要求也越来越多,人们渴求一种新型数据库系统解决数据存储在地域上的分散性。在广大IT人员的不断努力下结合“计算机网络”和“数据库系统”的分布式数据库系统出现了,它的出现使数据可以实现集中管理与全局共享,并且满足了人们解决数据存储地域分散性的问题。

二、分布式数据库概述

单一的计算机可以独自放置在某个地方,满足每台计算机中装置DBMS的完整的拷贝副本,而且同时也包含独自的局部数据库(控制机制具有集中与自制相结合的特点),通过网络将这样的放置在不同地点的若干台计算机联系起来,从而形成的一个全局的、统一的大型数据库就叫做分布式数据库。

由上可知分布式数据库系统就是数据信息在地理空间上市分散存储的,然而集中、统一却可以从数理应用逻辑上得到体现出的数据库系统。它所存储的数据具备适当兀余性、相对独立性、管理分布性等特点。

分布式数据库有效地解决了物理中心数据库组织的一些不足。第一,通过分布式数据库可以大大降低了数据传送的成本;再者,分布式数据库系统提高了系统的可靠性;而且,分布式数据库容易对系统进行扩充。

三、分布式数据库特点

从上节概述中我们可以总结,分布式数据库系统大致具有节点自治性强、数据存储物理上分散、逻辑上统一等特点。然而从细节上具体来说,分布式数据库还具有以下一些特点:

(一)不同区域的计算机通过数网络连接起来。

(二)分布式数据库系统可靠性得到了增加,应为工作时局部与局部相互之间不受影响。

(三)和谐的整体事务活动是以较高的事务管理费用为代价的。

(四)在物理逻辑应用上达到了共享一致。

(五)解决了传统中心数据库存在的一些不足,数据传递成本得到了减少。

(六)每个数据库的位置是确定可见的,系统能够便于扩充。

(七)数据在地理位置上存储的较为分散。

(八)节点自治性强。

(九)大部分的处理都是即时的完成的。

四、分布式数据库系统的模式结构

分布式数据库系统的结构模式分为以下几种:

(一)局部概念模式。局部概念模式一定程度上能够看成全局概念模式的子集。

(二)局部内模式。局部内模式是分布式数据库里面关对物理数据库的描述,不但包含其中一个结点的数据信息,也包括全局数据在这一结点上的存储信息。

(三)全局概念模式。定义分布式数据库中的全局逻辑结构数据特性的模式叫做全局概念模式被用来。

(四)全局外模式。全局外模式又叫全局视图是全局应用的用户视图,

(五)分片模式。说明怎样布置数据库的特殊部分的模式叫做分片模式。

(六)分配模式。定义片段存放的结点的模式叫做分配模式。

五、分布式数据库优势与劣势

比较集中式数据库和分布式数据库系统,不难看出,虽然分布式数据库系统是在意集中式数据库系统为基础之上发展起来的,但相比而言:

(一)分布是数据库系统包含以下优点:1.分布式数据库系统比较容易扩展,能够集成已经具有的系统,并且方便扩充。2.分布式数据库系统总的看来相对比较经济,而且具有很高的可靠性和很好的可用性。3.分布式数据库系统更适合分布式的管理与控制。4.满足某些条件时分布式数据库系统的响应速度就会变得快一些。用户所在的计算机能够执行存储或者取出本地数据库里德数据速度自然变快。5.分布式數据库系统是一种含有灵活体系结构的数据库系统。

(二)分布式数据库系统的劣势。分布数数据库系统有如下劣势:1.很难控制分布式数据库系统中数据的安全性和保密性。在场地比较自治的分布式数据库里面,异地的局部数据库管理员能够使用不相同的安全措施,不过这样便不能确定全局的安全。2.存取分布式数据库系统中的数据结构有些复杂。与集中式数据库相比,在普通情况下分布时数据库在存取数据库中的数据时,过程比较复杂,花销也比较大。3.分布式数据库系统的通信消耗资金比较大,故而且容易出现障率。恢复系统排除的过程也非常复杂。

六、结束语

分布式数据库系统已经成为目前计算机网络技术中的一个实用的比较关键的组成部分,它在使用时要求对不同的数据组织、编码、存储、分类和维护。分布式数据库系统乘着网络技术不断发展之风,满足人们更大的在共享数据、应用信息的需求,提高了人们的生产生活效率。

参考文献:

[1]李维.分布式多层应用系统.机械工业出版社,2000

[2]邵佩英.分布式数据库系统及其应用.科学出版社,2005

分布式数据库安全解析 篇4

伴随着互联网的迅速发展, 分布式数据库系统成为了信息技术领域中一个很活跃的研究方向。“一个分布式数据库系统包括了一个分布式数据库管理系统, 一个分布式数据库和作为连接载体的网络。” (Bhavani Thuraisingham 2000) 在一个集中式数据库中, 数据是保存在一个服务器中的。然而, 分布式数据库将数据保存在多个服务器中。为了给客户提供服务, 很多产业都需要安装分布式数据库系统, 例如银行需要提供给客户在线转账的服务, 跨国公司将员工的信息分散保存在不同的分布式数据库主机中, 等等。我们可以看出通过分布式数据库系统传播的数据大部分是隐私或者保密的, 例如银行的转账记录或用户的个人信息。这些信息通过网络来传播, 因此更容易受到攻击, 我们也必须保证整个系统的安全。本文中, 我将建立一个模型并从四个层次详细分析提升分布式数据库和分布式数据库系统安全性的方法。

2 保障分布式数据库系统安全性的四个先决条件

为了使一个分布式数据库系统安全, 四个先决条件必须满足:首先分布式数据库和分布式数据库管理系统必须配置和维护妥当, 这一部分是保障分布式数据库系统安全的核心。其次操作系统必须拒绝未经授权的连接。接下来运行分布式数据库管理系统的服务器必须在物理上得到有效保护。最后, 作为数据传播媒介的网络必须安全可靠同时运转良好。

3 增强分布式数据库及其管理系统安全的方法

为了增强分布式数据库及管理系统的安全, 需要建立安全模型。本文中我建立的安全模型包括四个层次, 分别是:身份验证、授权、加密和审计。

3.1 身份验证。

在一个用户从数据库获取信息之前, 他的身份必须得以确认。在分布式数据库系统中, 身份验证包括两方面的含义。一方面, 是用户和服务器之间的身份验证。例如当用户通过网上银行系统转账时所发生的验证。另一方面, 是服务器与服务器之间的验证。例如当一台服务器需要连接另一台服务器从而产生正确结果时所用的验证。不同的数据库有不同的身份验证方式甚至一种数据库也会有多种方式去验证用户或者数据库的身份。在这里我拿甲骨文的验证方式举例。当用户对一个数据库发出请求时, 验证就开始了。首先, 他必须选择他在数据库系统中要扮演的角色, 接下来, 透明网络底层 (TNS) 被激活。TNS呼叫服务器, 并将用户的信息 (例如主机名, 操作系统的版本, 等等) 传递给服务器。在这一阶段, 并没有涉及到用户名和密码的传送。当数据库接受了主机名和操作系统信息之后, 用户就可以通过甲骨文的密码传输协议 (O3LOGON) 将用户名和密码传给数据库, 而这个协议也是通过DES算法加密的。 (Ron2005) 数据库和数据库之间的交流对于一个分布式数据库系统来说也是很重要的。当用户登录到系统之后, 用户可能只接连到了数据库A。而当用户需要得到由数据库A和数据库B连接产生的记录时, 分布式数据库管理系统就会在后台做连接操作了。不同的分布式数据库有不同的方法来确保这类连接的安全。例如微软使用远程过程调用协议 (RPC) 来连接不同的数据库, 而数据库之间的身份验证由RPC验证完成。一台服务器发送给另一台服务器一个RPC包裹, 这个包裹包含了两方面的内容:证书和证明。证书是用来识别发送方身份的, 而证明用来证明发送方是真正身份的拥有者。举例来说, 一个警察徽章上的名字就是证书, 其上附带的照片就是证明。服务器接收包裹后, 通过证明来验证证书的有效性。而这个环节就类似于通过照片来验证徽章的携带者。当发送端的数据库服务器身份被确认后, 接收端的数据库服务器就会发送回一个证明给发送端, 然后连接就被建立了。 (Sun Microsystems 1995)

3.2 授权。

当用户的身份被确认之后, 用户就可以从数据库中获得数据了。但是, 数据库会根据用户身份的不同给予不同的使用权限, 例如低级别的用户只能浏览那些非隐私性的数据。在一个分布式数据库系统中, 管理员有着最高级别的权限。他可以对数据库进行所有操作例如更删改查等等。管理员也可以使用GRANT和REVOKE方法去动态的给予和撤销权限。通过GRANT给予的权限是可以累加的, 但是一个REVOKE操作便会将之前所有GRANT的权限撤销掉。数据库管理员的账户是整个分布式数据库中最重要的账户, 因此必须得到有效的保护。另外一种授权的方式就是通过矩阵授权。例如甲骨文就通过两个矩阵给用户授权。一个叫做user_tab_privs矩阵, 这个矩阵保存着用户对表格操作的权限;另外一个叫做user_sys_privs矩阵, 这个矩阵保存着用户对系统操作的权限。 (Oracle 2005) 当用户登录系统后, 分布式数据库管理系统会通过这两个矩阵自动给予用户相应的权限。

3.3 加密。

被分布式数据库管理系统操作的数据大致可以分成两个类型, 一种是储存在分布式数据库中的数据, 另外一种就是在用户和数据库之间传递或者在多个数据库之间传递的数据。不论何种数据, 都需要被加密以获得更高的安全级别。比较常用的数据库内部信息的加密方式为对称密匙加密。用这种方式将明文加密成密文存储在数据库的步骤如下:首先, 选择一个对称密匙。接着分布式数据库管理系统利用用户的公匙对对称密匙加密。用户的私匙也同时被加密。每当用户需要使用对称密匙加密数据的时候, 他需要利用密码短语将被加密的私匙解密, 然后利用私匙将被加密的对称密匙解密。最后, 分布式数据库系统利用对称密匙将明文加密成密文存储。在网络上传递的数据一样也需要加密。这些数据可能是由多个分布式数据库产生并穿梭于多个网络。因此加密和解密的算法会很大程度上影响分布式数据库系统的性能。在这里我拿甲骨文的分布式数据库系统举例如何依赖分布式数据库管理系统对数据加密。甲骨文公司有一个高级安全包的概念, 用于加密传送的数据。发送方需要先告知接收方他支持哪些加密算法, 接下来接收方要检查自己的加密算法, 然后比对发送方提供的算法列表。如果有相同的加密算法, 那么接收方会建立连接;如果没有任何加密算法对应, 则连接会被拒绝。因此如果用户和数据库服务器端都使用甲骨文的分布式数据库管理系统, 在网络上传输的数据就肯定会被加密因为发送方和接收方有着同样的加密算法。

3.4 审计。

审计是四层次模型中的最上层。当前三个层次的安全性都得以保障后, 分布式数据库已经可以正常运转了, 但是我们还需要通过审计去观察分布式数据库管理系统。通常情况下, 分布式数据库管理系统会产生两种审计监控内容。一种是日志, 用来记录用户对敏感信息的获取情况, 例如哪些用户在何时登录登出了系统, 又是在何时对敏感信息进行更新的, 等等。另外一种审计是安全审计, 这种审计用来观察系统的工作状况并扫描漏洞。通过安全审计, 数据库管理员可以更好的监控分布式数据库管理系统的行为。

4 结论

本文通过解析四个层次的安全模型详解了提升分布式数据库及其管理系统安全性的方法。分布式数据库的应用非常广, 如在银行、政府和跨国公司都被广泛使用。而分布式数据库操作的数据大部分都是隐私且价值很高的, 因此我们必须保证数据库及其管理系统运行在一个安全的环境之下。

摘要:伴随着近些年互联网的扩充热潮, 分布式数据库得到了很大的发展。分布式数据库系统要远比集中式数据库系统复杂, 同时也更容易受到侵犯。本文分析了有关分布式数据库安全的各方面, 介绍了增强安全性的主要技术。同时, 本文详细的分析了增强分布式数据库和分布式数据库管理系统安全性的方法。

关键词:分布式数据库,互联网,安全

参考文献

[1]Bhavani Thuraisingham. (2000) , “Security for Distributed Databases”, Information Security Technical Report, Vol 6, No.2 pp.95.[1]Bhavani Thuraisingham. (2000) , “Security for Distributed Databases”, Information Security Technical Report, Vol 6, No.2 pp.95.

[2]Ron Ben Natan. (2005) Implementing Database Security and Auditing, Elsevier, UK, pp.96[2]Ron Ben Natan. (2005) Implementing Database Security and Auditing, Elsevier, UK, pp.96

[3]太阳微系统公司, 提高RPC安全性文档, 1995.[3]太阳微系统公司, 提高RPC安全性文档, 1995.

分布式栅格数据库的一体化管理 篇5

分布式栅格数据库的一体化管理

首先对不同类型的栅格数据库进行研究分类,并确定各类型的优化管理方法,然后在整合统一的.基础上,提出一种基于五层分级组织管理模式的分布式栅格数据库一体化管理方法,旨在对各种栅格数据库进行一体化的组织管理.

作 者:王伟 杜道生 熊汉江 WANG Wei DU Dao-sheng XIONG Han-jiang  作者单位:武汉大学,测绘遥感信息工程国家重点实验室,湖北,武汉,430079 刊 名:测绘通报  ISTIC PKU英文刊名:BULLETIN OF SURVEYING AND MAPPING 年,卷(期): “”(3) 分类号:P2 关键词:栅格数据库   空间数据库   分布式数据库   3DGIS  

分布数据库 篇6

关键词:分布式数据库 安全性 防护策略

【中图分类号】TP311.13

分布式数据库系统(DDBS)是数据库技术和网络技术两者相互渗透和有机结合的结果。涉及数据库基本理论和网络通信理论。分布式数据库由一组数据组成,这些数据在物理上分布在计算机网络的不同节点上,逻辑上是属于同一个系统。这些节点由通讯网络联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。分布式数据库存在于开放的网络环境中,这就对安全性以及防护策略提出了越来越高的要求。本文针对网络环境中分布式数据库的不安全因素以及相应的防护策略进行探讨。

一、分布式数据库系统的特点

1、数据独立性。数据独立性是数据库方法追求的主要目标之一,在分布式数据库中,数据独立性这一特点更加重要。并且有更多的内容,数据独立性亦称分布透明性,分布透明性的优点就是很明显,有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样,当数据从一个场地移动到另一个场地时不必改写应用程序,当增加某些数据的重复副本时也不必改写应用程序,数据分布信息系统存储在数据字典中,用户对非本地数据的请求由系统根据字典予以解释、转换、传送。

2、集中与自治相结合的控制系统。数据库是用户共享的资源,分布式数据库系统常常采用集中和自治相结合的控制结构,同时,系统又没有集中控制机制,协调各个局部的工作,执行全局应用。

3、全局的一致性、可串行性与可恢复性。分布式数据库中各个局部数据库应满足集中式数据库的一致性、可串行性和可恢复性。因此在分布式数据库系统中一个业务可能由不同场地上的几个操作组成。

二、分布式数据在库的安全性。

在开发分布式数据库系统中,保证数据库中数据安全是一项非常重要的工作。一个好的分布式数据库,必须能确保系统数据的完整性、有效性、安全性。防止未授权用户对其访问,跟踪用户对其访问的情况,控制授权用户仅能对自己所拥有权限的子系统和数据进行访问,使系统免于因各种破坏而造成数据的丢失和窃取,这也是分布式数据库系统安全管理必须要解决的问题。一般情况下,分布式数据库面临三大安全问题:

1、保障数据库数据的可靠性、完整性,预防和减少因为软、硬件系统误差所造成的数据库恶性破坏。

2、来自于本机或者网络上的人为攻击,也就是黑客攻击,当前网络黑客攻击的方式主要包括:窃听、假冒攻击、破译密文、越权攻击、以及重发攻击等几种主要的形式。攻击者通过不断的发送大量的报文来使得客户计算机或者是服务器来使得通信线路端口发送堵塞,然后冒充被攻击的客户或者是服务器来对分布式数据库系统当中的其他正常运行的站点进行骚扰,进行非法访问,从而来获取其中的机密数据信息。

3、数据库管理系统自身的安全脆弱性,现阶段系统的安全与操作系统的安全是相互配套的,由于数据库管理系统所存在的操作系统的结构多样,一个可以打补丁和可渗透的操作系统是难以从根本上解决安全问题的,因此,数据库的管理系统也是脆弱的。

4、信息流动风险增加。分布式数据库系统是基于整个系统的数据共享而建立起来的,而这些数据一般都不是由同一个用户加以存储的,而是分布于各个不同的站点之中,且同一个数据对各个不同用户所要求的安全等级不一样,而系统设置的自主访问控制授权机制将使得访问者可能自主的将其访问权限间接或者直接的转交给无法访问权限的用户,增加了信息流动的风险。

三、针对以上问题所采取的防护策略

1、加强身份验证。加强身份验证主要是针对攻击者采取的针对性措施。它主要是在用户提出数据访问时,在用户和数据库系统之间设置一道程序进行身份验证,以确保用户真实身份的合法性,之后再对用户权限进行定义与设置,确保其对有限资源进行访问。

2、加强通信保密。在系统内部进行通信的双方之间建立起一道保密同道,在完成了信息访问者的身份确认,并确认信息访问者的权限之后,就可以授权访问者获取数据了。但是,为了防止通信过程中出现数据窃取以及重发等问题,还应该在通信双方之间建立起通信保密同道,对两者之间进行的数据传输进行加密处理。

3、访问控制与审计。在对数据库进行管理的过程中,为了抵御黑客采取越权攻击的方式,在对其管理进行设置时就应采用所有用户都不可以对数据库中存储的数据进行直接操作的方式,而是通过在系统中嵌入一个对访问进行控制的模块,当用户发出数据访问的请求后,首先将其提交给模块,然后由这个模块来进行对应的数据访问操作,这样就可以有效的防范分布式数据库系统被黑客攻击。

4、对存储数据进行加密。为了防止攻击者利用网络协议以及数据库自身存在的漏洞来窃取存储在其中的数据库文件,应该对其中的数据进行加密处理,并保证加密算法的加密强度,尽量减小被攻击的威胁程度。

5、故障恢复。虽然有很多方式可以保护分布式數据库系统的安全,但是由于一些软件、硬件本身的错误以及黑客攻击和操作失误等造成的不安全因素不可避免,因此分布式数据库系统需要具备系统故障修复的能力,将数据库系统的错误恢复到一个已知的正确状态中。

四、结束语

分布式数据库查询优化方法 篇7

近年来, 随着计算机网络和数据库技术的发展, 对分布式数据库的应用越来越广泛;随着应用不断扩大, 数据的查询也越来越复杂, 对查询的效率要求也越来越高, 因此查询处理成为分布式数据库系统中的一个关键性的问题[1]。在分布式数据库中, 由于数据的分布与冗余, 使得查询处理中一般需要站点间的数据传递及通信费用, 成为查询优化的主要矛盾;另一方面, 数据的分布与冗余也增加了查询的并发处理的可能性, 从而可以缩短查询处理的响应时间, 提高处理速度。总之, 分布式查询的规模与优化的因素, 都与集中式查询优化不同, 因此许多数据库专家学者致力于研究分布式数据库查询优化技术这一重要课题, 并且己经在这一领域作了大量的工作, 也找到了规律, 包括一些大家公认的经典算法;然而由于分布式数据库本身的灵活性, 要想设计一个算法对于各种情况都是最优的几乎不太现实, 只能说设计一个较优的优化算法, 它可以解决某一类型的问题[2]。分布式数据库中查询优化是一项复杂问题, 已经被证明属于NP完全问题, 至今都没有得到彻底地解决, 里面尚有许多问题值得研究和探讨。

1 分布式查询优化的目标

分布式数据库系统的查询优化有两种不同的目标:一种目标, 是以总代价最小为标准;另一种目标, 是以查询响应时间最短为标准, 这一点在分布式数据库系统中具有重要的意义。因为分布式数据库系统是由多台计算机组成的系统, 数据的分布和冗余也增加了查询的并行处理的可能性, 从而可以缩减查询处理的响应时间, 加快查询处理速度。在分布式查询优化中也常同时使用这两种标准, 根据系统应用的不同, 一种作为主要标准, 另一种作为辅助标准[3]。在分布式数据库系统中, 查询优化包括两个内容:查询策略优化和局部处理优化, 而查询策略优化尤为重要。分布式查询策略的优劣将直接影响计算机网络资源耗费的多少。

在集中式数据库系统中, 查询优化的目的可以总结为以下三个方面:

1) 为每个用户查询寻求总代价最小的执行策略;

2) 总代价是以查询处理期间的CPU代价和I/O代价来衡量的;

3) 总代价最小就意味着查询的响应时间最短。

从上可看出, 在集中式数据库系统中, 一个查询策略的选择是以执行查询的预期代价为依据的。由于系统大都运行在单个处理器的计算机上, 所以查询执行总代价为CPU代价加I/O代价[4]。而在分布式数据库系统中, 由于数据的分布在多个不同的站点上, 使得查询处理中需要考虑站点间传输数据的通信费用, 所以除了考虑CPU代价和I/O代价之外, 还应该包括数据在网络上的传输代价。所以在分布式数据库系统中, 常以两种不同的目标来考虑查询优化:以总代价最小为标准和以每个查询的响应时间最短为标准。这样分布式查询优化可用以下四个参数来衡量:

1) CPU代价, 即占用的CPU处理周期, 记做Ccpu;

2) I/O代价, 记做Ci/o;

3) 通信代价, 记做Cmsg;

4) 传输的数据代价, 记做Cbt。

2 分布式查询优化的基本方法

在分布式查询处理技术中, 查询优化有两种基本方法:第一, 是查询转化, 即以不同的顺序执行关系操作, 如连接和投影操作:第二, 是查询映射, 即使用一系列高效的算法来存取各种设备和实现关系操作。查询转化是指关系运算集合运算顺序的改变, 对查询的性能有重要影响[5]。在多站点下, 查询转化可以减少通信量, 从而达到减少查询代价的目的[6]。查询映射则是针对关系的存取方法和操作的执行算法进行决策。

2.1 查询转化的处理过程

查询转化处理一般经历三个阶段:

1) 建立关系代数表达式。根据查询问题, 编写关系代数表达式。

2) 建立查询语法树。根据关系代数表达式, 生成查询语法树。

3) 全局优化。按照优化策略, 对查询语法树进行全局优化。

优化策略:查询优化策略按以下步骤进行:

1) 将关系代数表达式转换成选择串接形式。

2) 尽可能把选择和投影操作移近树的叶端, 即尽可能早地执行选择和投影策略, 以得到较小的中间关系, 减少运算量。

3) 把选择和投影合并成单个选择、单个投影或一个选择后跟一个投影。使多个选择和投影能同时执行或在一次扫描中同时完成。

4) 将上述步骤得到的查询语法树的内结点分组。每个二元运算结点与其直接祖先的一元结点分为一组。如果它的子孙结点一直到叶结点都是一元运算符, 则并入该组。

5) 生成一个程序, 每一组结点的计算是程序中的一步, 各步的顺序是任意的, 只要保证任何一组不会在它的子孙组之前计算。

2.2 查询优化的三种典型算法

2.2.1 INGRES算法

INGRES算法是动态的优化算法。这个算法主要分为两个步骤:

(1) 将含有多个变量的查询分解为一系列的只含有一个变量的单关系查询。

(2) 通过执行其每一个单关系查询:用启发式的方法选择一个初始化的执行计划, 通过中间关系的大小来确定查询执行的顺序。

首先来看分解的详细过程:用一系列的单关系查询qi取代n个变量的查询q, 就比如:q1->q2->…->qn, 其中qi使用qi-1的执行结果。

它主要有两个基本的动作:分离与元组替换。

分离:查询q分解成q’和q’’, 当q’和q’’有一个共同的量在q’的结果里。

查询分解算法:

元组替换:用元组的实际值来替换并且简化查询, q (R1, R2, …Rn) 被{q’ (t1i, R2, …, Rn) , t1i∈R1}

2.2.2 System R*算法

System R*算法是源于美国CA州的IBN San Jose Research Laboratory开发System R*系统, System R*系统是采用直接连接作为查询处理策略的分布式数据库系统, 其最重要的目标是提供地点自主权。当每个地点既能控制由另一个地点上对其数据的访问, 也能在不受任何其它地点限制的条件下处理自己的数据时, 也就实现了地点自主权。R*系统完全实现了第一个目标。但它仅仅是部分地实现了第二个目标。

R*系统由3个主要部分组成:局部DBMS、提供信息传输的数据通信部分和能协调实现多地点事务处理的事务处理管理程序。局部DBMS可分为两个部分:存储系统 (用于数据的存储与检索) 和数据库语言处理器 (用于将高级SQL语句转换成存储系统上适用的操作命令) 。R*方案中采用的存储系统叫RSS*, 是以系统R的存储系统为基础。R*各地点通过CICS的系统间通信 (ISC) 设备进行通信。每一个R*地点都在一个CICS地址空间运行, 而CICS控制终端I/O和信息通信。假定该通信是不可靠的 (不能保证所传输的信息总能送到) , 但可以假定所送到的信息是正确的、不重复的, 并以与发送它们的相同次序接收。一个应用程序在其局部地点执行所有对R*系统的数据库访问请求。所有地点间的通信均在不同地点的R*系统之间进行。因为是R*、而不是应用程序负责为分布式数据定位。这样, 在R*环境中不需要远程应用程序。应用地点的事务处理管理程序, 把未包括在明确定义的事务处理中的第一个SQL语句看作是事务处理的开始, 隐含地执行一个开始一一事务处理。当用户完成一次会话后, 就假定一个隐含的结束一一事务处理, 并提交所有已经完成的工作。

R*系统的另一个重要问题是位置透明性 (用户并不知道数据的实际位置) 。这样, 从程序员的观点来看, 使用R*系统与使用集中式系统基本一样。虽然在R*系统中引入的附加语言特性极少, 但R*系统的主要成就是在分布式环境中提供了SQL/DS的大多数功能。在R*系统中, SQL查询既可以静态地进行编译 (n个执行编译一次) , 也可以动态地进行编译 (在单个执行前立即进行编译) 。前一种情况用于重复查询;后一种情况用于预先不知道的查询。在R方案中, 重复查询的重要性比预先不知道的查询高得多。在这两种情况下, 非过程型SQL语句被转换成访问计划, 该计划规定访问关系的次序进行访问的地点, 完成每一个操作的方法及在RSS*中检索或处理元组的访问路由。

2.2.3 SDD-1算法

SDD-1算法由两部分组成:基本算法和后优化。基本算法是根据评估所缩减程序的费用, 效率, 收益估算等几个因素, 给出全部的半连接缩减程序集, 决定一个最有益的执行策略, 但效率不一定理想。主要包括三个基本步骤:

(1) 初始化:已准备好从查询数转换的优化模型, 且所有关系已完成局部缩减。

(2) 优化:根据初始条件, 构造可能的半连接缩减程序;按半连接缩减程序的静态特性表, 分别计算其代价和产生的益处, 从其中选取一个半连接程序, 设为S;以S完成缩减以后, 又用重新产生的一组新的静态特性表再进行计算, 再从其中选取一个合适的半连接程序, 但每一个都只做一次;循环下去, 直到没有半连接缩减程序为止。

(3) 结束:以最后一次缩减关系的静态特性表为基础, 进行费用计算, 选择场地。后优化是将基本算法得到的解进行修正, 已得到更合理的执行策略。包括两种修正:一种, 是如果最后一次半连接程序缩减关系的所在场地恰好是被选中的执行场地, 则最后一次半连接可以取消;另一种, 修正是在基本算法的流程图进行修正, 因为某一个半连接缩减程序的代价可能很高, 就必须修正半连接的操作序。

SDD-l算法:

SDD-1算法支持关系数据模型。全局关系能以两个步骤分段 (首先水平分段, 然后垂直分段) , 能以冗余方式存储各段。SDD-1能提供段存储透明性 (用户不知道段和段的分配) 利用数据语言, 即适用于数据计算机的高级过程语言实现关系控制。

SDD-1算法的体系结构是基于三个相对独立的虚拟机:数据模块、事务处理模块和可靠的网络。这种体系结构允许把分布式数据库管理问题分成三个系统, 以限制相互的影响。

SDD-1算法存在一个严重问题, 那就是它的算法的复杂性。当元组数目很大时, 进行查询搜索的代价进迅速增加, 使系统无法承受。当然, 对于这种搜索模式, 可以找到最佳的路经去进行查询。为此, 我们在此基础上对它进行改进, 降低它的时间复杂度。在人工智能里面的A*算法可以引入到SDD-1算法中来, 当元组数目不是很大时, 可以采用A’算法的思想对它进行查询优化, 在此基础上能找到最优的方法去进行路径搜索和优化, 而当元组数目非常多的时候, 还是用以前的方法。

3 结束语

分布式数据库系统的查询处理是用户与分布式数据库系统的接口, 查询处理策略的好坏直接影响到系统的执行速度。本文通过实例重点讨论了在分布式数据库系统中应用优化策略, 减少运算数据量和网络资源的耗费, 提高了查询效率。至于对于给定的查询, 应该怎样选择好的查询策略, 进行分布式查询优化, 我们可以根据已有的优化算法和分析各种查询策略的特点来选择一个较好的查询策略。

摘要:本文介绍分布式数据库系统查询优化的目标、策略, 着重讨论了一种分布式数据库系统查询优化策略是如何影响查询的, 并对分布式数据库系统的查询优化的典型方法进行了分析、总结。分布式数据库系统由于数据的分布和冗余使得分布式查询处理增加了许多新的内容和复杂性, 对于一个给定的查询, 通常会有多种可能的策略, 查询优化就是从这许多策略中找出最有效查询计划的一种处理过程。并针对分布式数据库系统的查询优化, 讨论了三个典型的算法:INGRES算法、SystemR*算法、SDD-1算法。

关键词:分布式数据库,分布式查询,查询优化,查询处理策略,算法

参考文献

[1]徐俊刚, 邵佩英.分布式数据库系统及其应用[M].北京:科学出版社, 2012, 4.

[2]申德荣, 于戈.分布式数据库系统原理与应用[M].北京:机械工业出版社, 2011, 8.

[3]王丽艳, 郑先锋, 刘亮.分布式数据库系统及其应用[M].北京:机械工业出版社, 2013, 2.

[4]吴溥峰, 张玉清.数据库安全综述[J].计算机工程, 2006, 32 (12) .

[5]O’NeilP, O’NeilE.数据库原理、编程与性能[M].北京:机械工业出版社, 2002.

分布式数据库的安全分析 篇8

数据库这个词已经成为一个最基本的概念。肯特数据库定义为:“一个数据库是一个模型的某些方面的一个组织的现实。”维基百科将数据库描述为一个有组织的数据集合, 通常以数字形式存储。此外, 现实中使用的基本数据库形式是集中式数据库, 这意味着所有的数据位于和保持在一个位置。

然而, 随着互联网和网络技术的发展, 一种新的数据库命名为分布式数据库, 打破了集中式数据库的局限性。根据M.T. Ozsu和P. Valduriez的理论, “分布式数据库是多个的集合。逻辑上相互关联的数据库分布在一个计算机网络”。

2分布式数据库系统安全问题

2.1分类的安全问题

数据库系统的第一个威胁来自外部, 即非法用户的访问、 病毒、系统组件的损失等。相对地, 另一种威胁来自系统内部的不安全感问题, 如不正确的数据修改 (插入、删除或更新) , 从而破坏数据库的一致性、完整性, 甚至使垃圾积累导致数据库崩溃。Elisa Bertino&Ravi Sandhu给出了一些例子来说明数据库存在的危险:由于未经授权的数据获取或不正确的数据库状态, 可能会给金融和社会组织造成沉重的损失, 也可能会导致不能及时提供重要数据。

分布式数据库系统通常有许多用户和用户组, 通常分配给不同的部门。它的安全问题主要包括以下两个方面。第一, 用户需要一个系统共享数据, 然而这些数据可能存储在不同的用户账号或分配给许多部门。因为相同的数据可能对不同用户有不同的安全需求。第二, 只有用户的安全级别访问管理可以使联合国权威信息泄漏。

2.2解决方案

现代分布式数据库系统主要使用访问控制策略管理权威问题和数据库加密技术, 以防止数据传输数据泄漏。

3访问控制

Harrison、Ruzzo&Ullman安全模型保障一个操作系统及计算机安全模型处理系统中的访问权限的完整性。它的主要观点是, 系统中程序在一个对象只访问权限授权一个主题。

3.1自主访问控制

在自主访问控制中, 每个对象都有自身的归属, 拥有自身的控制。在关系型中, 对表和视图, 用户可以使用语义操作管理表, 如SQL。表和视图的区别在于, 操作可能不能用于一些看法, 因为视图反映的是表而不是实际的表。这意味着它本身不存储数据, 只是一个虚拟表, 简化为人类理解和业务用户或与外部应用程序提供一种安全的方式。主题代表的实体可以访问对象, 如用户。一旦主体 (用户) 创建一个表, 它迅速成为老板的桌子, 有两个授权:完全访问模式在桌子上, 桌子上可以授予特权, 其他科目都通过。

3.2强制访问控制

强制访问控制 (MAC) 政策管理数据库管理系统分类。 主题是活跃的实体运营数据和存储数据, 对象是被动的实体。 主题和对象都有安全访问类。授予访问的一个主题对象必须满足访问类的对象和主题。访问类有两个组件:安全级别和类别。安全级别有四个水平, 而这些命令:绝密 (TS) >秘密 (S) >机密 (C) >非保密 (U) 。访问类只能由另一个访问类调用, 且只有后者有更高或等于之前的水平。

MAC和多级关系模型 (高) 密切相关, 这样的关系可以将其分为不同的安全分区。每个元素在一个特定的访问类, 如在C级, 所有的数据访问类是水平C, 可读的主题与C级相对, 所有高于C水平的元素与访问类是不可见的。还有一个限制命名为帐面价值的限制, 它表明具有较高的访问类的元素只能写科目较低或相等的访问类。然而, 有时由于完整性的原因, 这个限制是不允许的。

4基于角色的访问控制 (RBAC) 模型

自主访问控制和强制访问控制不足, 需要分配主体和客体的访问控制。因此, 当对象和对象的数量变得很高, 授权工作将是困难的。

RBAC模型是一个相对较新和广泛使用的访问控制模型。它不同于DAC和MAC模型给予当局直接主题, 但授予权限的角色。一个角色是一个函数代表一群资历、行为和责任的组织。RBAC模型的原理是:数据库管理员根据部门的实际需求创建角色, 授予角色、相关授权和分配用户角色的成员 (得到所需角色的许可) 。通过这种方式, 用户可以访问数据间的角色。这种模式使用户的授权更精确地分割, 因此提高了数据库的安全。

在分布式数据库系统中, 实现RBAC主要有以下步骤:

第一, 创建角色并分配用户。两种观点的目的, 提高安全时应遵循创建角色:最小授权编号为每个角色, 为用户和分区功能。

第二, 建立User-Role-Privilege表。为了实现相应的用户间的关系——角色和特权, 应该创建四个表:用户表、辊道、 用户角色表和Role-Privilege表。

第三, 设计安全管理界面, 主要是在后台创建和授予权限的角色。

RBAC模型跟传统访问控制相比的优势在于:它可以实现精确的访问控制, 有效管理特定组件。所有这些优势使RBAC模型成为分布式数据库系统的重要组成部分。

5数据库加密

尽管数据库系统安全中访问控制非常有用, 但它不利于开放的互联网环境。例如, 它不能阻止攻击者获得原始数据库数据。然而, 即使数据库加密, 也难以保护数据不受到各种各样的攻击。

数据库加密技术是一个被动的策略, 用以防止数据泄漏。 在分布式数据库应用程序中, 通过互联网进行交流不可避免。 通过合作与访问控制, 数据库加密为分布式数据库系统的安全提供了第二道防御。

6研究方向

通过比较三个模型的访问控制, 自主访问控制的主要特点是, 它允许对象授予或撤销授权, 使得管理工作更加灵活。 但是, 它的缺陷是很难控制授权的主题, 导致容易产生安全漏洞。RBAC提供一个中间角色, 是一个新概念的访问控制管理。系统授予权限的角色, 而不是直接授予权限。而数据库加密技术是一个被动的策略, 用以防止数据泄漏。

7结语

分布式数据库系统的优势, 使得现代商业和企业在许多领域都采用此技术。同时, 提高数据库的安全性能至关重要。 本文主要探讨和分析数据库安全的两个方面——访问控制和数据库加密, 以提高分布式数据库的安全。

参考文献

[1] (英) 康诺利 (Connolly, T.) , (英) 贝格 (Begg, C.E.) .数据库系统:设计、实现与管理[M].北京:电子工业出版社, 2008:5.

分布式数据库系统的设计浅析 篇9

关键词:分布式数据库,数据,数据库安全

随着计算机应用领域的不断拓展和多媒体技术的发展, 数据库已是计算机科学技术中发展最快、应用最广泛的重要分支之一, 数据库技术的研究也取得了重大突破, 它已成为计算机信息系统和计算机应用系统的重要的技术基础和支柱。分布式数据库是数据库技术与网络技术相结合的产物, 在数据库领域已形成一个分支。它通常使用较小的计算机系统, 每台计算机可单独放在一个地方, 每台计算机中都有DBMS的一份完整拷贝副本, 并具有自己局部的数据库, 位于不同地点的许多计算机通过网络互相连接, 共同组成一个完整的、全局的大型数据库。分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库系统SDD-1是由美国计算机公司 (CCA) 于1979年在DEC计算机上实现。20世纪90年代以来, 分布式数据库系统进入商品化应用阶段, 传统的关系数据库产品均发展成以计算机网络及多任务操作系统为核心的分布式数据库产品, 同时分布式数据库逐步向客户机/服务器模式发展。

1 分布式数据库系统简介

1.1 分布式数据库系统简介

随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充, 数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:数据按实际需要已在网络上分布存储, 再采用集中式处理, 势必造成通信开销大;应用程序集中在一台计算机上运行, 一旦该计算机发生故障, 则整个系统受到影响, 可靠性不高;集中式处理引起系统的规模和配置都不够灵活, 系统的可扩充性差。在这种形势下, 集中式数据库的“集中计算”概念向“分布计算概念发展”。分布式数据库系统应运而生。所谓分布式数据库系统是物理上分散、逻辑上集中的数据库系统, 系统中的数据分布存放在计算机网络不同场地的计算机中, 每一场地都有自治处理能力并能完成局部应用, 而每一场地也参与全局应用, 程序通过网络通信子系统执行全局应用。数据库应用的不断发展, 规模的不断扩大, 分布式数据库系统以其分布性和开放性的优势获得了人们的青睐, 在结构设计上, 它的数据力求合理必须使用的数据分布到结点上, 无权处理的数据则不能让局部用户使用。分布式数据库系统不是集中式数据库系统的简单分布, 也不是多个集中式数据库系的简单合并。分布式数据库系统与集中式数据库系统比较有以下三个主要特点:节点自主性、分布透明性、数据重复性。

1.2 分布式数据系统的分类

(1) 同构同质型DDBS:各个场地都采用同一类型的数据模型 (譬如都是关系型) , 并且是同一型号的DBMS。 (2) 同构异质型DDB S:各个场地采用同一类型的数据模型, 但是DBMS的型号不同, 譬如DB2、OR-ACLE、SYBASE、SQL Server等。 (3) 异构型DDBS:各个场地的数据模型的型号不同甚至类型也不同。随着计算机网络技术的发展, 异种机联网问题已经得到较好的解决, 此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据。

2 分布式数据库系统设计

2.1 分布式数据库系统的设计原则

(1) 分布式数据库的本地性和近地性分布式数据库设计的一个主要原则是使数据和应用实现, 其最大目标是:通过尽可能地使用数据靠近使用该数据的应用进行分配, 从而提高处理的本地性来减少通信。 (2) 分布式数据的可用性和可靠性保存数据的多个副本, 使只读应用具有高度的可用性, 而且数据的任何一个副本不能使用时, 可方便地是使用在另一个站点中的该数据的副本进行恢复, 将数据分布于多个场地, 并增加适当的冗余度来提供更好的可靠性。

2.2 分布式数据库系统的模式结构

分布式数据库管理系统不仅仅是把数据存储在不同的物理节点上, 实现远程查询, 更重要的是实现透明的数据管理, 例如查询、修改、复制等。以上所有信息使得系统中的数据可以更好地组织在一起, 从而方便了数据的浏览、查询以及复制等操作;使系统的安全性和完整性得到了有力的保障使用户可以从全局的角度来操纵系统中的数据。尽管用户需要访问的数据库可能位于不同的物理节点, 但用户看到的是一个完整的统一的数据库即逻辑数据库。用户在安全规则许可的情况下, 可以很方便地访问逻辑数据库中的任何数据, 而不需关心他所需要的数据是存储在哪一个网络中, 哪一台计算机上, 使用的是什么系统, 应通过哪种方式去访问等等。这就实现了分布式数据库系统所要求的透明性。根据用户的安全级别, 系统生成数据字典的相应的用户视图分发给用户。用户视图屏蔽了系统数据字典中用户不应见到的部分, 只给出了对应于用户权限的部分数据, 从而进一步保证了数据的安全性。在分布式数据库系统中, 将关系分片, 这有利于按用户需求组织数据的分布。

2.3 分布式数据库系统的存取控制

(1) 中央集权式;将事物管理层部分放到中央节点, 将数据管理层部分放到对应的各个子节点。这种类型适用于大企业的管理方式, 如大油田或大制造厂。另外, 也可以把各个子节点上的数据管理层部分分离出来, 和中央处理机放置在一起, 各局部应用请求由各终端通过网络传递。这样便干统一进行数据管理和计算机维护, 但增加了网络的负担。这种类型是前述类型的变种, 从抽象的角度看并没有什么区别。 (2) 分层式;将事物管理层部分部分放到中央节点, 将数据管理层部分放到对应的各子节点;若各子节点还有子子节点, 则数据管理层部分的局部概念模式即为该子节点上的全局概念模式。这样的结构通常采用星形网络结构。这种类型适用于上、下级之间存在联系而同级之间又很少发生联系的纵向管理行业。如石油天然气总公司的“勘探开发数据库系统”即可采用这种结构类型。这种类型要求整个系统有高效的DDBMS支持, 否则越层的全局应用请求的响应速度就会很慢。 (3) 完全分布式;将事物管理层部分复制到各个节点, 这样每个节点均存有事物管理层部分和该节点对应的数据管理层部分。这种类型灵活高效, 充分体现了分布式数据库系统的特点, 适用于较广泛的应用方式。但这种类型的整个系统造价很高。另外还需注意, 事物管理层部分的修改特权应交给指定的一个节点, 由DDBMS支持对其余副本的修改, 以避免数据异常。

参考文献

[1]H.Garcia, Molina.Research Distributed Databased[J].SIGMOD Record, 1990, 19 (4) :98~103.

[2]庄成三, 洪玫, 杨秋辉.数据库系统原理及其应用[M].北京:电子工业出版社, 2000 (6) .

分布式实时数据库系统技术研究 篇10

1.1分布式数据库系统的特点。

分布式数据库由一组数据组成, 从物理层面看这些数据分布在计算机网络的不同结点上, 从逻辑层面看这些数据属于同一系统。网络中每个结点都具有独立执行局部应用程序的功能, 也能通过网络通信子系统在全局范围内执行应用程序。也就是说, 分布式数据库系统的数据库、终端、中央处理器、局部DBMS运行、局部应用程序执行等都是独立的, 但又可相互协作形成整体, 其用户可以实现在任何场地执行全局应用程序[1]。

1.2实时数据库的特点。

实时数据库系统是管理有时间限制的数据和事务, 强调调度机制和事务管理上对传统数据库的优化, 可设定事务的截止时间特征, 最大限度地满足事务起讫时间限制, 保证数据库内数据在逻辑和时序上完整一致。

1.3分布式实时数据库的优势。

现代数据库需求要求实时数据库与分布式数据库在功能特性上实现有效集成, 由分布式实时数据库管理系统统一调度管理, 其方法是在实时数据库的事务处理层基础上实现分布式事务处理, 即将具有执行期限的数据和事务分布在不同结点上。

二、分布式实时数据库的事务管理机制

2.1分布式高优先级两阶段锁定并发控制协议。

数据库系统的事务管理机制包括分布式事务并发控制机制、提交机制、避免或解决死锁及日志管理机制等, 分布式实时数据库是在分布式高优先级两阶段锁定协议基础上加入优先级因素考虑。在这一新型协议中, 优先级将由事务最后期限和紧迫性的初始状态调整为将事务进入系统的时间追加到初始状态的实时状态。以此实现每个站点上的锁管理器为站点上各个事务的子事务要访问的数据对象进行枷锁。其中, 当事务之间按照优先级的高低对占锁产生申请冲突时, 低优先级事务将被重启, 重启范围和事务自身全局或局部性质保持一致, 以此保持分布式实时数据库的优先级次序与加锁、解锁实现优化。

2.2附带终结协议的两阶段提交协议。

分布式数据库系统在出现协调站故障或通信链路问题时, 可能导致个体参与者不能及时收到协调者的提交决定, 导致参与者在结束投票阶段发生延迟, 子事务因此错过截止期, 附带影响其下关联事务执行。分布式实时数据库系统对此加入了终结协议, 以提高两阶段协议发生故障时的应急处理能力, 实现实时事务管理。

所谓终结协议即协调站在向若干参与者发送投票信息时同时附带提供所有参与站地址, 当出现上述异常情况时, 问题参与站可利用附带地址沟通信息。其实施办法是, 在参与站与恢复站的信息设计上分三种情况考虑:一是参与站有明确提交命令时则发送给恢复站相同信息, 恢复站执行协调者决策, 并发送信息至不确定站点;二是提交了信息却未收到命令则发送给恢复站不确定信息, 则恢复站继续询问;三是提交信息夭折则发送恢复站夭折信息, 恢复站自行回滚并将发送回滚命令至所有参与站。

2.3减少协议依赖性。

分布式数据库的协议模式虽实现了冲突模式下的数据共享, 却导致冲突事务之间相互依赖, 限制了提交顺序, 一旦协议出现故障且无法迅速恢复, 则其下依赖事务都将错过截止期。数据库通常依据事务在投票子阶段的时间长度是否超出无故障事务时限来断定该事务是否正常执行。因此分布式实时数据库对此协议形式改为弱依赖协议类型, 即维持执行冲突的协议解决方式不变, 而将既有的依赖性用依赖集实现其可串行性, 保证并发数据方位的数据库一致。当事务在提交后严重超出无故障事务时限则作回滚处理, 并顺次执行到该事务其下的连带事务上。由此只要有需要, 前期其提交事务都能被立即产生依赖性, 在依赖过程中可依据具体状态随时决定是否取消其被依赖资格。

总结

长久以来, 国内众多计算机应用行业文献都致力于对传统协议进行改进, 但多停留在或改善并发控制协议的并发度、或改良提交协议来提高食物管理的实时水平等单向度改进层次上, 分布式实时数据库在此问题改进上集成了二者优势, 令使协议适用于分布式实时系统环境, 设计了基于分布式实时数据库系统环境下, 并行交融并发控制和提交处理两个工作阶段的新协议方案, 解决了单向度改进协议无法全面解决的截止期问题。

参考文献

[1]庞惠, 翟正利.论分布式数据库[J].电脑知识与技术, 2011, 02:271-273.

分布式环境中数据存储技术的研究 篇11

关键词:分布式;数据存储;数据库

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)03-0455-02

1 数据存储技术的现状

近年来,随着计算机技术和网络技术的迅猛发展,依靠先进的技术进行网络化办公已经成为现实。越来越多的企业、政府机构、社会团体借助计算机技术将业务主体进行科学的专项设计和应用,用户只需要少量的终端设备就可以对大量的数据进行处理和分析。另一方面,随着人们对互联网依赖程度的逐步加深,伴随“大数据”等新概念的提出和发展,产生的数据量也呈现爆炸式增长。新数据的产生和原始数据的不断积累,导致占用的存储容量越来越大。因此,如何扩展服务提供商器的存储能力已经成为当前科研领域的重要研究热点。

目前,能够有效提高数据存储能力的方式主要有两类解决方案。一类是新增硬件的方法提高存储能力。由服务提供商采购新的存储设备来拓展服务器的存储能力。另一类是在不改变现有硬件设备的条件下,服务提供商改善数据存储软件,优化存储信息的方式,通过分类和分解数据的形式提高存储能力。第一类解决方案存在明显的弊端,服务提供商的购买能力是有限的,无法从根本上解决难题。另一类目前已经得到国内外行业的普遍认可,各大数据服务提供商投入大量人力和物力,加快了数据管理软件的研发脚步,一系列的数据库产品营运而生,像Google Spanner,Cassandra,MongoDB,MySQL Cluster等[1]优秀的产品为分布式环境下有效的管理数据,优化存储提供了先决条件。

2 分布式环境下数据存储的应用特性分析

通过大量实践可以看出,对于大量数据的处理效率往往与数据本身的可操作性有着紧密联系,所以有必要对分布式环境下的数据应用特性进行合理的分析和总结。分布式数据库主要有以下三个特点:

2.1 数据库存储的数据在逻辑上是集中的,在地理位置上是分散的

分散的数据单元所在的物理位置是透明的,通过通讯线路和协议进行相互沟通。这点有力的说明分布式数据库存在数据的“分散性”。

2.2 用户对数据进行的任何操作都有一个统一的DBMS进行调度

用户不必关心数据的并发处理、副本调度等问题,即使局部数据单元发生数据故障,统一的DBMS仍可以进行调度和工作。这点有力的说明分布式数据库存在管理上的“集中性”。

2.3 用户对任何数据进行例如添加、删除和查询操作时,每个数据单元都各有一个小型的数据管理系统,都有各自的DBMS,多数处理就地完成

这点有力的说明分布式数据库存在操作上的“自治性”。

3 分布式数据库系统的设计

在分布式环境下,对于数据库的设计要求还没有统一的标准。该文通过总结和分析整理国内外相关资料,认为一个可操作的分布式数据库系统,应具备四个功能,如图1所示。

3.1 数据分发[2]

数据分发的建立打破了传统数据存储模式,它使物理上分散的数据单元成为逻辑上统一的整体,数据模块之间通过数据链路进行连接,通过形式统一的数据接口和协议进行通讯。合理的数据分发模块能够解决数据在远距离存储上存在的异构问题。

3.2 并行处理

由于数据存储过程中的分散性和自治性的特点,使得并发处理功能就显得尤为重要。并行处理问题发生的情况分为三种:时间并行,空间并行以及时间和空间同时并行。并行处理功能要求数据库要有很好的事务机制处理办法,提供有效的并发解决方案。

3.3 SQL解析

由于大量数据库管理系统和操作系统存在异构的特点,SQL解析功能就显得尤为重要。SQL的语句首先被数据库管理软件转化为ASCII码,然后由解析器分三个环节进行解析。首先是语法解析,通常会从数据字典、对象比较、游标等方面检查用户输入的语法是否存在错误;其次是语义解析,为用户输入的语句建立语法树,对语义中提到的程序、表、字段等方面进行检查;最后是执行语法过程,将操作结果进行打包后传递给DBMS。[3]

3.4 汇总处理

汇总处理的目标是从分散的数据模块中提取用户需要的数据,并进行必要的处理后呈现在用户面前,形成一个完整的、统一的大型数据库。

4 总结

分布式数据存储能够不改变现有硬件设备的条件下,充分利用现有资源为用户服务,为用户提供快速灵活的体验,同时可以减少投入,提高设备利用率。随着数据存储技术的不断发展和成熟,能够在不同领域中得到更广阔的发展。

参考文献:

[1] CunchenLi,JunYang,JingHan,HaihongE.The Distributed Storage System Based On MPP For Mass Data[C].2012 IEEE Asia-Pacific Services Computing Conference.GuiLin,Guangxi:EEEE, 2012:384-387.

[2] 杨俊.海量数据分布式存储技术的研究与应用[D].北京邮电大学,2012.

分布式数据库同步检测方法探讨 篇12

1 矩阵校验算法

1.1 算法概述

联机时将缓存的数据分成n张页面,分别记为P1, P2,…,Pn,把每个页面的校验和分别记C1、C2、…、Cn。求整数m使得(m-1) 2

在服务器方也按同样的方式分页,按同样的方式对校验和排列矩阵。在服务器方计算矩阵中每一行的签名,分别记为SRS 1, SRS 2,…,SRS m。计算矩阵中每一列的签名,分别记为SCS 1, SCS 2,…SCS m。

MU在重连后,把它所缓存的页号码发送到服务器,服务器按上述方法排列矩阵,计算每行和每列的签名,并把这些签名按顺序发送到MU。

MU也按上述方法排列矩阵和计算各行、各列的签名,每行的签名分别记为MRS 1, MRS 2,…,MRS m;每列的签名分别记为MCS 1, MCS 2,…,MCS m。

RX i=1当SRS i≠MRS i时,

0当SRS i=MRS i时.i=1, 2,…,m

比较各行的签名之后,就可以得到RX的一组值:

CX i=1当SCS i≠MCS i时,

0当SCS i=MCS i时。

比较各列的签名之后,得到CX的一组值:CX1,

CX2,…,CX m。

1.2 实例分析

假设有一个64张页的例子,则应排成8×8的矩阵,示意如下(不一致的页用*标记):

通过比较各行、各列的签名之后,得到:

将有可能不一致的页提取出来,得到如下的新矩阵

由RX1=1, CX=00100101可知:在第1行中可能不一致的页有P13, P16, P18。

由RX4=1和CX=00100101可知:在第4行中可能不一致的页有P43, P46, P48。

由RX8=1和CX=00100101可知:在第8行中可能不一致的页有P83, P86, P88。

在上述9个可能不一致的页中,至少有3个页一定有错。如果有超过3个页不一致,则这9个页就是所有不一致页的一个超集。

1.3 算法实现

Tb表示可能不一致页的集合,其初值为空页面Pij的校验和为矩阵中的Cij.Tb:=0

1.4 结果分析

算法确定了一个n×m阶的结果集,这个结果集可能就是所求的不一致页的集合,也可能是不一致页的一个超集(所有不一致的页都包含在里面)。其形式如下:对此集合中可能不一致的页的分布情况作详细讨论,并分别作相应的后续处理。

1.5 不一致页的分布情形

(1)不一致的页刚好落在矩阵对角线或反对角线上(选用一个5阶的方阵作讨论,下同),情形如下(不一致的页有*标记):

这种情况是最理想的状况,对于本例的5×5阶方阵,最少有5个页不一致,如果是该情形,则不一致的页就是对角线或是反对角线上的那些。

(2)不一致的页较分散,并不在对角线上,但是正好是满足要求的最少页。情形如下:

对于本例的5×5方阵,不一致的页正好分布在该方阵的行列式的其中一项上,所以只有5张页就能得出签名比较的结果,得到这个5×5阶的结果集合。

(3)不一致的页较分散,并不在对角线上,但是不一致页数目大于最小值,情形如下:

这种情况不一致页的分布表现得无规律性,在这25张页中,不一致页的数目在5~25之间都有可能。

(4)结果集合不是方阵的情形,不一致页的分布也可作类似分析,在此不赘述。

2 技术对比

从算法的复杂程度和实现难度来看,矩阵校验算法显然更胜一筹,其他算法必须实现麻烦的页分组机制,在分组时,随机算法的选择也很关键,不合适的随机分组算法会大大影响实现的效率,会将不一致的页判断为一致,又将一致的页判断为不一致。这都是算法本身的缺陷带来的。本算法通过简单易行却很完美的矩阵排列的方式进行分组,减少了解决问题的环节,很自然地使算法出现错误的几率δ降到了可以忽略的程度,也就是说本算法更可靠。另外本文对确定一个超集之后的解决方案作了讨论,并吸收了以前研究成果可借鉴的部分,使得本算法更可靠、更健壮,能应对在应用中出现的各种情况。

3 结束语

从上面分析可知,矩阵校验算法在很大程度上只能找出不一致页的范围,并不一定能精确到具体页,但在实际应用中,在校验一组页之前知道有多少个页不一致是不现实的,一定要精确地定位那些不一致的页也是没有实际意义的。本文技术的竞争力体现在算法复杂度和实现难度方面,通过简单而有效的矩阵排列,解决了分组的问题,使本技术比其他技术更可靠,不一致的概率更小。而且在确定一个结果集后,又采取了行之有效的措施,在结果集的基础上再作诊断,使诊断结果更为精确。

参考文献

[1]何新贵, 唐常杰, 李霖, 等.特种数据库技术[M].北京:科学出版社, 2000.

[2]Franklin M J, Carey M J, Livny M.Transactional Cli2ent/Server Cache Consistency:Alternatives and Per2formance[J].ACM Transactional on Database Sys2tems, 1997 (3) .

[3]Barbara D, Imielinski T.Sleepers and Workaholics:Caching St rategies in Mobile Environment s[R].In:Proceedings of ACM SIG-MOD Conference Minnesotai, 1994:1-12.

[4]Daniel.Barbara, Richard J Lipton.A Class of Random2ized St rategies for Low2Cost Comparison of File Copies[J].IEEE Trans-actions on Parallel and Dist ributedSystems, 1991, 12 (2) :160-170.

上一篇:波长路由光网络下一篇:SOD、MDA