बीएसओएन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 13: Line 13:
'''बीएसओएन''' ({{IPAc-en|ˈ|b|iː|s|ə|n}}<ref name="bsonspec-org">{{cite web |title=बीएसओएन (बाइनरी जेएसओएन) क्रमांकन|url=https://bsonspec.org/ |access-date=23 November 2021}}</ref>) [[कंप्यूटर]] डेटा इंटरचेंज प्रारूप है। बीएसओएन नाम [[JSON|जेएसओएन]] शब्द पर आधारित है और इसका कारण बाइनरी जेएसओएन है।<ref name="bsonspec-org" /> यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल [[डेटा संरचना]]ओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है। बीएसओएन की शुरुआत 2009 में [[MongoDB|मोंगोडीबी]] में हुई थी। कई स्केलर डेटा प्रकार मोंगोडीबी के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, किन्तु इसे मोंगोडीबी के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है। कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे [[सी (प्रोग्रामिंग भाषा)]], [[सी++]], सी शार्प (प्रोग्रामिंग भाषा) या सी, [[डी (प्रोग्रामिंग भाषा)]], [[डेल्फ़ी (आईडीई)]], [[एरलांग (प्रोग्रामिंग भाषा)]], गो (प्रोग्रामिंग भाषा), [[हास्केल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], [[जूलिया (प्रोग्रामिंग भाषा)]], [[लुआ (प्रोग्रामिंग भाषा)]], [[ओकैमल]], [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)]], [[रूबी (प्रोग्रामिंग भाषा)]], रस्ट (प्रोग्रामिंग भाषा), [[स्काला (प्रोग्रामिंग भाषा)]], स्मॉलटॉक, और [[स्विफ्ट (प्रोग्रामिंग भाषा)]] है।<ref>{{cite web |url=https://bsonspec.org/implementations.html |title=बीएसओएन कार्यान्वयन परियोजनाएं|access-date=2021-11-24 }}</ref>
'''बीएसओएन''' ({{IPAc-en|ˈ|b|iː|s|ə|n}}<ref name="bsonspec-org">{{cite web |title=बीएसओएन (बाइनरी जेएसओएन) क्रमांकन|url=https://bsonspec.org/ |access-date=23 November 2021}}</ref>) [[कंप्यूटर]] डेटा इंटरचेंज प्रारूप है। बीएसओएन नाम [[JSON|जेएसओएन]] शब्द पर आधारित है और इसका कारण बाइनरी जेएसओएन है।<ref name="bsonspec-org" /> यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल [[डेटा संरचना]]ओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है। बीएसओएन की शुरुआत 2009 में [[MongoDB|मोंगोडीबी]] में हुई थी। कई स्केलर डेटा प्रकार मोंगोडीबी के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, किन्तु इसे मोंगोडीबी के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है। कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे [[सी (प्रोग्रामिंग भाषा)]], [[सी++]], सी शार्प (प्रोग्रामिंग भाषा) या सी, [[डी (प्रोग्रामिंग भाषा)]], [[डेल्फ़ी (आईडीई)]], [[एरलांग (प्रोग्रामिंग भाषा)]], गो (प्रोग्रामिंग भाषा), [[हास्केल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], [[जूलिया (प्रोग्रामिंग भाषा)]], [[लुआ (प्रोग्रामिंग भाषा)]], [[ओकैमल]], [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)]], [[रूबी (प्रोग्रामिंग भाषा)]], रस्ट (प्रोग्रामिंग भाषा), [[स्काला (प्रोग्रामिंग भाषा)]], स्मॉलटॉक, और [[स्विफ्ट (प्रोग्रामिंग भाषा)]] है।<ref>{{cite web |url=https://bsonspec.org/implementations.html |title=बीएसओएन कार्यान्वयन परियोजनाएं|access-date=2021-11-24 }}</ref>
==डेटा प्रकार और वाक्यविन्यास==
==डेटा प्रकार और वाक्यविन्यास==
बीएसओएन का प्रकाशित विनिर्देश है।<ref>{{Cite web|url=https://bsonspec.org/spec.html|title=BSON (Binary JSON): Specification|website=bsonspec.org|access-date=2021-11-24}}</ref><ref>{{Cite web|url=https://www.informit.com/articles/article.aspx?p=2247310&seqNum=4%20api.mongodb.com/python/current/api/bson/regex.html|title=Introducing NoSQL and MongoDB {{!}} What Is NoSQL? {{!}} InformIT|website=www.informit.com|access-date=2018-01-17}}</ref> संरचना में सबसे ऊपरी तत्व बीएसओएन ऑब्जेक्ट प्रकार का होना चाहिए इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:
बीएसओएन का प्रकाशित विनिर्देश है।<ref>{{Cite web|url=https://bsonspec.org/spec.html|title=BSON (Binary JSON): Specification|website=bsonspec.org|access-date=2021-11-24}}</ref><ref>{{Cite web|url=https://www.informit.com/articles/article.aspx?p=2247310&seqNum=4%20api.mongodb.com/python/current/api/bson/regex.html|title=Introducing NoSQL and MongoDB {{!}} What Is NoSQL? {{!}} InformIT|website=www.informit.com|access-date=2018-01-17}}</ref> संरचना में सबसे ऊपरी तत्व बीएसओएन ऑब्जेक्ट प्रकार का होना चाहिए इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में क्षेत्र नाम, प्रकार और मान होता है। क्षेत्र नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:


* [[यूनिकोड]] स्ट्रिंग ([[UTF-8|यूटीएफ-8]] एन्कोडिंग का उपयोग करके)
* [[यूनिकोड]] स्ट्रिंग ([[UTF-8|यूटीएफ-8]] एन्कोडिंग का उपयोग करके)
Line 32: Line 32:


==दक्षता==
==दक्षता==
जेएसओएन की तुलना में, बीएसओएन को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन दस्तावेज़ में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई फ़ील्ड के साथ उपसर्ग किया जाता है। कुछ स्थितियों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण बीएसओएन जेएसओएन की तुलना में अधिक स्थान का उपयोग करता है।<ref name="bsonspec-org"/>
जेएसओएन की तुलना में, बीएसओएन को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन डाक्यूमेंट में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई क्षेत्र के साथ उपसर्ग किया जाता है। कुछ स्थितियों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण बीएसओएन जेएसओएन की तुलना में अधिक स्थान का उपयोग करता है।<ref name="bsonspec-org"/>
== उदाहरण ==
== उदाहरण ==
एक दस्तावेज़ जैसे {{code|{"hello": "world"} }} को इस प्रकार संग्रहित किया जाता है:<syntaxhighlight lang="abl">
एक डाक्यूमेंट जैसे {{code|{"hello": "world"} }} को इस प्रकार संग्रहित किया जाता है:<syntaxhighlight lang="abl">
\x16\x00\x00\x00          // total document size
\x16\x00\x00\x00          // total document size
\x02                      // 0x02 = type String
\x02                      // 0x02 = type String
Line 51: Line 51:
* [[अपाचे थ्रिफ्ट]]
* [[अपाचे थ्रिफ्ट]]
* [[संदेशपैक]]
* [[संदेशपैक]]
* [[दस्तावेज़-उन्मुख डेटाबेस]]
* [[दस्तावेज़-उन्मुख डेटाबेस|डाक्यूमेंट-उन्मुख डेटाबेस]]
** मोंगोडीबी
** मोंगोडीबी
* सार सिंटेक्स नोटेशन वन (एएसएन.1)
* सार सिंटेक्स नोटेशन वन (एएसएन.1)

Revision as of 15:38, 28 July 2023

बीएसओएन
BSON website logo.svg
Filename extension
.बीएसओएन
Internet media typeapplication/bson[1]
Type of formatडेटा इंटरचेंज
Extended fromजेएसओएन
Websitebsonspec.org

बीएसओएन (/ˈbsən/[2]) कंप्यूटर डेटा इंटरचेंज प्रारूप है। बीएसओएन नाम जेएसओएन शब्द पर आधारित है और इसका कारण बाइनरी जेएसओएन है।[2] यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल डेटा संरचनाओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है। बीएसओएन की शुरुआत 2009 में मोंगोडीबी में हुई थी। कई स्केलर डेटा प्रकार मोंगोडीबी के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, किन्तु इसे मोंगोडीबी के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है। कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे सी (प्रोग्रामिंग भाषा), सी++, सी शार्प (प्रोग्रामिंग भाषा) या सी, डी (प्रोग्रामिंग भाषा), डेल्फ़ी (आईडीई), एरलांग (प्रोग्रामिंग भाषा), गो (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, जूलिया (प्रोग्रामिंग भाषा), लुआ (प्रोग्रामिंग भाषा), ओकैमल, पर्ल, पीएचपी, पायथन (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), स्काला (प्रोग्रामिंग भाषा), स्मॉलटॉक, और स्विफ्ट (प्रोग्रामिंग भाषा) है।[3]

डेटा प्रकार और वाक्यविन्यास

बीएसओएन का प्रकाशित विनिर्देश है।[4][5] संरचना में सबसे ऊपरी तत्व बीएसओएन ऑब्जेक्ट प्रकार का होना चाहिए इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में क्षेत्र नाम, प्रकार और मान होता है। क्षेत्र नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:

  • यूनिकोड स्ट्रिंग (यूटीएफ-8 एन्कोडिंग का उपयोग करके)
  • 32 बिट पूर्णांक
  • 64 बिट पूर्णांक

डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप प्रारूप (64-बिट आईईईई 754 फ़्लोटिंग पॉइंट नंबर)

जेएसओएन के लिए महत्वपूर्ण अंतर यह है कि बीएसओएन में ऐसे प्रकार होते हैं जो जेएसओएन में उपस्थित नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के अतिरिक्त कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य विधि से प्रस्तुत करने की आवश्यकता होती है, मोंगोडीबी का विस्तारित जेएसओएन प्रारूप [7] उपयोग किया जा सकता है।

दक्षता

जेएसओएन की तुलना में, बीएसओएन को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन डाक्यूमेंट में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई क्षेत्र के साथ उपसर्ग किया जाता है। कुछ स्थितियों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण बीएसओएन जेएसओएन की तुलना में अधिक स्थान का उपयोग करता है।[2]

उदाहरण

एक डाक्यूमेंट जैसे {"hello": "world"} को इस प्रकार संग्रहित किया जाता है:

\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')

यह भी देखें

संदर्भ

  1. "BSON Support in ASP.NET Web API 2.1 - ASP.NET 4.x". Microsoft Docs. 2014-01-20. Retrieved 2010-01-12.
  2. 2.0 2.1 2.2 "बीएसओएन (बाइनरी जेएसओएन) क्रमांकन". Retrieved 23 November 2021.
  3. "बीएसओएन कार्यान्वयन परियोजनाएं". Retrieved 2021-11-24.
  4. "BSON (Binary JSON): Specification". bsonspec.org. Retrieved 2021-11-24.
  5. "Introducing NoSQL and MongoDB | What Is NoSQL? | InformIT". www.informit.com. Retrieved 2018-01-17.
  6. "regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation". api.mongodb.com. Retrieved 2018-01-17.
  7. "MongoDB विस्तारित JSON दस्तावेज़ीकरण". docs.mongodb.com. Retrieved 2020-05-03.

बाहरी संबंध