İçeriğe atla

BSON

BSON
Dosya uzantısı:.bson
MIME kodu:​application/bson​[1]

BSON, bir bilgisayar veri değişim biçimidir. "BSON" adı, JSON terimine dayanmaktadır ve "Binary JSON" anlamına gelir.[2] İlişkisel diziler, tam sayı indeksli diziler ve bir dizi temel skaler tip dahil olmak üzere basit veya karmaşık veri yapılarını temsil etmek için ikili bir şekildir. BSON, 2009 yılında MongoDB'de ortaya çıktı. Çeşitli skaler veri türleri MongoDB için özel ilgi alanıdır ve biçim, MongoDB veri tabanı için hem veri depolama hem de ağ aktarım biçimi olarak kullanılır, ancak MongoDB olmadan da bağımsız bir şekilde kolaylıkla kullanılabilir. C, C++, C#, D, Delphi, Erlang, Go, Haskell, Java, JavaScript, Julia, Lua, OCaml, Perl, PHP, Python, Ruby, Rust, Scala, Smalltalk ve Swift gibi çeşitli programlama dillerinde uyarlamaları bulunmaktadır.[3]

Veri türleri ve sözdizimi

BSON'un yayınlanmış bir belirtimi vardır.[4][5] Yapıda en üstteki öğe, BSON nesnesi türünde olmalıdır ve 1 veya daha fazla öğe içermelidir; burada bir öğe, alan adı, tür ve değerden oluşur. Alan adları metinseldir. Türler şunları içerir:

BSON'un, JSON'dan önemli bir farkı, JSON'da bulunmayan veri türlerini içermesidir.

Yeterlik

JSON ile karşılaştırıldığında BSON, hem depolama alanı hem de tarama hızı açısından daha verimli olacak şekilde tasarlanmıştır. Bir BSON belgesindeki büyük öğelerin önüne, taramayı kolaylaştırmak için bir uzunluk alanı eklenir. Bazı durumlarda BSON, uzunluk önekleri ve belirtilmiş dizi indeksleri nedeniyle JSON'dan daha fazla yer kaplar.[2]

Örnek

BSON, ​{"hello": "world"​} gibi bir JSON belgesini aşağıdaki şekilde saklayacaktır:

\x16\x00\x00\x00          // total document size
\x02                      // 0x02 = type String
hello\x00                 // field name
\x06\x00\x00\x00world\x00 // field value (size of value, value, null terminator)
\x00                      // 0x00 = type EOO ('end of object')

Kaynakça

  1. ^ "BSON Support in ASP.NET Web API 2.1 - ASP.NET 4.x". Microsoft Docs. 20 Ocak 2014. 29 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 12 Ocak 2010. 
  2. ^ a b "BSON (Binary JSON) Serialization". 27 Şubat 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Kasım 2021. 
  3. ^ "BSON Implementation Projects". 30 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Kasım 2021. 
  4. ^ "BSON (Binary JSON): Specification". bsonspec.org. 30 Mart 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Kasım 2021. 
  5. ^ "Introducing NoSQL and MongoDB | What Is NoSQL? | InformIT". www.informit.com. 2 Ekim 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ocak 2018. 
  6. ^ "regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation". api.mongodb.com. 10 Mayıs 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 17 Ocak 2018. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

Veritabanları, yapılandırılmış bilgi veya verilerin depolandığı alanlardır. Bilgi artışıyla birlikte bilgisayarda bilgi depolama ve bilgiye erişim konularında yeni yöntemlere ihtiyaç duyulmuştur. Veritabanları; büyük miktardaki bilgileri depolamada geleneksel yöntem olan "dosya-işlem sistemine" alternatif olarak geliştirilmiştir. Telefonlardaki kişi rehberi günlük hayatta çok basit bir şekilde kullanılan veri tabanı örneği olarak kabul edilebilir. Bunların dışında internet sitelerindeki üyelik sistemleri, akademik dergilerin ve üniversitelerin tez yönetim sistemleri de veritabanı kullanımına örnektir. Veritabanları sayesinde bilgilere ulaşılabilir ve onları düzenlenebilir. Veritabanları genellikle bireysel olarak satın alınamayacak kadar yüksek meblağlara sahip olmasına karşın; ücretsiz kullanıma açılan akademik veritabanları da bulunmaktadır. Akademik veritabanları aracılığıyla bazen bibliyografik bilgi bazen de tam metinlere erişmek mümkündür. Veritabanları, veritabanı yönetim sistemleri aracılığıyla oluşturulur ve yönetilir. Bu sistemlere; Microsoft Access, MySQL, IBM DB2, Informix, Interbase, Microsoft SQL Server, PostgreSQL, Oracle ve Sysbase örnek olarak verilebilir.

ASP.NET, Microsoft tarafından geliştirilmiş olan bir açık kaynak Web uygulama gelişimi teknolojisidir. Dinamik Web sayfaları, Web uygulamaları ve XML tabanlı Web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .NET çatısı'nın yazılım iskeleti parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

<span class="mw-page-title-main">Barındırma hizmeti</span> Web Sitelerin dosya barındırma sistemi

Barındırma (hosting), bir web sitesinde yayınlanmak istenen sayfaların, resimlerin veya belgelerin internet kullanıcılarının erişimine sunulabilmesi amacıyla bir sunucuda saklanmasıdır. Barındırma hizmeti, web sitesinin içeriğinin yüklenip saklandığı sunucunun veri depolama işlevini üstlenir.

AJAX, İnternet sayfalarında JavaScript ve XMLHttpRequest kullanımı ile etkileşimli uygulamalar yaratan tekniğin adıdır.

Veri tabanı yönetim sistemi, veri tabanlarını tanımlamak, yaratmak, kullanmak, değiştirmek ve veri tabanı sistemleri ile ilgili her türlü işletimsel gereksinimleri karşılamak için tasarlanmış sistem ve yazılımdır. Bu sistemlere örnek olarak MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database ve Microsoft Access gösterilebilir.

<span class="mw-page-title-main">JSON</span> insanların okuyabileceği yapıda yazı temelli standart

JSON ; bütün programlama dilleri arasında, yapılandırılmış veri değişimini kolaylaştıran bir metin biçimidir. Yay ayraç, köşeli ayraç, iki nokta ve virgüllü yazımı ile birçok bağlam ve uygulamada kullanışlıdır. ECMAScript Dil Şartnamesi 'nde tanımlandığı gibi JavaScript'te bulunan nesne değişmezlerinden esinlenilerek tasarlanmıştır. ECMAScript Programlama Dilinden türetilmiştir fakat programlama dilinden bağımsızdır. JSON sahip olduğu ağaç yapısıyla DOM ve XML ile benzerlik gösterse de bunlardan tamamen farklı bir yapıdadır.

Bilgisayar bilimleri'nde NoSQL, klasik ilişkisel veritabanı yönetim sistemlerinden (İVTYS) bir şekilde farklı olan veritabanı yönetim sistemleri için kullanılan bir kavramdır. Bu veri depolarının sabit tabela düzenlerine ihtiyaçları olmayabilir, alışılagelmiş join işlemleri kullanılmaz, tipik olarak yatay ölçeklemeye gidilir. Akademisyenlerce ve makalelerde tipik olarak böyle veri depolarına yapılanmış bellek denir. Bu kavram klasik ilişkisel veritabanlarını altküme olarak görür. Bu kavram aynı zamanda SQL ve Daha Fazlası olarak da adlandırılmaktadır.

MongoDB (“humongous”); MongoDB Inc. tarafından ölçeklenebilir, doküman tabanlı, C++ ile geliştirilmiş açık kaynak, NoSQL veritabanı uygulamasıdır. MongoDB, verileri JSON benzeri bir veri biçimi olan BSON tabanlı dokümanlarda saklamaktadır, anlamsal alanları dokümandan dokümana değişir ve veri yapısı zaman içinde değiştirilebilir. Belge modeli, uygulamanızın kodundaki nesnelerle eşleştirilir, böylece verilerin kullanımı kolaylaşır. Geçici sorgular, dizin oluşturmak için ve gerçek zamanlı verilerinize erişmek ve analiz etmek için güçlü yollar sağlar. MongoDB, özellikle hız gerektiren ve geleneksel ilişkisel veritabanlarının (RDBMS) hantal ve yavaş kaldığı yapılarda kullanılmaktadır. MongoDB, dağıtılmış bir veritabanı yapısına sahiptir, bu nedenle yüksek erişilebilirlik, yatayda ve dikeyde ölçeklendirme yapılabilmektedir. MongoDB, GNU Affero Genel Kamu Lisansı uyarınca yayınlanan ücretsiz ve açık kaynaktır.

Bir uzamsal (mekansal) veri tabanı verileri depolamak ve bir geometrik uzayda/uzamda/mekanda tanımlanmış nesneleri temsil için sorgu verileri ile en uygun hale getirilmiş bir veri tabanıdır. En gelişmiş uzamsal veri tabanları, noktalar, çizgiler ve çokgenler gibi basit geometrik nesnelerin temsiline izin verir. Bazı uzamsal veri tabanları, 3D nesneler, topolojik kapatıcılık, doğrusal ağlar ve Üçgenlenmiş Düzensiz Ağ gibi daha karmaşık yapıları işlemektedir. Özgün veri tabanları çeşitli sayısal veriler ve karakter tiplerini yönetmek için tasarlanmış olsa da veri tabanlarına etkin uzamsal veri türlerini işlemek için ek işlevsellik eklenmesi gerekiyor. Bunlara genellikle geometri veya özellik denir. Open Geospatial Consortium basit özelliklerin belirtimini oluşturdu ve veri tabanı sistemlerinde uzamsal işlevsellik eklemek için ölçütleri belirliyor.

<span class="mw-page-title-main">SQL enjeksiyonu</span>

SQL enjeksiyonu, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler.. SQL enjeksiyonu, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL enjeksiyonu, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

W3Schools, 1998 yılında kurulmuş programlama dillerini öğretmeyi amaçlayan ücretsiz bir eğitim sitesidir. Aynı zamanda bir uygulaması da bulunmaktadır. İsmi World Wide Web'den (W3) türetimiştir fakat W3C ile herhangi bir bağlantısı yoktur.

<span class="mw-page-title-main">Google Sites</span> Web sayfası oluşturma aracı

Google Siteler, Google tarafından sunulan Google Apps üretkenlik paketinin bir parçası olarak, yapılandırılmış bir viki ve Web sayfası oluşturma aracıdır. Google Sitelerin amacı herkesin bir ekip odaklı bir site oluşturmak mümkün olabilmesi ve birden fazla kişinin iş birliği ve dosyalarınızı paylaşabilmesidir.

<span class="mw-page-title-main">Windows Live Connect</span>

Windows Live Connect Microsoft'un Windows Live hizmetlerinin bir parçasıydı. API'lar ve ortak kontrollerin bir toplamıdır. Geliştiricilere daha derin bir denetime sahip olmasını, açık ve kolayca erişilebilen uygulama programlama arabirimleriyle (API'ler) çekirdek Windows Live hizmetlerine ve verilere erişmesini sağlar.

<span class="mw-page-title-main">Microsoft WebMatrix</span>

Microsoft WebMatrix Windows için, web geliştirmeye yönelik, ücretsiz, bulut bağlantılı bir web sitesi oluşturucu ve HTML düzenleyicisidir. WebMatrix, geliştiricilerin ASP.NET, PHP, Node.js ve HTML5 için tam destekle yerleşik şablonları veya popüler açık kaynak uygulamaları kullanarak web siteleri oluşturmalarını sağlar. Microsoft, web geliştiricilere kodlama, özelleştirme ve yayınlama yeteneklerini tek bir yerde sunmak amacıyla WebMatrix'i geliştirdi.

<span class="mw-page-title-main">DBeaver</span>

DBeaver, bir SQL istemcisi ve veritabanı yönetim aracıdır. İlişkisel veritabanları ile JDBC sürücüleri üzerinden iletişim sağlar. Diğer veritabanları için, özel veritabanı sürücülerini kullanır. Kod tamamlayıcısı ve sözdizimi vurgulama özelliklerine sahip bir metin editörüne sahiptir. Ayrıca kullanıcılara yeni özellikler ekleyebileceği plug-in sistemi de sağlamaktadır. Masaüstü uygulaması Java diliyle yazılmıştır ve Eclipse platformu üzerine kuruludur.

<span class="mw-page-title-main">Deno</span> TypeScript and JavaScript Çalistirma Ortami

Deno, V8 JavaScript motoruna ve ek olarak Rust programlama diline dayanan JavaScript ve TypeScript için bir çalıştırma ortamıdır. Node.js'in yaratıcısı Ryan Dahl tarafından güvenlik ve üretkenliğe odaklanılarak geliştirilmeye başlanmıştır. 2018'de Dahl tarafından "Node.js Hakkında 10 Pişman Olduğum Şey" konuşmasında duyuruldu. Deno, ayrı bir paket yönetim sistemi gerektirmez, bunun yerine tek bir dosya içinde hem çalışma ortamı hem de paket yöneticisi rolünü üstlenir.

<span class="mw-page-title-main">RocksDB</span>

RocksDB, anahtar / değer verileri için yüksek performanslı yerleşik bir veritabanıdır. Çoklu merkezi işlem birimi (CPU) çekirdeğinden yararlanmak ve giriş / çıkış bağlı iş yükleri için katı hal sürücüleri (SSD) gibi hızlı depolamayı verimli bir şekilde kullanmak üzere optimize edilmiş, Google tarafından geliştirilen LevelDB'nin bir çatalıdır. Günlük yapılı birleştirme ağacı veri yapısına dayanır.

Belge odaklı veritabanı veya belge deposu, yarı yapılandırılmış veriler olarak da bilinen belge odaklı bilgileri depolamak, almak ve yönetmek için tasarlanmış bir bilgisayar programı ve veri depolama sistemidir.

Anahtar-değer veritabanı, bir anahtar ve o anahtarla ilişkili veriyi depolayan ve yöneten bir veritabanı türüdür. Bu model, genellikle büyük ölçekli dağıtık sistemlerde kullanılır ve özellikle NoSQL veritabanlarının bir kategorisi olarak öne çıkar. Her veri öğesi, genellikle tekil ve benzersiz bir anahtar ile ilişkilendirilmiş bir değerden oluşur.