好的数据库设计对空间数据库是否重要?


15

我有一种很强烈的感觉,在处理空间数据时,数据库设计和规范化通常是二手的。

我不得不问一下,随着软件的大量使用和拥有超过100个字段表的数据库,我不得不问:

在设计空间数据库时,除了归一化之外,还有其他理由要考虑吗?

我想人们会问一些例子,但是我不能在这里给出,所以我的问题可能更针对那些表示100个字段比正常的标准化设计没有问题且更易于维护的人。

有什么争论?


对于ArcGIS,很难实现具有参照完整性的规范化数据库,因为您仅限于向您公开并受ArcGIS支持的数据库功能。作为关系数据库专家,这真令人沮丧……玩电话游戏,中间是ArcSDE。
2011年

Answers:


16

我认为空间数据库应该与传统数据库没有区别。他们本质上是在做同样的事情,存储大量数据以便快速检索。例如,在PostgreSQL / PostGIS中,几何只是另一种数据类型。就像文本或整数一样。在SQL Server 2008中相同。在Oracle中相同。如果“空间”部分只是数据库中的另一种字段类型,那么它真的与原始数据库有什么不同吗?这是否意味着我们应该抛弃传统数据库设计的所有规则?

显然,与传统数据库一样,规范化也可能做得太过分,因此要找到适合您需求的最佳设计是一个折衷的选择。

如果您打算创建一个高度标准化的结构(包含100列的表格),那么您必须问自己,未来可能会发生什么变化?随着行的大量增加,这还会影响查询性能吗?这会影响将来的可维护性吗?

创建标准化结构并使用视图将所有数据公开给数据库客户端(无论是GIS还是任何其他客户端)有什么问题?

所有这些问题都适用于传统数据库和空间数据库。如果您浏览http://en.wikipedia.org/wiki/Database_normalization,您会发现它也适用于空间数据库。

如果您在数据库之上使用的软件迫使您使用高度非规范化的结构,则这是一个不同的论点。您受软件而不是数据库的约束,因此您没有最佳数据库设计的选择。

所以我认为,简短的答案是(在我看来)数据库设计对于空间数据库与传统数据库同样重要。


1
+1是区分指示数据结构的软件与决定db-structure相对于“最佳”设计的关键点。
matt wilkie 2010年

是的,这个答案和马特的评论都同意。但是我希望有人可以解释为什么通常不这样做。我会稍微编辑问题。
NicklasAvén2010年

我同意。我发现的另一件事是,数据库性能可能会影响您是否进行标准化的决定。在某些情况下,我看到使用了两个数据库,一个包含规范化数据的“主”数据库,以及一个仅用于显示目的的辅助数据库。这个仅包含显示(GIS)数据所需的任何内容,通常在单个表中。
伯伦德(Berend)

为了扩展Berends的观点,这种非规范化的一个重要原因是物化视图通常有点困难并且特定于数据库,因此通常最好自己制作表/数据库来存储非规范化数据。
亚历山大

6

我经常看到这一点。我觉得这是由于传统的GIS人员来自调查背景而没有数据库的背景/知识这一事实。但是,随着越来越多的组织将GIS基础架构移至IT部门,我看到了这一变化。


1
这也是我的感觉,但我希望以某种方式使解释更像保罗的讨论,这是某种程度上的故意选择。这将不是寻找有在底部的数据库,因为无知的滥用提供更多的培训就业处的GIS buissness有这么多的花言巧语,型号的”技术。
尼克拉斯AVEN

1
对不起,滥用是错误的。如果有充分的理由进行审议,那就不是滥用。
NicklasAvén2010年

5

GIS软件旧版

以前的ArcSDE成本高昂,SQL Server中缺少空间数据类型(直到2008年),而Oracle直到版本10为止,这意味着除了将数据存储在shapefile中之外,对于许多组织而言别无选择(并且通过投标人降低投标成本) 。

SQL Server中本机空间类型的引入几乎立刻意味着ArcSDE从一笔巨额投资变成了免费包含在ArcGIS中,以及组织中的空间数据“引入”。

使用ArcGIS和SQL Server的组织以前有三个选择:

  1. 支付2万多美元的费用购买ArcSDE并将空间数据存储在“适当的” SQL Server数据库中。
  2. 将空间数据存储在shapefile /个人GDB中,并链接到数据库中的其余组织数据(或将这些属性导出到DBF)
  3. 切换GIS供应商并将空间数据存储在一个数据库中,但以新GIS软件只能访问的格式存储

一旦SQL Server具有本机空间类型,大多数供应商就会使用此空间类型而不是其专有格式,这意味着空间数据可能会突然被其他应用程序访问。ESRI必须降低ArcSDE的成本(通过将其集成到ArcGIS中来实现)和/或允许将空间数据以本机数据库格式存储。

另外,在ArcIMS中对shapefile进行的查询意味着与DBF相关联,因此必须包括所有必填字段和重复项,因为无法选择创建空间视图或轻松将要素与后端数据库链接。

组织原因

我同意其他人的观点,即直到最近空间数据成为本机数据库类型,长期以来,组织中的数据库管理员一直忽略或将其分开,并成为GIS经理的职责。数据库设计,规范化,复制,安全性和SQL视图的概念通常需要非常不同且专业的技能,并且在学习过程中不容易学习。

费用原因

用招标的方式解释在数据模型上花费大量时间和精力的要求,并且清理/导入数据到该模型中通常是不可能的。通常,项目购买者来自GIS的分析视角,却忽略了结构化数据的重要性。


我了解并同意您所写的大部分内容。但是说SDE部分是在重命名到ArcGIS Server之后免费提供的,并不是说:如果您以100000美元的价格购买这辆车的漂亮颜色,您将免费获得其余的汽车。我不太了解ArcGIS,但是没有SDE部分的ArcGIS Server是什么?而且我从未听说过有人说ArcGIS Server很便宜。我真的看不到SQL Server空间类型如何影响ArcGIS。但是由于Arc产品如此广泛地传播,我同意Arc之路对人们如何看待他们的空间数据有很大的影响。
NicklasAvén2010年

在使用ArcGIS Server之前,ArcSDE曾经与ArcMap和ArcIMS完全分开,并且必须单独购买和许可。由于ArcSDE是在SQL Server(或当时的Oracle)中存储空间数据的唯一方法,因此意味着空间数据存储在其他位置。
geographika,2010年

好的,与SDE打包在一起的ArcIMS是新概念。Arcmap仍然需要每个用户单独的许可证或浮动许可证,对吗?题外话,但我有点好奇。
NicklasAvén2010年

新概念是在不支付大量额外费用的情况下,无法访问/存储关系数据库中的空间数据。esri.com/software/arcgis/arcsde/index.html
geographika

是不是ArcGIS Server大量资金?据我所知,如果没有sde,您将无法在arcmap中使用sqlserver fomat或postgis格式(无齐格斯格式),而sde对不起。
NicklasAvén2010年

4

通过100列表,我假设您的意思是从构建多个输入的“主覆盖”覆盖图获得的输出类型。是的,这些是Arc / INFO工作流程的工件。但是,在防御方面,您也可以将它们视为OLAP的故意非规范化表。由于它们主要用于查询处理,而不是用于数据更新,因此非规范化形式具有一定意义。就像一个星型模式,但没有点。好的,淡茶,但我仍然认为那里有东西。


1
是的,保罗。我知道那里会有一些解释,包括我不太理解的单词:-)。非常有趣的是,这背后有深思熟虑的历史。大!
NicklasAvén2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.