首页 考试吧论坛 Exam8视线 考试商城 网络课程 模拟考试 考友录 实用文档 求职招聘 论文下载 | ||
2011中考 | 2011高考 | 2012考研 | 考研培训 | 在职研 | 自学考试 | 成人高考 | 法律硕士 | MBA考试 MPA考试 | 中科院 |
||
四六级 | 职称英语 | 商务英语 | 公共英语 | 托福 | 雅思 | 专四专八 | 口译笔译 | 博思 | GRE GMAT 新概念英语 | 成人英语三级 | 申硕英语 | 攻硕英语 | 职称日语 | 日语学习 | 法语 | 德语 | 韩语 |
||
计算机等级考试 | 软件水平考试 | 职称计算机 | 微软认证 | 思科认证 | Oracle认证 | Linux认证 华为认证 | Java认证 |
||
公务员 | 报关员 | 银行从业资格 | 证券从业资格 | 期货从业资格 | 司法考试 | 法律顾问 | 导游资格 报检员 | 教师资格 | 社会工作者 | 外销员 | 国际商务师 | 跟单员 | 单证员 | 物流师 | 价格鉴证师 人力资源 | 管理咨询师考试 | 秘书资格 | 心理咨询师考试 | 出版专业资格 | 广告师职业水平 驾驶员 | 网络编辑 |
||
卫生资格 | 执业医师 | 执业药师 | 执业护士 | ||
会计从业资格考试(会计证) | 经济师 | 会计职称 | 注册会计师 | 审计师 | 注册税务师 注册资产评估师 | 高级会计师 | ACCA | 统计师 | 精算师 | 理财规划师 | 国际内审师 |
||
一级建造师 | 二级建造师 | 造价工程师 | 造价员 | 咨询工程师 | 监理工程师 | 安全工程师 质量工程师 | 物业管理师 | 招标师 | 结构工程师 | 建筑师 | 房地产估价师 | 土地估价师 | 岩土师 设备监理师 | 房地产经纪人 | 投资项目管理师 | 土地登记代理人 | 环境影响评价师 | 环保工程师 城市规划师 | 公路监理师 | 公路造价师 | 安全评价师 | 电气工程师 | 注册测绘师 | 注册计量师 |
||
缤纷校园 | 实用文档 | 英语学习 | 作文大全 | 求职招聘 | 论文下载 | 访谈 | 游戏 |
十二、分布式数据库
1.分布式数据库的分类
分布式数据库,是根据它的管理系统(Distributed DBMS-DDBMS)进行分类的。对DDBMS可以从四个不同角度来分类:
(1)从构成的方式,可分为同构型和异构型两类所谓同构型,是指所有节点的局部DBMS都支持同一数据模式和数据语言。为使每个节点都掌握彼此的数据情况,需要增加网络数据库管理系统(NDBMS),各节点之间通过通信网络形成统一的整体。同构型的DDBMS对于并发控制、冗余数据的一致性等问题容易处理,但建库的代价比较大。所谓异构型系统,是指在分布环境中各节点上的数据模型和数据语言都可能不同。异构比同构型系统实现起来要困难一些,为了在两个节点上的局部DBMS之间进行信息交换,就要对数据模式和数据语言进行转换和映射工作。
(2)按控制方式,可以分为集中式与分布式所谓集中控制的DDBM指所有事务都由一台叫做中心计算机的节点进行管理。分布控制的DDBMS,是指每个节点都保持DDBMS的一个副本来监督和管理各节点及系统事务,它将网络目录作为用户数据库存放于局部DB之中。
(3)从数据分布的角度,DDBMS又可分为分割式、部分重复式和完全重复式所谓分割式,是指每个节点只存储DDB数据实体的部分子集,各节点的副本互不重叠。部分重复式,是指每个节点都存储DDB数据实体的任意子集。完全重复式,是指每个节点都存储整个DDB数据实体的副本。也有文献把完全重复式称为复制式。(4)从用户的角度,DDBM可分为总体型和多重型。
2.分布式数据库与单一数据库的比较
(1)集中控制 在一个企业或单位范围内的信息资源上,对信息提供集中式控制的可能性,被认为是采用数据库技术的最大动力之一,因为集中式数据库是根据信息系统的演变和集中处理信息的需求开发出来的。
(2)数据独立性 数据独立性也曾经被认为是采用数据库方法的主要动力之一。实际上,数据独立性意味着数据的实际结构对应用程序来讲是透明的,应用程序员只需要利用数据逻辑结构,即所谓概念模式来编写程序。数据独立性的主要优点是应用不受数据存储的物理结构变化的影响。在分布式数据库中,数据的独立性具有与传统的集中式数据同等的重要性,然而,一种崭新概念加进了数据独立性的一般概念之中,这就是分布式透明性。所谓分布式透明性,指的是在编写程序时就好象数据没有被分布一样。这样,无论把数据存储到甲地或乙地,或者把数据从一个节点移到另一个节点,都不会影响程序执行的正确性和有效性,但是,必须指出,执行速度或者效率却受到了影响。众所周知,通过具有不同形式的数据描述和它们之间的映射的多层体系结构,曾为传统的数据库提供了独立性,为此目的,开发出了概念模式、存储模式和外部模式等概念。利用类似的方法,我们可以通过采用新层次和新模式,在分布式数据库中可获得分布式透明性。分布式透明性是分布式数据库系统的主要目标之一。
(3)降低冗余 在传统数据库系统中,尽可能地降低冗余度是它的主要目标之一。这有两个原因:首先,通过只用一个正本,可以自动地避免同一逻辑数据中几个副本之间的不一致性。其次,用降低冗余度来节约存储空间。通过共享数据的方式,即通过允许几个应用访问同一文件和记录可以达到降低冗余度的目的。但是,在分布式数据库中,把数据的冗余看成是所需要的特性。这有几个原因:首先,如果在需要冗余的所有节点都复制数据,则可以增加应用的局部性。其次,可以增加分布式数据库系统的有效性和可靠性。因为,如果复制数据,则一个节点上的故障不会停止其它节点上应用的执行。在一般情况下,为传统集中式环境所规定的克服冗余的原因,在分布式环境中仍是有效的。因此,在分布式数据库中,对冗余度的评价要选择一种折衷方案,不能一概而论。一般地说,复制数据项的方便程度是随着应用所执行的检索访问与更新访问的比率提高而增加。数据复制便利程度的提高,是因为具有一个项目多个副本,检索可以在任一副本上进行,而更新却必须在所有副本上一致地进行。
(4)有效访问 复杂的访问结构,如辅助索引,文件间的链接等,都是传统数据库所采用的重要技术,对这些结构的支持是数据库管理系统DBMS极为重要的组成部分。提供复杂访问结构的原因,是为了提高存取数据的效率。
(5)完整性、恢复和并发控制 在数据库理论中,尽管完整性、恢复和并发控制等所涉及的问题是不同的,但它们之间相互联系还是很多的,一般来说,完整性、恢复和并发控制等问题的解决,在很大程度上取决于所提供的事务的结构形式。
(6)保密性和安全性 在传统数据库中,具有集中式控制的数据库管理员能保证只执行那些授权的数据访问。但应当指出,集中式数据库本身比过去处理单独文件的旧方法更难于实现数据的保密性和安全性。在分布式数据库中,局部数据库管理员面临的一些主要问题,与传统数据库管理员面临的问题一样。但是,分布式数据库的两个独特方面值得一提:首先,在具有极高度节点自主权的分布式数据库中,局部数据的拥有者认为比较安全,因为他们能自主地实施自己的安全措施,以履行集中式数据库管理员的职责。其次,安全性问题,一般是分布式系统的固有问题,因分布式系统是通过通信网络来实现分布式控制的,而通信网络本身就在保护数据的安全性和保密性方面存在着弱点。通过网络偷看、乱改别人的数据难以完全避免。
3.分布式数据库管理系统(DDBMS)
在目前分析DDBMS的性能时,应该把商品化系统和先进的研究样机区分开来,但是可以预料,某些先进的研究样机中试验的特性,可能会应用到将来的商品化系统中去的。本节简要叙述分布式数据库管理系统的基本性能,并就用什么样的方法使得分布式数据库这个新技术商品化的问题谈一点看法。从目前看,世界上几各已经商品化的分布式系统是由集中式数据库管理系统的销售厂商开发出来的。这些分布式数据库管理系统,包括扩充集中式DBMS时所附加的部件。分布式功能的扩充是通过装配在计算机网络中不同节点上的DBMS之间所提供的通信和合作来实现的。在这种情况下建立分布式数据库通常所必须的软件部分是:
(1)数据库管理部分(DB);
(2)数据通信部分(DC);
(3)数据字典(DD),它能用来表示有关网络中数据分布的信息;
(4)分布式数据库部分(DDB)。
十三、分布式ORACLE系统简介
1.分布式体系结构的ORACLE
1986年,ORACLE公司推出了它的分布式体系结构的ORACLE数据库系统。该系统是由分布式数据库管理系统(ORACLE RDBMS)、支持多种操作系统和通信协议的分布式处理环境软件SQL*NET、以及与非ORACLE RDBMS联接的软件SQL*CONNECT这三部分组成的一个软件群。分布式ORACLE采用了典型的开放式体系结构,对环境的适应范围非常广泛,可适应多种通信协议、多种操作系统、多种硬件环境及多种DBMS和数据源。
2.网络ORACLE的连接过程
网络ORACLE的连接过程大致包括以下几步:
(1)确认网络结点是否安装了SQL*NET,如未安装,则需执行:*$SYS@ORACLE:NCONFIG.COM≠进行安装,并且使用SGAPAD.COM重新链接。
(2)确认安装中选取的网络驱动器与操作系统环境下所配置的通信协议是否相符。
(3)待(1)、(2)两项均确认后,则可在服务器(Server)结点上建立一个命令文件。这个命令文件主要完成以下工作:指定ORACLE系统标识码SID,从而确定将哪一个ORACLE RDBMS作为服务器。这是因为同机上可运行多个ORACLE RDBMS,指定方式为:$ASSIGN〈SID标识码〉ORACLE$SID指定ORACLE系统所在目录:$ASSIGN〈目录名〉SYS$ORACLE指定SQL*NET执行代码的逻辑名$ORASRV=SYS$ORACLE:ORASRV.EXE启动SQL*NET的执行代码$ORASRV DECNET-NSP:
(4)待完成以后,用户即可进行远程访问。(注意两个结点上的ORACLE系统应处于开启状态)
(5)为了加强网络通信管理和避免冲突等原因,可以通过VAX/VMS网络控制程序NCP建立一和于ORACLE网络通信的缺省帐号。
3.网络ORACLE的使用
除了以下实用程序以外,其它ORACLE实用程序和软件工具均可以通过SQL*NET访问远程结点的ORACLE系统IOR AJI仅供本地使用。另外,用户通过各种语言编写的应用程序也可以进行远程存取。用户远程存取的方式非常简单,仅需要在“用户名/口令”(ORACLE的合法用户)后面附上结点信息。
4.分布式查询
分布式查询和数据传输,主要指用户在前端机上执行本地的进程通过SQL语句或SQLplus命令查询或传输远程结点上的数据。由于网络ORACLE系统的分布式查询功能很强,用户可以同时查询多个结点上的数据库数据。传输数据功能用于两个结点之间数据及定义的复制,下面将分别介绍。ORACLE系统分布式查询的功能使得一个结点上的用户可以通过SQL查询语句访问其它结点数据库的数据。并且用户还可以同时存取访问多个结点(包括本地结点)的数据,从而使数据库的查询功能大大增强。
(1)数据库链路(DATABASE LINK)为了使分布式查询操作更加简单方便,ORACLE RDBMS为用户提供了一个新的数据定义方式:数据库链路。用户可以通过数据库链路定义,在本地结点和远程之间进行查询和连接。进行远程访问的用户需要明确:远程数据库所在的结点;远程结点上的哪个数据库;远程数据库的哪个用户。数据库链路即用于标识以上内容。用户通过SQL的CREATE DATABASE LINK语句定义数据库链路。其格式为:CREATE[PUBLIC]DATABASE LINK链路名CONNECT TO用户名INENTIFIED BY口令USING‘驱动器前缀:结点名““操作系统用户名口令”””::“““TASK=ORDN后缀.COM”””;如果用户事先定义一个逻辑名:$ASSIGN结点名,“““操作系统用户名口令”””::“““TASK=ORDN后缀.COM”””,逻辑名那么CREATE DATABASE LINK就变得十分简洁:CREATE[PUBLIC]DATABASE LINK链路名CONNECT TO用户名IDENTIFIED BY口令USING‘驱动器前缀:逻辑名’;这里PUBLIC代表公用数据库链路,只有DBA才能使用PUBLIC限定词。
(2)远程查询操作在数据库链路定义以后,远程查询就变得非常简单和方便。用户访问查询数据库的表或视图时,只要在表名或视图名后面附上数据库链路名即可通过SELECT语句进行查询。其形式为:SELECT列表达式[,列表达式,…] FROM表名@数据库链路名[,表名@数据库链路名,…] [WHERE逻辑表达式];
(3)定义同义名用户可以用同义名来简化一些繁琐的表名或视图名。对于远程查询操作,用户也可以为远程数据库的表名或视图名定义相应的同义名。
(4)连接操作在远程查询中,用户可以连接相同(或不同)结点上数据库中的表。连接(JOIN)操作可以针对以下情况:同一数据库中的两个表或多个表;同一结点不同数据库中的两个表或多个表;不同结点上数据库中的两个表或多个表;
(5)查询远程数据库中其他用户的数据用户在通过数据库链路进行远程查询时,可以访问其他用户的数据。数据库链路的定义中指定一个远程用户名及口令,这个用户名被称为链路用户名。上面所述的“其他用户”即指非链路用户。如果链路用户具有访问其他某一用户,记为用户A的权限,那么,Client用户就可以通过数据库链路查询服务器用户A中的数据。
(6)远程子查询前面介绍的是基于主查询的远程访问。事实上,SQL语句中的子查询(Sub-query)也可以访问远程结点的数据库数据。这种子查询称为远程子查询。可嵌入查询的语句有:SELECT INSERT UPDATE CREATE TABLE CREATE VIEW
5.远程数据传输
目前网络ORACLE系统尚不能通过INSERT,UPDATE语句更新远程结点的数据库数据。但是ORACLE提供结点之间传输数据库数据的能力。SQL/plus的COPY命令将用于实现这一功能。用户使用COPY命令可以进行从一个结点(称为源结点)到另一结点(称为目标结点)之间的数据传输或复制。使用COPY命令与数据库链路的定义类似,需要反映定结点名、数据库(即命令文件和“用户名/口令”。其中源描述和目标描述分别用于指示源结点目标结点上的结点名、数据库(即命令文件)和“用户名/口令”,下面是COPY命令的基本形式:COPY[FROM源名][TO目标名] {APPEND|CREATE|INSERT|REPLACE} 表名[(列名[,列名…])] USING SELECT语句其中源名和目标名分别用于指定源结点和目标结点上的结点名、数据库和“用户名/口令”,如:用户名/口令@驱动器前缀:结点名“““用户名口令”””::“““TASK=ORDN后缀.COM”””;如果事先分配了逻辑名,则源描述和目标描述会变得更简洁一些。如果源结点为本地,则COPY命令可略去FROM子句。如果目标结点为本地,则可除去TO子句。COPY命令将传送数据到目标数据库指定表。具体传输的数据是子查询的结果。其中APPEND、CREATE、INSERT和REPLACE限定词用于指定传输的方式:APPEND 将传输的数据加在指定表中。如果该表不存在,则先建表,再加入;INSERT 将传输的数据加在指定的表中。如果该表不存在,则先建表,再加入数据;CREATE 建立指定的表,并加入数据,如果该表存在,则出错;REPLACE 将传输数据替换原表中已有的数据。
希望与更多计算机等级考试的网友交流,请进入计算机等级考试论坛
更多信息请访问:考试吧计算机等级考试栏目
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |