Bir üretim uygulamasında aynı iş emrine ait ürün, makine, zaman, duruş ve kalite kayıtları bulunabilir. Bu verileri ayrı dosyalarda tutmak başlangıçta kolay görünür; kayıt sayısı arttığında hangi dosyanın güncel olduğu, iki kullanıcının aynı kaydı nasıl değiştireceği ve geçmişe nasıl dönüleceği sorun hâline gelir. Veri tabanı yönetim sistemi (DBMS), veriyi belirli kurallarla saklamak, sorgulamak, güncellemek ve yetkili uygulamalara sunmak için kullanılan yazılım katmanıdır.

DBMS seçimi yalnızca marka karşılaştırması değildir. Veri modeli, işlem tutarlılığı, sorgu biçimi, beklenen yük, yedekleme ve geri dönüş ihtiyacı birlikte düşünülmelidir. İlişkisel bir sistem birçok iş uygulaması için uygun olabilirken, belge, zaman serisi veya anahtar-değer modeli bazı iş yüklerinde daha doğal bir yapı sunabilir.

Veri tabanı ve DBMS nedir?

Veri tabanı, birbiriyle ilişkili kayıtların belirli bir düzen içinde saklandığı veri bütünüdür. Veri tabanı yönetim sistemi ise bu verinin nasıl oluşturulacağını, okunacağını, değiştirileceğini ve korunacağını yöneten yazılımdır. Uygulama doğrudan rastgele dosyalara yazmak yerine DBMS ile konuşur; DBMS de depolama, sorgu, işlem ve erişim kurallarını uygular.

Veri tabanı ile DBMS aynı şey değildir. Bir kitaplık benzetmesi yaparsak raflardaki kitaplar veri tabanına, katalog ve ödünç alma kurallarını yürüten sistem ise DBMS’ye karşılık gelir. Gerçek sistemlerde veri dosyaları, günlükler, indeksler, kullanıcı rolleri ve yapılandırmalar birlikte çalışır.

RDBMS, ilişkisel veri tabanı yönetim sisteminin kısaltmasıdır. Veriyi satır ve sütunlardan oluşan tablolarda tutar; tablolar arasındaki ilişkileri anahtarlarla ifade eder. Her DBMS ilişkisel değildir. Belge, grafik, anahtar-değer ve zaman serisi gibi farklı modelleri kullanan sistemler de bulunur.

Veri tabanı yönetim sistemi ne işe yarar?

DBMS’nin sağladığı işlevlerin kapsamı ürüne ve kuruluma göre değişir. Yaygın görevler şunlardır:

  • Veri modelini tanımlamak: Tablo, alan, veri tipi, ilişki, koleksiyon veya belge yapısını oluşturmak.
  • Kayıt eklemek ve güncellemek: Uygulamanın oluşturduğu veriyi belirli kurallara göre saklamak.
  • Sorgu çalıştırmak: Filtreleme, sıralama, birleştirme ve toplama işlemleriyle gerekli kaydı bulmak.
  • Bütünlük kurallarını uygulamak: Zorunlu alan, benzersizlik ve referans ilişkisi gibi kuralları denetlemek.
  • Eşzamanlı erişimi yönetmek: Birden fazla kullanıcının aynı anda yaptığı işlemler arasındaki çakışmaları kontrol etmek.
  • Kimlik ve yetki yönetmek: Kullanıcı veya uygulamaların hangi verilere hangi işlemle erişebileceğini sınırlamak.
  • Yedekleme ve geri dönüşü desteklemek: Arıza veya hatalı değişiklik sonrasında verinin geri alınabilmesi için araçlar sağlamak.
  • İşletim durumunu izlemek: Bağlantı, sorgu süresi, depolama, kilit ve hata kayıtlarını takip etmek.

Bu özelliklerin menüde bulunması tek başına güvenilirlik sağlamaz. Yetkilerin nasıl verildiği, yedeklerin gerçekten geri yüklenip yüklenemediği ve izleme alarmlarının kim tarafından takip edildiği operasyon prosedürüyle belirlenir.

Yaygın veri tabanı türleri

Model Verinin düzeni Uygun olabilecek iş yükü Dikkat edilmesi gereken
İlişkisel Tablolar, satırlar, sütunlar ve anahtar ilişkileri Sipariş, iş emri, stok, finans ve işlem kayıtları Şema değişikliği ve ilişkilerin doğru tasarlanması
Belge tabanlı JSON benzeri esnek belgeler ve koleksiyonlar Değişken alanlı kataloglar, içerik ve uygulama verisi Tekrarlanan veri ve tutarlılık sınırları
Anahtar-değer Benzersiz anahtar ve ona bağlı değer Önbellek, oturum ve çok hızlı basit erişim Karmaşık ilişki ve sorguların sınırlı olması
Grafik Düğümler ve aralarındaki bağlantılar Ağ, rota, bağımlılık ve ilişki analizi Modelleme ve sorgu uzmanlığı gerektirmesi
Zaman serisi Zaman damgalı ölçüm ve olaylar Sensör, sayaç, makine durumu ve performans ölçümleri Saklama süresi, veri yoğunluğu ve toplulaştırma

“NoSQL” tek bir veri modeli anlamına gelmez. İlişkisel olmayan farklı sistem aileleri için kullanılan geniş bir ifadedir. Bazı NoSQL sistemleri SQL benzeri sorgu dilleri sunabilir; bazı ilişkisel sistemler de JSON ve zaman serisi özelliklerini destekleyebilir. Seçim, yalnızca kategori adına değil gerçek iş yüküne göre yapılmalıdır.

MongoDB’nin resmî veri modelleme rehberi, belge içinde ilişkili veriyi gömme ile ayrı belgeler arasında referans kurmanın farklı sonuçlarını açıklar. Esnek şema, modelleme ihtiyacını ortadan kaldırmaz; erişim biçimi, veri tekrarı ve güncelleme sıklığı yine planlanmalıdır.

SQL nedir, NoSQL'den farkı nedir?

SQL, ilişkisel veri tabanlarında veri yapısını tanımlamak, kayıtları sorgulamak ve değiştirmek için kullanılan standartlaştırılmış bir veri tabanı dilidir. ISO/IEC 9075-1:2023, SQL ailesinin kavramsal çerçevesini tanımlar. Bununla birlikte PostgreSQL, MySQL, SQL Server, Oracle Database ve Db2 gibi sistemlerin desteklediği söz dizimi ve özellikler tamamen aynı değildir.

SQL’in yaygın işlem grupları şunlardır:

  • DDL: Tablo ve şema gibi yapıları oluşturma veya değiştirme.
  • DML: Kayıt ekleme, güncelleme ve silme.
  • DQL: Veriyi seçme ve sorgulama.
  • DCL: Erişim ve yetki işlemleri.
  • TCL: İşlemi onaylama veya geri alma gibi transaction kontrolleri.

SQL genel amaçlı bir uygulama programlama dili değildir. İş kuralları yalnızca veri tabanı içinde tutulmak zorunda da değildir; uygulama, servis ve DBMS arasında uygun sorumluluk dağılımı yapılmalıdır.

NoSQL sistemler tablo ve sabit ilişki modelinin dışındaki veri yapılarını kullanabilir. Bu durum onları otomatik olarak daha hızlı veya daha ölçeklenebilir yapmaz. Performans; veri modeli, sorgu biçimi, indeks, donanım, dağıtım mimarisi ve yük karakterine bağlıdır.

Modeli sorguya göre seçin: Aynı veriyi sık sık birlikte okuyorsanız belge içinde tutmak uygun olabilir. Bir kaydın farklı işlemler tarafından bağımsız güncellenmesi ve güçlü ilişkilerle bağlanması gerekiyorsa ilişkisel model daha anlaşılır bir temel sağlayabilir.

ACID ve veri tabanı işlemleri

Bir iş emrini kapatırken üretim miktarı, stok hareketi ve durum kaydı birlikte değişebilir. İlk kayıt yazılıp stok hareketi başarısız olursa veri çelişkili hâle gelir. Transaction, birden fazla değişikliği ortak işlem sınırı içinde ele almaya yardım eder.

ACID özellikleri bu davranışı dört kavramla açıklar:

  • Atomicity (Bölünmezlik): İşlemin tüm adımları tamamlanır veya hiçbiri uygulanmaz.
  • Consistency (Tutarlılık): İşlem, tanımlı veri kurallarını bozacak bir duruma geçmemelidir.
  • Isolation (Yalıtım): Eşzamanlı işlemler birbirinin ara durumlarını kontrolsüz biçimde görmemelidir.
  • Durability (Kalıcılık): Onaylanmış işlem, sistemin taahhüt ettiği dayanıklılık koşullarına göre korunur.

Bu kavramlar “hiç veri kaybı olmaz” garantisi değildir. Depolama, yapılandırma, işlem seviyesi ve hata senaryosu sonucu etkiler. PostgreSQL’in işlem belgeleri, açık işlemlerin BEGIN veya START TRANSACTION ile başlayıp COMMIT ya da ROLLBACK ile sonlandırılabildiğini gösterir. Diğer DBMS’lerde ayrıntılar ve varsayılanlar değişebilir.

İndeks, eşzamanlılık ve performans

İndeks, belirli alanlardaki kayıtlara daha az taramayla ulaşmayı sağlayan ek veri yapısıdır. İş emri numarası, zaman damgası veya makine kimliği üzerinde uygun indeks sorguyu hızlandırabilir. Ancak her indeks depolama alanı kullanır ve ekleme-güncelleme işlemlerinde bakım maliyeti oluşturur. Bu yüzden “her alana indeks” iyi bir yöntem değildir.

Performans değerlendirmesi gerçek sorgu ve veri hacmiyle yapılmalıdır. Ortalama sorgu süresi tek başına yeterli olmaz; yüksek yüzdelik gecikme, aynı anda açık bağlantı sayısı, kilit beklemeleri, disk kullanımı ve büyüme eğilimi de izlenebilir.

Eşzamanlılık kontrolü, iki işlemin aynı veriyi aynı anda değiştirmesi sırasında ortaya çıkan kayıp güncelleme veya tutarsız okuma gibi problemleri yönetir. Kilitleme, sürümleme ve yalıtım seviyeleri bu alanın araçlarıdır. Daha yüksek yalıtım her zaman ücretsiz değildir; tutarlılık ihtiyacı ile bekleme ve işlem hacmi birlikte değerlendirilir.

Yedekleme, replikasyon ve yüksek erişilebilirlik aynı şey midir?

Hayır. Üç kavram farklı risklere yanıt verir.

Yedekleme, verinin belirli bir noktadaki kopyasını oluşturur ve silinme, bozulma ya da hatalı değişiklik sonrasında geri dönüş imkânı sağlar. Yedek alındığını görmek yeterli değildir; geri yükleme düzenli olarak denenmeli ve beklenen sürede çalıştığı doğrulanmalıdır.

Replikasyon, verinin başka bir sunucu veya düğümde güncel kopyalarını tutar. Ana sistemin erişilemez olması durumunda hizmetin başka düğümden sürdürülmesine yardım edebilir. Fakat yanlışlıkla silinen kayıt replika sistemlere de taşınabilir. Bu nedenle replikasyon, yedeğin doğrudan yerine geçmez.

Yüksek erişilebilirlik, donanım veya servis arızasında kesintiyi azaltmak için düğüm, ağ, depolama, otomatik geçiş ve uygulama bağlantısı gibi parçaların birlikte tasarlanmasıdır. Sadece ikinci bir sunucu kurmak yeterli olmayabilir.

RPO, kabul edilebilecek veri kaybı aralığını; RTO ise hizmetin ne kadar sürede geri dönmesi gerektiğini ifade eder. Yedekleme sıklığı ve mimari bu iki hedefe göre tasarlanır. PostgreSQL’in yedekleme ve geri yükleme belgeleri, dosya sistemi kopyasının tutarlı olabilmesi için dikkat edilmesi gereken ürün özelindeki koşulları gösteren iyi bir örnektir.

Veri tabanı yönetim sistemi nasıl seçilir?

Kriter Sorulacak soru
Veri modeli Kayıtlar arasında güçlü ilişki mi var, alanlar sık mı değişiyor?
İşlem ihtiyacı Birden fazla değişiklik tek işlem olarak tamamlanmalı mı?
Sorgu yapısı En sık hangi alanlar filtrelenecek, birleştirilecek veya toplulaştırılacak?
Veri hacmi ve hızı Günlük büyüme, eşzamanlı yazma ve okuma yükü nedir?
Erişilebilirlik Kabul edilebilir kesinti ve veri kaybı hedefi nedir?
Güvenlik Kimlik, rol, şifreleme, günlük ve ağ gereksinimleri neler?
İşletim Ekip hangi sistemi kurup izleyebilecek uzmanlığa sahip?
Entegrasyon Uygulama dili, raporlama aracı ve veri aktarım yöntemleri destekleniyor mu?
Maliyet Lisansın yanında altyapı, bakım, izleme, yedek ve uzmanlık maliyeti nedir?

Bulut ve kurum içi kurulum karşılaştırılırken yalnızca sunucu fiyatına bakılmamalıdır. Yönetilen hizmet operasyon işinin bir bölümünü sağlayıcıya bırakabilir; veri yerleşimi, ağ gecikmesi, hizmet sınırları, çıkış planı ve sağlayıcı bağımlılığı ayrıca değerlendirilmelidir. Kurum içi yapı daha fazla kontrol sunabilir, ancak yama, izleme, kapasite ve arıza sorumluluğunu kurum üstlenir.

Pilot aşamada sentetik birkaç kayıt yerine gerçeğe yakın veri hacmi ve sorgular kullanılmalıdır. Yedekten dönüş, bağlantı kesintisi, yüksek eşzamanlılık ve şema değişikliği gibi durumlar kabul testine dâhil edilmelidir.

Üretim sistemlerinde veri tabanı nasıl kullanılır?

Üretim ortamında tek bir veri türü bulunmaz. İş emirleri, ürün ağaçları ve stok hareketleri güçlü ilişkilere sahip işlem kayıtlarıdır. Makine sinyalleri ve sayaçlar zaman damgalı, yoğun olay akışı üretir. Kalite formlarında ürün ailesine göre farklı alanlar görülebilir. Raporlama katmanı ise bu kayıtları belirli dönem ve bağlamlarda bir araya getirir.

Bu nedenle bir üretim mimarisinde birden fazla veri saklama yaklaşımı kullanılabilir. Ancak kullanıcının temel sorusu çoğu zaman altyapı ürünü değil, üretim kaydının doğru iş emri ve makineyle ilişkilendirilip ilişkilendirilmediğidir. Üretimden veri toplama saha kaydının kaynağını, gerçek zamanlı üretim izleme güncel durum görünümünü, raporlama ve analiz ise geçmiş kayıtların karşılaştırılmasını ele alır.

MachBEE bir genel amaçlı DBMS ürünü değildir. Üretim uygulaması olarak iş emri, makine, operatör, duruş, fire ve raporlama bağlamlarını yönetir. Kullanılan veri tabanı motoru, yedekleme mimarisi, şifreleme veya altyapı SLA’sı hakkında doğrulanmamış bir varsayım yapılmamalıdır; bu ayrıntılar proje ve teknik mimari değerlendirmesinde netleştirilir. Çözüm kapsamını üretim takip sistemi rehberinden inceleyebilirsiniz.

Sık sorulan sorular

DBMS ile RDBMS arasındaki fark nedir?

DBMS, veri tabanı yöneten sistemlerin genel adıdır. RDBMS ise veriyi ilişkisel tablolar ve anahtar bağlantılarıyla yöneten DBMS türüdür. PostgreSQL, MySQL, SQL Server, Oracle Database ve Db2 ilişkisel örneklerdir; MongoDB belge tabanlı, Redis ise anahtar-değer kullanımına örnek verilebilir.

SQL bir veri tabanı mıdır?

Hayır. SQL, ilişkisel veri tabanlarıyla çalışmak için kullanılan dildir. PostgreSQL veya SQL Server gibi DBMS’ler SQL ifadelerini işler ve bunun yanında depolama, transaction, yetki, yedekleme ve izleme işlevleri sunar.

NoSQL, SQL’den daha hızlı mıdır?

Genel bir cevap yoktur. Veri modeli ve sorgu iş yükü sisteme uygunsa NoSQL çözümü belirli senaryoda avantaj sağlayabilir. Aynı şekilde iyi modellenmiş ve doğru indekslenmiş ilişkisel sistem birçok iş yükünde güçlü sonuç verir. Karşılaştırma gerçek veri ve sorgularla yapılmalıdır.

Yedek varsa replikasyona ihtiyaç yok mudur?

Yedek ve replikasyon farklı amaçlara hizmet eder. Yedek geçmiş bir noktaya dönmeyi, replikasyon ise hizmetin başka bir kopyadan sürmesini destekleyebilir. Kesinti ve veri kaybı hedeflerine göre ikisi birlikte gerekebilir.

Veri tabanı güvenliği yalnızca şifrelemeden mi oluşur?

Hayır. Kimlik doğrulama, en az yetki, ağ sınırları, güvenli yapılandırma, yama, günlük izleme, şifreleme, yedek koruması ve olay müdahalesi birlikte ele alınır. Bir özelliğin desteklenmesi, doğru yapılandırıldığı veya düzenli izlendiği anlamına gelmez.

Üretim takip yazılımı seçerken DBMS markası sorulmalı mı?

Teknik değerlendirmede sorulabilir; fakat karar yalnızca marka üzerinden verilmemelidir. Veri sahipliği, yedek ve geri dönüş hedefleri, erişim, entegrasyon, performans, bakım sorumluluğu ve veri dışa aktarımı daha açıklayıcı kriterlerdir.