BSON veri değişim formatı
BSON ( Binary JSON ) olarak tanımlanan, JSON ( Javascript Object Notation ) ‘ un binary formatta saklanan ve daha gelişmiş bir yapı sunan hali olarak düşünebiliriz. JSON dil bağımsız, sözdizimi basit ve kolay anlaşılır, XML alternatifi ve popüler olan bir veri saklama/değişim/aktarım biçimidir.
Örnek üzerinde de görüldüğü gibi, JSON’ un daha basit ve kolay anlaşılır olduğu açıktır.
JSON :
Number
String
Boolean
Array
Object
null
veri tiplerini desteklemektedir.
BSON ise dediğimiz üzere, JSON biçiminin binary formatta saklanmış halidir. JSON’ a göre daha fazla veri tipini desteklemektedir ,
string
integer (32- or 64-bit)
double (64-bit IEEE 754 floating point number)
date (integer number of milliseconds since the Unix epoch)
byte array (binary data)
boolean (true and false)
null
BSON object
BSON array
regular expression
JavaScript code
BSON ayrıca, içine dahil ettiği veri kümelerinin başında boyut bilgisini de saklamaktadır. Bir JSON dökümanının boyutu arttığında arama süresi uzamaktadır, bunun sebebi aramanın ardışık olarak baştan sona yapılmasıdır. Fakat BSON, veri kümesinin boyutunu da sakladığından, çeşitli algoritmalar ile arama süresi azaltılabilmektedir. Dolayısıyla gezinme çok daha kolay gerçekleşmektedir.
Mesela bir JSON dökümanı içerisindeki bir alanın değeri 9 olsun farzedelim. Biz bu değeri bir (+1) arttırmak istediğimizde, 9 değerinden sonraki tüm içeriği sağ tarafa doğru kaydırma (shifting) yapmak durumundayız. Bu da JSON dökümanının boyutunun fazla olması durumunda, süre bakımından maliyeti arttıracaktır. BSON ise zaten binary formatta olduğundan değerler üzerinde manipülasyon kolay ve esnektir.
MongoDB , dökümanların network üzerinde taşınmasında, diske yazılmasında ve data manipülasyonunda BSON biçimini aktif olarak kullanmaktadır. BSON yine hemen hemen tüm diller tarafından kullanılabilmektedir. Çeşitli programlama dilleri ile oluşturulmuş implementasyon (uygulama) ‘ ları buradan inceleyebilirsiniz.