Saturday, November 22, 2014

Multiuser Geodatabase Management chapter 2 (Multiuser Geodatabase Editing Behavior)

Editing workflows pada multiuser/SDE geodatabase pada dasarnya ada dua jenis, yaitu NonVersioned dan Versioned editing. Non versioned editing merupakan worflow editing dimana perubahan atas data langsung disimpan di business table/atribut feature class. Workflow ini mirip mekanisme transaksi database pada umumnya. Perubahan pada data menggunakan skema non versioned langsung dapat dilihat oleh semua user yang mempunyai privileges untuk mengakses data tersebut. Sedangkan Versioned editing adalah workflow editing terisolasi, dimana seluruh perubahan yang dilakukan oleh seorang user tidak langsung disimpan ke dalam data, tetapi disimpan dalam sebuah delta table untuk direview sebelum data disimpan ke business table. Selain itu ada juga jenis Versioned editing yang memungkinkan untuk perubahan langsung disimpan di business table/atribut, workflow ini disebut workflow hybrid.

Versioned/Non versioned editing hanya bisa dilakukan di level feature class dan feature dataset yang berisi data vektor (tidak berlaku untuk data raster).

1. Workflow Non Versioned

NonVersioned editing memungkinkan untuk data yang diedit oleh berbagai user langsung disimpan di business table/atribut feature class, dan hasil perubahan langsung dapat dilihat oleh user lain baik sebelum dilakukan maupun sesudah dilakukan commit/save edit.

dalam keterkaitannya dengan DBMS yang dipakai, ada sedikit perbedaan dalam cara penampilan data di skema NonVersioned. Untuk DBMS Microsoft SQL Server metode yang dipakai adalah "read uncomitted", artinya segala perubahan terhadap data langsung dapat dilihat oleh user lain, walaupun perubahan belum disimpan/save edit/commit. Sedangkan untuk Oracle, PostgreSQL, informix, DB2, metode yang dipakai adalah "read comitted", artinya segala perubahan terhadap data tidak bisa langsung dilihat oleh user lain sampai si editor melakukan commit/save edit/stop editing.

Dalam skema NonVersioned, seorang user tidak dapat meng-edit feature yang sedang diedit oleh user lain (locked), user kedua akan menunggu (ditunjukkan dengan ikon hourglass di pointer ArcMap) sampai editor pertama menyelesaikan editingnya (save edit). Workflow seperti ini akan menyebabkan rawan konflik terhadap data. Contoh misalnya dalam waktu yang hampir bersamaan, seorang editor A memindahkan data titik bandara dari satu tempat ke tempat lain, dan editor B memindahkan lokasi bandara tersebut ke titik yang berbeda dari editor A. Karena editor A telah memulai editing lebih dulu dari B, maka B akan menunggu A menyelesaikan editing baru si B bisa menyimpan hasil editannya. Karena si B memindahkan lokasi bandara ke posisi yang berbeda dengan si A, maka hasil editan A akan di "overwrite" editan B sehingga A akan melihat posisi editannya berubah ke posisi editan B. Ini adalah sisi jelek dari Non Versioned, karena editing ada kemungkinan menjadi konflik dan tidak beraturan/tidak terkontrol. Strategi untuk mencegah hal tersebut diantara dengan cara pembagian area kerja.

Prosedur Editing Non Versioned sebagai berikut :

1. Dari Editor Toolbar, klik Options, Buka Versioning Tab, Uncheck Versioned editing check box seperti gambar di bawah. Checkbox automatically save changes after each edit ditujukan untuk mengatur apakah setelah diedit data langsung disimpan ke dalam database atau tidak.


2. Start Editing


2. Workflow Versioned. 

Workflow versioned berbeda dengan Non Versioned, dimana pada workflow versioned, setiap user yang meng-edit data diharuskan mengatur dan membuat "version" untuk hasil editannya, yang kemudian version-version tersebut akan di-review oleh database administrator (akun sde) sebelum perubahannya disetujui dan dimasukkan ke dalam business table/atribut feature class. Untuk memungkinkan editing dalam mode versioned, editing toolbar di ArcMap harus diatur kembali ke mude default dengan cara mengaktifkan kembali (check) pilihan "Edit a version of the database with ability to redo and undo".

Untuk me-register sebuah feature class/feature dataset agar bisa dilakukan editing mode versioned, tahapannya adalah sebagai berikut.

1. Dari catalog window atau arccatalog, klik kanan feature dataset/class, kemudian pilih manage lalu pilih register as versioned. Pengaturan register as versioned hanya bisa dilakukan oleh akun "data owner" atau "database administrator".



3. Workflow Hybrid

Workflow versioned hybrid dapat dieksekusi dengan cara ketika register as versioned, centang box "register with the options to move edit to the base"




4. Lebih Jauh Tentang Version

Sejatinya apapun workflow yang dipakai, Editing SDE geodatabase selalu menggunakan sebuah version. Version bisa ditahan untuk dievaluasi sebelum dipublish (versioned) atau langsung dipublish di data spasial langsung (non versioned).  Version merupakan media evaluator terhadap hasil editing. Hasil editing selalu ditampilkan dalam sebuah version. Version DEFAULT merupakan version awal yang digunakan dalam editing data, apapun jenis workflownya. Version DEFAULT nanti diturunkan menjadi version turunan dan workflow versioned. Setiap editor memiliki satu Version. Version DEFAULT dimiliki dan hanya dapat diubah oleh Database Administrator (akun sde/dbo).

Contoh Tabel Version



name = nama version
owner = pemilik version
version_id = unique number assigned to version owner
status = representasi level version
state = seting permission
parent name = nama version induk
parent owner = nama pemilik version induk


Version dibuat dalam skema tree child parent, artinya setiap version turunan pasti mempunyai version induk/asal.

Status version terdiri dari 3 nilai, yaitu 0 (private version), 1 (public version) dan 2 (protected version). Private version merupakan version awal yang hanya bisa diakses oleh geodatabase administrator. Public version merupakan version yang bisa diakses dan diedit oleh semua user yang mempunyai privileges. Protected version merupakan version yang dapat dilihat oleh semua user yang mempunyai privileges, tetapi hanya bisa diedit oleh pemilik version.

Bentuk child parent tree dari version direpresentasikan oleh kolom parent owner dan parent ID, dimana setiap version pasti mempunyai parent version dan parent ID.

Skenario Version based Editing ada 3 Jenis

1. All editors directly edit the DEFAULT version
di skenario ini seluruh editor dapat mengedit version DEFAULT pada waktu yang sama. Setelah disimpan seluruh user akan dapat melihat secara langsung hasil perubahan. skenario ini rawan locks dan conflict editing karena ada perlombaan editing (siapa cepat dia dapat, tapi siapa menyimpan belakangan dia menang)

2. Editors edit in separate version from DEFAULT version.
Skenario ini memungkinkan setiap editor untuk mempunyai version masing-masing dalam proses editing. Seluruh version yang dihasilkan akan direview oleh database administrator untuk kemudian ditentukan mana yang akan disimpan di business table. skenario ini tidak rawan locks dan conflict. DEFAULT version juga aman dari intentional change.

3. Add a Surrogate of Default as QA Tier
Skenario ini memasukkan sebuah version Quality Assurance di bawah DEFAULT Version. Skenario ini merupakan win win solution atau hybrid dari skenario 1 dan 2, dimana skenario ini memungkinkan seluruh user meng-edit version yang sama, tetapi DEFAULT version tetap aman dari perubahan yang rawan kesalahan. Hasil dari QA version dimasukkan ke DEFAULT version setelah dilakukan conflict management.

Untuk melihat sebuah koneksi DBMS sudah mempunyai version apa belum dapat dilihat di Geodatabase Connection Properties.


Dalam kondisi seperti gambar di atas, jika anda langsung melakukan editing data, berarti anda menggunakan skenario 1.

Untuk menjalankan skenario 1 dan 2, anda harus membuat version baru.

1. Right click nama koneksi, pilih Administration > Administer Geodatabase. Contoh hasil seperti gambar di bawah.


Di atas dapat dilihat baru ada satu version, yaitu DEFAULT. Anda dapat mengubah instance default version ke protected agar DEFAULT tidak diubah secara serampangan.

Version turunan selalu dihasilkan dari Version DEFAULT, Untuk membuat version turunan klik kanan nama version > New Version (setiap user yang dapat mengakses Default version dapat membuat sebuah version baru).


Anda bisa memberi nama, memberi deskripsi, dan status version, apakah public, private atau protected.



Proses Editing Menggunakan Versioning

Editing berbasis versioning dalam sesi editing ArcMap dapat dilakukan menggunakan dua cara

1. Tab List By Source di Table Of Content ArcMap. Disini version yang digunakan pertama kali adalah version DEFAULT sesuai dengan setingan Geodatabase. Kita bisa mengganti ke version lain dengan cara Right Click Version > Change Version.




2. Menggunakan Versioning Toolbar, Versioning toolbar memberikan tool untuk mengatur versioning, mulai dari membuat, mengganti, menghapus, dan memindahkan version