日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

ArcGIS 10——地理数据库管理GIS数据

發(fā)布時(shí)間:2023/12/9 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS 10——地理数据库管理GIS数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫本文的最初意向是當(dāng)前正在進(jìn)行的項(xiàng)目中有實(shí)現(xiàn)ESRI版本化數(shù)據(jù)管理的功能模塊,碰到一些棘手的問題,幾經(jīng)周折還是決定系統(tǒng)學(xué)習(xí)ArcGIS10的幫助文檔。(文章摘抄的比較多)

?

地理數(shù)據(jù)庫是用于保存數(shù)據(jù)集集合的“容器”。首先了解一下ArcGIS的三種地理數(shù)據(jù)庫類型

  • 文件地理數(shù)據(jù)庫-在文件系統(tǒng)中以文件夾的形式存儲。每個(gè)數(shù)據(jù)集都以文件形式保存,該文件大小最多可擴(kuò)展至1TB。建議使用文件地理數(shù)據(jù)庫而不是個(gè)人地理數(shù)據(jù)庫;
  • 個(gè)人地理數(shù)據(jù)庫-所有的數(shù)據(jù)集都存儲于Ms Access數(shù)據(jù)文件內(nèi),該文件的大小最大為2GB。
  • ArcSDE地理數(shù)據(jù)庫-使用Oracle、MS SQL Server、IBM DB2、IBM Informix、PostgreSQL存儲與關(guān)系數(shù)據(jù)庫中。這些多用戶地理數(shù)據(jù)庫需要使用ArcSDE,在大小和用戶數(shù)量方面沒有限制;

地理數(shù)據(jù)庫在可擴(kuò)展性跨平臺以及性能方面ESRI都推薦使用文件地理數(shù)據(jù)庫而非個(gè)人地理數(shù)據(jù)庫。而ArcSDE地理數(shù)據(jù)庫針對的是大型的多用戶的企業(yè)解決方案,其可用來管理共享式多用戶地理數(shù)據(jù)庫和支持多種基于版本的關(guān)鍵性GIS工作流。

?

這里重點(diǎn)來理清ArcSDE對DBMS事務(wù)框架進(jìn)行長事務(wù)管理短事務(wù)管理

ArcSDE 的主要角色之一就是支持每個(gè) DBMS 中的地理數(shù)據(jù)庫版本管理框架。

絕大多數(shù)情況下,GIS 中的單個(gè)編輯事務(wù)可能涉及對多個(gè)表中的多個(gè)行進(jìn)行更改。例如,更新宗地可能需要更改面的表示,并更改相應(yīng)的邊界線和宗地拐角。此外,還必須更新這些要素中每個(gè)要素的屬性記錄。此編輯操作需要對多個(gè)表中的多條記錄進(jìn)行更改。在這些情況下,用戶希望將此編輯集合視為單個(gè)事務(wù)。提交或回滾這些更改時(shí),會將它們視為一個(gè)統(tǒng)一的操作來進(jìn)行管理。

同時(shí),用戶希望能夠在一個(gè)編輯會話中撤消和重做單個(gè)編輯操作。為了使這種情況變得更為復(fù)雜,可能需要在與中央共享數(shù)據(jù)庫斷開連接的系統(tǒng)中執(zhí)行編輯操作。

而且,在這些專門化的 GIS 數(shù)據(jù)維護(hù)過程中,GIS 數(shù)據(jù)庫必須持續(xù)保持對日常操作可用,而在這些日常操作中,每位用戶都有可能獲取共享 GIS 數(shù)據(jù)庫的個(gè)人視圖或狀態(tài)。

通過使用一種稱為版本管理的方法,ArcSDE 地理數(shù)據(jù)庫支持在多用戶環(huán)境下對這些數(shù)據(jù)管理情景及許多其他數(shù)據(jù)管理情景進(jìn)行管理和更新。在版本管理這種機(jī)制下,所有的數(shù)據(jù)庫更改都作為表中的行進(jìn)行記錄。例如,每次更新某一行中的某個(gè)值時(shí),舊值即會失效,并會新增一個(gè)更新行。

這樣,通過將更改信息以增量記錄的方式存儲在數(shù)據(jù)庫中,ArcSDE 技術(shù)就能在簡單 DBMS 事務(wù)框架中管理復(fù)雜的高級 GIS 事務(wù)。

ArcSDE 使用版本的元數(shù)據(jù)來隔離多個(gè)編輯會話、支持復(fù)雜事務(wù)、共享復(fù)本、同步多個(gè)數(shù)據(jù)庫之間的內(nèi)容、執(zhí)行自動存檔并支持歷史查詢。

?

再來看看ESRI提供的數(shù)據(jù)庫維護(hù)策略

非版本化數(shù)據(jù)維護(hù)

  • 非版本化數(shù)據(jù)維護(hù)僅僅使用基礎(chǔ)DBMS事務(wù)模型,與標(biāo)準(zhǔn)數(shù)據(jù)庫事務(wù)等效。一次編輯會話(EditOperation)過程中從開啟到保存算一個(gè)事務(wù)過程,并且保存之后訪問該數(shù)據(jù)的其他用戶和應(yīng)用程序都將看到所做的更改。
  • 此策略適用于簡單要素,不需要版本控制和歷史記錄管理的功能。
  • 此策略不能對之前所做的操作執(zhí)行撤銷重做等操作,并且在后一次的操作記錄提交時(shí)不會進(jìn)行沖突檢測,而是直接覆蓋前一次的操作記錄。

版本化數(shù)據(jù)維護(hù)

  • 地理數(shù)據(jù)庫對標(biāo)準(zhǔn) DBMS 事務(wù)進(jìn)行了擴(kuò)展,允許數(shù)據(jù)庫同時(shí)存在多個(gè)并發(fā)狀態(tài)(即版本)。每個(gè)版本可以表示正在進(jìn)行的工作(如一個(gè)設(shè)計(jì)或一組工作指令)、可跨越多個(gè)數(shù)據(jù)庫連接的工作,時(shí)間可以長達(dá)幾周或幾個(gè)月,視需要而定。版本可以使您在同一地理數(shù)據(jù)庫中管理對數(shù)據(jù)的過去、現(xiàn)在和建議的更改。
  • 要管理過去的更改,需要將對數(shù)據(jù)的更改保存到單獨(dú)的存檔表中。可以根據(jù)需要將這些更改保留一定的時(shí)間,以便允許用戶查看數(shù)據(jù)庫在先前某個(gè)時(shí)間點(diǎn)的狀態(tài)。此功能稱為歸檔。啟用此功能時(shí),對 DEFAULT 版本(通常用作數(shù)據(jù)庫的發(fā)布版本)的更改會自動存檔
  • 要管理當(dāng)前更改,編輯者可以修改地理數(shù)據(jù)庫的私有(private)版本,這樣其他用戶便無法查看未完成的工作。編輯數(shù)據(jù)的某一版本時(shí),不應(yīng)用任何鎖。這樣就使并發(fā)得到了最大限度的提高,因?yàn)槠渌脩裟軌蜃x取和編輯您正在修改的數(shù)據(jù),并且您不會阻止其他用戶訪問數(shù)據(jù)庫。編輯者完成更改之后,便可以將更改整合到已發(fā)布版本之中。
  • 要管理建議的更改,可以在數(shù)據(jù)庫的某個(gè)版本中設(shè)計(jì)一個(gè)情景或執(zhí)行假設(shè)分析。情景可以作為一個(gè)單獨(dú)的更改單元進(jìn)行管理,它可以跨越多個(gè)編輯會話并延續(xù)許多天、周或月。可以自由地添加建議的要素、執(zhí)行地理分析、生成地圖,所有操作都不會影響其他用戶正在訪問的數(shù)據(jù)庫。更改完成并通過批準(zhǔn)之后,可以將其整合到地理數(shù)據(jù)庫的其他部分中。
  • 版本化表需要數(shù)據(jù)庫管理員進(jìn)行定期維護(hù)。隨著時(shí)間推移,對地理數(shù)據(jù)庫的編輯次數(shù)增多,增量表會逐漸增大,因此會影響到顯示和查詢性能。要保持性能,數(shù)據(jù)庫管理員可以定期壓縮版本化數(shù)據(jù)庫,此操作會從增量表中移除冗余的信息。在經(jīng)歷密集的數(shù)據(jù)庫活動之后,如數(shù)據(jù)庫移動結(jié)束時(shí)或加載新數(shù)據(jù)之后,需要對版本化數(shù)據(jù)庫執(zhí)行壓縮操作。可以在其他用戶連接到數(shù)據(jù)庫并使用數(shù)據(jù)庫的情況下進(jìn)行壓縮。

??????? ArcGIS 可以用下列兩種方法之一管理支持版本的基礎(chǔ)增量表:

  • 將所有版本的更改保存到增量表[支持歷史歸檔][操作:注冊版本時(shí)不勾選“將編輯內(nèi)容移動到基表”][應(yīng)用場景舉例:管理版本的最好方法是將所有更改都保存到增量表中。這可以使您充分利用地理數(shù)據(jù)庫的功能,包括存檔、復(fù)制以及編輯幾何網(wǎng)絡(luò)和拓?fù)涞哪芰
  • 將所有非 DEFAULT 版本編輯內(nèi)容保存到增量表,將所有 DEFAULT 版本的編輯內(nèi)容保存到基表[不支持歷史歸檔][操作:注冊版本時(shí)勾選“將編輯內(nèi)容移動到基表”][應(yīng)用場景舉例:這種情況舉例,一個(gè)部門使用 ArcGIS 維護(hù)數(shù)據(jù)庫中的地理數(shù)據(jù),而另一個(gè)部門使用自定義應(yīng)用程序維護(hù)同一數(shù)據(jù)庫中的客戶記錄。自定義應(yīng)用程序需要在事務(wù)進(jìn)行時(shí)應(yīng)用 DBMS 約束和觸發(fā)器并且可能不識別版本化表。與此同時(shí),另一部門需要在自己的獨(dú)立版本中編輯地理數(shù)據(jù),在編輯完成并通過批準(zhǔn)之后再共享部門編輯內(nèi)容。]

下面具體看看如何使用版本化數(shù)據(jù)

  • DEFAULT版本:每個(gè)ArcSDE地理數(shù)據(jù)庫都具有一個(gè)名為DEFAULT的默認(rèn)版本,其始終存在且不能被刪除,一般用來作為數(shù)據(jù)庫的發(fā)布版本。在版本體系中,DEFALUT版本作為根版本,您可以將其他版本中的變更提交到DEFALUT版本,從而逐步維護(hù)和更新DEFAULT版本。
  • 其他版本:可以通過從任意現(xiàn)有版本創(chuàng)建子版本或分支版本的方式創(chuàng)建其他版本。版本機(jī)制中,無論有多少個(gè)版本,各表和要素類在數(shù)據(jù)庫僅存儲一次,ArcGIS保留了各要素類和表的原始格式,但會在被稱為增量表(A表和D表)的表中記錄所有更改。用戶可以同時(shí)編輯所有版本,多個(gè)用戶還可以同時(shí)編輯同一版本

?

通過以上基本知識的了解,深入探索一下版本和版本化編輯的工作原理:

對任意版本中的數(shù)據(jù)開始執(zhí)行版本化編輯之前,必須將數(shù)據(jù)集注冊為版本。

理解將數(shù)據(jù)集注冊為版本和創(chuàng)建版本的區(qū)別:

  • 創(chuàng)建版本時(shí)所創(chuàng)建的是地理數(shù)據(jù)庫的某種“視圖”,您可以通過該“視圖”編輯版本化數(shù)據(jù)并隨即查看所做的更改。連接到同一版本的其他用戶將在刷新之后看到這些更改。但是,在您對這些更改進(jìn)行協(xié)調(diào)并提交到祖先版本之前,連接到其他版本的用戶將不會看到這些更改。舉個(gè)例子,如下圖所示版本工作流示意:在進(jìn)行版本化編輯之后,將更改提交回DEFALUT版本之后,無論您連接的是哪個(gè)版本,這些更改都是可見的。

  • 將數(shù)據(jù)集(要素類、要素?cái)?shù)據(jù)集或表)注冊為版本會使其為版本化編輯準(zhǔn)備就緒。將數(shù)據(jù)集注冊為版本時(shí),會創(chuàng)建兩個(gè)增量表:用于插入和更新的A(或叫“添加”)表以及用于刪除的D(或叫“刪除”)表。每次更新或刪除數(shù)據(jù)集中的記錄時(shí),都會向這兩個(gè)表或其中一個(gè)表添加行。因此,版本化數(shù)據(jù)集包含原始表(稱為基表)以及增量表中的所有更改。進(jìn)行可填充增量表的編輯時(shí),地理數(shù)據(jù)庫會追蹤您所連接的版本。查詢或顯示版本中的數(shù)據(jù)集時(shí),ArcGIS 對原始表和增量表中的相關(guān)行進(jìn)行組合,呈現(xiàn)出數(shù)據(jù)的無縫視圖。

無論在哪個(gè)版本中進(jìn)行編輯,對要素類或表所做的全部編輯都會被記錄到同一增量表。總的來說,基表、A 表和 D 表中的所有行表示要素類或表的所有版本。這表示任何一個(gè)版本都只能引用這三個(gè)表中的行的子集。那么,ArcGIS 如何記住增量表中屬于各版本的行呢?

  • 使用被稱為“狀態(tài) ID”的整型標(biāo)識符對 A 表和 D 表中的各行進(jìn)行標(biāo)記,以在向表中添加行時(shí)提供參考。每次編輯版本時(shí)均會創(chuàng)建新的狀態(tài),并向這兩個(gè)增量表或其中一個(gè)增量表添加新行。狀態(tài)可被看作是樹結(jié)構(gòu)的一部分,在樹結(jié)構(gòu)中,各分支記錄了版本的發(fā)展情況。記錄版本從基表到當(dāng)前狀態(tài)之間一連串變更的一系列狀態(tài)稱為譜系。顯示或查詢版本時(shí),ArcGIS 會查詢版本的譜系以獲取“狀態(tài) ID”,然后從 A 表和 D 表中檢索正確的記錄。

?

以上概念性的描述不太形象,來看看Oracle數(shù)據(jù)庫中是通過哪些表來追蹤版本

在內(nèi)部,版本通過多個(gè)數(shù)據(jù)庫表(數(shù)據(jù)集表、增量表和系統(tǒng)表)來管理,以追蹤版本。

虛線表示各列之間的隱含關(guān)系。

添加和刪除表的名稱中的數(shù)字為 TABLE_REGISTRY 表中業(yè)務(wù)表的 REGISTRATION_ID。

  • 創(chuàng)建版本

    在創(chuàng)建版本時(shí),會在Versions表中創(chuàng)建一條新紀(jì)錄,包括版本名稱、版本描述、版本創(chuàng)建時(shí)間等信息,最需要注意的是Status和State_ID兩個(gè)字段;

    Status:默認(rèn)值為1,表明該版本正在進(jìn)行版本事務(wù)狀態(tài);

    State_ID:獲得最新的編輯狀態(tài)ID;

  • 版本編輯

    所有進(jìn)行的編輯都會在STATES表(狀態(tài)表)中記錄相關(guān)的編輯狀。在版本編輯時(shí),該表會記錄每一步的編輯狀態(tài),但是在保存編輯時(shí),會記錄一個(gè)最終的有效的編輯狀態(tài)。舉例說明:創(chuàng)建一個(gè)要素(記錄了一次狀態(tài)),填寫屬性(記錄第二次的狀態(tài)),但是當(dāng)保存編輯的時(shí)候,只記錄最終的一個(gè)編輯狀態(tài)。

    STATE_LINEAGES表(世系表)與STATES表(狀態(tài)表)是類似的,只存儲最終的編輯狀態(tài)。所謂世系表,是說如果一個(gè)DEFALUT版本創(chuàng)建一個(gè)子版本,相應(yīng)的編輯狀態(tài)值會對應(yīng)繼承DEFALUT版本的LINAEAGE_NAME值進(jìn)行記錄,如果在另外一個(gè)子版本進(jìn)行編輯,會獲得最新的編輯狀態(tài)作為另一個(gè)子版本的LINEAGE_NAME值來記錄該版本的編輯狀態(tài)。

    在MVTABLES_MODIFIED表中記錄了針對每一個(gè)注冊ID(也就是要素類)的多版本編輯狀態(tài)。

    所有在注冊版本記錄上新創(chuàng)建的數(shù)據(jù)都會存儲在A表中,因?yàn)锳表也有一個(gè)編輯狀態(tài),所以根據(jù)STATES表的編輯狀態(tài)可以定位到A表的某條數(shù)據(jù),所有的空間數(shù)據(jù)、屬性數(shù)據(jù)的信息都可以獲得。

    所有注冊版本記錄上的對數(shù)據(jù)的刪除信息都保存在D表中,記錄相關(guān)的刪除狀態(tài)、OBJECTID、新建的狀態(tài)ID,根據(jù)后兩個(gè)字段可以唯一定位到刪除數(shù)據(jù)信息。

  • 協(xié)調(diào)版本

    只介紹STATES和STATE_LINEAGES這兩個(gè)表的變化,在協(xié)調(diào)版本時(shí)會將子版本的數(shù)據(jù)與相應(yīng)父版本進(jìn)行協(xié)調(diào),上面我們介紹各個(gè)版本對應(yīng)一個(gè)LINEAGE_NAME,所以這兩個(gè)表會添加兩條相應(yīng)的記錄。特別介紹一下STATES表,添加一條記錄是一個(gè)新的協(xié)調(diào)狀態(tài)ID(STATE_ID),然后記錄開始時(shí)間和結(jié)束時(shí)間,對應(yīng)的世系版本ID會是當(dāng)前編輯版本的值,而且還會添加一條記錄,就是對應(yīng)協(xié)調(diào)目標(biāo)版本的協(xié)調(diào)ID,協(xié)調(diào)版本的LINEAGE_NAME,以及創(chuàng)建時(shí)間,但是結(jié)束時(shí)間沒有進(jìn)行存儲。

    這里也就對應(yīng)了上面所說的在協(xié)調(diào)過程中只會更新編輯版本的數(shù)據(jù),并不會更新協(xié)調(diào)版本的數(shù)據(jù)。

  • 提交版本

    也只介紹STATES和STATE_LINEAGES這兩個(gè)表的變化,上面所說的對應(yīng)協(xié)調(diào)版本的結(jié)束時(shí)間沒有存儲,在進(jìn)行提交版本后,就存儲了協(xié)調(diào)版本的結(jié)束時(shí)間(對應(yīng)STATES表的記錄)。

    在提交過程中,Versions表還會進(jìn)行相應(yīng)的變化,因?yàn)獒槍τ谀骋粋€(gè)子版本的事務(wù)已經(jīng)結(jié)束,那么STATUS值和STATE_ID也會發(fā)生相應(yīng)的變化。

    STATUS:變?yōu)槟骋粋€(gè)很大的值,表明該版本結(jié)束了相關(guān)事務(wù);

    STATE_ID:獲得結(jié)束該版本編輯的一個(gè)狀態(tài)值,也可以理解為獲得當(dāng)前一個(gè)最新的編輯狀態(tài)ID。

    ?

?

隨著對地理數(shù)據(jù)庫不時(shí)進(jìn)行編輯,增量表的大小和狀態(tài)的數(shù)量會有所增加。表越大、狀態(tài)越多,每次顯示或查詢版本時(shí) ArcGIS 所必須處理的數(shù)據(jù)就越多。要保持?jǐn)?shù)據(jù)庫的性能,ArcSDE 管理員必須定期運(yùn)行“壓縮”命令,以移除不使用的數(shù)據(jù),之后再使用“分析”命令更新數(shù)據(jù)庫統(tǒng)計(jì)數(shù)據(jù)。

  • 壓縮:地理數(shù)據(jù)庫壓縮操作可從對版本以及版本化編輯進(jìn)行跟蹤的系統(tǒng)表中移除不必要的狀態(tài)和行,還可將增量表中的行移動到業(yè)務(wù)表(基表)中。壓縮操作只能由 ArcSDE 管理員來執(zhí)行,可對地理數(shù)據(jù)庫中的所有狀態(tài)進(jìn)行操作,與版本所有者無關(guān)。

    壓縮操作很有必要,因?yàn)殡S著對編輯地理數(shù)據(jù)庫不斷進(jìn)行編輯,增量表的大小和狀態(tài)的數(shù)量也會不斷增加。表越大、狀態(tài)越多,每次顯示或查詢版本時(shí) ArcGIS 所必須處理的數(shù)據(jù)就越多。因此,對性能的最大影響不是版本的數(shù)量,而是增量表中對每個(gè)版本的更改量。因此,各個(gè)版本就可能具有不同的查詢響應(yīng)時(shí)間。

    要維護(hù)數(shù)據(jù)庫性能,ArcSDE 管理員必須定期運(yùn)行壓縮操作來移除未使用的數(shù)據(jù)。

  • 分析:此命令可用于更新地理數(shù)據(jù)庫的數(shù)據(jù)集中的統(tǒng)計(jì)數(shù)據(jù)。對業(yè)務(wù)表、要素表、增量表、柵格表和歷史存檔表中的統(tǒng)計(jì)數(shù)據(jù)以及與這些表相關(guān)聯(lián)的索引中的統(tǒng)計(jì)數(shù)據(jù)進(jìn)行更新。

?

理解“將編輯內(nèi)容移動到基表”類型的注冊版本:

在將不參與網(wǎng)絡(luò)、拓?fù)浠驓v史歸檔的數(shù)據(jù)注冊為版本時(shí),您可以指定是否要將對 DEFAULT 版本進(jìn)行的編輯移動到基表中。如果指定此選項(xiàng),則仍將更改記錄到增量表中。但是在進(jìn)行保存時(shí),會將更改從增量表中移動到基表,而增量表中不會保存更改。

在將數(shù)據(jù)注冊為版本時(shí),如果所做的修改僅需要數(shù)分鐘即可完成并且使用第三方應(yīng)用程序連接到版本化地理數(shù)據(jù)庫,則指定此選項(xiàng)會很有幫助。

第三方應(yīng)用程序通常僅可用于查詢基表,而無法查看增量表。如果使用版本化,且未選擇將編輯移動到基表,那么這些應(yīng)用程序?qū)o法查看尚未協(xié)調(diào)并提交到 DEFAULT 版本的在其他版本中進(jìn)行的編輯。請注意,編輯 DEFAULT 之外的版本時(shí),會在同一增量表中記錄更改。保存時(shí),更改會保留在增量表中。但是,將更改合并到 DEFAULT 版本時(shí),更改會從增量表移動到基表。將更改合并到 DEFAULT 之外的版本時(shí),更改將保留在增量表中,就像未指定將編輯移動到基表的選項(xiàng)一樣

?

Oracle中針對版本管理策略的添加和管理用戶:

  • 用戶帳戶是用來標(biāo)識連接到地理數(shù)據(jù)庫的人員或客戶端應(yīng)用程序的唯一名稱和密碼,決定了哪些用戶可以訪問數(shù)據(jù)以及數(shù)據(jù)歸哪些用戶所有。
  • 在地理數(shù)據(jù)庫中創(chuàng)建表時(shí)用于與地理數(shù)據(jù)庫建立連接的用戶名即是數(shù)據(jù)所有者的名稱。
  • 了解數(shù)據(jù)歸誰所有至關(guān)重要,因?yàn)槿绻秤脩粼跀?shù)據(jù)庫中擁有數(shù)據(jù),則不允許將該用戶帳戶從數(shù)據(jù)庫中移除;而且,將由創(chuàng)建數(shù)據(jù)集的用戶控制其他用戶訪問該數(shù)據(jù)集的權(quán)限級別。
  • 在Oracle中的ArcSDE管理用戶賬戶的推薦方案:建議只將 ArcSDE 管理員及其方案用于管理和存儲 ArcSDE 系統(tǒng)表。對于要素類和柵格數(shù)據(jù)集等 ArcSDE 數(shù)據(jù)對象,應(yīng)創(chuàng)建單獨(dú)的用戶方案來進(jìn)行存儲。不要將這些對象存儲在 ArcSDE 管理員存儲空間中,因?yàn)檫@樣可能會因 ArcSDE 管理員空間被填滿而導(dǎo)致 ArcSDE 服務(wù)崩潰。如果能夠遵守操作規(guī)范,將系統(tǒng)表僅存儲在 ArcSDE 管理員存儲空間中,則可以簡化 ArcSDE 的管理。

那么什么是用戶權(quán)限

權(quán)限用于決定授權(quán)用戶對數(shù)據(jù)和地理數(shù)據(jù)庫執(zhí)行何種操作。應(yīng)根據(jù)人員在組織中所執(zhí)行的工作類型來分配權(quán)限。用戶是否為地理數(shù)據(jù)庫的管理員?用戶是否需要編輯或創(chuàng)建數(shù)據(jù)?用戶是否僅需查詢數(shù)據(jù)?

對用戶或用戶組指定的權(quán)限會影響他們在地理數(shù)據(jù)庫中所能執(zhí)行的操作。有些用戶只能連接到地理數(shù)據(jù)庫。這些用戶為只讀用戶。另有一些用戶可連接到地理數(shù)據(jù)庫并創(chuàng)建數(shù)據(jù)集。另有一些用戶可連接到數(shù)據(jù)庫并編輯數(shù)據(jù)集,但無法創(chuàng)建或刪除數(shù)據(jù)集。還有一些用戶可執(zhí)行管理任務(wù),如創(chuàng)建備份文件或執(zhí)行壓縮操作。

可在不同級別設(shè)置用戶權(quán)限:數(shù)據(jù)庫、地理數(shù)據(jù)庫版本以及數(shù)據(jù)庫中的數(shù)據(jù)集。

  • 數(shù)據(jù)庫權(quán)限[建用戶賬戶時(shí)分配的權(quán)限]

    這些權(quán)限用于決定用戶或用戶組可在地理數(shù)據(jù)庫中或?qū)Φ乩頂?shù)據(jù)庫執(zhí)行的操作;例如,用戶是可以創(chuàng)建新數(shù)據(jù)集還是可以管理地理數(shù)據(jù)庫。

  • 地理數(shù)據(jù)庫版本權(quán)限[在創(chuàng)建版本時(shí)決定的其他用戶對版本的訪問權(quán)限]

    還可以通過設(shè)置權(quán)限來控制用戶對地理數(shù)據(jù)庫版本的訪問。這是一種特殊的數(shù)據(jù)庫權(quán)限類型,并不通過 DBMS 進(jìn)行設(shè)置。而是在創(chuàng)建地理數(shù)據(jù)庫版本時(shí)由該版本的創(chuàng)建者決定其他用戶對此版本所具有的訪問類型。如果將版本創(chuàng)建為“公共”版本,則所有用戶均可對其進(jìn)行訪問及修改。如果將其創(chuàng)建為“私有”版本,則只有該版本的創(chuàng)建者可以對其進(jìn)行訪問。如果版本為“受保護(hù)”版本,則其他用戶可以查看該版本,但只有創(chuàng)建者可以對其進(jìn)行修改。

  • 數(shù)據(jù)集權(quán)限[在ArcMap中針對某個(gè)指定用戶對數(shù)據(jù)集進(jìn)行的權(quán)限分配]

    數(shù)據(jù)集權(quán)限用于決定用戶可對特定數(shù)據(jù)集執(zhí)行的操作:用戶是可以對數(shù)據(jù)集進(jìn)行編輯,還是只能從中查詢數(shù)據(jù)?特定數(shù)據(jù)集的使用權(quán)限由該數(shù)據(jù)的所有者(即為創(chuàng)建數(shù)據(jù)或?qū)?shù)據(jù)導(dǎo)入地理數(shù)據(jù)庫的用戶)進(jìn)行控制。可授予用戶只讀(查詢)權(quán)限,也可授予讀/寫(更新、插入和刪除)權(quán)限。這些數(shù)據(jù)集權(quán)限用于決定用戶是否為編輯者;如果用戶不具備任何數(shù)據(jù)集的更新、插入或刪除權(quán)限,則此用戶不是編輯者。

下列規(guī)則適用于授予和撤消數(shù)據(jù)的權(quán)限:

  • 只有數(shù)據(jù)集所有者才能更改該數(shù)據(jù)集的權(quán)限。
  • 撤消權(quán)限需要數(shù)據(jù)集的排它鎖;因此,如果有其他用戶連接到該數(shù)據(jù)集,則您無法撤消用戶對該數(shù)據(jù)集的權(quán)限。
  • 無法向用戶授予要素?cái)?shù)據(jù)集內(nèi)要素類的不同權(quán)限。
  • 如果已將新要素類添加到要素?cái)?shù)據(jù)集中或在要素?cái)?shù)據(jù)集中構(gòu)建了網(wǎng)絡(luò)或拓?fù)?#xff0c;所有者必須再次授予要素?cái)?shù)據(jù)集的權(quán)限,以便能夠?qū)⑦@些權(quán)限應(yīng)用到要素?cái)?shù)據(jù)集的新表中。
  • 只有數(shù)據(jù)集所有者才能刪除數(shù)據(jù)集或更改其定義;因此,即使數(shù)據(jù)集所有者向另一用戶授予了數(shù)據(jù)集的 INSERT、UPDATE 和 DELETE 權(quán)限,該用戶也無法更改數(shù)據(jù)集的方案。
  • 您每次只能改變用戶對一個(gè)數(shù)據(jù)集的權(quán)限。
  • 輸入用戶名時(shí),可能要求您將域名或計(jì)算機(jī)名與該用戶名一同提供,這取決于存儲數(shù)據(jù)集的數(shù)據(jù)庫管理系統(tǒng)類型以及用戶連接到該地理數(shù)據(jù)庫時(shí)所使用的身份驗(yàn)證類型。例如,如果創(chuàng)建的操作系統(tǒng)登錄帳戶包括域或計(jì)算機(jī)前綴,那么您需要輸入域名或計(jì)算機(jī)名,后加反斜線和用戶名:BARNYARD\user1

?

對版本機(jī)制原理和Oracle中ArcSDE管理用戶策略有了個(gè)大概的了解以后,來看看ArcGIS有關(guān)地理數(shù)據(jù)庫權(quán)限,這些是如何來控制對數(shù)據(jù)的訪問:

在創(chuàng)建版本時(shí),創(chuàng)建者可以指定版本的名稱、可選版本描述和版本的權(quán)限,作為版本的所有者,您可以隨時(shí)更改這些屬性或刪除版本。

您可以設(shè)置版本權(quán)限以防止版本被版本所有者以外的用戶編輯或查看。可對版本設(shè)置下面其中一種權(quán)限:

  • 私有 - 只有所有者或 ArcSDE 管理員可以查看版本和修改已版本化的數(shù)據(jù)。
  • 受保護(hù)的 - 任何用戶都可以查看版本,但是只有所有者或 ArcSDE 管理員可以對具有讀/寫權(quán)限的數(shù)據(jù)庫進(jìn)行編輯。
  • 公共 - 任何用戶都可查看版本。任何具有數(shù)據(jù)集讀/寫(UPDATE、INSERT 和 DELETE 或讀/寫)權(quán)限的用戶都可以修改那些數(shù)據(jù)集。

設(shè)置版本權(quán)限時(shí),要考慮版本的工作流策略以及在該框架下工作的各類用戶的需要。應(yīng)同時(shí)使用版本權(quán)限數(shù)據(jù)集權(quán)限來控制對數(shù)據(jù)的訪問。

設(shè)置權(quán)限時(shí),應(yīng)特別注意 DEFAULT 版本所采用的保護(hù)方式。DEFAULT 版本是地理數(shù)據(jù)庫中所有其他版本的祖先版本,通常代表已發(fā)布的地理數(shù)據(jù)庫版本。對于從 DEFAULT 版本中刪除的任何要素或行,即使這些要素或行已記錄在版本的增量文件中,也無法恢復(fù),除非將數(shù)據(jù)集取消注冊版本(假設(shè)事先未壓縮數(shù)據(jù)庫)。將數(shù)據(jù)集取消注冊版本可以將數(shù)據(jù)集恢復(fù)為上次壓縮數(shù)據(jù)庫時(shí)的配置;不過,所有未壓縮的編輯內(nèi)容都將丟失。鑒于這一點(diǎn),完全有必要保護(hù) DEFAULT 版本以防止發(fā)生意外修改或損壞

可通過三種方法來保護(hù) DEFAULT 版本:

  • 如果已選擇了用戶可直接編輯 DEFAULT 版本的策略,那么您可將新版本創(chuàng)建為 DEFAULT 的只讀存檔版本。任何從 DEFAULT 版本中意外刪除的要素都可以根據(jù)需要從該版本中恢復(fù)。
  • 如果選擇了部分用戶需要直接編輯 DEFAULT 版本的策略,那么您可以使用 DEFAULT 來創(chuàng)建新版本,供其中一些用戶進(jìn)行編輯。
  • 如果選擇了無人直接編輯 DEFAULT 的策略,那么 ArcSDE 管理用戶應(yīng)該將 DEFAULT 版本的權(quán)限設(shè)置為 PROTECTED 而不是 PRIVATE;PRIVATE 會防止除 ArcSDE 管理用戶以外的所有用戶連接到數(shù)據(jù)庫。如果將權(quán)限設(shè)置為 PROTECTED,則任何用戶都可以查看 DEFAULT 版本,但只有 ArcSDE 管理用戶可以對 DEFAULT 版本直接進(jìn)行編輯或協(xié)調(diào)并可從其他版本中將編輯內(nèi)容提交到 DEFAULT 版本。

?

對于版本機(jī)制的實(shí)現(xiàn)原理,版本表的變化是非常復(fù)雜的。尤文G斯博客的博主強(qiáng)烈建議:由于機(jī)制實(shí)現(xiàn)相關(guān)表的關(guān)系比較復(fù)雜,禁止用戶直接利用操作普通表的方法修改SDE庫中版本表的相關(guān)數(shù)據(jù),因?yàn)橐坏┌严嚓P(guān)的狀態(tài)聯(lián)系刪除錯(cuò)誤,那么就意味著你可能要重新建庫。

本人親身體驗(yàn)過由于在SDE中直接操作歷史歸檔相關(guān)表導(dǎo)致的SDE庫混亂的痛苦,所以建議大家遵循ESRI公司的規(guī)則,沒有對機(jī)制更深入的理解還是不要直接去操作相關(guān)表。

轉(zhuǎn)載于:https://www.cnblogs.com/giserxiaoliang/p/3493695.html

總結(jié)

以上是生活随笔為你收集整理的ArcGIS 10——地理数据库管理GIS数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。