傳統版本的理解
1、複製資料
2、鎖定資料
另乙個版本的概念就是多使用者編輯同乙份資料,但是針對某一條記錄來說採取「鎖定—編輯—釋放」的方式進行的,這就制約了長事物編輯的概念。
arcgis版本的理解
arcgis版本與傳統關聯式資料庫的版本(複製、鎖定)有著本質的區別,可以把arcgis版本理解為對資料庫的快照,版本代表著一種狀態,它只記錄編輯變化的資料,所謂變化的資料就儲存在相關的變化表中,沒有變化的資料在物理上只儲存一次,arcgis版本可以為多個使用者建立屬於該使用者自己的版本,每個使用者在對應的版本上可以進行長時間的編輯也就長事物的編輯,而且他們之間互不影響,因為各自編輯的資料都儲存在變化表中。在使用者編輯事物完畢後,可以將對應版本協調相關的父版本,如果有衝突解決相關衝突,協調完畢後可以提交到上一版本了。
使用場景:資料入庫
一般入庫都會直接錄入到目標資料庫中,特別是入增加資料時(表中原來100條,再匯入100條情形),如果出現斷電或者宕機等情況,就會錄入部分資料,而且已經對目標資料庫的相關資料進行了改變,這樣剩下的資料也不知道該從哪條匯入,這就給我們的實際工作帶來了很大不便,但是我們可以利用arcgis版本原理來解決相關問題。我們可以在原有版本基礎上建立乙個子版本,在子版本進行資料入庫,在我們沒有進行協調提交之前,是不會真正改變目標資料庫的,匯入資料其實是在變化的表進行儲存,這樣就是出現非正常的宕機或斷電也不至於對我們的目標資料進行改變。
arcgis版本的工作流程
1.註冊版本
如果資料匯入到arcsde中,那麼在sde使用者下的table_registry表中會有相關的資訊進行註冊,系統就會產生乙個註冊id。當該要素類(featureclass)註冊為版本時,系統就會自動建立a《註冊id>、d《註冊id>兩個儲存資料變化的表。
a表會繼承featureclass同名表(base table)的所有欄位和型別資訊,而且會新增乙個sde_state_id的整型字段,主要記錄增加資料的乙個狀態id。它是串聯版本原理的關鍵值,版本就是通過該值來記錄相關的編輯狀態的。
所有表註冊後,d表的結構都是一樣的。deleted_at是代表編輯刪除的狀態,sde_state_id是代表刪除某個要素對應的狀態。如果sde_state_id=0代表刪除的是base表的資料,如果sde_state_id>0代表是刪除的編輯增加的資料。
table_registry表中的資料
registration_id
database_name
table_name
rowid_column
description
sder
jslobjectid
null
sder
shlobjectid
null
sder
base_table
objectid
null
a9表中的資料
objectid
shape
sde_state_id
a7表中的資料
objectid
shape
sde_state_id
d9表中的資料
states表中的資料
state_id
owner
creation_time
closing_time
parent_state_id
lineage_name
sdesde
sdesde
sdesde
sdesde
sdesde
sdesde
states(編輯狀態表)
mvtables_modified表中的資料
state_id
registration_id
mvtables_modified(多表多版本狀態表)
2.建立子版本
versions表中的資料
name
owner
version_id
state_id
parent_name
parent_version_id
default
sdenull
null
newveision01
sdedefault
newversion02
sdedefault
versions(版本表)
主要是記錄資料的版本資訊以及各個版本對應的最新編輯狀態等資訊。
status:預設為1,表明該版本正在進行版本事務狀態。
state_lineages表中的資料
lineage_name
lineage_id
lineage_name
lineage_id
state_lineages(編輯狀態世系表)
主要儲存針對多版本的相應版本對應的版本狀態。
lineages_modified表中的資料
lineage_name
time_last_modified
-12015-04-17 16:24:39.000
2015-04-17 21:36:23.000
2015-04-17 21:55:27.000
3.編輯版本
4.協調版本
概念:編輯版本、協調版本、子版本、父版本
5.解決衝突
就衝突型別而言,具體有3種型別的衝突:
(1)編輯版本更新而協調版本也更新(updateandupdate)
(2)編輯版本更新而協調版本刪除(updateanddelete)
(3)編輯版本刪除而協調版本更新(deleteandupdate)
6.提交版本
post是將子版本的修改提交到父版本中去。
當資料載入進系統時,table_locks發生變化。
當資料載入進系統時,state_locks發生變化
ArcSDE Version(版本)學習筆記
學習目的 解決具有強審批工作流程中的資料更新 許可權管理和審批。arcgis 版本可以為多個使用者建立屬於該使用者自己的版本,每個使用者在對應的版本上可以迚行長時間的編輯也就是長事務的編輯,而且他們之間互不影響,因為各自編輯的資料都儲存在變化表中。在使用者編輯事務完畢後,可以將對應版本協調相關的父版...
C 運算各版本學習
debug 除數是2 的倍數 除數不是2 的倍數 release版本 1 除數為 2 的倍數 禁止除錯 商是 10 餘數也是 10的 2 除數不為2的倍數 正數 最快速度 流程 10 3 10 2 n 3 2 n 10 2 n 3 1 2 n 2 n 3 幻數 然後將eax 向右移動1f位 31位 ...
thinkphp 3 2 3版本學習筆記
2 開啟除錯模式,有什麼作用?預設關閉,在thinkphp.php 33行左右 1 非法呼叫的時候,有詳細的報錯資訊,便於除錯 thinkphp.php檔案 最底下 2 url模式 1 0 普通模式 2 1 預設模式 pathinfo模式 3 2 重寫模式 4 3 相容模式 若要輸出當前的url模式...