NoSQL
NoSQL, verileri ilişkisel olmayan türde saklayan veritabanı sistemleridir. Verileri sabit şemalar içerisinde tutmaz. Yapılandırılmamış ya da yarı yapılandırılmış verileri sorgulamak için tercih edilir. SQL kelimesi “Structered Query Language” olarak ifade edilen “Yapılandırılmış Sorgu Dili” kelimelerinin kısaltılmasından oluşur. NoSQL ise “Not only SQL” kelimelerinin kısaltılmasından oluşur.
NoSQL Nedir?
NoSQL, büyük hacimde dağınık yapıdaki verileri işleyebilen veritabanı sistemleridir. Sadece bir veri tabanı sistemi değildir. Yapılandırılmamış veriler ile ilgilenir. Yapılandırılmış veriler, herhangi bir veri, veri tabanında saklanırken nesne-tablo gibi ilişkiler içerisinde saklanır. Yapılandırılmamış veri demek, bu ilişkinin kurulmadığı alakasız verilerdir. Alakasız verilerden alakalı veriler elde etmeye yardımcı olur. Bu sayede esnek veri modelleme imkânı sunar. Grafik, simülasyon gibi sonuçlara daha hızlı cevap verir. NoSQL kullanım amacı yüksek ölçeklenebilir ve erişilebilir sistemler kurmaktır. Gerçek zamanlı veri sorguları yapan sistemler için uygundur. Standart SQL sorgu dili yerine kendine özel sorgulama mantığı vardır.
NoSQL Nasıl Çalışır?
NoSQL, aralarında ilişki olmayan veri tabanlarından veri okuyan ve yöneten veri modelleri kullanır. Geleneksel veritabanı sistemleri verileri yapılandırıp, ilişkisel olarak tablo ve satırlara kaydeder. NoSQL, tablo, satır gibi şablonlardan bağımsız ortamlardan verileri okuyabilir. İlişkisiz veriler arasında elde edilecek veriye göre anlamlı bir sonuç ortaya çıkarır. Bu sayede sorgulara düşük gecikme süresi ile cevap alabilirsiniz.
NoSQL Avantajları
Modern uygulamalar NoSQL avantajları ile birçok sorunu çözer. Örneğin, sosyal medya uygulamaları verileri NoSQL veri tabanlarında saklar. Standart SQL veri tabanlarında performans sorununa neden olabilen yedeklilik, veri üretme gibi durumlar çözülmüş olur. NoSQL avantajları ise bunlardır:
- Yazılımların aradığı esnek ve yinelemeli veri okuma imkânı sunar.
- Dağıtık sistemler üzerinden çalışabilmesi sayesinde sistem öngörülebilir ve ölçeklenebilir.
- Verileri ilişkisel olmayan veri tabanlarından okunmasını sağladığı için ilişkisel veri tabanlarına göre yüksek performanslıdır.
- Standart SQL dili yerine sisteme özel sorgu dili kullanarak işlevsel fonksiyonlar oluşturmaya yardımcı olur.
- Veriler tablo, satır gibi sabit bir şablon yerine şema kullanmadan saklanır, şemasız verileri okuyabilir.
- HTTP, JSON gibi yaygın kullanılan metin protokolleri kullanarak API erişimleri kolay ve basittir.
NoSQL ile SQL Arasındaki Farklar
NoSQL ile SQL kullanım amaçları benzer olsa da arasında bazı farklar bulunur. Gelin bu farka bir örnek üzerinden bakalım. Bir SQL veri tabanında kitap ile ilgili “Kitap Adı”, “ISBN”, “Yazar”, “Yayınevi”, “Sayfa Sayısı” değerler, “Kitaplar” adında bir tabloda bulunsun. Bu tablo aynı zamanda yazar bilgilerinin bulunduğu “Yazarlar” adında ve yayınevi bilgilerinin bulunduğu “Yayınevleri” adında tablolar ile ilişkili olmalıdır. Yani, SQL veri tabanlarında bir tablo içerisinde bir nesne için özel değerler bulunurken ID gibi anlamsız ya da genel değerler harici tablolara referans verir. Tablolar arası ilişki SQL ile kurulur.
Aynı örnek üzerinden NoSQL veritabanını incelerseniz, kitap bilgilerinin bir belgede etiket yapısında saklandığını görebilirsiniz. Genel ve özel değerler aynı belge içerisinde toplanır. İstenildiği zaman niteliklerde ekleme çıkarma yapılabilir. Başka bir belgeyle ilişkilendirmeye gerek olmadan veriler okunabilir, yönetilebilir.
NoSQL Kullanım Örnekleri
NoSQL veri hacminin büyük olduğu, performans odaklı sistemler için tercih edilir. Sosyal medya uygulamalarından gerçek zamanlı veri analizine kadar birçok alanda NoSQL veri tabanı kullanılır. Gelin NoSQL kullanım örneklerine NoSQL türleri üzerinden bakalım:
- Anahtar/değer: Sorguların önceden cevaplandırıldığı, önbellekli çalışan veritabanı sistemleridir. En sık kullanılan örneği, Redis uygulamasıdır. Redis, ilişkisel ve ilişkisel olmayan veritabanları ile birlikte çalışarak, web servisinin sorgularının güncel yanıtlarını her an sorgulanacak gibi hazırda bekleten bir NoSQL veritabanı sistemidir.
- Döküman: Verileri oluşturma-okuma-yazma-silme operasyonlarına uygun XML, JSON, BSON gibi belge formatlarında saklayan veri tabanlarıdır. Elasticsearch, MongoDB doküman türü NoSQL veri tabanı örnekleridir.
- Grafik: Verilerin düğümlerin arasında bağlantı kurularak saklandığı veri tabanlarıdır. Sahtecilik tespit etme, rezervasyon, sosyal medya analizi gibi uygulamaları için uygundur. Neo4j, FlockDB grafik veri tabanı örneklerinden bazısıdır.
- Geniş sütun: Şemasız yapıda satırın önemsiz olduğu sütun genişletme formatında verilerin tutulabileceği veri tabanlarıdır. Sütun odaklıdır. Örnek olarak, Cassandra bunlardan biridir.
Ücretsiz eğitimlerimiz seni bekliyor.
Her biri alanında uzman eğitmenler tarafından hazırlanmış eğitimlerimizden sana uygun olanı keşfedip, hemen eğitime başlayabilirsin. Süre kısıtlaması olmayan eğitimlerimizi, hiç bir ücret ödemeden hemen keşfetmeye başla.