ArcGIS地理數據庫Geodatabase


一直以來對ArcGIS中的數據庫用的比較少,但是其實這是個很方便的東西,特別是在組織一些包含空間關系的各種實體對象的時候,可以很方便地進行查詢與顯示,感覺在房產管理等應用中非常有用

通過一個案例稍微記錄一下 感覺這個組織模式還挺有意思的

GDB

地理數據庫是用於保存數據集集合的“容器”。有以下三種類型:

文件地理數據庫 - 在文件系統中以文件夾形式存儲。每個數據集都以文件形式保存,該文件大小最多可擴展至 1 TB建議使用文件地理數據庫而不是個人地理數據庫。

個人地理數據庫 - 所有的數據集都存儲於 Microsoft Access 數據文件內,該數據文件的大小最大為 2 GB

企業級地理數據庫 - 也稱為多用戶地理數據庫,在大小和用戶數量方面沒有限制。這種類型的數據庫使用 Oracle、Microsoft SQL Server、IBM DB2、IBM Informix 或 PostgreSQL 存儲於關系數據庫中。

多數情況下,Esri 推薦使用文件地理數據庫以實現數據庫大小的可擴展性,這樣可大幅度提高性能並可跨平台使用。

文件地理數據庫非常適合處理用於 GIS 投影的基於文件的數據集,非常適合個人使用以及在小型工作組中使用。它具有很高的性能,在不需要使用 DBMS 的情況下能夠進行很好的擴展以存儲大量數據。另外,還可跨多個操作系統對其進行移植。

目前,支持 geodatabase 的含有空間類型的 DBMS,如下所示:

  • 使用 ST_Geometry 或 Oracle Spatial 類型(可選)的 Oracle
  • 使用 Spatial Extender 幾何對象的 IBM DB2
  • 使用 Spatial DataBlade 幾何對象的 Informix
  • 使用 ST_Geometry 或 PostGIS 幾何的 PostgreSQL
  • 使用 Microsoft 空間類型、幾何和地理的 Microsoft SQL Server

有關各 DBMS 中的地理數據庫所使用的存儲模式的詳細信息,請參閱地理數據庫怎樣存儲在 DBMS 中?

E-R 圖

https://www.cnblogs.com/arxive/p/9669041.html

https://zhuanlan.zhihu.com/p/29029129

https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram  我覺得這個軟件的網頁文檔里面的說明是相當清楚的  這節內容基本來源於此 

數據庫是軟件系統中不可或缺的一個組成部分,若能在數據庫工程中好好利用 ER 圖,便能生成高質量的數據庫設計,用於數據庫創建,管理和維護

實體關系圖也被稱為 ERD、ER 圖、實體聯系模型、實體聯系模式圖或 ER 模型,是一種用於數據庫設計的結構圖。一幅 ERD 包含不同的符號和連接符,用於顯示兩個重要的資訊:

系統范圍內的主要實體,以及這些實體之間的相互關系。這也就是為什么它被稱為“實體”“關系”圖 (ERD)

當我們談論 ERD 中的實體時,我們經常提到諸如人員/角色(例如學生),有形商業對象(例如產品),無形商業對象(例如日志)等業務對象。“關系”則是這些實體在系統內的相互關聯。

ERD 符號指南

ER 圖包含實體,屬性和關系

實體

ERD 實體是一個系統內可定義的事物概念,如人/角色(例如學生),對象(例如發票),概念(例如簡介)或事件(例如交易)(注:在 ERD 中,術語“實體”通常用來代替“表”,但它們是一樣的)。

考慮實體時,嘗試把它們想成名詞。在 ER 模型中,實體顯示為圓角矩形,其名稱位於上方,其屬性列在實體形狀的主體中。

ER的實體還會細分為弱實體和復合實體:

弱實體:一個實體必須依賴於另一個實體存在,那么前者是弱實體,后者是強實體,弱實體必須依賴強實體存在,例如學生實體和成績單實體,成績單依賴於學生實體而存在,因此學生是強實體,而成績單是弱實體。

弱實體和強實體的聯系必然只有1:N或者1:1,這是由於弱實體完全依賴於強實體,強實體不存在,那么弱實體就不存在,因此弱實體(雙線矩形)與聯系之間的聯系也是用的雙線菱形。

復合實體:復合實體也稱聯合實體或橋接實體,常常用於實現兩個或多個實體間的M:N聯系,用長方體內加一個菱形來表示。

用戶和商品兩個實體是M:N的關系,中間又訂單這個實體聯系,因此訂單這個實體是一個復合實體,同時如果用戶實體不存在,就沒有訂單實體的存在,因此對於用戶實體來講訂單是弱實體,同理商品實體如果不存在,同樣不存在訂單實體,因此對商品實體而言訂單是弱實體,具體如圖:

 

 https://zh.wikipedia.org/wiki/ER%E6%A8%A1%E5%9E%8B

 

實體屬性

也稱為列 (Column),意思是持有它的實體的屬性或特性。

一個屬性有一個描述屬性的名稱和一個描述屬性種類的類型,例如代表字符串的 varchar,整數的 int。當為物理數據庫開發繪制 ERD 時,得使用目標 RDBMS 支持的類型,以確保設計和物理數據庫的一致性。

下面的 ER 圖示例顯示了一個包含屬性的實體。

主鍵 (Primary Key)

主鍵又稱 PK,是一種特殊的實體屬性,用於界定數據庫表中的記錄的獨特性。一個表不能有兩筆(或更多)擁有相同的主鍵屬性值的記錄,像是身份證明內的 ID 便是典型的例子,兩個人即使性名相同,ID 是不會一樣,若身份證明是個表,那ID 便是主鍵了。

外鍵 (Foreign Key)

外鍵又稱外來鍵和外部鍵,是對主鍵的引用,用於識別實體之間的關系。請注意,有別於主鍵,外鍵不必是唯一的,多個記錄可以共享相同的值。下面的 ER Diagram 示例顯示了一個包含一些列的實體,其中一個外鍵用於引用另一個實體。

關系

兩個實體之間的關系表示這兩個實體以某種方式相互關聯。例如,學生可能參加課程。實體“學生”因此與“課程”相關,而這關系則在 ER 圖中以連接線表達着。

基數 (Cardinality)

基數定義了一個實與另一個實體的關系里面,某方可能出現次數。例如,一個團隊有許多球員,若把這關系呈現於 ERD 時,團隊和球員之間是一對多的關系。

在 ER 圖中,基數表示為連接線端的烏鴉腳。三種常見的主要關系是一對一,一對多和多對多。

一對一

一對多

一對多關系是指兩個實體 X 和 Y 之間的關系,其中 X 的一個實例可以鏈接到Y的許多實例,而 Y 的一個實例僅鏈接到 X 的一個實例。

多對多

多對多關系是指兩個實體 X 和 Y 之間的關系,其中 X 可以被鏈接到 Y 的許多實例,反之亦然。

請注意,多對多關系在物理 ERD 中被分成一對一對多的關系

 

概念,邏輯和物理數據模型

ER 模型通常被繪制成最多三個抽象層次上:

雖然 ER 模型的三個層次都包含有屬性和關系的實體,但它們的創建目的和目標受眾都不同。

一般而言,業務分析人員使用概念和邏輯模型來展示系統中存在的業務對象 (Business Object),而數據庫設計人員或數據庫工程師會為概念和邏輯ER模型加入更詳細的資訊,進而生成反映物理模型結構的物理數據模型,好為創建數據庫作準備。下表列出了三種數據模型之間的差異。

概念模型 vs 邏輯模型 vs 數據模型:

ERD功能 概念 邏輯 物理
實體(名稱)
關系
 
列的類型   隨意
主鍵    
外鍵    

 

概念數據模型

概念性 ERD 表達了系統中該存在的業務對象以及它們之間的關系。建立概念模型,是為了通過識別所涉及的業務對象來呈現系統的宏觀圖像。概念數據模型定義了哪些實體存在,而非哪些表。例如,邏輯或物理數據模型中可能存在“多對多”表,但在概念數據模型下,它們只會表示為無基數的關系。

概念數據模型示例

 注意:概念性 ERD 支持使用泛化 (Generalization) 來表達兩個實體之間的“一種”關系,例如三角形是一種形狀,這個用法就像UML中的泛化一樣。請注意只有概念 ERD 支持泛化

邏輯數據模型

邏輯 ERD 是概念 ERD 的詳細版本,通過明確定義每個實體中的列並引入操作和事務實體 (Transactional Entities)來讓概念模型豐富起來。雖然邏輯數據模型仍流於高層次的設計(非為特定數據庫系統而繪畫),但如果會影響數據庫的設計,在繪制邏輯數據模型時仍然可酌情調整。

邏輯數據模型示例

 

 用戶下的訂單有多個商品,一個商品又可以出現在多個用戶訂單中,多對多!

物理數據模型

物理 ERD 是數據庫的實際設計藍圖。物理數據模型通過為每列指定類型 (Type),長度 (Length),可為空 (Nullable) 等來詳細闡述邏輯數據模型。由於物理 ERD 表達了如何在特定的 DBMS中構造和關聯數據,因此在設計時要考慮到實際的數據庫系統的需要和局限,倒如確保 DBMS 支持某列類型,並在命名實體和列中避用某些保留字 (Reserved Words)。

物理數據模型示例

 通過一對"一對多"的關系來表示多對多,名字不能有空格,這個關系真的很清楚啊

如何繪制 ER 圖?

如果您發現繪制 ER 圖很難,請不要擔心,在本節中我們將給你一些 ERD 提示。嘗試按照以下步驟以了解如何有效地繪制 ER 圖吧。

  1. 確保你清楚知道繪制 ERD 的目的。您是否試圖呈現涉及業務對象定義的整體系統架構?或者你正在開發一個准備用於數據庫創建的 ER 模型?您必須明了開發 ER 圖的目的,方可使用合適的模型層次(概念/邏輯和物理)來迎合您所需 
  2. 確保你清楚模型的范圍。了解建模范圍可以防止在設計中包含冗余實體和關系。
  3. 畫出范圍內的主要實體。
  4. 通過添加列來定義實體的屬性。
  5. 仔細檢查 ERD 並檢查實體和列是否足以存儲系統的數據。如果不是,請考慮添加其他實體和列。通常,您可以在此步驟中確定一些事務 (Transactional),操作 (Operational) 和事件 (Event) 實體。
  6. 考慮所有實體之間的關系,將它們聯系起來,並寫上正確的基數(例如客戶和訂單之間的一對多關系)。如果有任何實體沒有被連接上,請不要擔心,雖然這不常見,但它是合法的。
  7. 使用數據庫規范化技術 (Database Normalization)重構實體,以減少冗余數據和提高數據完整性。例如,“制造商”的資訊可能最初存儲在“產品”實體下,透過規范化過程,您可能會發“制造商”的記錄不斷重復,您便可將其拆分為單獨的“制造商”實體,並使用外鍵將“產品”和“制造商”連接起來。(如果有些數據總是重復 那么可以考慮新建實體了)

數據模型的例子

ERD 示例 - 貸款系統

E-R圖的繪制類型

使用ERD和數據流圖(DFD)

在系統分析和設計中,可以繪制數據流圖(DFD) 來展現系統流程中的信息流。在數據流圖中,有一個名為數據儲存 (Data Store)的符號,它代表一個提供系統所需信息的數據庫表

數據流圖(DFD)有效地表達了信息如何在系統內流動。使用 DFD,您可以識別由特定系統/過程范圍內的特定實體或子過程提供和輸出的信息,以及完成該過程所需的信息的種類和形式。

由於物理 ER 圖提供了實際數據庫的藍圖,因此這種 ERD 中的實體與 DFD 中的數據存儲一致。您可以 ERD 作為 DFD 的補充,以表達信息的結構;或以 DFD 補充 ERD,以顯示系統在運行時如何運用數據

使用ERD和BPMN業務流程圖(BPD)

在業務流程映射中 (Business Process Mapping),可以繪制 BPMN 業務流程圖 (BPD) 以展示業務工作流程。在業務流程圖中,有一個稱為數據對象(Data Object)的符號,表示在流程輸入/輸出的數據。

由於概念和邏輯數據模型提供了系統內業務對象的高級視圖,因此此類 ERD 中的實體與 BPD 中的數據對象一致。您可繪制 ERD 作為 BPD 的補充,以表示業務工作流程所需的數據對象的結構;或以 BPD 補充 ERD,以顯示在整個業務流程中如何運用數據。

https://www.visual-paradigm.com/cn/tutorials/ 推一個這個軟件教程 感覺對軟件開發會很有用

 ArcGIS Desktop創建gdb

GDB的屬性域能夠限制數據的范圍與類型 這樣能減少錯誤

 gdb中可以新建、導入、導出:

 數據庫表直觀表示:

 

屬性域操作

描述了字段的合法值規則,分為 范圍和編碼值

子類型

是要素類中具有相同屬性的要素的子集,可用於進行數據分類,必須與長整型或者短整型的字段關聯

創建地理數據庫標記

https://desktop.arcgis.com/en/arcmap/10.3/manage-data/geodatabases/exercise-1-organizing-your-data-in-the-catalog.htm

關系類

注釋類

幾何網絡

拓撲

版本

 

 

參考:

https://desktop.arcgis.com/zh-cn/arcmap/10.4/manage-data/geodatabases/types-of-geodatabases.htm

https://wenku.baidu.com/view/3d0cb04cfad6195f302ba64e.html

https://zhuanlan.zhihu.com/p/29029129

https://www.edrawsoft.cn/flowchart/er/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM