बीएसओएन: Difference between revisions
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>) [[कंप्यूटर]] डेटा इंटरचेंज प्रारूप है। | '''बीएसओएन''' ({{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 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं: | |||
इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में | |||
* [[यूनिकोड]] स्ट्रिंग ([[UTF-8]] एन्कोडिंग का उपयोग करके) | * [[यूनिकोड]] स्ट्रिंग ([[UTF-8|यूटीएफ-8]] एन्कोडिंग का उपयोग करके) | ||
* 32 बिट पूर्णांक | * 32 बिट पूर्णांक | ||
* 64 बिट पूर्णांक | * 64 बिट पूर्णांक | ||
[[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] प्रारूप (64-बिट [[आईईईई 754]] फ़्लोटिंग पॉइंट नंबर) | [[डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप]] प्रारूप (64-बिट [[आईईईई 754]] फ़्लोटिंग पॉइंट नंबर) | ||
* [[दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप]] (128-बिट [[आईईईई 754-2008]] फ़्लोटिंग पॉइंट नंबर; [[बाइनरी पूर्णांक दशमलव]] (बीआईडी) संस्करण), दशमलव-स्थान संवेदनशील वित्तीय डेटा और | * [[दशमलव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> | ||
जेएसओएन के लिए महत्वपूर्ण अंतर यह है कि बीएसओएन में ऐसे प्रकार होते हैं जो जेएसओएन में उपस्थित नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के अतिरिक्त कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य विधि से प्रस्तुत करने की आवश्यकता होती है, मोंगोडीबी का विस्तारित जेएसओएन प्रारूप <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 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 | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 55: | Line 52: | ||
* जेएसओएन | * जेएसओएन | ||
* [[सीबीओआर]] | * [[सीबीओआर]] | ||
* | * स्माइल (डेटा इंटरचेंज फॉर्मेट) (बाइनरी जेएसओएन) | ||
* उबजसन | * उबजसन | ||
* [[प्रोटोकॉल बफ़र्स]] | * [[प्रोटोकॉल बफ़र्स]] | ||
Line 63: | Line 60: | ||
* [[दस्तावेज़-उन्मुख डेटाबेस]] | * [[दस्तावेज़-उन्मुख डेटाबेस]] | ||
** मोंगोडीबी | ** मोंगोडीबी | ||
* सार सिंटेक्स नोटेशन वन ( | * सार सिंटेक्स नोटेशन वन (एएसएन.1) | ||
* वायरलेस बाइनरी | * वायरलेस बाइनरी एक्सएमएल (डब्ल्यूबीएक्सएमएल) | ||
* [[कुशल 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 | * [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
Filename extension |
.bson |
---|---|
Internet media type | application/bson [1] |
Type of format | Data interchange |
Extended from | JSON |
Website | bsonspec |
बीएसओएन (/ˈbiːsən/[2]) कंप्यूटर डेटा इंटरचेंज प्रारूप है। बीएसओएन नाम जेएसओएन शब्द पर आधारित है और इसका कारण बाइनरी जेएसओएन है।[2] यह साहचर्य सरणियों (नाम-मूल्य जोड़े के रूप में भी जाना जाता है), पूर्णांक अनुक्रमित सरणियों और मौलिक स्केलर प्रकारों के सूट सहित सरल या जटिल डेटा संरचनाओं का प्रतिनिधित्व करने के लिए द्विआधारी रूप है। बीएसओएन की शुरुआत 2009 में मोंगोडीबी में हुई थी। कई स्केलर डेटा प्रकार मोंगोडीबी के लिए विशिष्ट रुचि के हैं और प्रारूप का उपयोग मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज और नेटवर्क ट्रांसफर प्रारूप दोनों के रूप में किया जाता है, किन्तु इसे मोंगोडीबी के बाहर स्वतंत्र रूप से उपयोग किया जा सकता है। कार्यान्वयन विभिन्न भाषाओं में उपलब्ध हैं जैसे सी (प्रोग्रामिंग भाषा), सी++, सी शार्प (प्रोग्रामिंग भाषा) या सी, डी (प्रोग्रामिंग भाषा), डेल्फ़ी (आईडीई), एरलांग (प्रोग्रामिंग भाषा), गो (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा), जावास्क्रिप्ट, जूलिया (प्रोग्रामिंग भाषा), लुआ (प्रोग्रामिंग भाषा), ओकैमल, पर्ल, पीएचपी, पायथन (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), स्काला (प्रोग्रामिंग भाषा), स्मॉलटॉक, और स्विफ्ट (प्रोग्रामिंग भाषा) है।[3]
डेटा प्रकार और वाक्यविन्यास
बीएसओएन का प्रकाशित विनिर्देश है।[4][5] संरचना में सबसे ऊपरी तत्व बीएसओएन ऑब्जेक्ट प्रकार का होना चाहिए इसमें 1 या अधिक तत्व होते हैं, जहां तत्व में फ़ील्ड नाम, प्रकार और मान होता है। फ़ील्ड नाम स्ट्रिंग हैं. प्रकारों में सम्मिलित हैं:
डबल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप प्रारूप (64-बिट आईईईई 754 फ़्लोटिंग पॉइंट नंबर)
- दशमलव128 फ़्लोटिंग-पॉइंट प्रारूप (128-बिट आईईईई 754-2008 फ़्लोटिंग पॉइंट नंबर; बाइनरी पूर्णांक दशमलव (बीआईडी) संस्करण), दशमलव-स्थान संवेदनशील वित्तीय डेटा और स्पष्टता के 34 दशमलव अंकों के साथ इच्छानुसार विधि से स्पष्ट संख्याओं के लिए वाहक के रूप में उपयुक्त, a अधिकतम मान लगभग 106145 का उपयोग किया जाता है
- समय क्षेत्र के बिना डेटाटाइम (यूनिक्स युग के बाद से मिलीसेकंड की लंबी पूर्णांक संख्या)
- बाइट सरणी (इच्छानुसार बाइनरी डेटा के लिए)
- बूलियन डेटाटाइप (
true
औरfalse
) - निरर्थक प्रकार
- बीएसओएन ऑब्जेक्ट
- बीएसओएन सरणी
- जावास्क्रिप्ट कोड
- एमडी5 बाइनरी डेटा
- नियमित अभिव्यक्ति (पर्ल संगत रेगुलर एक्सप्रेशन (पीसीआरई) संस्करण 8.41 यूटीएफ-8 समर्थन के साथ) [6]
जेएसओएन के लिए महत्वपूर्ण अंतर यह है कि बीएसओएन में ऐसे प्रकार होते हैं जो जेएसओएन में उपस्थित नहीं होते हैं (उदाहरण के लिए डेटाटाइम और बाइट सरणी) और सार्वभौमिक संख्या प्रकार के अतिरिक्त कई संख्यात्मक प्रकारों के लिए टाइप-स्ट्रिक्ट हैंडलिंग प्रदान करता है। उन स्थितियों के लिए जहां इन अतिरिक्त प्रकारों को पाठ्य विधि से प्रस्तुत करने की आवश्यकता होती है, मोंगोडीबी का विस्तारित जेएसओएन प्रारूप [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.0 2.1 2.2 "बीएसओएन (बाइनरी जेएसओएन) क्रमांकन". Retrieved 23 November 2021.
- ↑ "बीएसओएन कार्यान्वयन परियोजनाएं". Retrieved 2021-11-24.
- ↑ "BSON (Binary JSON): Specification". bsonspec.org. Retrieved 2021-11-24.
- ↑ "Introducing NoSQL and MongoDB | What Is NoSQL? | InformIT". www.informit.com. Retrieved 2018-01-17.
- ↑ "regex – Tools for representing MongoDB regular expressions — PyMongo 3.6.0 documentation". api.mongodb.com. Retrieved 2018-01-17.
- ↑ "MongoDB विस्तारित JSON दस्तावेज़ीकरण". docs.mongodb.com. Retrieved 2020-05-03.