深入探讨GIS数据字典生产
【简介】感谢网友“阿尔吉侬的梦”参与投稿,下面是小编收集整理的深入探讨GIS数据字典生产(共8篇),仅供参考,希望能够帮助到大家。
篇1:深入探讨GIS数据字典生产
深入探讨GIS数据字典生产
本文基于笔者多年从事GIS数据制作的工作经验,以数据字典生产为研究对象,深度探讨了数据字典的作用、存储方式、内容和标准,是对数据字典生产的一个较为全面的诠释,文中的一些方法也是笔者工作实践的总结,相信本文的'研究对从事相关工作的同行有着重要的参考价值和借鉴意义.
作 者:张玉茜 作者单位:深圳市龙岗规划交通研究中心,广东深圳,518000 刊 名:科技资讯 英文刊名:SCIENCE & TECHNOLOGY INFORMATION 年,卷(期): “”(7) 分类号:P2 关键词:地理信息系统 数据字典 标准 方法篇2:地理信息系统数据字典生产研究
地理信息系统数据字典生产研究
本文以数据字典生产为研究对象,深度探讨了数据字其的概念、作用、存储方式、内客和标准,是对数据字其生产的一个较为全面的诠释,相信本文的.研究对从事相关工作的同行有着重要的参考价值和借鉴意义.
作 者:程雷 作者单位:61512部队,北京,100088 刊 名:科技资讯 英文刊名:SCIENCE & TECHNOLOGY INFORMATION 年,卷(期):2009 “”(20) 分类号:P2 关键词:地理信息系统 数据字典 标准篇3:数据字典在ArcView GIS中的实现与应用
数据字典在ArcView GIS中的实现与应用
数据字典在ArcView GIS中的实现与应用
汪新庆 李伟忠 刘刚
(中国地质大学国土资源信息系统研究所 武汉 430074)
摘 要:数据字典保存了有关数据库结构的重要信息,对于数据库系统的开发、维护有重要的意义。ArcView GIS是一款地理信息系统软件,具有对属性数据的操作功能,本文就数据字典在基于ArcView GIS的地理信息系统开发中的应用进行了探讨,通过数据字典技术管理ArcView中的图层,实现程序代码与数据模型的分离,从而提高程序的适应性。
关键词:数据字典 ArcView GIS 图层
数据字典是数据库系统中用来保存非数据信息的数据库,它承担着管理数据资源、数据标准化等功能,以其重要性被称为“数据库的数据库”[1][2]。ArcView GIS是ESRI(环境系统研究所)开发的桌面地理信息系统软件,采用了一种无拓扑关系的矢量数据格式shapefile,同时具有管理、处理属性数据表的能力[3][4]。
在“计算机辅助区域地质调查实习系统”的开发过程中,我们尝试了将数据字典技术应用到GIS图层的管理中。该系统涉及到地质观察点图层、GPS点图层、地质路线图层、地质界线图层、断层线图层、地质体图层等多类图层,而建立各类图层的关键在于建立图层的属性数据表,传统的编程开发都是将数据与代码紧紧绑在一起,这种方法的缺陷在于程序代码严重依赖数据模型,不利于系统的维护、升级,开发过程中一旦图层的`属性表的结构发生了更改,开发者将不得不更改大量的代码段。
鉴于ArcView GIS中的图层同数据库系统中的数据表存在相似性,在ArcView GIS中可以借鉴数据库系统中的数据字典来管理图层。简单地说,该数据字典主要包括以下几个数据表:
图层编号
图层说明
图层类型
图例文件
001
地质观察点图层
Point
Legend1.avl
002
地质路线图层
PolyLine
Legend2.avl
003
地质体图层
PolyGon
Legend3.avl
……
……
……
……
表1:图层信息表
字段代号
字段名称
字段类型
字段宽度
小数宽度
QDEBGA
地质点编号
CHAR
8
0
QDETYP
地质点类型
CHAR
1
0
PADTHP
地质路线编号
CHAR
6
0
……
……
……
……
……
表2:字段属性表
其中,表1是关于图层信息的数据表,主要保存系统中所存在的各图层的基本信息,其中[图层编号]字段中的值对于各个图层来说是唯一的,此编号由系统开发者编制,而非系统运行过程中随机生成。[图层类型]字段保存了各图层中空间对象的类型,[图例文件]字段中保存了缺省状态下系统为该图层配置的图例文件;表2是字段属性表,描述所有图层的属性表中包含的所有字段的信息,由于不同的图层可能包含同一字段,因此另有专门的数据表在图层与字段间建立链接。表2中各条记录(即各个字段)以”字段代号”相区别;表3表示了图层包含字段的关系。
图层编号
字段代号
001
QDEBGA
001
QDETYP
002
PATHID
篇4:简介Oracle的数据字典
首先,Oracle的字典表和视图基本上可以分为三个层次,
1.1 X$表
这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。
这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。
如果显示授权你会收到如下错误:
SQL> grant select on x$ksppi to eygle;grant select on x$ksppi to eygle*ERROR at line 1:ORA-02030: can only select from fixed tables/views
1.2 GV$和V$视图
从Oracle8开始,GV$视图开始被引入,其含义为Global V$.
除了一些特例以外,每个V$视图都有一个对应的GV$视图存在。
GV$视图的产生是为了满足OPS环境的需要,在OPS环境中,查询GV$视图返回所有实例信息,而每个V$视图基于GV$视图,增加了INST_ID列判断后建立,只包含当前连接实例信息。
注意,每个V$视图都包含类似语句:
where inst_id = USERENV(’Instance’)
用于限制返回当前实例信息。
我们从GV$FIXED_TABLE和V$FIXED_TABLE开始
SQL> select view_definition from v_$fixed_view_definition
where view_name=’V$FIXED_TABLE’;
VIEW_DEFINITION
----------------------------------------------------------
select NAME , OBJECT_ID , TYPE , TABLE_NUM from GV$FIXED_TABLE
where inst_id = USERENV(’Instance’)
这里我们看到V$FIXED_TABLE基于GV$FIXED_TABLE创建。
SQL> select view_definition from v_$fixed_view_definition
where view_name=’GV$FIXED_TABLE’;
VIEW_DEFINITION
-----------------------------------------------------------
select inst_id,kqftanam, kqftaobj, ’TABLE’, indx from x$kqfta
union all
select inst_id,kqfvinam, kqfviobj, ’VIEW’, 65537 from x$kqfvi
union all
select inst_id,kqfdtnam, kqfdtobj, ’TABLE’, 65537 from x$kqfdt
这样我们找到了GV$FIXED_TABLE视图的创建语句,该视图基于X$表创建。
1.3 GV_$,V_$视图和V$,GV$同义词
这些视图是通过catalog.ql创建,
当catalog.sql运行时:
create or replace view v_$fixed_table as select * from v$fixed_table;
create or replace public synonym v$fixed_table for v_$fixed_table;
create or replace view gv_$fixed_table as select * from gv$fixed_table;
create or replace public synonym gv$fixed_table for gv_$fixed_table;
我们注意到,第一个视图V_$和GV_$首先被创建,v_$和gv_$两个视图。
然后基于V_$视图的同义词被创建。
所以,实际上通常我们访问的V$视图,其实是指向V_$视图的同义词。
而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)。
而v$fixed_view_definition视图是我们研究Oracle对象关系的一个入口,仔细理解Oracle的数据字典机制,有助于深入了解和学习Oracle数据库知识。
1.4 再进一步
1.4.1 X$表
关于X$表,其创建信息我们也可以从数据字典中一窥究竟。
首先我们考察bootstrap$表,该表中记录了数据库启动的基本及驱动信息。
SQL> select * from bootstrap$;LINE# OBJ# SQL_TEXT-------------------------------------------------------------------1 -1 8.0.0.0.00 0 CREATE ROLLBACK SEGMENT SYSTEM STORAGE ( INITIAL 112K NEXT 1024K MINEXTENTS 1 M8 8 CREATE CLUSTER C_FILE#_BLOCK#(“TS#” NUMBER,“SEGFILE#” NUMBER,“SEGBLOCK#” NUMBER)9 9 CREATE INDEX I_FILE#_BLOCK# ON CLUSTER C_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXT14 14 CREATE TABLE SEG$(“FILE#” NUMBER NOT NULL,“BLOCK#” NUMBER NOT NULL,“TYPE#” NUMBE5 5 CREATE TABLE CLU$(“OBJ#” NUMBER NOT NULL,“DATAOBJ#” NUMBER,“TS#” NUMBER NOT NULL6 6 CREATE CLUSTER C_TS#(“TS#” NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 2557 7 CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (....
这部分信息,在数据库启动时最先被加载,跟踪数据库的启动过程,我们发现数据库启动的第一个动作就是:
create table bootstrap$ ( line# number not null, obj# number not null, sql_text varchar2(4000) not null) storage (initial 50K objno 56 extents(file 1 block 377))
这部分代码是写在Oracle应用程序中的,在内存中创建了bootstrap$以后,Oracle就可以从file 1,block 377上读取其他信息,创建重要的数据库对象。从而根据这一部分信息启动数据库,这就实现了数据库的引导,类似于操作系统的初始化。 这部分你可以参考biti_rainy的文章。
篇5:如何有效地利用oracle的数据字典
oracle的数据字典是数据库的重要组成部分之一,它随着数据库的产生而产生, 随着数据库的变化而变化, 体现为sys用户下的一些表和视图。数据字典名称是大写的英文字符。
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。我们不能手工修改数据字典里的信息。很多时候,一般的oracle用户不知道如何有效地利用它。
dictionary 全部数据字典表的名称和解释,它有一个同义词dict
dict_column 全部数据字典表里字段名称和解释
如果我们想查询跟索引有关的数据字典时,可以用下面这条sql语句:
sql>select * from dictionary where instr(comments,'index')>0;
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条sql语句:
sql>select column_name,comments from dict_columns where table_name='user_indexes';
依此类推,就可以轻松知道数据字典的详细名称和解释,不用查看oracle的其它文档资料了。
下面按类别列出一些oracle用户常用数据字典的查询使用方法。
一、用户
查看当前用户的缺省表空间
sql>select username,default_tablespace from user_users;
查看当前用户的角色
sql>select * from user_role_privs;
查看当前用户的系统权限和表级权限
sql>select * from user_sys_privs;
sql>select * from user_tab_privs;
二、表
查看用户下所有的表
sql>select * from user_tables;
查看名称包含log字符的表
sql>select object_name,object_id from user_objects where instr(object_name,'log')>0;
查看某表的创建时间
sql>select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小
sql>select sum(bytes)/(1024*1024) as “size(m)” from user_segments where segment_name=upper('&table_name');
查看放在oracle的内存区里的表
sql>select table_name,cache from user_tables where instr(cache,'y')>0;
三、索引
查看索引个数和类别
sql>select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的字段
sql>select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小
sql>select sum(bytes)/(1024*1024) as “size(m)” from user_segments where segment_name=upper('&index_name');
四、序列号
查看序列号,last_number是当前值
sql>select * from user_sequences;
五、视图
查看视图的名称
sql>select view_name from user_views;
查看创建视图的select语句
sql>select view_name,text_length from user_views;
sql>set long ;说明:可以根据视图的text_length值设定set long 的大小
sql>select text from user_views where view_name=upper('&view_name');
六、同义词
查看同义词的名称
sql>select * from user_synonyms;
七、约束条件
查看某表的约束条件
sql>select constraint_name, constraint_type,search_condition, r_constraint_name from user_constraints where table_name = upper('&table_name');
sql>select c.constraint_name,c.constraint_type,cc.column_name
from user_constraints c,user_cons_columns cc
where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')
and c.owner = cc.owner and c.constraint_name = cc.constraint_name
order by cc.position;
八、存储函数和过程
查看函数和过程的状态
sql>select object_name,status from user_objects where object_type='function';
sql>select object_name,status from user_objects where object_type='procedure';
查看函数和过程的源代码
sql>select text from all_source where owner=user and name=upper('&plsql_name');
九、触发器
查看触发器
set long 50000;
set heading off;
set pagesize 2000;
select
'create or replace trigger “' ||
trigger_name || '”' || chr(10)||
decode( substr( trigger_type, 1, 1 ),
'a', 'after', 'b', 'before', 'i', 'instead of' ) ||
chr(10) ||
triggering_event || chr(10) ||
'on “' || table_owner || '”.“' ||
table_name || '”' || chr(10) ||
decode( instr( trigger_type, 'each row' ), 0, null,
'for each row' ) || chr(10) ,
trigger_body
from user_triggers;
篇6:GIS图形数据质量检查与实现
GIS图形数据质量检查与实现
针对地理信息系统中图形数据的质量问题,分析了图形数据缺陷的.特性,描述了图形数据的质量检查方法.
作 者:叶雁玲 YE Yan-ling 作者单位:广东省地图出版社,广东,广州,510075 刊 名:测绘与空间地理信息 英文刊名:GEOMATICS & SPATIAL INFORMATION TECHNOLOGY 年,卷(期): 32(4) 分类号:P208 关键词:地理信息系统 空间数据 质量篇7:建设GIS数据超市的构想
关于建设GIS数据超市的构想
通过对GIS数据分析,从数据库建设技术出发,提出GIS数据超市的概念,对从GIS底端产品、GIS中端产品、GIS高端产品到形成GIS数据超市的构想进行详细阐述.
作 者:张瑛 ZHANG Ying 作者单位:成都市勘察测绘研究院,四川,成都,610081 刊 名:测绘通报 ISTIC PKU英文刊名:BULLETIN OF SURVEYING AND MAPPING 年,卷(期): “”(8) 分类号:P208 关键词:GIS 底端产品 中端产品 高端产品 数据超市篇8:ECDIS与GIS数据集成研究
ECDIS与GIS数据集成研究
通过ECDIS与GIS技术的集成,可以利用GIS强大的空间数据处理能力和空间分析功能,促进ECDIS的应用与推广.本文通过对S-57标准与GIS数据模型的分析,研究了在GIS平台下建立S-57数据模型的`方法,并在MapInfo平台下完成了S-57电子海图向GIS数据格式的转换,实现了ECDIS与GIS的数据集成.
作 者:李勇 包世泰 周品 谭建军 陈少沛 LI Yong BAO Shi-tai ZHOU Ping TAN Jian-jun CHEN Shao-pei 作者单位:李勇,LI Yong(中山大学生命科学学院3S实验室,广州,510275;中国科学院广州地球化学研究所地理信息中心,广州,510640)包世泰,BAO Shi-tai(华南农业大学信息学院,广州,510642)
周品,谭建军,ZHOU Ping,TAN Jian-jun(中国科学院广州地球化学研究所地理信息中心,广州,510640)
陈少沛,CHEN Shao-pei(中国科学院广州地球化学研究所地理信息中心,广州,510640;French Naval Academy Research Institute France,29240)
刊 名:测绘科学 ISTIC PKU英文刊名:SCIENCE OF SURVEYING AND MAPPING 年,卷(期):2007 32(4) 分类号:P208 关键词:电子海图显示与信息系统 地理信息系统 电子海图 S-57 数据集成