地理空间数据库(Geodatabase)结构(翻译)

用户通常将地理空间数据库(geodatabase)当作他们存储地理空间信息的物理存储方式,通常是使用数据库或者是文件系统。另外作为一个数据集集合的物理实例,每一个地理空间数据库有一些额外的关键方面:

  • 地理空间数据库拥有广泛的描述和管理空间信息的信息模型。这种广泛的信息模型以一系列装载要素类的简单数据表、栅格数据集和属性表。另外,先进的GIS数据对象添加GIS管理空间完整性的行为,规则和与矢量要素、栅格、和属性这些空间关系一起工作的工具。
  • 地理空间数据库软件逻辑提供通用的应用逻辑通过使用ArcGIS以允许并在许多方面以各种形式操作空间数据。这里当然包括支持地理空间数据库。同时也包括支持shapefiles、CAD文件、TIN文件、网格、CAD数据、影像和多种其他形式的GIS数据资源。
  • 地理空间数据库拥有事务处理模型,可以管理GIS数据工作流。

地理空间数据库的每一个方面都将在下面的主题中详细描述。

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Architecture_of_a_geodatabase

地理空间数据库(Geodatabase)存储基于关系原则(翻译)

用户往往认为数据库是开放的,因为其固有的简单性和弹性的关系型数据模型,允许其支持广泛的应用。

地理空间数据库存储模型是建立在数据库基础上的,利用一系列简单甚至基本的关系型数据库概念。数据库(或者是文件地理空间数据库(file geodatabase)所用的文件系统)提供一个简单的,正式的数据模型以便在表格中存储和操作信息。

包含以下关键概念:

数据是在表格中被组织的。

表格是以行为单位的。

表格中所有的行都有相同数目的列。

每一列都只有一种类型,如数字,浮点数,字符,时间等。

关系被用来联系不同表之间的行。每一个有关系的表中都有一个通用的列。

表格必须符合关系完整性原则。例如,每一行通常有相同的列,每一列都有取值范围等。

对于ArcSDE geodatabase来说,是存储在关系型数据库中的,一些额外的数据库能力也适用:

SQL,一系列的函数和存储过程,可以操作表和他们的数据单元。

SQL存储过程被设计用来操作关系型数据类型,如整型,浮点型,date型和字符型等。

例如,一个要素类被存储为一个数据库的表。每一行代表一个要素。行中的每一列代表要素的各种特性和属性,其中一列存储着要素的几何属性(如点,线,面的坐标)。在上面的例子中,形状字段在要素类的表中每一个行块数据中存储着每个多边形形状。

在数据库中有好几种不同的类型来存储形状。代表性的有BLOB数据库或者是在一些数据库中支持的扩展的空间数据类型。例如,ESRI支持一种空间数据类型用来在Oracle,IBM DB2或是IBM Informix中存储的ArcSDE geodatabases使用的数据类型。

SQL在行、列或是表之间操作。列的数据类型(整型、字符型、date、BLOB、空间类型等)是SQL代数中的对象。数据库管理这些简单数据类型和表,同时管理更加复杂的对象行为和完整性约束等额外的应用逻辑。

在关系型数据库中执行更高级别的对象和行为

程序员希望编写应用程序代码来执行更高级别的对象和行为逻辑。例如一个组织会有如下一个称作EMPLOYEES的表:

上面的表格是一个包含了行和列的简单关系型数据表。每一列的数据遵循一个特定的数据类型,例如字符、date、或是数字。数据库依照信息的类型进行工作。

然而,简单的添加这些信息到数据库的表中不会将数据库变成一个工资管理系统或是员工管理系统。添加一个叫做"Dollars"的列不会将数据库编程一个会计系统。我们需要更高级别的应用逻辑。

这里有一个逻辑的例子,员工系统需要支持员工雇佣、涨工资、员工注册、员工晋级和工资管理等一系列的功能。要对员工和他们的名字、薪水乳汁时间等一系列的商业对象进行建模,这些模型不仅仅是一种关系模型。执行这些商业模型的行为和保证其完整性需要更加精细和有针对性的应用逻辑。

同样的模型也适用于GIS数据。例如,拓扑、网络、线性参考系、光栅目录、标注、地形、地图图层和一些更加复杂的对象去执行GIS的行为在数据库中存储的简单空间模型的基础之上。

在其他的数据库应用中,表格中的地理空间数据类型不足以支撑GIS的应用。所有这些对象(无路数据库简单的关系类型还是相拓扑这样的地理空间数据库应用对象)都需要建立GIS系统。

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Geodatabase_storage_is_based_on_relational_principles

应用逻辑应该被归入哪里(翻译)

存在着各种替代的方案。用户可以将他们的高级别的逻辑以多种方式实现。例如可以以如下的方式执行逻辑:

  • 数据库中的存储过程和触发器
  • 数据库中的扩展类型
  • 一个运行在独立应用层上的表中的行和列类型

无数的数据库管理系统在过去二十年已经证明绝大多数实现了应用层使用的是先进的应用程序。例如,被广泛应用的用户信息系统(CIS),ERP系统,和在应用层上执行高级应用逻辑的应用框架,都是更加开源和可扩展的,高性能的,提供丰富的工具的和更加灵活的。

用户通过大量的成熟的操作和事务逻辑来与系统进行交互和事务操作,并且使用SQL作为操作的焦点。

从数据层将应用逻辑分离开来将相同的逻辑应用于数据库、文件、XML和其他一些数据存储方案。这使得结构更加开放。例如在ArcGIS中的地理空间数据库应用逻辑可以在所有的地理空间数据源中被读取和使用——CAD数据、shapefile文件、MapInfo数据、Inergraph GeoMedia文件和其他一些数据源中。

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Where_does_the_application_logic_belong ?

地理空间数据库(Geodatabase)是面向对象的(翻译)

地理空间数据库在数据存储层之上的应用层上使用了多层次应用结构来处理更加复杂的逻辑和行为(通过数据库、文件或XML文件)。地理空间数据库应用逻辑可以支持一系列的普通GIS数据对象和行为,如要素类、栅格数据集、拓扑、网络结构、地址编码和一些其他的数据对象。

这种多层结构地理空间数据库结构通常是建立在面向对象模型上的。

管理地理空间数据集的责任被ArcGIS软件和普通数据库管理系统分担了。空间数据集管理的核心方面,如磁盘存储,属性类型定义,联合查询,多用户事务处理等都被交付给数据库处理。GIS应用保留了定义特定的数据库框架的权利,用作表现多种空间数据集并且定义特殊的域逻辑,这保持了基本记录的完整性和实用性。

事实上,数据库管理系统仅仅是保持空间数据集的多种应用机制中的一种。并且,数据库没有完整的定义空间数据的语义。这通常被认为是一个多层次的结构(应用层和存储层),这种情况与数据存储层在关系型数据库中数据存储和查询检索都放在简单表正好联系了起来,而高级别的数据完整性和信息操作函数在专业的软件和应用中被执行(如ArcGIS中)。

地理空间数据库在其他先进数据库应用中往往也是被定义为多层次应用结构。地理空间数据库对象在数据库表中存储但是特性和行为通过地理空间数据库应用逻辑被支持。

所有的ArcGIS应用都和普通的地理空间数据库的GIS对象模型进行交互,而不是与基于SQL语言的数据库实例交互。地理空间数据库软件模块通过通用模型执行行为和完整性原则,并且通过恰当的物理数据集设计思路处理数据响应。ArcSDE软件是ArcGIS与数据库交互的一个手段。

从存储层分离出来的地理空间数据库逻辑可以支持大量的文件类型、数据库类型和XML文件类型。例如,ArcGIS提供一个数据互操作的扩展操作,这是一个令人兴奋的技能,它可以操作几乎所有的功能和格式的表格。这个扩展支持了一个使用地理空间数据库逻辑读取和操作多种数据格式的扩展接口。

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=The_geodatabase_is_object-relational

存储在关系型数据库中的地理空间数据库(Geodatabase)(翻译)

所有的地理空间数据库的内核(不算特殊的)是一个基于标准数据库表的标准关系型数据库框架(一系列的标准数据库表,列类型,索引和其他一些东西)。这种简单的物理存储方式工作并且被约束在一系列的应用层面上的高级别应用对象,这些对象可以是ArcGIS Desktop,嵌入式ArcGIS Engine逻辑或者是ArcGIS Server。

每种对包含了定义了一种GIS信息模型的地理空间数据库对象,这些对象被ArcGIS应用和用户所共享。这些地理空间数据库对象的目的是为了对客户端显示一种高等级的GIS信息模型并且在所有恰当的存储模型中持有这种信息模型,例如,在标准数据库中,在file geodatabase中,或者则是在XML流中。

地理空间数据库存储包括在空间数据集中的结构和规范加上简单的、表格式的空间和属性数据的存储。

地理空间数据库框架包括定义、完整性规则和每一个地理空间数据集的行为。这些包括要素类的属性、拓扑、网络、栅格目录、关系、领域以及其他一些。框架持有存储在数据库中的地理空间数据的元数据的表的集合,并且这些元数据定义了完整性规则和空间信息的行为。

空间表现通常存储在表格属性中,以要素及的形式或是栅格数据集的形式。例如,一个数据库表可以被用来存储一个要素类,其中每一行代表一个要素。一列存储几何形状的列中的每一个单元格被用来存储一个集合或者形状的要素。通常以两种类型来存储集合要素:

  • BLOB块的形式
  • 空间数据的形式,如果数据库支持

一个公共要素的同属性集合,每一个都有相同的空间表现,例如点、线或多边形,或是一个通用的属性集,被列入到一个要素类中并且在同一张表中管理。

栅格和影像数据类型也被存储和管理在关系型表中。栅格数据通常非常巨大并且需要并且需要一系列表来存储。栅格数据被切分成小块儿或是数据块,然后被存储在分块表中的单独的一行中。

列的类型支持一系列的栅格集合类型从一个数据库到另一个数据库。当数据库支持空间类型扩展的时候,空间数据库可以实际的使用他们来存储空间集合数据。ESRI紧密参与了SQL语言在空间上的扩展,是SQL 3 MM Spatial和OGC Simple Features SQL规范的主要编写者。ESRI在支持这些类型上十分关注,并且在Oracle Spatial类型上,和使用标准数据库存储空间数据库上都花费了大量精力。

目前,ArcGIS使用的空间数据库支持三种数据库包含的空间类型:

  • Oralce使用ESRI空间类型或者Oralce Spatial类型
  • IBM DB2数据库使用Spatial Extender Geometry Object
  • Informix数据库使用Spatial DataBlade Geometry Object

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Geodatabase_storage_in_relational_databases

空间数据库事务管理(翻译)

 

原文地址:http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Geodatabase_transaction_management

posted @ 2012-12-16 14:50  沉默的池塘  阅读(1202)  评论(0编辑  收藏  举报