En Çok Kullanılan Veri Tabanları

Veri tabanı (database), verileri istenen düzende depolamak ve bu verilere istenen ortamdan erişimi sağlayan sistemlerdir. Günümüz uygulamalarının (web, mobil, masaüstü) neredeyse tamamında yerel veya uzak sunucuya bağlantılı veri tabanları bulunur ve kullanılır. Veri tabanlarına depolanan bu bilgileri daha sonra kullanabilir, üzerlerinde değişiklikler yapabilir veya bu veriler anlamlandırarak farklı şekillerde bilgiler elde edilebilir.

Veri Tabanı (Database) Nedir

Veri tabanı (database), birbiriyle bağlantılı olan verilerin belirlenen sistem ve düzende depolamamızı ve gerektiğinde kullanmamızı sağlayan bir teknolojidir. Kısaca, veri tabanları birbiriyle ilgili verilerin oluşturduğu topluluk olarak tarif edilebilir.

Veri tabanlarında veriler belli bir düzende kullanılan tablolarda tutulur. Bu farklı tablolar arasındaki veriler, çeşitli anahtarlar vasıtası ile birbirlerine bağlanırlar. İlgili tablolarda, sütunlar arasında bir anahtar sütun yer alır. Bu anahtar sütun aracılığı ile birden çok tablo verileri birbiriyle bağlantı sağlayabilir ve herhangi bir sorgulamada birlikte görüntülenebilir.

Örnek vermek gerekirse bir kütüphane programında için verilerinin tutulduğu bir veri tabanını düşünelim. Bu veri tabanında Kitap Kategorileri, Yazar Bilgiler, Yayın Evleri, Kitaba Ait Detaylar, Stok Durumu, Adresler, Alınan Ve Verilen Tarihler, Üyeler gibi bilgiler düzenli şekilde tutulur. Bununla birlikte bir veri tabanına veriler ekleyebilir, silebilir, güncelleyebilir veya var olan veriler üzerinde en basitinden en karmaşık olana her türlü sorgulama yapılabilir.

Verinin saklanması ve erişiminin gerekmesi durumlarında veri tabanı kullanılır. Öncelikle web tabanlı sitelerden masaüstü yazılımlara kadar hemen hemen her yazılım içinden bir veri tabanı kullanılmaktadır. Örneğin, alış veriş yapılan e-ticaret siteleri sayılabilir. Kısacası günümüz teknolojisinde hemen hemen her yerde veri tabanı sistemleri kullanılmaktadır.

 

MS-SQL (MICROSOFT SQL SERVER)

Ms-SQL Microsoft firmasının geliştirdiği bir veri tabanı sistemidir. Çoğu zaman MySQL ile karıştırılabilmektedir. MySQL açık kaynak kodlu bir yazılım olmasına rağmen Ms-SQL bu kullanıcılara maliyetli gelebilir. Ancak, MS-SQL’in Express sürümü bu maliyeti ortadan kaldırmaktadır.

MS-SQL, verilerin güvenle ve bütünlük içerisinde depolanmasını ve aynı anda birden fazla kullanıcı tarafından erişilmesini sağlayan kurumsal çaplı bir ilişkisel veri tabanı yönetim sistemidir. Bilişim, sağlık ve finans gibi çeşitli sektörlerde önde gelen büyük şirketler tarafından ilk sırada tercih edilen Microsoft SQL Server, her tip kullanıcının ihtiyaçlarına uyum sağlayabilen ölçeklenebilen bir yapıya sahiptir.

Yazılımcılar herhangi bir program yazmaya başlamadan önce veri tabanı kullanımını gerektiren bir durumun olması halinde öncelikle bir veri tabanı sistemi seçmelidirler. Seçilecek veri tabanı sistemi tutulacak bilginin büyüklüğüne (kayıt sayısı, hacim vb.), uzak bilgisayarda olup olmadığına, aynı anda bağlanacak kullanıcı sayısına göre değişir. Bazı programcılar programdaki yapıları gereği Ms-Access’ i seçerken, bazıları da yine programın ihtiyaçları gereği daha büyük bir veri tabanı sistemini seçebilirler.

MSSQL yazılımı ile bir veri tabanı oluşturulabilir, veri tabanı tasarlanabilir, gerekli ayarları yapılabilir, ihtiyaç duyulan procedure ve trigger’lar hazırlanabilir.

Avantajları aşağıdaki gibi sıralanabilir:

  • Güvenli veri işleme ve depolama
  • Bilgilere hızlı erişim için indeksleme ve sorgulama
  • Veri tabanı yönetimi
  • Bilgi akışı optimizasyonu
  • Veri raporlama
  • İlke tabanlı veri erişimi
  • Çok kullanıcılı ve uzak erişim

 

MySQL

Veri tabanlarını oluşturmak, tanımlamak, kullanmak, değiştirmek ve veri tabanı sistemleri ile ilgili her türlü işlemleri karşılamak için tasarlanmış sistem ve yazılımdır. İlişkisel veri tabanını çeşitli tablolar arasında organize edilmiş verilerden oluşan veri tabanı olarak açıklayabiliriz. MySQL çifte lisanslı bir yazılımdır. Yani hem Genel Kamu Lisansı’na sahip özgür bir yazılım, hem de bunun kısıtlandığı alanlarda kullanmak isteyenler için ayrı bir lisansa sahiptir.

Ayrıca MySQL işlemlerini SQL adı verilen sorgulama dili deyimleri ile yapması, kullanımının kolay olması, çok kullanıcılı olması ve uzak erişimlere izin vermesinden dolayı piyasada kullanılan en yaygın veri tabanı sistemi haline gelmiştir.

MySQL, back-end veritabanı gerektiren tüm açık kaynaklı web projelerinde çok kez kullanılan teknolojilerden birisidir. Bunun yanında Windows platformları için ücretsiz olarak kullanılabilmektedir. Bununla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur.

MySQL UNIX, OS/2 ve Windows platformlarında kullanılabilmektedir. Fakat Linux altında daha yüksek performans sergilemektedir. MySQL içerisinde bulunan ODBC sürücüleri yardımıyla birçok geliştirme platformunda rahatlıkla kullanılabilir.

Güçlü bir veritabanı yönetim sistemi olan MySQL veritabanı gerektiren hemen hemen her ortamda rahatlıkla kullanılabilir. Ama özellikle web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilir.

Avantajları aşağıdaki gibi sıralanabilir:

* Açık kaynak lisansına göre açık kaynak kodludur.

* Ücretsiz sürüm ticari projelerde ücretsiz kullanıma izin vermektedir,

* Çeşitli amaca yönelik optimize edilmiş motorlar (depolama sistemleri) desteği sağlar.

* Büyük miktarda veriyle bile yüksek performans gösterir.

* Sunucu-istemci mimarisi, çok sayıda veri tabanının aynı sunucuda çalışmasına izin verir.

* Tabloların ve veri tabanlarının boyutunda herhangi bir sınırlama yoktur.

* Çok esnek ve güçlü bir kullanıcı erişim kısıtlama/yetkilendirme sistemine sahiptir.

* Son sürümleri çok daha işlevsel bir hale gelmiştir.

* Transaction ve atomik işlem kullanan çeşitli tablo tiplerini desteklemektedir.

MySql çok güçlü veri tabanlarından kabul edilen Oracle ve Ms-Sql gibi veri tabanlarının temel özelliklerinden olan ve aşağıda verilen özellikleri de içermekte ve desteklemektedir.

* Tables (Tablo)

* Views (Görüntü) (Görüntüleme)

* Procedures (Prosedür/Yordam)

* Triggers

* Cursors

 

ORACLE

Oracle, Kaliforniya kökenli bir yazılım şirketidir. 1977 yılında kurulmuş ve bugünlere kadar birçok başarıya imza atmıştır. 145 ülkede hizmet veren şirket aynı zamanda sunduğu yazılım ve araçlarla milyonlarca insan tarafından tercih edilmiştir. İlişkisel Veritabanı Yönetim Sistemleri olarak tanımlayabiliriz. Bu genel anlamda RDBMS olarak anılmaktadır ki aynı tanımın İngilizce baş harflerinden oluşmaktadır.

Oracle veritabanı, verilerin tamamının güvenli bir biçimde tutarak kullanıcılara aktarılabilmesini sağlayan bir yapıdır. Temelde veri tabanı yönetimi sistemi olarak dünya çapında özellikle büyük projelerde yaygın olarak ve güvenle kullanılmaktadır.  Microsoft’tan sonra en büyük yazılım şirketi Oracle olduğu için dünya genelinde büyük projelerde Oracle veritabanı yaygın olarak tercih edilmektedir.

Oracle veritabanı üzerinden uygulamalar geliştirmek ve yönetmek mümkündür. Bu amaçla Oracle Apex (Oracle Application Express) büyük ölçüde kullanım alanı bulmuştur. Oracle veri tabanı hem web tabanlı yazılımlarda hem de masaüstü uygulamalarında kullanılabilmektedir.

Oracle veritabanı farklı standartlar altında kullanıcılara sunulmaktadır. Bu özellik kullanıcının istediği paketi almasını ve buna ücret ödenmesini sağlamaktadır.

Örneğin bir işlemcinin kullanılabildiği, düşük kullanım alanı sunan ve çeşitli uygulama izinleri bulunmayan bir veritabanını ücretsiz olarak temin edilebilir. Ancak daha güçlü, daha işlevsel ve daha büyük verileri işleyecek bir veri tabanı ihtiyacının olması durumunda ilgili seçenekler arasından uygun olanı seçilebilir.

 

SQLite

SQLite, dünyada en çok dağıtımı yapılan ve tavsiye edilen kaynak kodları açık, tamamen C/C++ programlama dilleriyle geliştirilmiş ve geliştirilmeye devam edilen, sunucu yazılımı ve yapılandırma gereksinimi olmayan, işlemsel ve ilişkisel bir SQL veri tabanı motorudur. Kullanımı ve kurulumu oldukça kolaydır. Kullanmak için kurulum yapmanızı gerektirmez. Kullanmak için herhangi bir sunucu işlemini başlatmak, durdurmak ya da yapılandırmak gerekmez. Bu da kullanımını çok kolaylaştırır. Avantajları aşağıdaki gibi sıralanabilir:

* Sqlite Python’un 2.5 sürümlerinden bu yana bu dilin bir parçasıdır. Bundan dolayı Sqlite, Python’daki herhangi bir modül gibi kullanılabilir.

* Sqlite herhangi bir yazılım veya sunucu kurulumu gerektirmez. Bu sayede, bu modülü kullanmak için öncelikle bir sunucu yapılandırmanıza da gerek yoktur.

* Sqlite, diğer pek çok veri tabanı alternatifine göre basittir. Bu yüzden Sqlite’ı çok kısa bir sürede kavrayıp kullanmak mümkündür.

* Bu yazılımın baştan aşağı bütün kodları kamuya açıktır. Dolayısıyla Sqlite kodları istendiği gibi kullanabilir, değişikliğe uğratabilir, satabilir ve ticari olan/olmayan bütün uygulamalarda kullanılabilir.

Günümüzde bir çok büyük şirket SQLite kullanmaktadır. Adobe, Apple, Mozilla/Firefox, Google, Symbian ve Sun bu şirketlerden bazılarıdır.

 

MONGODB

Son yıllarda en çok kullanılan NoSQL tabanlı veri tabanı sisteminden birisidir. MongoDB verileri JSON biçiminde doküman olarak veri tabanında saklayan NoSQL tabanlı bir veri tabanı sistemidir.

NoSQL veya Not Only SQL temel olarak içinde SQL komutlarının kullanılmadığı veri tabanı yapısıdır. NoSQL veri tabanlarında RDMS (ilişkisel veri tabanı yönetim sistemleri) tabanlı MySQL, Oracle ve SQL Server gibi veri tabanlarında mevcut olan veri bütünlüğü ve veri güvenliğini sağlayan kurallar tam olarak mevcut değildir.

NoSQL veritabanları yapısına göre çeşitli gruplara ayrılır:

Doküman tabanlı : Verileri doküman biçiminde saklayan veri tabanı çeşididir.

Anahtar / Değer tabanlı : Verileri anahtar:değer olarak saklayan veri tabanı çeşididir.

Grafik tabanlı : Verileri graf teorisine göre saklayan veri tabanı çeşididir.

Sütun tabanlı : Verileri satır satır yerine sütun sütun saklayan veri tabanı çeşididir.

MySQL, Oracle ve SQL Server gibi ilişkisel veri tabanları: (1) verileri önceden tanımlanan kurallara göre saklar. (2) Verilerin artması tanımlanan kurallar nedeniyle işlemlerin yavaşlamasına neden olur. (3) Performans için veriler çeşitli parçalara bölünebilir veya optimizasyon yapılabilir ancak bu da ek bir maliyet getirir. (4) Veri tabanı işlemlerinin hızlı olması gereken anlık mesajlaşma ve gerçek zamanlı uygulamalar hızlı veri tabanlarına ihtiyaç duyar.

Temel olarak NoSQL tabanlı veri tabanları bu ihtiyaçlardan dolayı geliştirilmiştir.

NoSQL tabanlı veri tabanlarının avantajları: (1) RDMS tabanlı veri tabanları gibi kurallara sahip olmadığından daha hızlıdır. (2) MongoDB genel olarak hızın önemli olduğu gerçek zamanlı uygulamalar, oyunlar, büyük verilerin olduğu uygulamalarda kullanılır.

MongoDB'nin dejavantajları aşağıdaki gibi sıralanır:

MongoDB performans olarak MySQL, Oracle ve SQL Server gibi veri tabanlarından hızlı olsa da kuralları ve standardı olmadığından dolayı verilerin önemli olduğu uygulamalarda kullanılması uygun değildir veya kullanırken daha dikkatli olunmasını gerektirir. Ayrıca, MongoDB ile karmaşık sorguların hazırlanması SQL’e göre daha zor olabilir.