NoSQL Veri Tabanı
NOSQL, uzun süredir hemen hemen tüm uygulamalarda yoğun olarak kullanılan MSSQL ve MySQL gibi ilişkisel veri tabanlarına alternatif olarak geliştirilmiş bir veri tabanı sistemidir. Baskın olarak kullanılan SQL ( Structured Query Language) kullanılmadığı için de NOSQL veri tabanı sistemleri olarak adlandırılmışlardır. Bazı kaynaklarda da Not Only SQL olarak kullanılır. NOSQL’in ilişkisel veri tabanlarından (Relational Database Management System) temel farkı, RDBMS’de tablolar ve sütunlar belirlenir, her sütunun bir veri tipi vardır ve sistemde oluşturulan her işlem için ilgili tablolarda yeni satırlar eklenir. Özellikle veri sayısı arttıkça bu işlem bazlı tablolarda milyonlarca ve hatta milyarlarca satır oluşmaya başlar. Milyonlarca ve hatta milyarca kayıt olan tabloyu okumak da performans sorunlarını beraberinde getirir. NOSQL’de ise yatay büyüme olur, yani veriler bölünür ve dağıtılır.
NOSQL veri tabanlarının da kendi içinde alt sınıfları bulunmaktadır. Grafik tabanlı( Neo4j, DEX, FlockDB), doküman(belge tabanlı olarak da çevirilebiliyor dilimize) tabanlı (CouchDB, MongoDB) ve Anahtar/Değer (MemcacheDB, Berkeley DB) tabanlı olarak sınıflara ayrılmıştır.
Neden böyle bir ihtiyaç doğdu ve uygulanması durumunda sağladığı faydalar nedir diye sorulabilir. Aslında yukarıda da bahsedildiği gibi, işlemsel verileriniz çok arttığında, tablolardan veri çekmek iyice yavaşlayıp, özellikle performans gerektiren müşteriye dokunan sistemlerde performans kaybı yaşıyorsanız, NOSQL sizin için çözüm olabilir. Özellikle Big Data çalışmaları yapıyorsanız, SQL veri tabanları size istenen sonuçları vermeyecektir. Tabii ki altyapınızın ve ilgili uygulamanın bu tür bir değişime uyumlu ve hazır olması şartını göz önünde bulundurmalısınız. Buradaki bir diğer faktör de, NOSQL ile veri tutarlılığı arasındaki ilişki. Özellikle veri tutarlılığı zorunlu olan uygulamlardan uygun NOSQL seçimi ve uygulanması gerekmektedir. Detaylı Okuma
Bu yazıda konsepte çok genel bir giriş yapmaya çalıştım, NOSQL gibi derin ve yıkıcı bir teknoloji elbette çok daha fazla irdelenmesi ve incelenmesi gerekmektedir.