बीएसओएन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 11: Line 11:
}}
}}


बीएसओएन ({{IPAc-en|ˈ|b|iː|s|ə|n}}<ref name="bsonspec-org">{{cite web |title=बीएसओएन (बाइनरी जेएसओएन) क्रमांकन|url=https://bsonspec.org/ |access-date=23 November 2021}}</ref>) [[कंप्यूटर]] डेटा इंटरचेंज प्रारूप है। BSON नाम [[JSON]] शब्द पर आधारित है और इसका मतलब बाइनरी JSON है।<ref name="bsonspec-org" />यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल [[डेटा संरचना]]ओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है।
'''बीएसओएन''' ({{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>
BSON की शुरुआत 2009 में [[MongoDB]] में हुई थी। कई स्केलर डेटा प्रकार MongoDB के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग MongoDB डेटाबेस के लिए डेटा भंडारण और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, लेकिन इसे MongoDB के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है।
कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे [[सी (प्रोग्रामिंग भाषा)]], [[सी++]], सी शार्प (प्रोग्रामिंग भाषा)|सी#, [[डी (प्रोग्रामिंग भाषा)]], [[डेल्फ़ी (आईडीई)]]आईडीई), [[एरलांग (प्रोग्रामिंग भाषा)]], गो (प्रोग्रामिंग भाषा), [[हास्केल (प्रोग्रामिंग भाषा)]], [[जावा (प्रोग्रामिंग भाषा)]], [[जावास्क्रिप्ट]], [[जूलिया (प्रोग्रामिंग भाषा)]], [[लुआ (प्रोग्रामिंग भाषा)]], [[ओकैमल]], [[पर्ल]], [[पीएचपी]], [[पायथन (प्रोग्रामिंग भाषा)]], [[रूबी (प्रोग्रामिंग भाषा)]], रस्ट (प्रोग्रामिंग भाषा), [[स्काला (प्रोग्रामिंग भाषा)]], स्मॉलटॉक, और [[स्विफ्ट (प्रोग्रामिंग भाषा)]]<ref>{{cite web |url=https://bsonspec.org/implementations.html |title=बीएसओएन कार्यान्वयन परियोजनाएं|access-date=2021-11-24 }}</ref>




==डेटा प्रकार और वाक्यविन्यास==
==डेटा प्रकार और वाक्यविन्यास==
BSON का प्रकाशित विनिर्देश है।<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> संरचना में सबसे ऊपरी तत्व BSON ऑब्जेक्ट प्रकार का होना चाहिए
बीएसओएन का प्रकाशित विनिर्देश है।<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 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:
इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में शामिल हैं:


* [[यूनिकोड]] स्ट्रिंग ([[UTF-8]] एन्कोडिंग का उपयोग करके)
* [[यूनिकोड]] स्ट्रिंग ([[UTF-8|यूटीएफ-8]] एन्कोडिंग का उपयोग करके)
* 32 बिट पूर्णांक
* 32 बिट पूर्णांक
* 64 बिट पूर्णांक
* 64 बिट पूर्णांक
[[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] प्रारूप (64-बिट [[आईईईई 754]] फ़्लोटिंग पॉइंट नंबर)
[[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] प्रारूप (64-बिट [[आईईईई 754]] फ़्लोटिंग पॉइंट नंबर)
* [[दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप]] (128-बिट [[आईईईई 754-2008]] फ़्लोटिंग पॉइंट नंबर; [[बाइनरी पूर्णांक दशमलव]] (बीआईडी) संस्करण), दशमलव-स्थान संवेदनशील वित्तीय डेटा और सटीकता के 34 दशमलव अंकों के साथ मनमाने ढंग से सटीक संख्याओं के लिए वाहक के रूप में उपयुक्त, अधिकतम मान लगभग 10<sup>6145</sup>
* [[दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप]] (128-बिट [[आईईईई 754-2008]] फ़्लोटिंग पॉइंट नंबर; [[बाइनरी पूर्णांक दशमलव]] (बीआईडी) संस्करण), दशमलव-स्थान संवेदनशील वित्तीय डेटा और स्पष्टता के 34 दशमलव अंकों के साथ इच्छानुसार विधि से स्पष्ट संख्याओं के लिए वाहक के रूप में उपयुक्त, a अधिकतम मान लगभग 10<sup>6145</sup> का उपयोग किया जाता है
* समय क्षेत्र के बिना डेटाटाइम ([[यूनिक्स युग]] के बाद से मिलीसेकंड की लंबी पूर्णांक संख्या)
* समय क्षेत्र के बिना डेटाटाइम ([[यूनिक्स युग]] के बाद से मिलीसेकंड की लंबी पूर्णांक संख्या)
* बाइट सरणी (मनमाना बाइनरी डेटा के लिए)
* बाइट सरणी (इच्छानुसार बाइनरी डेटा के लिए)
* [[बूलियन डेटाटाइप]] (<code>true</code> और <code>false</code>)
* [[बूलियन डेटाटाइप]] (<code>true</code> और <code>false</code>)
* [[निरर्थक प्रकार]]
* [[निरर्थक प्रकार]]
Line 33: Line 30:
* जावास्क्रिप्ट कोड
* जावास्क्रिप्ट कोड
* [[एमडी5]] बाइनरी डेटा
* [[एमडी5]] बाइनरी डेटा
* [[ नियमित अभिव्यक्ति | नियमित अभिव्यक्ति]] (पर्ल संगत रेगुलर एक्सप्रेशन ([[पीसीआरई]]) संस्करण 8.41 यूटीएफ-8 समर्थन के साथ)<ref>{{Cite web|url=https://api.mongodb.com/python/current/api/bson/regex.html|title=regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation|website=api.mongodb.com|access-date=2018-01-17}}</ref>
* [[ नियमित अभिव्यक्ति | नियमित अभिव्यक्ति]] (पर्ल संगत रेगुलर एक्सप्रेशन ([[पीसीआरई]]) संस्करण 8.41 यूटीएफ-8 समर्थन के साथ) <ref>{{Cite web|url=https://api.mongodb.com/python/current/api/bson/regex.html|title=regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation|website=api.mongodb.com|access-date=2018-01-17}}</ref>
JSON के लिए महत्वपूर्ण अंतर यह है कि BSON में ऐसे प्रकार होते हैं जो JSON में मौजूद नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के बजाय कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य तरीके से प्रस्तुत करने की आवश्यकता होती है, MongoDB का विस्तारित JSON प्रारूप<ref>{{Cite web|url=https://docs.mongodb.com/manual/reference/mongodb-extended-json/|title=MongoDB विस्तारित JSON दस्तावेज़ीकरण|website=docs.mongodb.com|access-date=2020-05-03}}</ref> इस्तेमाल किया जा सकता है।
जेएसओएन के लिए महत्वपूर्ण अंतर यह है कि बीएसओएन में ऐसे प्रकार होते हैं जो जेएसओएन में उपस्थित नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के अतिरिक्त कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य विधि से प्रस्तुत करने की आवश्यकता होती है, मोंगोडीबी का विस्तारित जेएसओएन प्रारूप <ref>{{Cite web|url=https://docs.mongodb.com/manual/reference/mongodb-extended-json/|title=MongoDB विस्तारित JSON दस्तावेज़ीकरण|website=docs.mongodb.com|access-date=2020-05-03}}</ref> उपयोग किया जा सकता है।


==दक्षता==
==दक्षता==
JSON की तुलना में, BSON को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन दस्तावेज़ में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई फ़ील्ड के साथ उपसर्ग किया जाता है। कुछ मामलों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण BSON JSON की तुलना में अधिक स्थान का उपयोग करेगा।<ref name="bsonspec-org"/>
जेएसओएन की तुलना में, बीएसओएन को स्टोरेज स्पेस और स्कैन-स्पीड दोनों में कुशल होने के लिए डिज़ाइन किया गया है। बीएसओएन दस्तावेज़ में बड़े तत्वों को स्कैनिंग की सुविधा के लिए लंबाई फ़ील्ड के साथ उपसर्ग किया जाता है। कुछ स्थितियों में, लंबाई उपसर्गों और स्पष्ट सरणी सूचकांकों के कारण बीएसओएन जेएसओएन की तुलना में अधिक स्थान का उपयोग करता है।<ref name="bsonspec-org"/>




== उदाहरण ==
== उदाहरण ==
एक दस्तावेज़ जैसे {{code|{"hello": "world"} }} को इस प्रकार संग्रहित किया जाएगा:
एक दस्तावेज़ जैसे {{code|{"hello": "world"} }} को इस प्रकार संग्रहित किया जाता है:<syntaxhighlight lang="abl">
 
\x16\x00\x00\x00          // total document size
<पूर्व>
\x02                      // 0x02 = type String
\x16\x00\x00\x00 // कुल दस्तावेज़ आकार
hello\x00                // field name
\x06\x00\x00\x00world\x00 // field value (size of value, value, null terminator)
\x00                      // 0x00 = type EOO ('end of object')
</syntaxhighlight>\x16\x00\x00\x00 // कुल दस्तावेज़ आकार
\x02 // 0x02 = स्ट्रिंग टाइप करें
\x02 // 0x02 = स्ट्रिंग टाइप करें
नमस्ते\x00 // फ़ील्ड का नाम
नमस्ते\x00  
\x06\x00\x00\x00world\x00 // फ़ील्ड मान (मान का आकार, मान, शून्य टर्मिनेटर)
\x00 // 0x00 = EOO टाइप करें ('ऑब्जेक्ट का अंत')
</पूर्व>


== यह भी देखें ==
== यह भी देखें ==
Line 55: Line 52:
* जेएसओएन
* जेएसओएन
* [[सीबीओआर]]
* [[सीबीओआर]]
* स्माइल_(डेटा_इंटरचेंज_फॉर्मेट) (बाइनरी JSON)
* स्माइल (डेटा इंटरचेंज फॉर्मेट) (बाइनरी जेएसओएन)
* उबजसन
* उबजसन
* [[प्रोटोकॉल बफ़र्स]]
* [[प्रोटोकॉल बफ़र्स]]
Line 63: Line 60:
* [[दस्तावेज़-उन्मुख डेटाबेस]]
* [[दस्तावेज़-उन्मुख डेटाबेस]]
** मोंगोडीबी
** मोंगोडीबी
* सार सिंटेक्स नोटेशन वन (ASN.1)
* सार सिंटेक्स नोटेशन वन (एएसएन.1)
* वायरलेस बाइनरी XML (WBXML)
* वायरलेस बाइनरी एक्सएमएल (डब्ल्यूबीएक्सएमएल)
* [[कुशल XML इंटरचेंज]]
* [[कुशल XML इंटरचेंज|कुशल एक्सएमएल इंटरचेंज]]


==संदर्भ==
==संदर्भ==
Line 73: Line 70:
== बाहरी संबंध ==
== बाहरी संबंध ==
* {{Official website|https://bsonspec.org/}}
* {{Official website|https://bsonspec.org/}}
* [https://docs.mongodb.com/database-tools/bsondump/ {{mono|bsondump}} tool included with MongoDB]
* [https://docs.mongodb.com/database-tools/bsondump/ {{mono|bsondump}} tool included with मोंगोडीबी]
[[Category: JSON]] [[Category: डेटा क्रमांकन प्रारूप]] [[Category: दस्तावेज़-उन्मुख डेटाबेस]]  
[[Category: JSON]] [[Category: डेटा क्रमांकन प्रारूप]] [[Category: दस्तावेज़-उन्मुख डेटाबेस]]  



Revision as of 14:25, 16 July 2023

BSON
BSON website logo.svg
Filename extension
.bson
Internet media typeapplication/bson[1]
Type of formatData interchange
Extended fromJSON
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')

\x16\x00\x00\x00 // कुल दस्तावेज़ आकार

\x02 // 0x02 = स्ट्रिंग टाइप करें नमस्ते\x00

यह भी देखें

संदर्भ

  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.


बाहरी संबंध