KONUMSAL VERİTABANI II - Ünite 7: Konumsal Veritabanında Sürüm Yönetimi Özeti :

PAYLAŞ:

Ünite 7: Konumsal Veritabanında Sürüm Yönetimi

Giriş

Modern CBS ile çalışmanın sağladığı en büyük kazanım, konumsal veri ve bilginin yönetimini, konumsal veri tabanı üzerinden sağlamasıdır. Kurumsal çözümlerde tüm konumsal veriler merkezi bir veritabanında sağlıklı bir şekilde toplanır ve yönetilir. Çok kullanıcılı sistemlerde merkezi bir veritabanı, sağladığı fonksiyonellikle veritabanı yönetiminde karşılaşılabilecek, veri tekrarı, veri tutarlılığı, veri bütünlüğü veri güvenliği gibi sorunların meydana gelmemesinde büyük rol oynamaktadır.

Dağıtık CBS, sistem bileşenlerinin aynı fiziksel ortamda bulunmadığı coğrafi bilgi sistemleridir.

Bir Konumsal Veritabanı Sisteminde;

  • Veri kümelerindeki güncellemeler, çoklu kullanıcılar tarafından simultane bir şekilde düzenleniyorsa,
  • Konumsal veritabanı sunucusunda, düzenlemeye tabi konumsal nesneler, geometrik ağlar, ağ veri kümeleri gibi veri yapılarının birer parçası iseler,
  • Konumsal veritabanı kopyalarını kullanan dağıtık CBS işlemlerinde,
  • Konumsal veritabanı arşivlemesi için, veri kümelerinin tarihsel kayıtları oluşturuluyor ve saklanıyorsa,

belirtilen koşullarda avantajlı bir kullanıma sahip olunması için sistemde sürümleme kullanılmalıdır.

Sürümlerin Özellikleri

Sunucu ortamlarındaki konumsal veritabanlarında her zaman en üst seviyede bir sürüm bulunmaktadır. Bu süreme saptanmış sürüm denilmektedir. Saptanmış sürüm, konumsal veritabanındaki verinin en güncel halidir. Görünenin tersine sürüm oluşturulursa veri kopyalanmış olmaz. Sistem bunun yerine veri düzenlerken, sürümlenmiş veri kümeleriyle ilişkili yeni tablolar kullanılır. Bu tablolara delta tabloları denilmektedir.

(Sayfa:146, Şekil 7.1’de Parsel tablosu ve konumsal gösterimi gösterilmiştir.)

Tablodaki düzenlemeye göre aynı anda iki kullanıcı tarafından sürüm yöntemiyle yapılır. Her iki kullanıcı da konumsal nesne tablosunu simultane bir şekilde sürümlemiş ve yaptıkları düzenlemelerde birbirlerinin çalışmalarını görmemektedirler.

(Sayfa:147, Şekil 7.2’de İki kullanıcının simultane olarak parsel konumsal nesne tablosunu sürümleme ile güncelleştirmesi gösterimi yapılmıştır.)

Sürümleme CBS yazılımları yalnızca sunucu versiyonlarında kullanılır. Dosya tabanlı konumsal veritabanlarında ya da kişisel konumsal veritabanlarında uygulanamazlar. Sürüm oluşturulmuş iş akışlarında her simultane kullanıcı, düzenlemesini kendi oluşturduğu anlık görüntüde uygular.

(Sayfa:147, Şekil 7.3’te bir konumsal veritabanı için oluşturulmuş sürümlerin ağaç formu görünmektedir. Üst sürüm, saptanmış sürümdür. Saptanmış sürümün üç alt sürümü bulunur)

Konumsal veritabanında oluşturulmuş her sürümün bir sahibi, açıklaması ve yetki seviyesi bulunur. Sürümü ilk oluşturan kişi sürümün sahibidir. Sürümü oluşturan kişi, sürüme açıklama ekleyebilir, sürümü kullanacak olanların kullanım yetkilerini kısıtlayabilir. Sürüm kullanıcılarını yetkilendirir ve çoklu kullanıcıların düzenlemelerini kontrol eder.

Kullanıcılara tanımlanacak yetki seviyeleri şunlardır.

  • Özel: Sürümde görüntüleme ve düzenleme işlemlerini sadece sürümü oluşturan kişi yapabilir.
  • Korumalı: Bütün kullanıcılar sürümde bulunan veri kümelerini görüntüleyebilir ancak sadece sürüm sahibi düzenleme yapabilir.
  • Açık: Bütün kullanıcılar, sürümde yer alan veri kümelerini görüntüleyebilir ve düzenleyebilir.

Sürümlemede Değişikliklerin Oluşturulması

Sürümleme işleminde, sürüm kullanan veri kümelerinde, verilerin bir kopyası üretiliyormuş gibi bir izlenim oluşsa da sistem bu şekilde çalışmaz. Sürümleme basit olarak yapılan değişikliklerin takibi ve uygulanmasından meydana gelir. Konumsal veri tablolarında yapılan değişikliklerin takibi delta tabloları olarak adlandırılan tablolardan yapılır. Üretilen, güncellenen ve silinen konumsal nesnenin özellikleri bu tablolarda saklanır. Delta tabloları ile sürümleme, kullanıcılara kendi konumsal verisini düzenlemede bağımsızlık sağlar. Sürümleme çalışmaya başladığında ilk yapılması gereken, düzenleme yapılmak istenen konumsal veri setinin, sürüm olarak tescillenmiş olması gerekmektedir.

(Sayfa: 149, Şekil 7.4’te sürüm yönetiminin delta tabloları ile çalışma yöntemi gösterilmiştir.)

Şekil 7.4’te konumsal bir nesneyi eklerken, silerken ya da güncellerken delta tablolarının davranışları görülür. Birinci örnekte, konumsal nesne tablosu sürüm olarak tescillendikten sonra onunla ilgili delta tabloları oluştuğu görülür. İkinci örnekte sürümlenmiş, konumsal nesne tablosuna, konumsal bir nesne eklenmiştir. Delta tablolarından ekleme kısmına bu nesnenin, nesne bilgileri yanında sürüm durumunu belirten numara eklenmiştir. Üçüncü örnek silinen bir nesneye ait bir özelliktir. Delta tablosunda, silindikten sonraki sürüm numarası hangi nesnenin hangi sürümden silineceğini gösterir. Dördüncü örnek, bu işlemlere ek olarak veri güncelleme işlemi gösterilir. Bu aşamada ekleme tablosunda ve silme tablosunda kayıt görülür.

Sürümlerin Uyumu Ve İşleme Konulması

Sürümlenmiş veriyle çalışmanın normal veriyle çalışmak arasında büyük fark olmaz. Veriyi sunucudan çağırırken oluşan tek fark oluşturulmuş sürümlerden birini seçmektir.

Alt dallardaki çalışına sürümlerde düzenlenen verinin, üst sürümlerden önce geçirdiği bir aşama bulunur. Sürümlemede daha önce bahsedildiği gibi kilit sistemler kullanılmaz. Aynı anda birden çok kişinin çalışmasını engelleyen aynı veri üzerinde bir alt yapı yoktur.

Veri düzenleme aşamasında iki tür çakışmayla karşılaşılabilir. Bunlar şu şekilde açıklanır.

  • Düzenlenen konumsal nesnenin başka biri tarafından da aynı sürümle aynı anda güncellenmesi,
  • Düzenlenen konumsal nesnenin çalışılan farklı bir sürümde düzenlenmesi ya da silinmesi.

(Sayfa: 15, Şekil 7.5’te Uygunluğun sağlanması sürecinde, hedef sürümde gerçekleşen parsel konumsal nesnesine ait düzenlemeler, düzenleme sürümüne yansımıştır.)

Bu çakışmalardan oluşan problemleri çözmek için verilerin belli bir uzlaşım içinde olmalıdır. Bu uzlaşımın gerçekleştirildiği aşamaya sürümlerin uygunluğunun sağlanması denir. Sürümlerin uygunluğu sağlanırken sürümler karşılaştırılır. Konumsal nesneler düzenlenirken bir çakışmayla karşılaşılırsa, yazılımın bu çakışma durumu için sürümlerden hangisinin kullanılacağını soran bir seçenekle karşı karşıya kalınır.

(Sayfa: 150, Şekil 7.6’da Gönderim sürecinde, düzenlenen sürümde gerçekleştirilen parsel konumsal nesne düzenlemeleri hedef sürüme yansıtıldığı şekilde gösterilmiştir.)

Sürümlerin karşılaştırılmasıyla çakışma sorunları bir karara bağlandıktan sonra düzenlenmiş sürümün işleme konma aşaması gelir. Oluşturulan düzenleme sisteme gönderilince verilen karara göre hedef ve düzenlenen sürümlere göre saptanmış sürüm güncellenir. Bu işlem sırasında sistemde güncelleme yapan başka kullanıcı varsa kendi sistemini güncelleyene kadar oluşan yeni durumu göremez. Gönderilme işlemi bir kez yapılınca geri alınması mümkün değildir.

(Sayfa: 151, Şekil ‘de Sürüm yönetimi senaryo örneği şekillerle gösterimi yapılmıştır.)

Şekil 7.7’de sürülmemenin uygulanmasına yönelik bir örnek görülmektedir. Yerel yönetimlerden sular idaresine yönelik bir konumsal veritabanı tasarımında, alt yapıyı oluşturan vanalar, pompalar, su boruları ve bileşenleri konumsal nesne olarak tanımlanmıştır. Bölgede yeni kurulan konutların alt yapısı yetersiz olmuş, bu nedenle yönetim yeni su hatlarının döşenmesiyle projede genişletme yapmak istemektedir. Bu işlemlerden sonra genişletme projesi de tamamlanmış, tasarımın doğruluğu gözden geçirilmiş, karşılaştırmalar yapılmış ve tasarlanan sürüm saptanmış sürüme gönderilerek güncelleme yapılmış olur.

Sürüm Senaryoları

Konumsal veritabanı sürümleri, farklı birçok iş akış sürecini destekleyebilir. Organizasyonların birçoğunda iş akışı, ayrık dönemlerde gelişim gösterir. İş akışındaki her dönem projedeki farklı bir iş yada göreve karşılık gelmektedir. Her görev ve işin yönetimi için ayrı bir sürüm oluşturulabilir.

(Sayfa: 152, Şekil 7.8’de Sürüm ağacı, iş akışı ayrık evrelerin gösterimi yapılmıştır.)

Sürüm ağacı, konumsal veritabanında sürümleri ve ilişkilerini göstermede kullanılan yaygın bir semboldür. Bir sürüm ağacı oluşturulurken, organizasyonun iş akışına bağlı olarak istenilen sayıda dal oluşturulabilir. İş akışının yönetimini basitleştirmek ağaç dallarının derinlemesine değil, yatayda çoğalması ile sağlanır.

Sürüm uygulama örneklerinden yaygın olarak kullanılanlardan bazıları şunlardır.

  • Saptanmış sürümün eş zamanlı düzenlenmesi
  • Çoklu projeler
  • Kalite kontrol sürümlü çoklu projeler
  • Tarihsel arşivleme
  • Konumsal veritabanı replikasyonu

Saptanmış Sürümün Eş Zamanlı Düzenlenmesi

Çok kullanıcılı uygulamalarda, sürüm uygulamasının en basit metodu saptanmış sürümün doğrudan düzenlenmesidir. Bu iş akışında açık bir şekilde, hiçbir kullanıcı yeni bir sürüm oluşturma ihtiyacı duymaz. Saptanmış sürümde düzenleme yapılmaya başlandığında, konumsal veritabanı düzenlemelerin işleme konuna kadar diğer düzenlemelerden izole olarak saklanabileceği isimsiz ve geçici bir alan yaratır.

(Sayfa: 152, Şekil 7.9’da eş zamanlı düzenleme örneği gösterilmiştir.)

Çoklu Projeler

Eğer çoklu projelerin ya da çalışma düzeninin yönetildiği bir veritabanından bahsediliyorsa iş akışı yönetimi için daha iyi yapılandırılmış bir yaklaşıma ihtiyaç vardır. Veritabanındaki proje ve çalışmalar, birçok düzenleme oturumu içerebilir ve bu işlerin süreçleri birbirinden çok farklı olabilir. Bir veya daha fazla kullanıcı bu sürümleri proje tamamlanıncaya kadar açık tutar. Sürümlerde bulunan bütün değişiklikler tamamlanınca kullanıcılar, alt sürümdeki değişiklikler alt sürümle birleştirilir. Proje bitince birleştirilen alt sürümler daha fazla ihtiyaç duyulmayacağından dolayı sistemden silinir. Bu tür yapılarda sistem yöneticisi gerektiğinde kullanıcı yetkilerini kısıtlayabilir.

Bu sistemin avantajları her iş birimin mantıksal bir yolla sürüm olarak ayrılması, birçok düzenlemenin yapılmasına imkân sağlayan uzun işlem süreçleri, kullanıcı kısıtlaması getirilmesi, karşılaştırma ve gönderim süreçlerini desteklemesi sayılabilir. Sistemin çok katlı sürüm konfigürasyonuna olanak sağlaması, delta tablolarındaki kayıt sayısını arttırarak sorgulamada ciddi performans sorunlarına yol açacaktır. Yapılan düzenlemelerin belirli aralıklarla güncellenmesiyle performans sorunu azaltılabilir.

(Sayfa: 153, Şekil 7.10’da çoklu proje örneğinin gösterimi yapılmıştır.)

Ayrık projelerden parselle ilgili bir çalışma bir hafta sürerken, adresleme sürümündeki çalışma altı ay ya da su alt yapısıyla ilgili çalışma birkaç hafta sürer. Bu şekilde bir çalışma başlatıldığında, saptanmış sürümün altında alt sürümler oluşturulacaktır.

Kalite Kontrol Sürümlü Çoklu Projeler

Çoklu projelerin iş akışında bir başka yöntem olarak, kalite kontrol sürümü karşımıza çıkmaktadır. Oluşturulan stratejide, saptanmış sürümden sonra onun kopyası bir sürüm daha oluşturulur, oluşturulan alt sürümler ara sürüme bağlanır.

(Sayfa:154, Şekil 7.11’de Kalite kontrol sürümlü çoklu proje örneği gösterilmiştir.)

Bu şekilde kullanıcılar hiçbir şekilde doğrudan saptanmış sürümle bağlantı kuramazlar, yaptıkları düzenlemeler ara sürümde güncellendikten sonra işi sadece doğruluğunu denetlemek olan bir kalite yöneticisinin kontrolüne gelmektedir. Yapılan düzenlemeler ve birleştirme işlemlerinde bir sorun olmazsa bu aşamadan sonra sürüm güncellenir.

Tarihsel Arşivleme

Konumsal veritabanını arşivleme, sürüm oluşturulmuş bir veritabanında yapılan değişiklikleri kaydetme ve kayıtlara ulaşma imkânı sağlar. Bu yapıda sürümlemeye ek olarak yapılacak olan değişiklikler tarih olarak kaydı yapılır. Arşivleme fonksiyonu aktif edildiğinde konumsal nesne için sürüm oluşturulursa yapılan değişikliklerin bilgisi arşiv tablolarında saklanır. Arşiv tablosunda iki tane tarih alanı bulunmaktadır. Bu iki alan iki tarih değeri için verilen değişikliklerin hangi tarihlerde yapıldığını gösteren zaman aralığı oluşturmada kullanılır.

(Sayfa: 154, Şekil 7.12’de Ana tablo ve arşiv tablosu arasındaki farkın gösterimi yapılmıştır.)

Arşivi yapılmış bilginin konumsal nesneler ile ilgili zamana göre sorgulamalar yapılabilmektedir. Bir parselin verilen tarih değerine göre nasıl göründüğü sorgulanabilir.

(Sayfa: 155, Şekil 7.13’de bir parselin farklı tarihler için arşivde sorgulanmasının şekillere göre gösterimi yapılmıştır.)

Konumsal veritabanında arşivleme, sürümlemenin özelleştirilmiş bir durumudur. Sürümlemede yapılan değişiklikler oluşturulan arşiv tablosunda yapılamaz. Bu tabloda bulunan veriler sadece okunabilir türden verilerdir.

Farklı tarihlerde sorgulama yapıldığında konumsal veritabanının o tarihteki görünümü izlenebilir. Yapılan sorgulamaya göre farklı tarihlerde konumsal verinin şekil olarak farklı olduğu gözlenir.

Konumsal Veritabanı Replikasyonu

Sürümlenmiş veritabanlarının ilginç özelliği de yapılan değişikliklerin paylaşılabilmesi ve senkronize edilebilmeleridir. Sürümleme, kullanıcılara tanımlanan hiyerarşide kullanılan sürümler arasında yapılan düzenlemeleri birleştirme imkânı sağlar. Konumsal veritabanı replikasyonu sürümleme alt yapısını genişleterek, çoklu konumsal veritabanları arasında değişiklikleri birleştirme imkânı sağlar. Bir şehrin CBS departmanı veritabanında yapılan bir değişikliğin şehrin itfaiye, polis ve planlama gibi farklı departmanlarına yayınlayabilir. Konumsal veritabanının, başka konumsal veritabanlarıyla nasıl senkronize olacağı, senkronizasyon özelliklerinden sağlanır. Senkronizasyon düzenli bir aralığa takvimlenebilir ya da belirlenen bir an için gerçekleştirilir.

Konumsal veritabanı replikasyonu CBS yazılımlarının sağladığı bir veri dağılım metodudur. Konumsal veritabanı replikasyonu ile veri, karşılıklı iki ya da daha çok konumsal veritabanı arasında veri setinin tamamının veya bir parçasının çoğalmasıyla dağılmaktadır. Bir veri seti çoğaldığında, verinin bir kopya çifti oluşur. Oluşan çiftlerden biri orijinal konumsal veritabanında bulunurken, diğer çift ise farklı bir konumsal veritabanında bulunur. Kopyaların birinde yapılan bir değişiklik sonrasında diğer kopyasıyla senkronize edilerek verilerin eşleştirilmesi yapılır.

(Sayfa:156, Şekil 7.14’de Alt ve üst replikasyonlar simultane bir şekilde düzenlenebilen konumsal veritabanlarıdır. Şekilde replikasyonlar arası ilişki ağaç şema olarak gösterimi yapılmıştır.)

Replikasyonların anlaşılmasını kolaylaştırmak adına bazı temel özellikleri şu şekilde sıralanır.

  • Bir SDE konumsal veritabanının saptanmış sürümünden ya da herhangi bir sürümünden bir replika oluşturulabilir.
  • Bir konumsal veritabanındaki veri setinin belli bir bölümünden replika oluşturulabilir. Veritabanının tamamının çoğalmasına gerek yoktur.
  • Replika belirlerken, tanımlayıcı sorgular, konumsal filtreler ve seçim kümeleri gibi kısıtlayıcılar kullanılabilir.

Konumsal veritabanında replikasyon üç şekilde gerçekleşmektedir. Bunlar;

  • Çıkış-giriş yapan replikasyon
  • Tek yönlü replikasyon
  • Çift yönlü replikasyon

Çıkış-giriş replikasyonunda, veri başka bir konumsal veritabanına kopyalanır ve kopyalandığı yerde veri düzenlemeleri gerçekleştirilir. Düzenlemeler bitirildiğinde, derlenmiş veri orijinal konumsal veritabanına geri transfer edilir. Bu replikasyon türünde veri giriş işlemi yalnızca bir kez gerçekleştirilebilir. Giriş yapılan veride tekrar düzenlemeye ihtiyaç olursa, yeni bir çıkış yapan replikasyonun oluşturulması gerekir. Bu tipte üst replikasyon ile alt replikasyonda tek yönlü ve tek seferli bir senkronizasyon bulunur.

(Sayfa: 156, Şekil 7.15’de çıkış-giriş replikasyonu gösterilimi yapılmıştır.)

Üst replikasyon SDE konumsal veritabanı yapısında olabilirken, alt replikasyon SDE, kişisel ya da dosya tabanlı konumsal veritabanı formatlarında olabilirler.

Tek yönlü replikasyon, üstten alta ya da alttan üst replikasyona doğru senkronizasyonun birçok defa sağlanabildiği replikasyon tipidir. Tek yönlü replikasyonlar, sürekli düzenlemelerin yapıldığı bir konumsal veritabanının yönetiminde ya da Web tabanlı harita servisi gibi sürekli güncellenen yayın amaçlı konumsal veritabanlarının yönetiminde kullanılabilir.

(Sayfa:157, Şekil 7.16’da tek yönlü replikasyonda da üst replikasyon SDE konumsal veritabanı yapısında olabilirken, alt replikasyon SDE, kişisel ya da dosya tabanlı konumsal veritabanı formatlarında olabilir.

(Sayfa:157, Şekil 7.17’de Çift yönlü replikasyonun gösterimli yapılmıştır.)

İki yönlü replikasyon tekrar tekrar replika oluşturmadan, yapılan düzenleme ve değişikliklerin hem alt replika yönünde hem üst replika yönünde defalarca senkronizasyonuna olanak veren replikasyon tipidir. Senkronizasyon ayrı ayrı iki yönde olabileceği gibi aynı anda iki yöne de gerçekleştirilebilmektedir.