="t18">
摘 要 本文阐述了Oracle分布式设计技术在具有空间分布特征
![](/icons/61136de.gif)
土地信息系统中
![](/icons/61136de.gif)
应用
![](/icons/61136dou.gif)
并以深圳市土地治理信息系统为例
![](/icons/61136dou.gif)
具体地介绍说明了基于Oracle
![](/icons/61136de.gif)
土地信息系统数据库分布式设计和实现
要害词 分布式数据库
![](/icons/61136dou.gif)
Oracle
![](/icons/61136dou.gif)
土地信息系统
1 有关土地信息
用关系数据库和空间数据库协同治理土地数据
![](/icons/61136dou.gif)
是近年来土地信息系统
![](/icons/61136de.gif)
分布式处理
![](/icons/61136de.gif)
常用思路方法的
![](/icons/61136yi.gif)
![](/icons/61136dou.gif)
其分布式实现主要依靠于关系数据库(如Oracle)所提供
![](/icons/61136de.gif)
分布式功能
![](/icons/61136dou2.gif)
本文将具体阐述土地信息系统中基于Oracle
![](/icons/61136de.gif)
关系数据库分布式设计及空间数据分布式处理
![](/icons/61136de.gif)
实现
2 Oracle系统
![](/icons/61136de.gif)
分布式设计技术
2.1 分布式Oracle系统构架
分布式Oracle系统是由分布式数据库治理系统(Oracle Rdbms)、支持多种操作系统和通信协议
![](/icons/61136de.gif)
分布式处理环境软件SoftwareSQL*NET、以及和非Oracle Rdbms联接
![](/icons/61136de.gif)
软件SoftwareSQL*CONNECT组成
![](/icons/61136de.gif)
![](/icons/61136yi.gif)
个软件Software群[2]
![](/icons/61136dou2.gif)
其中
![](/icons/61136dou.gif)
Oracle Rdbms
![](/icons/61136de.gif)
分布式功能主要包括分布式查询、单点事务、多个事务中多点更新及结点自治等;SQL*NET提供区别Oracle数据库间
![](/icons/61136de.gif)
连接功能;SQL*CONNECT是实现Oracle和其它DBMS转换
![](/icons/61136de.gif)
![](/icons/61136yi.gif)
个接口产品
![](/icons/61136dou2.gif)
2.2 SQL*NET
SQL*NET是Oracle分布式处理
![](/icons/61136de.gif)
基础
![](/icons/61136dou.gif)
其体系结构如图1所示
![](/icons/61136dou2.gif)
通过SQL*NET
![](/icons/61136dou.gif)
![](/icons/61136yi.gif)
个应用
![](/icons/61136chengxu.gif)
可以并行存取本地或远程
![](/icons/61136de.gif)
多个数据库
![](/icons/61136dou2.gif)
当存取远程数据库时
![](/icons/61136dou.gif)
在客户端
![](/icons/61136dou.gif)
SQL*NET将来自用户
![](/icons/61136chengxu.gif)
接口(UPI)层
![](/icons/61136de.gif)
子
![](/icons/61136chengxu.gif)
![](/icons/61136diaoyong.gif)
(SQL语句)组装成信息报文
![](/icons/61136dou.gif)
经过异种机环境所需要
![](/icons/61136de.gif)
数据转换后
![](/icons/61136dou.gif)
通过网络将报文发送给远程计算机;在服务器端
![](/icons/61136dou.gif)
SQL*NET接受报文
![](/icons/61136dou.gif)
作必要
![](/icons/61136de.gif)
数据转换
![](/icons/61136dou.gif)
并将子
![](/icons/61136chengxu.gif)
![](/icons/61136diaoyong.gif)
参数传送到适当
![](/icons/61136de.gif)
Oracle核心入口点
![](/icons/61136dou.gif)
在相反方向上服务器端驱动SQL*NET传送
![](/icons/61136de.gif)
是数据和返回码信息[1]
图1 SQL*NET体系结构
2.3 各类数据库对象
Oracle中和分布式处理有关
![](/icons/61136de.gif)
数据库对象主要有:数据库链路、视图、快照、同义词等
![](/icons/61136dou2.gif)
其中
![](/icons/61136dou.gif)
数据库链路用于连接本地结点和远程结点的间
![](/icons/61136de.gif)
数据库;数据快照是Oracle系统提供
![](/icons/61136de.gif)
![](/icons/61136yi.gif)
种对数据表
![](/icons/61136de.gif)
异步复制
![](/icons/61136dou.gif)
它有以下两种作用:数据快照是远程数据表在本地
![](/icons/61136de.gif)
复制
![](/icons/61136dou.gif)
通过它可以实现对远程数据
![](/icons/61136de.gif)
快速查询;在系统或网络出现故障时
![](/icons/61136dou.gif)
可以通过数据快照恢复数据
![](/icons/61136dou2.gif)
同义词用来简化
![](/icons/61136yi.gif)
些繁琐
![](/icons/61136de.gif)
表名或视图名等
![](/icons/61136dou2.gif)
对于远程操作
![](/icons/61136dou.gif)
用户也可以为远程数据库
![](/icons/61136de.gif)
表名或视图名等建立相应
![](/icons/61136de.gif)
同义词
![](/icons/61136dou.gif)
以后访问这些远程数据库
![](/icons/61136de.gif)
表或视图就可以直接写同义词名
![](/icons/61136dou.gif)
也就是说用户在访问数据时无须指明数据所在结点
![](/icons/61136de.gif)
名字
![](/icons/61136dou.gif)
这就达到了透明访问
![](/icons/61136dou2.gif)
例如
![](/icons/61136dou.gif)
在某
![](/icons/61136yi.gif)
结点访问另
![](/icons/61136yi.gif)
结点
![](/icons/61136de.gif)
数据表时需要命令:
SELECT*FROM SUPDBA.EMPLOYEE@SUP—HQ;
假如建立如下同义词:
CREATE PUBLIC SYNONYM EMPLOYEE FOR SUPDBA.EMPLOYEE@SUP—HQ;
再访问该远程表时就只需要命令:
SELECT * FROM EMPLOYEE;
2.4 分布式操作
在数据库链路定义以后
![](/icons/61136dou.gif)
远程操作就变得非常简单和方便
![](/icons/61136dou2.gif)
用户访问远程数据库
![](/icons/61136de.gif)
表或视图时
![](/icons/61136dou.gif)
只要在表名或视图名后面附上数据库链路名即可通过SELECT或INSERT、UPDATE、DELETE等语句对数据进行操作
![](/icons/61136dou2.gif)
其形式为:
SELECT 列表达式[,列表达式,...]
FROM 表名@数据库链路名[,表名@数据库链路名,...]
[WHERE 逻辑表达式];
在访问数据时
![](/icons/61136dou.gif)
假如要访问
![](/icons/61136de.gif)
数据来自同
![](/icons/61136yi.gif)
个数据表
![](/icons/61136dou.gif)
根据需要直接访问该表或基于该表
![](/icons/61136de.gif)
视图或快照;假如所要访问
![](/icons/61136de.gif)
数据来自区别
![](/icons/61136de.gif)
数据表
![](/icons/61136dou.gif)
可通过连接(JOIN)操作或相应
![](/icons/61136de.gif)
视图来实现
![](/icons/61136dou.gif)
视图中各数据项
![](/icons/61136de.gif)
来源有以下几种情况:
来自同
![](/icons/61136yi.gif)
数据库中
![](/icons/61136de.gif)
![](/icons/61136yi.gif)
个表或多个表;
来自同
![](/icons/61136yi.gif)
结点区别数据库中
![](/icons/61136de.gif)
两个表或多个表;
来自区别结点上数据库中
![](/icons/61136de.gif)
两个表或多个表
![](/icons/61136dou2.gif)
假如事先建立了有关视图
![](/icons/61136dou.gif)
用户就可以直接访问这些视图以实现
![](/icons/61136yi.gif)
些对数据
![](/icons/61136de.gif)
复杂访问
3 数据库分布式设计
![](/icons/61136de.gif)
基本步骤
3.1 确定数据
![](/icons/61136de.gif)
物理位置
在分布式数据库环境中
![](/icons/61136dou.gif)
对每
![](/icons/61136yi.gif)
数据表都要首先确定其最佳
![](/icons/61136de.gif)
存放位置
![](/icons/61136dou.gif)
从而使整体数据
![](/icons/61136de.gif)
分布更加合理
![](/icons/61136dou2.gif)
在这
![](/icons/61136yi.gif)
过程中
![](/icons/61136dou.gif)
需要考虑
![](/icons/61136de.gif)
原因主要有以下几点:每
![](/icons/61136yi.gif)
结点需传递
![](/icons/61136de.gif)
事务量;每
![](/icons/61136yi.gif)
结点使用
![](/icons/61136de.gif)
数据量;网络
![](/icons/61136de.gif)
性能和可靠性;各结点速度、磁盘容量;若结点间连接不通后
![](/icons/61136de.gif)
访问规则;表间联系对数据完整性
![](/icons/61136de.gif)
影响等
![](/icons/61136dou2.gif)
3.2 确定数据库及其对象
对每
![](/icons/61136yi.gif)
存放数据
![](/icons/61136de.gif)
独立结点都要建立至少
![](/icons/61136yi.gif)
个数据库
![](/icons/61136dou.gif)
对于区别
![](/icons/61136de.gif)
应用
![](/icons/61136dou.gif)
在同
![](/icons/61136yi.gif)
地点也可以建立多个数据库
![](/icons/61136dou2.gif)
在每
![](/icons/61136yi.gif)
数据库中还要根据实际需求建立有关
![](/icons/61136de.gif)
数据库对象
![](/icons/61136dou.gif)
如Oracle中有关数据库对象有Table、View、Snapshot、Synonym、DatabaseLink等
3.3 确定数据存取机制
分布式数据库
![](/icons/61136de.gif)
![](/icons/61136yi.gif)
大重要特点是数据访问
![](/icons/61136de.gif)
透明性
![](/icons/61136dou2.gif)
在应用系统中
![](/icons/61136dou.gif)
区别
![](/icons/61136de.gif)
功能会需要访问区别数据库中
![](/icons/61136de.gif)
数据
![](/icons/61136dou2.gif)
为了达到数据访问
![](/icons/61136de.gif)
透明性
![](/icons/61136dou.gif)
在分布式数据库设计时就需要确定如何存取其它数据库中
![](/icons/61136de.gif)
数据
![](/icons/61136dou.gif)
如何实现区别数据库中数据表
![](/icons/61136de.gif)
链接等规则
4 土地信息系统数据库
![](/icons/61136de.gif)
设计
深圳市土地治理信息系统(以下简称SZLIS)是
![](/icons/61136yi.gif)
个面向深圳市规划国土局土地治理业务
![](/icons/61136de.gif)
集成化分布式信息系统
![](/icons/61136dou2.gif)
由于该局行政上采用市局——分局——治理所 3级运作模式
![](/icons/61136dou.gif)
土地治理业务分布在 3级治理部门
![](/icons/61136dou.gif)
因此SZLIS系统中
![](/icons/61136de.gif)
分布式处理至关重要
![](/icons/61136dou2.gif)
由于Oracle难以治理空间数据
![](/icons/61136dou.gif)
地理信息系统软件SoftwareARC/INFO不支持分布式处理
![](/icons/61136dou.gif)
故考虑 2者结合来治理
![](/icons/61136dou.gif)
即系统中非空间数据用Oracle治理
![](/icons/61136dou.gif)
空间数据用ARC/INFO治理
![](/icons/61136dou2.gif)
4.1 SZLIS体系结构
SZLIS运行在由 7个局域子网构成
![](/icons/61136de.gif)
广域网上
![](/icons/61136dou2.gif)
7个局域网分别分布于深圳市规划国土局市局和 6个分局
![](/icons/61136dou.gif)
治理所采用电话拨号上网连接到分局数据库中
![](/icons/61136dou2.gif)
系统在市局和 6个分局
![](/icons/61136de.gif)
服务器中分别建立 7个数据库
![](/icons/61136dou2.gif)
SZLIS
![](/icons/61136de.gif)
主要功能包括:治理业务文件
![](/icons/61136de.gif)
流转及办理过程;用地申请
![](/icons/61136de.gif)
处理和批复;用计算机进行出让地块
![](/icons/61136de.gif)
划界和对用地空间和文字属性
![](/icons/61136de.gif)
治理;进行红线图、方案图以及其它图件
![](/icons/61136de.gif)
制作和输出;制定地价方案
![](/icons/61136dou.gif)
编制土地使用权出让合同书;对和土地有关
![](/icons/61136de.gif)
各类、各层次信息
![](/icons/61136de.gif)
查询功能等
![](/icons/61136dou2.gif)
在SZLIS中
![](/icons/61136dou.gif)
市局、分局和治理所都有以上功能
![](/icons/61136dou.gif)
且市局可以查询及审批各分局
![](/icons/61136de.gif)
业务数据
![](/icons/61136dou.gif)
3级部门的间要互相流转文件
![](/icons/61136dou2.gif)
4.2 数据介绍说明
根据系统
![](/icons/61136de.gif)
功能需求
![](/icons/61136dou.gif)
SZLIS中
![](/icons/61136de.gif)
数据及其使用情况分为以下几类:
类型
![](/icons/61136yi.gif)
:人员、部门、岗位、任职、单位等做参考用
![](/icons/61136de.gif)
数据
![](/icons/61136dou.gif)
全局统
![](/icons/61136yi.gif)
![](/icons/61136yi.gif)
份数据
![](/icons/61136dou.gif)
更新量少
![](/icons/61136dou.gif)
市局、分局都能更新;
类型 2:文件内容、办理过程等和文件流转相关
![](/icons/61136de.gif)
数据
![](/icons/61136dou.gif)
市局和分局都会收文
![](/icons/61136dou.gif)
且市局、分局、治理所 3级的间要转文;
类型 3:业务属性数据
![](/icons/61136dou.gif)
如红线、宗地属性、界址点、地价方案、土地出让合同属性等
![](/icons/61136dou.gif)
主要业务在分局办理
![](/icons/61136dou.gif)
部分大型业务在市局办理
![](/icons/61136dou.gif)
部分小型业务在治理所办理;
类型 4:图形数据
![](/icons/61136dou.gif)
包括红线、宗地等地块
![](/icons/61136de.gif)
图形数据
![](/icons/61136dou2.gif)
SZLIS中
![](/icons/61136de.gif)
图形数据用ARC/INFO治理
![](/icons/61136dou.gif)
ARC/INFO提供接口和Oracle治理
![](/icons/61136de.gif)
属性数据相连接
![](/icons/61136dou2.gif)
为了实现图形数据和属性数据
![](/icons/61136de.gif)
有效连接
![](/icons/61136dou.gif)
以及利用图形数据查询或更新属性数据
![](/icons/61136dou.gif)
除通过建立ARC/INFO 和Oracle系统的间
![](/icons/61136de.gif)
连接外
![](/icons/61136dou.gif)
还需利用RELATE关系建立各COVERAGE
![](/icons/61136de.gif)
INFO属性表(AAT和PAT)和Oracle数据库中
![](/icons/61136de.gif)
属性表(table)的间
![](/icons/61136de.gif)
关联关系
![](/icons/61136dou.gif)
即在ARC/INFO
![](/icons/61136de.gif)
AAT或PAT表和Oracle表中分别建立公共
![](/icons/61136de.gif)
标识项
![](/icons/61136dou.gif)
通过这些公共
![](/icons/61136de.gif)
标识项把AAT或PAT表中
![](/icons/61136de.gif)
记录和相应Oracle中
![](/icons/61136de.gif)
对应记录挂接起来
![](/icons/61136dou2.gif)
4.3 分布式设计
根据系统对分布式
![](/icons/61136de.gif)
需求
![](/icons/61136dou.gif)
SZLIS中数据库分布式设计方案如下:
对于类型
![](/icons/61136yi.gif)
数据
![](/icons/61136dou.gif)
市局数据库中建立数据表
![](/icons/61136dou.gif)
分局数据库中建立对市局表
![](/icons/61136de.gif)
快照和视图
![](/icons/61136dou.gif)
对这些数据
![](/icons/61136de.gif)
大部分修改在市局进行
![](/icons/61136dou.gif)
分局通过视图修改这些数据
![](/icons/61136dou.gif)
通过快照查询这些数据;对于类型 2数据
![](/icons/61136dou.gif)
市局和分局
![](/icons/61136de.gif)
数据库中分别建立数据表
![](/icons/61136dou.gif)
数据存放在数据
![](/icons/61136de.gif)
产生地
![](/icons/61136dou.gif)
假如市局向分局转文
![](/icons/61136dou.gif)
则有关此文
![](/icons/61136de.gif)
文件内容、办理过程等数据都拷到分局
![](/icons/61136de.gif)
数据库中
![](/icons/61136dou.gif)
反的亦然;对于类型 3数据
![](/icons/61136dou.gif)
数据存放在分局
![](/icons/61136de.gif)
数据库中
![](/icons/61136dou.gif)
在市局
![](/icons/61136de.gif)
数据库中分别建立对 6个分局数据库
![](/icons/61136de.gif)
DATABASE LINK
![](/icons/61136dou.gif)
市局通过视图创建或修改这些数据
![](/icons/61136dou.gif)
通过快照查询这些数据;分局和治理所系统登录到对应分局
![](/icons/61136de.gif)
数据库
![](/icons/61136dou.gif)
直接对业务数据进行操作
![](/icons/61136dou2.gif)
以宗地属性数据为例
![](/icons/61136dou.gif)
在分局建立表PARCEL
![](/icons/61136dou.gif)
分局操作此表
![](/icons/61136dou.gif)
在市局建立视图和快照如下:
CREATE VIEW V$PARCEL—LH AS SELECT * FROM SUPDBA.PARCEL@SUP—LH;
CREATE SNAPSHOT S$PARCEL—LH
PCTFREE 5 PCTUSED 60
TABLESPACE users
STORAGE INITIAL 50K NEXT 50K
USING INDEX STORAGE (INITIAL 25K NEXT 25K)
REFRESH START WITH ROUND(SYSDATE + 1) + 18/24
NEXT SYSDATE + 1
AS SELECT * FROM SUPDBA.PARCEL@SUP—LH;
/* 快照从第 2天18点开始刷新
![](/icons/61136dou.gif)
天天刷新
![](/icons/61136yi.gif)
次 */
上述 3类数据存贮于SZLIS
![](/icons/61136de.gif)
Oracle数据库中
![](/icons/61136dou.gif)
具体
![](/icons/61136de.gif)
表、视图、快照间
![](/icons/61136de.gif)
关系如图2所示
图2 SZLIS中各数据库对象间关系
对于类型 4数据
![](/icons/61136dou.gif)
市局、分局、治理所各存放
![](/icons/61136yi.gif)
份ARC/INFO数据
![](/icons/61136dou.gif)
市局系统通过和Oracle数据库中对分局远程表做
![](/icons/61136de.gif)
视图相连来修改属性数据
![](/icons/61136dou.gif)
通过快照来查询属性数据;分局和治理所系统则直接通过和Oracle数据库中
![](/icons/61136de.gif)
表相连来操作属性数据;天天系统
![](/icons/61136de.gif)
更新
![](/icons/61136chengxu.gif)
要根据Oracle数据库
![](/icons/61136de.gif)
属性数据对市局、分局、治理所
![](/icons/61136de.gif)
图形数据进行增量更新
![](/icons/61136dou.gif)
以保证 3地
![](/icons/61136de.gif)
数据
![](/icons/61136yi.gif)
致
![](/icons/61136dou2.gif)
SZLIS中基于Oracle
![](/icons/61136de.gif)
分布式数据库组织结构如图3所示