基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-数据库设计
先打一個廣告:我的獨立博客網址是:http://wuyouqiang.sinaapp.com/。
我的新浪微博:http://weibo.com/freshairbrucewoo。
歡迎大家相互交流,共同提高技術。
?
數據庫設計
??? 這篇文章介紹自己做這個項目時設計的數據庫。
??? 管理空間數據的方式有很多,本系統采用基于Oracle的空間數據庫插件SDE來管理。存放空間數據的表結構是根據用戶自定義標準來創建的,采用這種方式主要因為空間數據并沒有固定的格式,不同格式的空間數據需要建立不同的表結構來存放數據,而且這樣是管理空間數據更加靈活。
本系統數據庫的設計主要是管理空間數據需要用到的輔助表結構設計,由于這些表結構都比較簡單就沒有設計ER圖了,而是直接設計表邏輯結構了。
(1)管理人員信息表(USERS):設計此表的目的是對管理人員的信息進行統一的管理,管理人員的信息有用戶名、密碼、部門等,如表1-1所示。
表1-1 管理人員信息表
| Name | Code | Data Type | Length | 說明 |
| USERNAME | USERNAME | VARCHAR2(30) | 30 | 用戶名 |
| PASSWORD | PASSWORD | VARCHAR2(30) | 30 | 用戶密碼 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(100) | 100 | 描述 |
| DEPARTMENT | DEPARTMENT | VARCHAR2(40) | 40 | 部門 |
| TYPE | TYPE | VARCHAR2(10) | 10 | 用戶類型 |
(2)數據分類表(CATEGORY):此表的作用是記錄空間數據的分類,分類的方法可能是根據不同的用處或是不同的功能來劃分,此表結構定義如表1-2所示。
表1-2 數據分類表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | NUMBER | ? | 分類編號 |
| NAME | NAME | VARCHAR2(30) | 30 | 分類名稱 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(100) | 100 | 分類描述 |
(3)圖層分類表(ELEMENT):圖層分類是建立在數據分類基礎下的,把具有相同或相似功能的圖層分為一類,這個表就是來記錄有關圖層分類的詳細信息,如分類名稱、分類描述等,具體定義如表1-3所示。
表1-3 圖層分類表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | NUMBER | ? | 分類編號 |
| NAME | NAME | VARCHAR2(50) | 50 | 圖層分類名稱 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(500) | 500 | 圖層分類描述 |
| CATEGORY | CATEGORY | VARCHAR2(30) | 30 | 數據分類 |
| DATASETNAME | DATASETNAME | VARCHAR2(50) | 50 | 數據集 |
(4)圖層信息表(LAYER):此表是用于管理圖層相關信息的,如圖層編號、圖層所對應的表名稱、圖層類型等,如表1-4所示。
表1-4 圖層信息表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | NUMBER | ? | 圖層編號 |
| TABLE_NAME | TABLE_NAME | NVARCHAR2(160) | 160 | 表名稱 |
| TABLE_MAPNAME | TABLE_MAPNAME | NVARCHAR2(160) | 160 | 映射表名稱 |
| DESCRIPTION | DESCRIPTION | NVARCHAR2(200) | 200 | 描述信息 |
| TYPE | TYPE | VARCHAR2(10) | 10 | 圖層類型 |
| PID | PID | NUMBER | ? | 圖層分類 |
(5)操作日志表(OPTLOG):此表用于記錄數據管理員對數據庫的各種操作,以便查看數據管理員以前的操作記錄,表結構定義如表1-5所示。
表1-5 操作日志表
| Name | Code | Data Type | Length | 說明 |
| USERNAME | USERNAME | VARCHAR2(30) | 30 | 操作用戶名 |
| TYPE | TYPE | VARCHAR2(20) | 20 | 操作類型 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(200) | 200 | 操作描述 |
| OPTTIME | OPTTIME | DATE | ? | 操作時間 |
(6)數據更新日志表(UPDATEDATA_LOG):這個表唯一作用是記錄哪些表被更新過,用于數據庫之間的同步,如表1-6所示。
表1-6 數據更新日志表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | NUMBER | ? | 日志編號 |
| TABLENAME | TABLENAME | VARCHAR2(50) | 50 | 被更新的表名稱 |
| TABLETYPE | TABLETYPE | VARCHAR2(10) | 10 | 表的類型 |
| OPERTYPE | OPERTYPE | VARCHAR2(10) | 10 | 更新類型 |
| OPERDATE | OPERDATE | DATE | ? | 更新時間 |
(7)數據庫監控日志表(ALERT_LOG):監控數據庫時,如果發現異常就把異常信息寫入此表,數據庫管理員可以根據此表來解決異常和優化數據庫。詳細定義如表1-7所示。
表1-7 數據庫監控日志表
| Name | Code | Data Type | Length | 說明 |
| HAPPENTIME | HAPPENTIME | DATE | ? | 異常發生時間 |
| TYPE | TYPE | VARCHAR2(40) | 40 | 異常類型 |
| CONTENT | CONTENT | VARCHAR2(200) | 200 | 具體內容 |
(8)圖層表結構定義表(FIELDDEFINE):此表是用于記錄圖層對應的表結構信息,如表名稱、字段名稱、字段類型等,完整定義如表1-8所示。
表1-8 圖層表結構定義表
| Name | Code | Data Type | Length | 說明 |
| TABLE_NAME | TABLE_NAME | VARCHAR2(40) | 40 | 表名稱 |
| NAME | NAME | VARCHAR2(40) | 40 | 名稱 |
| ALIAS_NAME | ALIAS_NAME | VARCHAR2(60) | 60 | 別稱 |
| TYPE | TYPE | VARCHAR2(20) | 20 | 類型 |
| LENGTH | LENGTH | NUMBER | ? | 字段的長度 |
| SCALE | SCALE | NUMBER | ? | 小數位 |
| ISNULL | ISNULL | VARCHAR2(4) | 4 | 是否空 |
| UNI | UNI | VARCHAR2(4) | 4 | 是否唯一 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(80) | 80 | 字段描述 |
| CHECKDEFINE | CHECKDEFINE | VARCHAR2(100) | 100 | 字段約束 |
| DEFAULTVALUE | DEFAULTVALUE | VARCHAR2(40) | 40 | 默認值 |
(9)圖層表之間字段關聯表(RELATION):這個表用于維護圖層表之間的關聯關系,當一個表的數據更新了程序可以通過查詢這張表來級聯更新與之有關聯的表,保證數據的完整性和一致性。這個表結構定義如表1-9所示。
表1-9 圖層表之間字段關聯表
| Name | Code | Data Type | Length | 說明 |
| FIRST | FIRST | VARCHAR2(50) | 50 | 主表 |
| SECOND | SECOND | VARCHAR2(50) | 50 | 關聯表 |
| BITS | BITS | NUMBER | ? | 字段關聯的位數 |
(10)數據庫監控索引表(MONITORINDEX):此表是為了記錄有關索引相關信息而設計的,通過這個表的信息可以決定是否優化數據庫。這個表的定義如表1-10所示。
表1-10 數據庫監控索引表
| Name | Code | Data Type | Length | 說明 |
| INDEX_NAME | INDEX_NAME | VARCHAR2(50) | 50 | 索引名稱 |
| DEL_LF_ROWS | DEL_LF_ROWS | NUMBER | ? | ? |
| LF_ROWS | LF_ROWS | NUMBER | ? | ? |
| RATE | RATE | NUMBER(4,2) | ? | 比率 |
| MONITORDATE | MONITORDATE | DATE | ? | 監控日期 |
(11)運行維護制度表(OPERATION_MAINTAIN):這個是為了記錄運維的制度而設計的。如表1-11所示。
表1-11 數據庫監控索引表
| Name | Code | Data Type | Length | 說明 |
| PUBDATE | PUBDATE | DATE | ? | 發布日期 |
| TITLE | TITLE | VARCHAR2(100) | 100 | 主題 |
| CONTENT | CONTENT | CLOB | ? | 內容 |
(12)元數據庫信息表(DATABASEINFO):為了記錄元數據庫的相關信息設計了此表,主要記錄了元數據庫名稱、元數據庫描述等,如表1-12所示。
表1-12 元數據庫信息表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | VARCHAR2(20) | 20 | 元數據庫的ID編號 |
| NAME | NAME | VARCHAR2(30) | 30 | 元數據庫名稱 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(200) | 200 | 元數據庫描述 |
| CONNECTDRIVER | CONNECTDRIVER | VARCHAR2(50) | 50 | 元數據庫連接驅動 |
| CONNECTSTRING | CONNECTSTRING | VARCHAR2(100) | 100 | 元數據庫連接字符串 |
| MAPNAME | MAPNAME | VARCHAR2(40) | 40 | 元數據庫映射名稱 |
(13)目錄信息表(DIRINFO):設計此表為了對元數據按目錄進行分類管理,此表就是記錄目錄相關信息,如表1-13所示。
表1-13 目錄信息表
| Name | Code | Data Type | Length | 說明 |
| SYSID | SYSID | VARCHAR2(40) | 40 | 系統ID編號 |
| ID | ID | VARCHAR2(40) | 40 | ID編號 |
| NAME | NAME | VARCHAR2(60) | 60 | 目錄名稱 |
| DESCRIPTION | DESCRIPTION | VARCHAR2(500) | 500 | 目錄描述 |
| PID | PID | VARCHAR2(40) | 40 | 父目錄ID編號 |
| DEFINE | DEFINE | VARCHAR2(100) | 100 | 定義 |
(14)元數據標準信息表(METASTAND):用于記錄元數據標準相關信息,可以根據記錄的標準創建元數據庫和一條相應的元數據信息,如表1-14所示。
表1-14 元數據標準信息表
| Name | Code | Data Type | Length | 說明 |
| ID | ID | VARCHAR2(20) | 20 | 元數據標準ID |
| NAME | NAME | VARCHAR2(50) | 50 | 元數據標準名稱 |
| CONTENT | CONTENT | CLOB | ? | 元數據標準內容 |
| ORG | ORG | VARCHAR2(60) | 60 | 元數據標準發布組織 |
| VERSION | VERSION | VARCHAR2(60) | 60 | 元數據標準版本 |
轉載于:https://www.cnblogs.com/brucewoo/archive/2011/11/25/2262495.html
總結
以上是生活随笔為你收集整理的基于ArcGIS10.0和Oracle10g的空间数据管理平台(C#开发)-数据库设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: F#基础教程 大纲
- 下一篇: C#几个经常犯错误汇总