挺好的一篇论 文 http://wenku.baidu.com/view/8e40a17c1711cc7931b7165e.html

文章就重点应用型地理信息系统的设计内容、设计过程、相关实现技术与方法作了综述, 并详细给出了设计中属性数据库、空间数据库的一般功能组织结构, 最后介绍了一种属性数据与空间数据的关联方法。

设计实施过程从需求分析,系统总体设计(系统组网设计,硬件配置,软件设计,编码设计,人机对话设计),GIS功能设计(总体模块功能设计、属性数据库管理系统结构与功能设计、图形数据库管理系统结构与功能设计),数据库详细设计(数据库的概念设计、逻辑设计、物理设计和数据模型选择),应用模型和方法设计分析(常用应用模型设计、方法设计),输入输出设计(输入输出数据形式)。其中数据库详细设计方面感觉写的很好很详细,引用一下,学习学习。

空间信息处理系统的设计重点是数据库的设计, 数据库设计就是把现实中一定范围内存在着的应用处理和数据抽象成一个数据库的具体结构的过程 GIS 数据库的设计比一般数据库设计要考虑得更多 由于地理数据由矢量和珊格之分, 又具有属性和空间的、甚至时间的特征, 因此需考虑不同的结构来表达 从满足用户要求、具有良好的数据库性能、在现实中模拟的精确程度、基于某一个数据库管理系统确定好数据库设计的目标, 有以下几个步骤:

1.数据库概念设计 数据库概念设计是数据库设计的第一步, 概念设计是现实世界与机器世界的中介, 一方面能充分反映现实世界实体与实体之间的关系, 同时又易于向关系、网状、层次等各种数据模型转换, 是现实世界的一个真实模型 一般采取自顶向下、自底向上、逐步扩张、混合策略等几种方法,以E- R模型为工具来描述概念结构 确定分 E- R 图, 确定数据库实体类型、地理实体属性范围以及实体间的基本关系。

2.数据库逻辑设计 数据库逻辑设计是整个数据库设计的基础, 其目的是规划整个数据库的框架, 回答数据库能做什么的问题, 其任务是用数据库管理系统提供的工具和环境对现实世界的抽象得到的概念模型转化成相应的数据库管理系统的模型, 用逻辑数据结构来表达概念模型中所提出的各种信息结构问题, 并用数据描述语言描述出来 一般应考虑: 数据共享、采集、存储、使用、维护成本等方面应达到最大效率, 最大程度地减少数据冗余,保证数据质量,包括空间数据逻辑设计和属性数据逻辑设计。

①空间数据逻辑设计一般首先进行空间数据逻辑划分, 由于 G IS 系统数据量大、结构复杂, 设计时根据不同的子系统应将数据库划分为不同的子库, 首先按数据的空间分布及考虑磁盘容量、查询分析效率、数据库维护等几方面将数据划分为规则或不规则的块, 通过建立图幅总索引表、空间实体索引表、基本单元索引表在图幅、空间实体和空间基本单元之间建立链接关系, 保证空间数据库的无缝链接和有效空间查询, 然后进行图层信息组织, 将图块中不同类、不同级的图元要素进行分层存放, 每一层存放一种专题或一类信息 按照用户的要求或标准将相关图元要素组合在一起构成表示地理特征及描述这些特征的逻辑意义上的图层, 确定空间数据库管理部分的子系统组织结构。

空间数据逻辑数据结构设计: GIS 中逻辑空间结构主要有栅格结构及矢量结构 栅格结构以规则阵列表示地理空间现象的分布, 地理实体的空间位置隐含其中, 标识的地表是不连续的, 是量化和近似数据, 数据冗余量大、精度低, 但图像图形操作容易实现、空间分析模型容易实现, 易与遥感数据相结合矢量结构以坐标的方式来表示点、线、面等地理实体, 量算与制图精度高数据冗余少 一般设计时可结合两种结构的优点来进行空间数据的逻辑结构设计.

②属性数据逻辑设计 将概念结构转化为一般的关系、网状、层次模型; 将转换来的关系、网状、层次模型向特定的 DBMS 支持下的数据模型转换; 最后对数据模型进行优化 主要完成属性表与属性关系的设计, E- R 图向数据模型的转换, 确定属性数据库管理部分的组织结构

3.数据库物理设计 数据库物理设计的任务是使数据库的逻辑结构能在实际的物理存储设备上得以实现, 主要解决存储空间分配、数据的物理表示、确定存储结构。

4.空间数据与非空间数据连接  空间数据指目标的位置信息数据、拓扑关系等, 属性数据是指与空间位置没有直接关系的代表特定地理意义的数据, 既可以独立于专题地图的信息, 也可以是与专题地图相关的数据 属性数据库设计指属性数据文件设计、属性数据库结构设计、属性数据管理系统设计和软件设计, 有几种形式的设计, 一种是将属性数据和空间图像数据组合在同一个文件的记录中, 这种方式既不灵活, 又造成很大的冗余; 另一种是将属性数据以单独的数据文件方式与图形数据文件并存于文件系统, 其优点是对某些个体应用比较简单, 且容易操作, 但局限性很大, 结构不灵活, 难以实现数据共享 因此属性数据库设计时应当和图形数据库设计综合考虑, 目前较为流行的设计是面向对象的设计方法和混合数据结构设计 一个大的空间数据库通常将空间数据与属性数据分别存储, 空间数据用各种 GIS 软件提供的数据模型存储, 属性数据则用 RDBMS 存储, 两者通过关键项或通过指针链接。

应用型GIS 地理信息系统设计内容和方法的更多相关文章

  1. linux几种快速清空文件内容的方法

    linux几种快速清空文件内容的方法 几种快速清空文件内容的方法: $ : > filename #其中的 : 是一个占位符, 不产生任何输出. $ > filename $ echo & ...

  2. JavaScript动态改变表格单元格内容的方法

    本文实例讲述了JavaScript动态改变表格单元格内容的方法.分享给大家供大家参考.具体如下: JavaScript动态改变表格单元格的内容,下面的代码通过修改单元格的innerHTML来修改单元格 ...

  3. css之隐藏内容的方法

    css隐藏内容的方法有三种:即display:none.visibility:hidden.overflow:hidden. 1.display:none;的缺陷: 搜索引擎可能认为被隐藏的文字属于垃 ...

  4. PHP中获取某个网页或文件内容的方法

    1. 通过file_get_contents()函数$contents = file_get_contents('http://demo.com/index.php');echo $contents; ...

  5. 深入学习Python解析并解密PDF文件内容的方法

    前面学习了解析PDF文档,并写入文档的知识,那篇文章的名字为深入学习Python解析并读取PDF文件内容的方法. 链接如下:https://www.cnblogs.com/wj-1314/p/9429 ...

  6. 深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  7. appium获取Toast内容的方法

    做自动化测试的时候,可能需要根据弹出的Toast提示来做下一步判断.这里记录一下获取Toast内容的方法,同时巩固一下显示等待的方法之一WebDriverWait. from selenium.web ...

  8. php mysqli query 查询数据库后读取内容的方法

    php mysqli query 查询数据库后读取内容的方法 <?php$mysqli = new mysqli("localhost", "my_user&quo ...

  9. div+css隐藏内容样式方法

    div css隐藏内容样式方法     div+css隐藏内容方法 一般情况下,css隐藏的用途,如下: 1.对文本的隐藏 2.隐藏超链接(另类黑链) 3.对统计代码隐藏 4.隐藏超出图片 5.css ...

随机推荐

  1. 对Kernel panic-not syncing:No init found...init=option to kernel错误总结!

    转载:http://blog.csdn.net/wavemcu/article/details/6950053 在移植Linux中很容易出现这样那样的问题,我也遇到过,现在就共享下人家的一些经验和自己 ...

  2. solr返回的字段带有中括号问题

    在solr返回的结果集的content字段返回格式为: "content": ["测试content" ], 经过对比title 和content字段,发现co ...

  3. ListView的addAll方法

    add是将传入的参数作为当前List中的一个Item存储,即使你传入一个List也只会另当前的List增加1个元素addAll是传入一个List,将此List中的所有元素加入到当前List中,也就是当 ...

  4. XACML-条件评估(Condition evaluation),规则评估(Rule evaluation),策略评估(Policy evaluation),策略集评估(PolicySet evaluation)

    本文由@呆代待殆原创,转载请注明出处. 一.条件评估(Condition evaluation) <Condition>元素缺失时或评估结果为真时,条件值为True. <Condit ...

  5. iOS中的加密方式 与 文件解压缩

    1.Base64加密方式 Base64是一种加密方法,可逆的加密. Base64中的可打印字符包括字母A-Z.a-z.数字0-9,这样共有62个字符./ + 填充 = echo -n BC|base6 ...

  6. android studio1.3安装终于成功

    本人机器是win7 32位旗舰版,4G内存.以前使用eclipse adt bundle开发Android程序感觉非常方便,但随着google对andriod studio支持力度加大,转向studi ...

  7. 【原创】C++链表如何像Python List一样支持多种数据类型

    用过Python的码友都知道,Python中List支持多种数据类型,如下面代码所示链表li内的数据类型可以是整数,同时也可以是字符串,当然也可以是其他数据类型. 1: >>> li ...

  8. Oracle基础 动态SQL语句

    一.静态SQL和动态SQL的概念. 1.静态SQL 静态SQL是我们常用的使用SQL语句的方式,就是编写PL/SQL时,SQL语句已经编写好了.因为静态SQL是在编写程序时就确定了,我们只能使用SQL ...

  9. Java Script基础(十一) 表单验证

    一.表单验证的必要性: 表单验证在客户端和服务器端,客户端验证实际是直接调用JavaScript脚本对用户输入的数据进行验证:而服务器也同样可以实现数据验证,但是当服务器压力过大时,资源损耗会比较严重 ...

  10. Java为什么只能单继承?

    就是因为C++里多重继承功能强大但是容易出错,Java才给取消掉了.如果,A和B都继承于C,再写个D继承A和B.那么C里面有个方法,A和B继承过去后都进行了覆盖,那么D到底是该继承A里面的版本呢还是B ...