a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 133|回复: 1

[计算机四级] 2011年计算机等考四级数据库工程师复习资料(12)

[复制链接]
发表于 2012-7-31 20:48:14 | 显示全部楼层 |阅读模式
 十三、分布式ORACLE系统简介  1.分布式体系结构的ORACLE
0 R2 f( d0 U! H' Y1 v& H0 Q5 w; z  1986年,ORACLE公司推出了它的分布式体系结构的ORACLE数据库系统。该系统是由分布式数据库管理系统(ORACLE RDBMS)、支持多种操作系统和通信协议的分布式处理环境软件SQL*NET、以及与非ORACLE RDBMS联接的软件SQL*CONNECT这三部分组成的一个软件群。分布式ORACLE采用了典型的开放式体系结构,对环境的适应范围非常广泛,可适应多种通信协议、多种操作系统、多种硬件环境及多种DBMS和数据源。+ q; g1 [  E2 ]# o3 r- }
  2.网络ORACLE的连接过程* n+ l$ q+ Z- C
  网络ORACLE的连接过程大致包括以下几步:
& R$ }: u% T' _  h  (1)确认网络结点是否安装了SQL*NET,如未安装,则需执行:*$SYS@ORACLE:NCONFIG.COM≠进行安装,并且使用SGAPAD.COM重新链接。: C6 P2 p- {( i( S* Y) o
  (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:
& r0 Z6 c; e: A1 U5 w  (4)待完成以后,用户即可进行远程访问。(注意两个结点上的ORACLE系统应处于开启状态)
; v& Z% C0 m( O- H2 R8 r8 f  (5)为了加强网络通信管理和避免冲突等原因,可以通过VAX/VMS网络控制程序NCP建立一和于ORACLE网络通信的缺省帐号。
% M: u! u3 ~0 q# r' p& p  3.网络ORACLE的使用( u6 F$ G+ X0 c8 S, g7 P1 m
  除了以下实用程序以外,其它ORACLE实用程序和软件工具均可以通过SQL*NET访问远程结点的ORACLE系统IOR AJI仅供本地使用。另外,用户通过各种语言编写的应用程序也可以进行远程存取。用户远程存取的方式非常简单,仅需要在“用户名/口令”(ORACLE的合法用户)后面附上结点信息。9 N8 O6 y: @) \6 D, n& @. p: K" d
  4.分布式查询
4 ^( I( t# Q8 G, Q  分布式查询和数据传输,主要指用户在前端机上执行本地的进程通过SQL语句或SQLplus命令查询或传输远程结点上的数据。由于网络ORACLE系统的分布式查询功能很强,用户可以同时查询多个结点上的数据库数据。传输数据功能用于两个结点之间数据及定义的复制,下面将分别介绍。ORACLE系统分布式查询的功能使得一个结点上的用户可以通过SQL查询语句访问其它结点数据库的数据。并且用户还可以同时存取访问多个结点(包括本地结点)的数据,从而使数据库的查询功能大大增强。
' L9 w: w1 b# }7 I- [  (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限定词。7 R( c6 j+ W2 n/ `# o0 |
  (2)远程查询操作在数据库链路定义以后,远程查询就变得非常简单和方便。用户访问查询数据库的表或视图时,只要在表名或视图名后面附上数据库链路名即可通过SELECT语句进行查询。其形式为:SELECT列表达式[,列表达式,…] FROM表名@数据库链路名[,表名@数据库链路名,…] [WHERE逻辑表达式];$ p+ k- l+ I" h$ `( d( k
  (3)定义同义名用户可以用同义名来简化一些繁琐的表名或视图名。对于远程查询操作,用户也可以为远程数据库的表名或视图名定义相应的同义名。9 ~; u8 A; A. K2 c2 z2 b6 c
  (4)连接操作在远程查询中,用户可以连接相同(或不同)结点上数据库中的表。连接(JOIN)操作可以针对以下情况:同一数据库中的两个表或多个表;同一结点不同数据库中的两个表或多个表;不同结点上数据库中的两个表或多个表;
& n- P' h0 T" m( L9 A% g  (5)查询远程数据库中其他用户的数据用户在通过数据库链路进行远程查询时,可以访问其他用户的数据。数据库链路的定义中指定一个远程用户名及口令,这个用户名被称为链路用户名。上面所述的“其他用户”即指非链路用户。如果链路用户具有访问其他某一用户,记为用户A的权限,那么,Client用户就可以通过数据库链路查询服务器用户A中的数据。
2 Z! k% V2 m" {
9 K7 S. |2 T7 i; z  (6)远程子查询前面介绍的是基于主查询的远程访问。事实上,SQL语句中的子查询(Sub-query)也可以访问远程结点的数据库数据。这种子查询称为远程子查询。可嵌入查询的语句有:SELECT INSERT UPDATE CREATE TABLE CREATE VIEW
回复

使用道具 举报

 楼主| 发表于 2012-7-31 20:48:15 | 显示全部楼层

2011年计算机等考四级数据库工程师复习资料(12)

</p>  5.远程数据传输) G8 c' w" U5 a; A5 r8 K
  目前网络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 将传输数据替换原表中已有的数据。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-11-1 07:17 , Processed in 0.167442 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表