बीएसओएन: Difference between revisions
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"/> | ||
== उदाहरण == | == उदाहरण == | ||
एक | एक डाक्यूमेंट जैसे {{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
Filename extension |
.बीएसओएन |
---|---|
Internet media type | application/bson [1] |
Type of format | डेटा इंटरचेंज |
Extended from | जेएसओएन |
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')
यह भी देखें
- डेटा क्रमांकन प्रारूपों की तुलना
- जेएसओएन
- सीबीओआर
- स्माइल (डेटा इंटरचेंज फॉर्मेट) (बाइनरी जेएसओएन)
- उबजसन
- प्रोटोकॉल बफ़र्स
- क्रिया संदेश प्रारूप
- अपाचे थ्रिफ्ट
- संदेशपैक
- डाक्यूमेंट-उन्मुख डेटाबेस
- मोंगोडीबी
- सार सिंटेक्स नोटेशन वन (एएसएन.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.