Veritabanı türlerinin karşılaştırılması
İlişkisel veritabanları eskiden her şeyin ölçüsüydü, ancak son 15 yılda bir dizi başka veritabanı türü ortaya çıktı. Nasıl farklılar ve ilişkisel veritabanları bugün hala bir rol oynuyor mu?
Bugüne kadarki en basit veritabanı türü, anahtar-değer veritabanıdır. Bu tür veritabanları, belirli bir anahtar için uygun bir değeri sakladıkları için bir sözlük gibi çalışır. Bu değerler kesinlikle farklı veri türlerine sahip olabilir, ancak hepsinin ortak noktası, indekslemenin değere göre değil, yalnızca anahtar tarafından yapılmasıdır.
Bu nedenle anahtar/değer veritabanları, bir kimlikle ilişkilendirilen ve ayrıca yalnızca kimlik kullanılarak erişilen verileri işlemek için uygundur. Buna, örneğin bir web uygulaması için veri önbelleğe alma ve oturum depolama dahildir.
Bu türden tipik bir ürün, “Uzak Sözlük Sunucusu” anlamına gelen Redis’tir. Redis çoğunlukla listelerdeki anahtar/değer çiftlerini işler, ancak kümeler ve sıralı kümeler dahil olmak üzere diğer yapıları da bilir. Kafka’ya benzer akışlar da 5. sürümden itibaren desteklenmektedir. Bu farklı veri yapıları nedeniyle Redis, Pub/Sub ve Code gibi diğer kullanım durumları için de harikadır.
Genel olarak, anahtar/değer veritabanları kolayca yatay olarak ölçeklendirilebilir, çünkü yalnızca kimlik bir ayrımcı görevi görür ve veriler yol boyunca kolayca parçalanabilir. En büyük sorun, basitliği nedeniyle uygulamada kolayca kopyalanabilen standardizasyon eksikliğidir.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
Anahtar Değer Veritabanı
Sütunlu ve sütun geniş veritabanları
Bir anahtarla eşleşen verileri de depolayan sütun çapında veritabanları biraz daha karmaşıktır, ancak bu veriler birden çok alan veya sütundan oluşan daha karmaşık değerlerdir. Temel olarak, geniş sütunlu bir veritabanı, iki boyutlu bir anahtar/değer veritabanından başka bir şey değildir.
Klasik ilişkisel veritabanlarına daha çok karşılık gelen sütun veritabanlarını net bir şekilde ayırt etmeliyiz, ancak onlardan farklı olarak satır odaklı değil sütun odaklı çalışırlar. Bu, özellikle çok sayıda veri kümesinde çoğunlukla tek sütunları işlerken kullanışlıdır.
Sütun odaklı veritabanları bu nedenle genellikle OLAP alanında, satır odaklı olanlar ise daha çok OLTP alanında bulunur, ancak buradaki sınırlar değişkendir. Sütunlu veritabanları, bu nedenle, uygulama alanlarının olduğu, ancak veritabanlarının büyük çoğunluğunun satır yönelimli çalıştığı nispeten alışılmadık bir özel durumdur.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
Sütunlu ve sütun geniş veritabanları
Belge yönelimli veritabanları
Anahtar-değer ve sütun çapındaki veritabanlarının ortak noktası, indeksleme için yalnızca anahtarın kullanılmasıdır. Değerler, ister basit ister bileşik olsun, yol boyunca aranamaz veya verimli bir şekilde aranamaz. Ancak, örneğin daha karmaşık sorguları çalıştırabilmek için ona ihtiyacınız olursa ne olur?
Bu durumda, sözde belge odaklı veritabanları kullanılabilir. Bir belge genellikle bir JSON nesnesi olarak anlaşılır, ancak teoride başka bir veri biçimi de olabilir. Nesneler, birbirleriyle hiçbir ilişkisi olmadan depolanır, ancak kendi kendine yeten birimler olarak görünür. İlişkiler, kimlikler kullanılarak teorik olarak eşlenebilir, ancak veritabanıyla ilgili değildir ve genellikle uygulama düzeyinde çözülmesi gerekir.
Bu tür veritabanlarının en iyi bilinen temsilcilerinden biri, yatay olarak da kolayca ölçeklenebilen ve burada yine önemli bir rol oynayan parçalama ile MongoDB’dir. Belgeler bağımsız olduğundan, istisnalar dışında ACID ilkeleri genellikle desteklenmez. 4.0 sürümünden bu yana MongoDB, birden çok belge içeren ACID uyumlu işlemleri de destekler.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
Belge yönelimli veritabanları
Grafik veritabanları
İlişkiler önemli bir rol oynadığında, bir grafik veri tabanı kullanmak yararlı olabilir. Böyle bir veritabanında, sadece varlıklar değil, aynı zamanda ilişkiler de açıkça modellenir ve bu da grafik benzeri bir veri modeliyle sonuçlanır. Bu, farklı ilişki türlerinin haritalanabileceği ve daha da önemlisi sorgulanabileceği anlamına gelir.
Grafik veritabanları için tipik bir uygulama, insan ilişkilerinin veya etkileşimlerinin haritalandırılmasıdır; burada grafik, kimin kimin hakkında bilgi sahibi olduğunu veya kimin kiminle iletişim kurabileceğini belirlemek için kullanılabilir. Bununla birlikte, prensip olarak, örneğin en kısa yolların, kliklerin veya sıcak noktaların belirlenmesi gibi burada özellikle ilgili olan grafik teorisinden başka sorular da mümkündür.
Bu tür veritabanının bilinen bir temsilcisi, 3’ü 1 arada sistem olarak çalışan ArangoDB’dir.ArangoDB, anahtar-değer, belge yönelimli ve grafik veritabanı olarak kullanılabilir. Veritabanı, MongoDB ile geniş ölçüde uyumludur, bu nedenle ArangoDB, grafik yetenekleriyle biraz MongoDB gibi hissettirir.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
Grafik veritabanları
ilişkisel veritabanları
Anahtar-değer veritabanlarından grafik veritabanlarına kadar bahsedilen tüm veritabanı türlerinin yeri vardır ve her biri farklı kullanım durumlarına hitap eder. Ancak hepsinin ortak noktası, genellikle şemasız çalışmaları ve bu nedenle yapılandırılmamış veriler için uygun olmalarıdır. Bu, birçok durumda bir avantajdır, ancak sabit bir şema kullanmak bazen yararlıdır.
Bu nedenle, klasik SQL tabanlı ve ilişkisel veritabanları genellikle tercih edilen araçlardır. Bu arada, ayrım çizgisi başlangıçta sanıldığı kadar net değildir, çünkü özellikle ilişkisel veritabanları son yıllarda yetişti veya yapılandırılmamış verileri işlemek için işlevleri içerecek şekilde genişletildi. Örneğin, PostgreSQL ve MySQL, JSON için özel veri türlerine sahiptir.
Ancak ilişkisel veritabanları genellikle diğer açılardan da başlangıçta varsayılabilecek olandan çok daha esnektir. Örneğin, Microsoft SQL Server, bir sütun veritabanına benzer şekilde, bir tablonun satırlar yerine sütunlar halinde yönetilebildiği “Columnstore” dizin türünü bilir.
Önerilen editoryal içerik
İzninizle, buraya harici bir YouTube videosu (Google Ireland Limited) yüklenecek.
Her zaman YouTube videoları yükleyin
YouTube videosunu şimdi yükleyin
ilişkisel veritabanları
Çözüm
Genel olarak, ilişkisel veritabanları kendi başına NoSQL veritabanlarından daha iyi veya daha kötü değildir, ancak çoğu zaman olduğu gibi, doğru uygulama için doğru aracı seçmelisiniz. Özel durumunuzda bir NoSQL veritabanıysa, sorun değil. Ancak, ilişkisel bir veritabanı ise bu da sorun değil.
Her iki dünyayı da bilmek şu ya da bu şekilde faydalıdır çünkü alışılmışın dışından bakmak ufku genişletir ve geliştiricilerin daha iyi ve hepsinden önemlisi daha bilinçli kararlar almasına olanak tanır.
()
Haberin Sonu