एक छोटे से .NET अनुप्रयोग के लिए डेटाबेस का एक अच्छा विकल्प क्या है? [बन्द है]


180

मैं .NET में C # के साथ एक छोटा एप्लिकेशन विकसित कर रहा हूं और मैं एक छोटा लाइटवेट डेटाबेस रखना चाहता हूं जो ज्यादा संसाधनों का उपयोग नहीं करता है।

क्या आप कृपया कुछ सबसे अच्छे ज्ञात हल्के वजन डेटाबेस सॉफ्टवेयर्स को सूचीबद्ध कर सकते हैं ।


जवाबों:


192

14/06/2016 हां ... अभी भी बढ़ रहा है: - /


17/03/2014 मैं अभी भी इसके लिए तैयार हो रहा हूं, मूल रूप से उत्तर देने की तारीख से सावधान रहें। हालांकि सूचीबद्ध तीन मुख्य आइटम अभी भी पूरी तरह से व्यवहार्य हैं, सूची बासी बनने की ओर बढ़ेगी। आगे डेटाबेस प्रौद्योगिकियां उपलब्ध हैं जो सूचीबद्ध नहीं हैं।


आपके पास तुरंत पहचानने योग्य और मुफ्त विकल्प के एक जोड़े हैं:

SQL सर्वर कॉम्पैक्ट डाउनलोड ADO.NET प्रदाता के साथ आता है जिसे आपको कोड में संदर्भित करना होगा। SQLite डाउनलोड में यह नहीं हो सकता है इसलिए यहाँ एक लिंक है:

http://sqlite.phxsoftware.com/

सभी तीन एसक्यूएल का उपयोग करते हैं, हालांकि कुछ सीमाओं / quirks के साथ होने की संभावना है। प्रबंधन स्टूडियो कॉम्पैक्ट और लोकलडीबी के साथ काम करता है, जबकि SQLite के साथ आपको एक और UI उपकरण जैसे SQLite एडमिनिस्ट्रेटर की आवश्यकता होगी:

http://sqliteadmin.orbmu2k.de/

NoSQL विकल्प हैं, जैसे:

व्यक्तिगत रूप से मैं अन्य मुफ्त विकल्पों के सामने एमएस एक्सेस का उपयोग करने से बचूंगा। आप LocalDB, कॉम्पैक्ट, या SQLite के साथ गलत नहीं जा सकते। वे सभी प्यारे छोटे डेटाबेस हैं जो अपेक्षाकृत कम रैम में तेजी से चलते हैं - एक Microsoft उत्पाद मुझे पसंद है के बारे में धार्मिक पहलुओं के रूप में व्यक्तिगत पसंद :-)

मैं विंडोज फोन प्रोग्रामिंग के लिए स्टर्लिंग का उपयोग करता हूं क्योंकि यह आइसोलेटेड स्टोरेज का उपयोग करने के लिए बनाया गया है। मैंने केवल रेवेनडब पर लेख देखे हैं, लेकिन मैं आपको बता सकता हूं कि यह एक JSON आधारित डॉक्यूमेंट स्टोरेज फ्रेमवर्क है।

स्थिति को भ्रमित करने के लिए नहीं (SQLite, SQL सर्वर एक्सप्रेस LocalDB, या SQL सर्वर कॉम्पैक्ट संस्करण के साथ जाएं), लेकिन वहाँ अन्य एम्बेडेड / स्थानीय डेटाबेस हैं, कुछ संबंधपरक हैं अन्य ऑब्जेक्ट-उन्मुख हैं:

ये सभी स्वतंत्र नहीं हैं। SQL / LINQ / in-proc समर्थन उन सभी में भिन्न होता है। यह सूची सिर्फ जिज्ञासा के लिए है।

अब कार्वोनाइट भी है , हालांकि कोड गैलरी लिंक टूट गया है। जब यह फिर से लाइव होगा तो मैं WP7 के विकास के लिए इसे देखूंगा।


11
SQL सर्वर CE के लिए +1। अपने ऐप के साथ SQL सर्वर स्थापित करने के बजाय, आप बस SQL ​​Server CE dlls का उपयोग कर सकते हैं और आपके एप्लिकेशन की कार्यशील निर्देशिका में डेटाबेस फ़ाइल हो सकती है। सरल।
फिल

2
रेवेनडीबी वास्तव में एक दस्तावेज डेटाबेस है, लेकिन यह एपीआई सरल नाम और मूल्य जोड़े की तुलना में बहुत अधिक शक्तिशाली है। समस्या यह है कि यदि आप मुफ्त विकल्प की तलाश कर रहे हैं तो यह वाणिज्यिक परियोजनाओं के लिए मुफ्त नहीं है।
जेक्लिको

@ जेसीएलिको मैं मानता हूँ कि मैं सारांश के साथ थोड़ा सामान्य कर रहा था, लेकिन मुझे संदेह है कि किसी ने भी वही लिया होगा जो मैंने सुसमाचार के रूप में कहा है।
एडम हॉल्ड्सवर्थ

@ ब्रेंडन लोंग, वहाँ एक एसक्यूएल कार्यान्वयन नहीं है कि आप इसके 100% मानक कह सकें।
पॉप कैटालिन

1
इसके बजाय अपने उत्तर के शीर्ष पर संदेश पढ़ने के लिए छोटी सी कड़ी छोड़ दें जो बताता है कि जानकारी पुरानी है। यह आसान हो सकता है कि आप अपने उत्तर को अपडेट और / या अपडेट करें और आज उपलब्ध विकल्पों में से कुछ उदाहरणों को शामिल करें।
जेम्स शॉ

58

मैं SQLite की सिफारिश करेंगे । हम इसका उपयोग लगभग उन सभी ऐप के लिए कर रहे हैं, जहाँ हम काम करते हैं।

यह छोटा और कॉम्पैक्ट है। यह एप्लिकेशन निर्देशिका में होने के लिए एक DLL की आवश्यकता होती है, लेकिन आपके पास Access या SQL सर्वर जैसे अन्य सॉफ़्टवेयर स्थापित करने की आवश्यकता नहीं है। इसके अलावा, जैसा कि नीचे danielkza द्वारा कहा गया है, "SQLite सार्वजनिक डोमेन है, इसलिए आपको लाइसेंस के बारे में बिल्कुल भी चिंता करने की ज़रूरत नहीं है।" जो वास्तव में एक बड़ा बदलाव ला सकता है।

आप SQL या OleDB के समान विधियों का उपयोग करके C # ऐप में इसे एक्सेस करने के लिए System.Data.SQLite या csharp-sqlite का उपयोग कर सकते हैं।

डेटाबेस को संपादित / प्रबंधित करने के लिए आपको एक एप्लिकेशन की भी आवश्यकता होगी। मेरी राय में सबसे अच्छा एक SQLite Studio है । यहां कुछ और हैं:
SQLite Admin
SQLite 2009 Pro (पृष्ठ के नीचे)
अपडेट - 7/25/11 - अधिक SQLite एप्लिकेशन (SO पर यहां प्रश्न)

यहाँ SQLite पर अधिक है:
SQLite विकिपीडिया
कंपनियों पर जो SQLite का उपयोग करती है

कस्टम फ़ंक्शंस: इसके अलावा, यदि आप SQLite Core फ़ंक्शंस में देख रहे हैं और आपको जो पसंद नहीं है, उसे आप अपने कस्टम फ़ंक्शंस बना सकते हैं। यहाँ कुछ उदाहरण दिए गए हैं:
SO
Anoter उदाहरण से


8
एक जोड़: SQLite सार्वजनिक डोमेन है, इसलिए आपको लाइसेंस के बारे में बिल्कुल भी चिंता करने की आवश्यकता नहीं है।
danielkza

@MikeWebb Sqlite ClickOnce अनुप्रयोगों के साथ किसी भी अतिरिक्त सेवा या कुछ और स्थापित करने की आवश्यकता के बिना काम करेगा? क्या यह काम करेगा यदि यह कई समवर्ती उपयोगकर्ताओं के लिए एक नेटवर्क साझा पर है?
प्रोक्योरर्स

1
@Prokurors - चलाने के लिए सभी SQLite को आपके प्रोग्राम (C ++, C #, आदि) में उपयोग की जाने वाली भाषा के अनुरूप DLL फ़ाइल है। कोई अन्य सेवाएं या कार्यक्रम आवश्यक नहीं हैं। इसके अलावा, यह समवर्ती उपयोगकर्ताओं के साथ एक नेटवर्क पर काम करना चाहिए। हमारे पास एक सर्वर पर एक कॉपी और चल रहा है जहां मैं काम करता हूं और यह बहुत अच्छा काम करता है। आप यहां अधिक संगामिति में देख सकते हैं: sqlite.org/lockingv3.html
माइक वेब

10

फायरबर्ड एम्बेडेड एक अच्छा विकल्प हो सकता है

एम्बेडेड संस्करण सर्वर का एक अद्भुत बदलाव है। यह एक पूरी तरह से चित्रित फायरबर्ड सर्वर है जो केवल कुछ फ़ाइलों में पैक किया गया है। यह तैनात करना बहुत आसान है, क्योंकि सर्वर को स्थापित करने की कोई आवश्यकता नहीं है।

कुछ बहुत अच्छे डॉट नेट ड्राइवर हैं


8

SQL सर्वर कॉम्पैक्ट यदि आप आधिकारिक Microsoft समाधान का उपयोग करना चाहते हैं। यह SQL सर्वर के साथ प्रतिकृति का उपयोग करने में सक्षम होने का लाभ है अगर आपको उस तरह की आवश्यकता है।

SQLite यदि आप बहुत सरल छोटे और मुफ्त somthing चाहते हैं। यह वही है जो एंड्रॉइड अपने आंतरिक डेटाबेस के लिए उपयोग करता है इसलिए यह बहुत अच्छी तरह से समर्थित है और बहुत अच्छे .NET बाइंडिंग उपलब्ध हैं।

SQLite का एक अलग फायदा यह है कि यह क्रॉस-प्लेटफॉर्म है। इसलिए यदि आप अपना आवेदन Mono.NET में पोर्ट कराना चाहते हैं तो आपके पास डेटाबेस कार्यान्वयन के लिए कोई संशोधन नहीं होगा।

मुझे इस समाधान के लिए एमएस एक्सेस पसंद नहीं है लेकिन बहुत से लोगों ने इसे अपने उत्तर में शामिल किया है। यह मालिकाना प्रारूप और प्लेटफॉर्म निर्भरता के कारण सीमित है। हालांकि इसके फायदे हैं। यदि आप MS Access की एक प्रति रखते हैं, तो आप आसानी से डेटा में फेरबदल कर सकते हैं, आप रेखांकन और मैक्रोज़ बना सकते हैं। आप इसे एमएस ऑफिस के बाकी हिस्सों के साथ आसानी से एकीकृत कर सकते हैं।

इन सभी में से SQLite मेरी सिफारिश होगी क्योंकि यह इतना कॉम्पैक्ट, अच्छी तरह से प्रलेखित है और मंच की परवाह किए बिना साथी डेवलपर्स की बढ़ती सेना द्वारा समर्थित है।

संपादित करें

मैंने महसूस किया कि एक और विकल्प है जिसका यहाँ हर कोई उल्लेख करना भूल गया

जब तक आपको संबंधपरक तालिकाओं की आवश्यकता नहीं होती है तब तक आप ADO.NET के माध्यम से CSV फ़ाइल को डेटासेट के रूप में पढ़ सकते हैं। (कुछ और की तुलना में लुलज़ सुझाव का अधिक लेकिन कुछ मामलों में उपयुक्त होगा और एमएस तैनाती के लिए अतिरिक्त पुस्तकालयों की आवश्यकता नहीं है।


8

यदि आप .NET 4.0.2 या अधिक के साथ एक प्रोजेक्ट बना रहे हैं और एम्बेडेड डेटाबेस समर्थन चाहते हैं, तो SQL Server Express LocalDB पर विचार करें ।

यह एक्सप्रेस परिवार के लिए एक अपेक्षाकृत नया अतिरिक्त है जो एक छोटे इंस्टॉलेशन फुटप्रिंट और कम प्रबंधन ओवरहेड (जब एक्सप्रेस के अन्य संस्करणों की तुलना में) की सुविधा देता है, फिर भी यह SQL सर्वर के प्रोग्राम पहलुओं को बनाए रखता है। यही है, कॉम्पैक्ट संस्करण के विपरीत, लोकलडीबी को SQL के साथ संवाद करने के लिए एक अलग ADO.NET प्रदाता की स्थापना की आवश्यकता नहीं है।

अधिक जानकारी के लिए निम्नलिखित देखें:

SQL Express v LocalDB v SQL कॉम्पैक्ट संस्करण (MSDN ब्लॉग)
SQL LocalDB बनाम SQL सर्वर CE (ढेर अतिप्रवाह)


7

http://en.wikipedia.org/wiki/NoSQL_(RDBMS) के बारे में क्या ?

.Net के लिए विशेष रूप से MongoDB में

http://www.mongodb.org/display/DOCS/Home


1
या विशेष रूप से .NET के लिए आप RavenDB
marc_s

आम, जबकि प्यारा, एम्बेडेड नहीं चलता है - आपको एक अलग सर्वर प्रक्रिया शुरू करनी होगी, जो ओपी के उद्देश्यों के लिए थोड़ी भारी हो सकती है।
माइक वुडहाउस

Mongodb sql का समर्थन नहीं करता है। पूछने वाला चाहता है "जहां मैं Sql प्रश्नों द्वारा रिकॉर्ड सहेज और पुनर्प्राप्त कर सकता हूं"। और क्या अधिक है, mongodb स्मृति भूख लगी है। मैं इस उपयोग के मामले के लिए इसकी अनुशंसा नहीं करता।
पीटर लॉन्ग

4

आप इस्तेमाल कर सकते हैं Sql Server Express Editionअपने नि: शुल्क के रूप में और जब तक समान रूप से शक्तिशाली है और जब तक आप चाहते हैं की तरह कार्यक्षमता mirroringआदि पर एक नजर डालें इस


8
प्रश्न में कहा गया है कि "मुझे कुछ भी शक्तिशाली नहीं चाहिए"। SQL सर्वर एक्सप्रेस SQL ​​सर्वर का एक हल्का संस्करण नहीं है। यह एक डेटाबेस आकार सीमित संस्करण है और सेवाओं के शुरू होते ही उपयोगकर्ताओं के पीसी शुरू करने पर बड़ा प्रभाव डालता है। यह इस सवाल के लिए overkill है। SQL सर्वर कॉम्पैक्ट अधिक उपयुक्त है।
Moog

2

मैंने सफलता के साथ db4o का उपयोग किया है।
फ़ाइल आधारित, बड़े समुदाय, उपयोग करने के लिए सरल।

http://www.db4o.com/

लाइसेंसिंग विवरण

सामान्य सार्वजनिक लाइसेंस db4o डिफ़ॉल्ट रूप से GPL के तहत लाइसेंस प्राप्त है।

GPL लाइसेंस आदर्श है यदि आप घर में db4o का उपयोग करने की योजना बनाते हैं या आप अपने स्वयं के व्युत्पन्न कार्य को GPL के तहत मुफ्त सॉफ्टवेयर के रूप में विकसित करने और वितरित करने की योजना बनाते हैं।

वाणिज्यिक लाइसेंस एक वाणिज्यिक लाइसेंस की आवश्यकता होती है यदि आप एक वाणिज्यिक गैर-जीपीएल उत्पाद में db4o एम्बेड करना चाहते हैं। वाणिज्यिक लाइसेंसधारी प्रीमियम सेवाओं और समर्थन तक पहुंच प्राप्त करते हैं।


मैंने 2012 में 6 महीने के लिए db4o का उपयोग किया था। अगर ऑब्जेक्ट मॉडल में बदलाव के बाद पुराने डेटा तक पहुंचने में सक्षम नहीं होने के मुद्दों से बचने का कोई तरीका था, तो मैं इस उत्तर को बढ़ा दूंगा। जहाँ तक मुझे पता है, अगर आप अपनी वस्तुओं को बदलते हैं तो पुराने डेटा को खोने से बचना मुश्किल है। बॉटम लाइन हमेशा आपके डेटा की बैकअप कॉपी को एक अलग, गैर- db4o प्रारूप (जो कि एक बहुत सामान्य नियम है) में कहीं भी रख सकती है।
कंटैंगो

2

एक विकल्प जिसका उल्लेख नहीं किया गया है यदि आपको मुफ्त डेटाबेस होने की आवश्यकता नहीं है तो VistaDB है। यह सभी प्रबंधित कोड है, एक एम्बेडेड डेटाबेस के लिए कई सुविधाएँ प्रदान करता है, और बहुत अच्छा प्रदर्शन प्रदान करता है। SQL CE और SQL सर्वर एक्सप्रेस के बीच एक बहुत अच्छा पुल आपके VistaDB संग्रहीत कार्यविधियाँ के अधिकांश SQL सर्वर एक्सप्रेस में संशोधन के बिना चलेगा। मैं इस बिंदु पर भी ग्राहक सेवा से बहुत प्रसन्न हूँ। मैं इसे काम में उपयोग कर रहा हूँ। शुरू करने के लिए कोई सेवाएं नहीं। एक खाली DB 1MB के आसपास है और DLL बहुत हल्का है। ADO.NET प्रदाताओं और इस तरह की चीजें हैं। मुझे यह अच्छा लगा।

VistaDB


नमस्ते! क्या यह बहु उपयोगकर्ता परिदृश्य में काम करता है? उदाहरण के लिए क्या मैं इस VistaDB को एक नेटवर्क शेयर पर संग्रहीत कर सकता हूं और इसे कई उपयोगकर्ताओं से समवर्ती रूप से एक्सेस कर सकता हूं?
प्रोक्योरर्स 18

1
यह इस संबंध में कुछ सीमित क्षमताएं करता है। जाहिर है कि यह उस बॉक्स पर एक स्थानीय db इंजन के साथ चल रहे एक सच्चे डेटाबेस को प्रतिस्थापित नहीं कर सकता है, लेकिन यह कुछ लेनदेन विकल्पों की पेशकश करता है। हम इसे उस परिदृश्य में उपयोग करने की योजना बना रहे थे, जैसा कि ऐसा लग रहा था कि यह हमारे द्वारा सामना किए गए किसी भी मुफ्त विकल्प की तुलना में बेहतर होगा और हमारे ग्राहकों को एसक्यूएल सर्वर या जो भी सेटअप करने की विशेषज्ञता नहीं होगी। यह sqlce की तुलना में अधिक सुविधाएँ प्रदान करता है लेकिन पूर्ण sql सर्वर जितना नहीं। यह सॉफ्टवेयर का एक वास्तविक गुणवत्ता टुकड़ा है।
रिग

जानकारी के लिए धन्यवाद! और उनका नया अपेक्षित संस्करण 5 बहुत आशाजनक है। क्या आपने VistaDB के साथ एंटिटी फ्रेमवर्क की कोशिश की है? शायद पहले भी EF कोड के साथ VistaDB फ़ाइल बनाई गई हो?
प्रोक्योरर्स

1
मैंने किया लेकिन यह लगभग 3-4 साल पहले था। उस समय मुझे यह अच्छी तरह से काम करने के लिए मिला और यह मेरा पहला ईएफ अनुभव था। मैं अब इसे बेहतर मानता हूं। उस समय उसके पास जो कमी थी, वह यह थी कि प्रलेखन के कुछ खंड विरल थे, लेकिन संक्रमण के दौरान यह उनके अब मालिकों द्वारा खरीदा गया था।
रिग

1
पुनश्च: कम से कम जिस समय मैंने इसका उपयोग किया, वे उपयोग के लिए डेमो लाइसेंस प्रदान करने की इच्छा से अधिक थे। मैं आपको अत्यधिक अनुशंसा करूंगा कि आप लाइसेंस की लागत को कम करने से पहले इसका प्रयास करें।
रिग

1

SQL सर्वर कॉम्पैक्ट संस्करण सबसे अच्छा है क्योंकि यह आकार में स्वतंत्र और हल्का है और वेल को एकीकृत करता है


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.