地理空间数据库(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
轉載于:https://www.cnblogs.com/Aragon/archive/2012/12/16/2820493.html
總結
以上是生活随笔為你收集整理的地理空间数据库(Geodatabase)结构(翻译)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2012年面试题集
- 下一篇: MFC框架程序----实现十