Anahtar-Değer (Key-Value) Veritabanı Nedir?

Anahtar-Değer (key-value) veritabanı (anahtar-değer deposu olarak da bilinir), verileri depolamak için basit anahtar/değer yöntemi kullanan bir NoSQL veritabanı türüdür.

Anahtar-değer kısmı, veritabanının verileri bir anahtar/değer çiftleri koleksiyonu olarak saklaması gerçeğini ifade eder. Bu, veri depolamanın basit bir yöntemidir ve iyi şekilde ölçeklendiği bilinmektedir.

Anahtar/değer çifti, birçok programlama dilinde köklü bir kavramdır. Programlama dilleri tipik olarak bir anahtar/değer çiftini ilişkisel bir dizi veya veri yapısı olarak ifade eder. Bir anahtar/değer çifti, genellikle sözlük (dictionay) veya karma (hash) olarak da adlandırılır.

Aşağıda bir Telefon Rehberi Anahtar-Değer yapısı örneği verilmiştir..

Anahtar (Key) Değer (Value)
Ali 0532 123 45 67
Ebru 0533 123 45 67
Beril 0534 123 45 67

Anahtar-Değer veritabanında ne tür veriler saklanır?

Anahtar (Key)

Bir anahtar/değer çiftindeki anahtar benzersiz olmalıdır (veya en azından olmalıdır). Bu, o anahtarla ilişkili değere erişmenizi sağlayan benzersiz tanımlayıcıdır (unique identifier).

Teorik olarak, anahtar herhangi bir şey olabilir. Ancak bu, veritabanı yönetim sistemine (DBMS) bağlı olabilir. Bir DBMS sınırlama getirebilir ama başka bir DBMS hiçbir sınırlama getirmeyebilir.

Örneğin, Redis'te izin verilen maksimum anahtar boyutu 512 MB'dir. Kısa bir metin dizisinden bir görüntü dosyasının içeriğine kadar herhangi bir ikili diziyi (binary sequence) anahtar olarak kullanabilirsiniz. Boş dize bile geçerli bir anahtardır.

Ancak, performans nedenleriyle, çok uzun bir anahtara sahip olmaktan kaçınılmalıdır. Fakat çok kısa olması da, okunabilirlik sorunlarına da neden olabilir. Her durumda, anahtar, işleri tutarlı kılmak için bir paterne sahip olmalıdır.

Değer(Value)

Anahtar/değer deposundaki değer, metin (uzun veya kısa), sayı, HTML gibi biçimlendirme kodu, PHP gibi programlama kodu, resim vb. gibi herhangi bir değer olabilir.

Değer ayrıca bir liste veya hatta bir nesne içinde kapsüllenmiş (encapsulated) başka bir anahtar/değer çifti olabilir.

Bazı anahtar deposu DBMS'leri, değer için bir veri türü belirtmenize izin verir. Örneğin, değerin bir tamsayı olması gerektiğini belirtebilirsiniz. Bazı DBMS'ler ise bu işlevi sağlamaz ve bu nedenle değer herhangi bir türde olabilir.

Örnek olarak Redis DBMS, aşağıdaki veri türlerine izin verir..

  • İkili güvenli dizeler (Binary-safe strings).
  • Listeler: ekleme sırasına göre sıralanmış dize öğeleri koleksiyonları.
  • Kümeler: benzersiz, sıralanmamış dize öğelerinin koleksiyonları.
  • Bit dizileri
  • Bazı Hash yapıları
  • Bit dizileri (Bit arrays)
  • HyperLogLogs: Bu, bir kümenin önemliliğini tahmin etmek için kullanılan olasılıksal bir veri yapısıdır.


İlginizi Çekebilir

Veritabanı Normalization (Normalleşme) Nedir?

OODBMS Nedir?

Veritabanı Collation Nedir?

Foreign Key Nedir?

Veritabanında Artık (Sahipsiz) Kayıt Nedir?