Birçok yazılım projesinde Veritabanı / Database seçimi yapmak neredeyse kavga sebebi olabilir. Büyük tartışmalar, saatler süren toplantılara kadar işler büyüyebilir.
Çünkü bu seçim projenin doğumundan ölümüne kadar olan gerçek bir hikayedir. 🙂 Hatalı veya eksik Veritabanı seçimleri genellikle fiyaskolarla biter. Her zaman böyle olmaz tabi ki. Projenizin yapısı, mimarisi, ekip olarak ve kişi olarak tecrübe faktörleri de işin içerisine girer. Fakat genelde projelerin %70-80 oranında keşke şu veritabanı dağıtımını / versiyonunu seçseydik muhabbeti dönmektedir. ( Birkaç yılın tecrübesi olaraktan 🙂 )
Şimdi gelelim asıl soruna.
Veritabanı seçimi yapmadan önce oluşturulması gereken bir şablon / şema vardır. Bu şablon size yol haritası olacaktır. Şablon da neler mi olmalı ? Birkaç örnek;
- Anlık request / istek sayısı
- Data / veri büyüklüğü
- Verinin sonradan büyüme durumu
- Yönetim ve kullanım amacı
- Relation / İlişkisellik durumu
- Analiz, rapor istekleri
- Güvenlik ve güvenirlik
- Proje de kullanılan alt yapı ve yazılım dili ( Yeni teknolojilerle pek bir önemi kalmamakta ama .. )
- Başka veya benzer projelerin alt yapılarında kullanılıp, kullanılmaması
Yukarıda saymış olduğum neden / sonuç ilişkisi barındıran maddelerin aslında önemleri büyüktür. Şimdi ise örnekleme yaparak gidelim;
dip note : “Kişisel tecrübedir. Acı çekerek öğrenilmiştir. 100% doğru değildir. 🙂 “
Anlık request / istek sayısı
- Basit bir web projesi için PHP ile geliştirme yapılacağını düşünelim. İstek sayısı kale alınmayacak şekilde düşük olduğunu varsayalım. Bu durumda en mantıklı ikili; MYSQL & PHP ikilisi olacaktır.
- Basit fakat yüksek bir istek sayısına sahip bir web projesi için yine PHP ile devam edilen bir senaryo için PostgreSQL daha mantıklı olacaktır.
- Masaüstü uygulaması ( Windows )olarak senayomuzu değiştirdiğimizde ise MsSQL server her iki durum içinde genel bir seçim/im olacaktır.
İstek sayısına bağlı olarak veritabanı seçimleri için düşünülen senaryoda ilişkisel veritabanı ve veri bütünlüğü baz alınmıştır. Realtime veya deep query analiz durumları düşünülmemiştir.
Bu durumdan yola çıkarak basit bir web sitesi / tanıtım sitesi / otomasyon sistemi hazırlanıyor ise maliyet olarak da düşük bütçe ile güzel ve sağlam projeler MYSQL & PHP ve POSTGRESQL & PHP ikilileri size avantaj sağlayabilir.
dip note : “Bu aralar kişisel favorim ise POSTGRESQL’dir.”
MySql için ufak örnekler için : diplomasizmuhendis.com
Diğer maddeler için diğer yazılarımızda görüşmek üzere.