Veri Yönetişimi 3 | Veri Depolama ve Operasyonlar

Muhammet Şancı
10 min readAug 7, 2023

--

Verilerin değerini en üst düzeye çıkarmak için veri gereksinimleri karşılanmalı, bunun içinse etkin bir depolama ve operasyon altyapısı sağlanmalıdır.

İş devamlılığı, veriyle ilişkili faaliyetlerin en önemli gereksinimidir. Bir sistem kullanılamaz hale gelirse, işlemler aksayabilir veya tamamen durabilir. Güvenilir bir veri depolama ve operasyon altyapısı, devamlılık risklerini en aza indirir.

Veri Depolama

Veri depolama ve operasyonların hedefleri aşağıdaki gibidir:

  • Yaşam döngüleri boyunca verilerin kullanılabilirliğini yönetme
  • Veri varlıklarının bütünlüğünü sağlama
  • Veri işlemlerinin performansını yönetme

Veritabanı Kavramları

  • DBMS: Database Management System; veri tabanlarını tanımlamak, yaratmak, kullanmak, değiştirmek ve operasyonel gereksinimleri karşılamak için tasarlanmış yazılım sistemidir.
  • Instance: Farklı depolama alanları kullanılarak eşzamanlı olarak yürütülen her bir veritabanıdır. Bir kuruluş genellikle birden fazla instance sahibidir, her instance diğerlerinden bağımsızdır.
  • Schema: Bir veritabanı içinde yer alan nesnelerin bir alt kümesidir. Şemalar, nesneleri daha yönetilebilir parçalara ayırmak için kullanılır. Genellikle her birinin bir sahibi ve özel bir erişim listesi vardır.
  • Node: Dağıtık bir veritabanının bir parçası olarak veri barındıran ya da işleyen bilgisayardır. Nodelar birleşerek dağıtık veritabanı sistemini oluşturur.
  • Database Abstraction: Tüm veritabanı fonksiyon çağırımları için ortak bir API kullanılmasıdır. Böylelikle bir uygulama, tüm olası veritabanı fonksiyon çağrılarının bilinmesi gerekmeden farklı veritabanlarına bağlanabilir.
  • SLA: Hizmet kalitesi, performansı, sürekliliği ve diğer hizmet taahhütlerini belirten kalite güvencesi belgesidir. SLA, hizmetin ne kadar verimli ve güvenilir olacağını belirleyen önemli bir dokümandır ve beklentileri netleştirmeye yardımcı olur.

Veri depolama ve operasyonları, veri yönetiminin son derece teknik ve ayrıntılı bir tarafıdır. Bu basit kavramlar haricinde daha derinden incelenmesi gereken bazı kavramlar aşağıdaki gibidir:

A. Database Administrator

Database administrator (DBA); en yerleşik ve en yaygın şekilde benimsenen veri uzmanı rolüdür; aynı şekilde veritabanı yönetimi uygulamaları, tüm veri yönetimi uygulamaları arasında en kritik olanıdır.

DBA’lar, veri depolama ve operasyonlarda etkin oldukları gibi; veri güvenliğinde, veri modellemenin fiziksel tarafında ve veritabanı tasarımında da kritik roller oynar.

Birçok DBA, production, application, procedural ve development DBA’ları olarak spesifik alanlarda uzmanlaşır.

B. Veri Yaşam Döngüsü Yönetimi

DBA’lar, tüm yaşam döngüleri boyunca verilerin doğruluğunu ve tutarlılığını korur ve garanti eder.

Yaşam döngüsü yönetimi; verilerin edinilmesi, taşınması, saklanması ve elden çıkarılması için politika ve prosedürlerin uygulanmasını içerir. Tüm görevlerin yüksek kalitede yapıldığından emin olmak için DBA’lar tarafından kontrol listeleri hazırlanmalı; QA standartlarına uyması için belgelenerek denetlenmeli ve takibi yapılmalıdır.

C. Veritabanı Mimarileri

Veritabanı mimarileri, merkezi ve dağıtık olarak iki türe sahiptir.

— C.1. Centralized (Merkezi) Database

Merkezi veritabanları, tüm verileri tek bir yerdeki tek bir sistemde tutar. Tüm kullanıcılar veriler için tek bir sisteme erişir.

Kısıtlanmış veriler için merkezileştirme ideal olabilir, ancak geniş çapta erişilebilir olması gereken veriler için büyük risk teşkil eder. Verilere erişmek için başka bir alternatif olmadığından merkezi sistemde kesinti yaşanması tüm iş süreçlerinin durması anlamına gelir.

— C.2. Distributed (Dağıtık) Database

Dağıtık veritabanları, çok sayıda node üzerinden verilere hızlı erişimi mümkün kılar. Her biri yerel depolama sunan, birbirlerine bir bilgisayar ağıyla bağlı birden fazla makineyle çalışır.

Bir bilgisayar kümesi üzerinde çalıştığından yüksek oranda devamlılık sunar. Herhangi bir node arızalanabilir, ancak tüm sistemin kesintiye uğraması pek olası değildir. Dağıtık veritabanı sistemleri, nodeların bağımsızlığına göre iki türe ayrılır.

— — C.2.1. Non-Federated Distributed Database

Bu sistemde veritabanları arasında merkezi bir kontrol veya koordinasyon yoktur ve veritabanlarının kendi ayrı veri modelleri olabilir. Kullanıcılar bireysel veritabanlarıyla doğrudan etkileşime girer; birleşik bir görünüm yoktur. Küresel veri erişimi ve tutarlılığı açısından verimsizdir.

— — C.2.2. Federated Distributed Database

Birleşik bir görünüm altında kullanılan dağıtık veritabanı sistemidir. Böylece, tüm nodelardan gelen verileri merkezi bir veritabanında fiziksel olarak birleştirmek yerine, sanki tek bir veritabanı kullanılıyormuş gibi sanal bir birleştirme sağlar.

Merkezi bir DBMS tarafından kontrol edilir, yönetilir ve idare edilirler. Kurumsal bilgi entegrasyonu, veri sanallaştırma, ana veri yönetimi gibi heterojen ve dağıtık entegrasyon projeleri için en iyisidir.

D. Database İşleme

İki temel veritabanı işleme türü vardır. ACID ve BASE akronimleri, bu veritabanı işleme türlerine isimlerini verdiği gibi, birbirlerine tamamen zıt olduğunu da belli eder.

— D.1. ACID

Veritabanı işlemlerine tutarlı bir zemin sağlayan bu standart, dört temel ilkeye sahiptir:

  • Atomicity: Ya bir operasyondaki tüm işlemler yapılır, ya da hiçbiri yapılmaz. İşlemlerin bir kısmı başarısız olursa, tüm operasyon başarısız olur.
  • Consistency: Operasyon, sistem tarafından tanımlanan kuralları her zaman karşılamalıdır; yarı tamamlanmış işlemler geçersiz kılınmalıdır.
  • Isolation: Her operasyon kendi içinde bağımsızdır.
  • Durability: Operasyon tamamlandıktan sonra geri alınamaz.

— D.2. BASE

Veri hacimlerinde ve değişkenliğinde benzeri görülmemiş artış, yapılandırılmamış verileri belgeleme ve depolama ihtiyacı ve kesinti planlarında daha fazla esnekliğe duyulan ihtiyaç; ACID ilkelerinin tam tersini savunan BASE modelini ortaya atmıştır:

  • Basically Available: Sistem, node arızaları olduğunda bile erişim konusunda belirli bir düzeyde devamlılığı garanti eder. Veriler eski olabilir, ancak sistem yine de yanıt verecektir.
  • Soft State: Veriler sürekli bir akış halindedir; sistem bir yanıt verebilir, ancak verilerin güncel olduğu konusunda garanti vermez.
  • Eventual Consistency: Veriler nihayetinde tüm nodelarda ve tüm veritabanlarında tutarlı olacaktır, ancak her operasyon her an tutarlı olamaz.

— — D.3. CAP Theorem

CAP teoremi, dağıtık bir sistemin ACID ilkelerine her zaman uyamayacağını iddia eder. Sistem ne kadar büyük olursa uyumluluk o kadar düşük olur. Dağıtılmış bir sistem ACID ilkelerinin tamamına uymaya çalışmak yerine bu ilkeler arasında takas yapmalıdır.

CAP Pick-Two: CAP teoremine göre, dağıtık bir sistem, aşağıdaki üç ilkeden aynı anda yalnızca iki tanesine uyabilir:

  • Consistency: Sistem her zaman tasarlandığı ve beklendiği gibi çalışmalıdır.
  • Availability: Sistem devamlı olmalı ve her isteğe yanıt vermelidir.
  • Partition Tolerance: Sistem, veri kaybı veya kısmi arızalar olduğu durumda operasyonlara devam edebilmelidir.

Bu ilkelerin üçünü birden sağlayabilmenin pek mümkün olmadığını, iki tanesinin seçilerek diğerinin feda edilmesi gerektiği savunulur.

E. Depolama & Database Ortamları

En sık kullanılan fiziksel depolama teknolojileri; storage area networks (SAN), columnar compression, virtual storage area networks (VSAN) ve bulut tabanlı depolama sistemleridir. Veritabanı çalışma ortamları ise ikiye ayrılır.

  • Production Environment: Tüm iş süreçlerinin gerçekleştiği yerdir. Operasyonların yürütüldüğü gerçek ortamdır ve kritiktir, çünkü herhangi bir sorun kayıplara yol açabilir.
  • Pre-Production Environment: Değişiklikleri gerçek ortamda uygulamadan önce test etmek için kullanılır. İş süreçlerini etkilemeden sorunları belirlemeye ve düzeltmeye yardımcı olurlar. Gerçek ortamın ne kadar iyi bir taklidiyse, o kadar iyi performans sunar.

F. Database Organizasyonu

Veritabanları organizasyonları itibariyle üç genel yapıya ayrılabilir.

— F.1. Hierarchical

Bu tip veritabanları, ağaç benzeri veri yapılarını kullanır; parent — child ilişkilerini içerir. XML veritabanları bu yapıya bir örnektir.

— F.2. Relational

Adını matematikteki küme teorisi ve relational algebradan alır; kümelerdeki işlemlerin benzerlerini SQL kullanarak tablolar üzerinde gerçekleştirir. Relational veritabanları row-oriented olup aşağıdaki gibi çeşitlenebilir.

— — F.2.1. Multidimensional

Verileri aynı anda birkaç filtre kullanarak aramaya izin veren bir yapıda saklar. Bu tür bir yapı en çok veri ambarı ve iş zekasında kullanılır.

— — F.2.1. Temporal

Zaman içeren verileri işlemek için yerleşik altyapıya sahip ilişkisel veritabanlarıdır. Finans bazlı sistemlerde daha çok görülür.

— F.3. Non-Relational

Verileri graph, tree, ya da key-value eşleriyle modelleyebilen NoSQL veritabanlarını içerir. Column-oriented, spatial, object, flat-file gibi veritabanları bu yapıya dahildir.

  • Column-oriented yapıdaki veritabanları aggregate işlemleri gerçekleştirirken tüm satırı okumaktansa yalnızca gerekli sütunları okuyarak daha iyi bir performans sağlar. Tüm satırlar için aynı anda bir sütun değeri güncellemesi yapıldığında da yine aynı şekilde hızlı sonuçlanır.
  • Row-oriented yapıdaki veritabanları okuma ve yazma işlemleri gerçekleştireceği zaman bir satırın tamamına tek bir disk aramasında ulaşabildiğinden ötürü yüksek performans sağlar.

G. Özelleştirilmiş Databaseler

Kullanım alanlarından ötürü bazı veritabanları geleneksel olanlarından farklı mimarilere sahip olabilir.

  • Computer assisted design (CAD) uygulamaları, gerçek zamanlı çalışan diğer gömülü uygulamalar gibi object veritabanı gerektirir.
  • Coğrafi bilgi sistemleri (GIS), geospatial (jeo-uzamsal) veritabanlarını gerektirir. Bu tür veritabanları telekomünikasyon ve network yönetiminde veya okyanus navigasyonlarında kullanılır.
  • E-ticaret sitelerindeki alışveriş sepeti uygulamaları, müşteri siparişi verilerini depolamak için ilkin XML veritabanlarından yararlanır.

H. Ortak Database İşlemleri

Mimari yapısı ne olursa olsun, veritabanları bazı temel işlemler içerir.

  • Archiving: Verileri hemen erişilebilen depolama ortamlarından daha düşük erişim performansı sunan ortamlara taşıma işlemidir. Arşivler gerektiğinde kısa süreli kullanım için orijinal ortama geri yüklenebilir. Aktif ihtiyaç duyulmayan veriler, maliyeti azaltmak için arşivlenmelidir. Ancak arşivdeki bu veriler, gerektiği anda erişilebilir olmalıdır.
  • Growth Projections: Bir veritabanı oluşturulurken, ne kadar veri tutacağına dair bir tanımlama yaparak kapasite belirlenmelidir. Verilerin ne kadar süre depolanacağı ve sisteme giren/çıkan veri miktarlarına bağlı olarak bir growth projection oluşturulmalı, gerekirse büyümeye gidilmelidir.
  • Purging: Tüm veriler ana depolama sisteminde sonsuza kadar kalamaz. Nihayetinde, veri birikimi performansın düşmesine sebep olacaktır. Bu noktada bazı veriler arşivlenebilirken, bazılarından tamamen kurtulmak gerekir.
  • Replication: Aynı verilerin birden fazla depolama sisteminde saklanmasıdır. İş yükü, farklı donanımlardaki özdeş veritabanları arasında dağıtıldığı için performans açısından yararlı olduğu gibi; kesinti anlarında devamlılık sunması açısından da iyi iş çıkarır.
  • Resiliency: Dayanlıklılık anlamına gelir. Bir veritabanı sistemi hata durumlarında ne kadar tolerans tanıyabiliyorsa o kadar dayanıklıdır. Bir sistem, yüksek düzeyde hata tolere edebiliyorsa ve yine de beklendiği gibi çalışıyorsa, oldukça dayanıklıdır. Beklenmedik ilk koşulda çökerse, dayanıklı değildir.

Veri Depolama Altyapı Hazırlığı

A. Gereksinimler

  • Depolama Gereksinimleri: Bütün projeler, faaliyete geçtikleri ilk yıl için bir başlangıç kapasitesi tahmini ve sonraki birkaç yıl için bir büyüme tahminine sahip olmalıdır.
  • Kullanım Örüntüleri: Veritabanların bazı kullanım örüntüleri öngörülebilir. Operasyonel, zamana ve konuma bağlı, önceliğe bağlı gibi çeşitlenen bu kullanım örüntüleri önceden tahminlenerek performansı arttırmak için kullanılabilir.
  • Veri Erişimi: Bir veritabanında barındırılan verilerin depolanması, alınması veya bunlar üzerinde işlem yapılmasıyla ilgili faaliyetleri içerir. DBA’lar erişim yetkileriyle ilgili gereksinimlerden de sorumludur.

B. İş Devamlılığı

Verileri kullanma becerilerini etkileyen bir kesinti durumu tüm iş süreçlerini etkiler. Bazı kesinti nedenleri aşağıdaki gibidir:

  • Fiziksel veritabanı sunucusunun kaybı
  • Disk depolama cihazlarının kaybı
  • Veritabanı dizinlerinin bozulması
  • Veritabanı veya log dosyalarının kaybı
  • Operasyon log dosyalarının kaybı

Bu kesintilerin önüne geçilmeli ve iş devamlılığı sağlanmalıdır. DBA’lar sistematik yedeklemeler yapmaktan, veri kurtarma planlarından, yedeklenen verilerin test edilmesinden sorumludur.

C. Performans

Veritabanı performansı iki faktöre bağlıdır: devamlılık ve hız. Bunların sağlanabilmesi için devamlılık yönetimi, sorun yönetimi, ortam yönetimi, operasyon yönetimi gibi konulara odaklanılmalıdır.

Yüksek performanslı bir depolama sistemi; hızlı veri erişimi, düşük gecikme süresi, maliyet ve enerji verimliliği, paralel işlemler ve yüksek eş zamanlılık sağlar.

D. Veri Taşıma

Verilerin depolama türleri, formatları veya bilgisayar sistemleri arasındaki transferlerinin mümkün olduğunca az değişiklik yaparak sağlanmasıdır. Bu süreç, verilerin yeni hedef ortama uygun hale getirilerek sorunsuz bir geçişin sağlanmasını amaçlar.

E. Kullanılabilecek Araçlar

  • Data Modeling Araçları: Önceki yazıda de anlatıldığı gibi bu araçlar, veri modellemeye yardımcı olur. Veri modelleme işlemlerinin çıktıları, veri depolama işlemlerinin girdileridir. Yani veri modelleri, veri depolama sistemlerinin tanımlanması ve yaratılmasında referans görevi görür.
  • Database Monitoring Araçları: Kapasite, kullanılabilirlik, önbellek performansı, kullanıcı istatistikleri gibi temel ölçümlerin otomatik olarak izlenmesini sağlar ve DBA’lara ilgili sorunlara dair uyarılar gönderir.
  • Database Management Araçları: Veritabanı sistemleri genellikle yönetim araçlarını zaten içerir. Bunların haricinde, üçüncü parti bazı yönetim araçları; yapılandırma, güncelleme kurulumları, yedekleme ve geri yükleme, veritabanı kopyalama, test yönetimi ve veri temizleme rutinleri gibi işlevleri içerir.

F. Kullanılabilecek Teknikler

  • Alt Ortamlarda Test: İşletim sistemlerinde, veritabanı yazılımlarında, veritabanı değişiklikleri ve kod değişikliklerinde güncellemeler yaparken, öncelikle en alt seviyedeki pre-production ortamlarında kurulum ve test yapılmalıdır. Bu yaklaşım oluşabilecek aksaklıkların en aza indirilmesine yardımcı olur.
  • Fiziksel İsimlendirme Standartları: Veri mimarları, veritabanı geliştiricileri ve DBA’lar; isimlendirme standartları kullanabilirler. Bu standartlar, veritabanı nesnelerinin ve diğer fiziksel kaynakların adlandırılmasında belirli bir kural ve düzen sağlayarak veritabanının anlaşılabilirliğini ve yönetilebilirliğini artırır.

Veri Depolamanın Uygulanması

A. Hazırlık & Risk Değerlendirmesi

  • Veri Kaybı Hazırlıkları: Veriler teknik ya da stratejik hatalar ile kaybedilebilir. Organizasyonlar riskleri azaltmak için stratejiler belirlemeli ve SLA ile belgelenmiş prosedürlerle desteklemelidir. Sürekli değerlendirme ve veri denetimleri yapılmalıdır.
  • Teknolojik Hazırlık: NoSQL, big data, triple stores ve doküman yönetim sistemi gibi yeni teknolojiler hazır ve deneyimli olunmalıdır. Birçok organizasyon bu teknolojileri kullanacak becerilere sahip değildir.

B. Kültürel Değişim

DBA’ların çalışmalarının değerini etkili bir şekilde iletmesi ve veri sahipleri ile tüketicilerin gereksinimlerini anlaması gerekir. Kısa vadeli ve uzun vadeli gereksinimleri dengelemeli ve organizasyona bu konuda bilinç katmalıdır.

DBA’lar işbirliğine teşvik ederek, proje ekipleriyle aktif iletişim kurarak ve iş hedeflerine odaklanarak bu engellerin üstesinden gelebilir. Başarı için sürekli öğrenme ve gelişme esastır.

Veri Yönetişimi İlişkisi

Veri depolama ve depolanan veriler üzerinde yapılan operasyonlar, veri yönetiminde kritik bir öneme sahiptir.

Veri yönetişimi, verilerin hangi teknolojilerde ne kadar süreyle saklanacağını, kimlerin erişebileceğini ve depolama maliyetlerinin nasıl optimize edileceğini belirleyerek, veri depolama süreçlerini etkin bir şekilde yönlendirir.

Veri Yönetişimi 2 | Veri Modelleme ve Tasarım

Veri Yönetişimi 3 | Veri Depolama ve Operasyonlar

Veri Yönetişimi 4 | Veri Güvenliği

Veri yönetişimi üzerine yazdığım bu yazı, DAMA topluluğunun DMBoK2 kitabında bahsedilen data governance prensipleri üzerine dayanmaktadır. Grafikler tarafımca hazırlanmış olup, izin almak şartıyla kullanılabilir.

--

--

Muhammet Şancı

A developer who loves coffee, and a graphic designer who draws coffee.