C # मिनिमल SQL डेटाबेस


12

मैं एक छोटी परियोजना (उत्पादन नहीं) पर काम कर रहा हूं, जहां मुझे पर्याप्त डेटा स्टोर करने की आवश्यकता है कि एक सीएसवी जैसा कुछ प्रक्रिया के लिए अक्षम होगा और एक SQL / MySQL सर्वर बहुत अधिक होगा। क्या .Net के पास किसी एकल फ़ाइल को लोड करने और संसाधित करने के लिए सर्वर से प्रबंधित और कनेक्ट किए बिना क्वेरी करने की क्षमता के साथ डेटा की कई प्रविष्टियों को कुशलतापूर्वक संग्रहीत करने का कोई तरीका है।


यदि आपके पास पहले से ही एक डेटाबेस सर्वर है और वहाँ पर एक और डेटाबेस बनाना बहुत तुच्छ है। यदि आप केवल डेटा का उपयोग कर रहे हैं, तो आप एक्सेस पर विचार कर सकते हैं।
ब्रैड

@ क्योंकि यह सिर्फ एक व्यक्तिगत परियोजना है और मैं वर्तमान में अपने घर पर कोई डेटाबेस सर्वर नहीं चला रहा हूं। एक्सेस का आपका सुझाव शायद वही है जिसकी मुझे तलाश है।
डेविड

4
मैं एक्सेस का प्रशंसक नहीं हूं , लेकिन मैं इसे कभी-कभी सही समाधान दे सकता हूं। क्या आपने ऑब्जेक्ट सीरियलाइजेशन पर विचार किया है ? बस एक ऑब्जेक्ट बनाएं और इसे एक फ़ाइल में लिखें। (ऑब्जेक्ट हो सकता है List<foo>)
दान Pichelman

क्या आप इन्हें जारी रखना चाहते हैं या क्या उन्हें केवल मेमोरी में रहने की आवश्यकता है?
रिचर्ड

1
@ डेविड: 4000 प्रविष्टियाँ - इतनी कम? उन सभी को स्मृति में क्यों नहीं पकड़ें? यदि आपको कुछ प्रश्न करने के लिए बस इन-मेमोरी डेटाबेस की आवश्यकता है, तो बिना किसी प्रशासनिक टूल के, कुछ डेटाटैब के साथ एक डेटासेट (फ़ाइल के लिए जारी) आपकी आवश्यकताओं के लिए पर्याप्त हो सकता है।
डॉक्टर ब्राउन

जवाबों:


15

कुछ विकल्प हैं, कोई विशेष क्रम में नहीं:

  1. (पेड) विज़ुअल स्टूडियो के सभी संस्करण SQL सर्वर एक्सप्रेस स्थापित के साथ आते हैं । आप उसका उपयोग कर सकते हैं।
  2. (Ugh) XML फ़ाइलें
  3. SQL सर्वर CE (मूल रूप से, फ़ाइल के माध्यम से स्थानीय SQL)
  4. SQLite

यहाँ और अधिक विचार: /programming/3639846/what-is-a-good-embedded-database-to-use-with-c


मैं वास्तव में कुछ ऐसा चाहता हूं जो पूरी तरह से एक ही निष्पादन योग्य में निहित है, कोई DLL और कोई तृतीय पक्ष सॉफ़्टवेयर नहीं है। इन जरूरतों को पूरा करने में सक्षम एक्सएमएल को छोड़कर, उपरोक्त में से कोई भी है?
डेविड

आप शायद अपने निष्पादन योग्य में dlls एम्बेड कर सकते हैं।
स्किलिव्ज

मुझे लगता है कि सबसे महत्वपूर्ण हिस्सा कोई तीसरी पार्टी नहीं है * MSSQL / MySQL जैसी सेवाएं # 3 या # 4 फिट होंगी
डेविड

मुझे याद नहीं है कि SQL CE में एक अलग रनटाइम है या नहीं। SQLite नहीं करता है, लेकिन यह एक .NET प्रोजेक्ट के साथ सेट करने के लिए थोड़ा मुश्किल हो सकता है।
गांगेय

3
मैं जोड़ना चाहूंगा कि लोकलडीबी एक विकल्प है। इस उत्तर को देखें: stackoverflow.com/questions/9655362/…
एंडी

4

Sklivvz की पेशकश के विकल्प के अलावा , SQL दायरे से बाहर उद्यम करने और स्टर्लिंग या DB4O जैसे एम्बेडेड ऑब्जेक्ट-ओरिएंटेड डेटाबेस इंजन का उपयोग करने से डरो मत

वे छोटे और फ़ाइल-आधारित होने का लाभ देते हैं, आपके आवेदन में एम्बेड करने योग्य होते हैं, लेकिन कार्यक्रम के लिए बहुत तेज़ और आसान भी होते हैं।


3

SQLite आपका सबसे अच्छा विकल्प होगा।
जैसा कि उनकी साइट पर लिखा है:

SQLite एक सॉफ्टवेयर लाइब्रेरी है जो एक आत्म निहित, सर्वर रहित, शून्य-कॉन्फ़िगरेशन, ट्रांसेक्शनल SQL डेटाबेस इंजन को लागू करता है।

वास्तव में आप के लिए क्या देख रहे हो लगता है!

यदि आप डाउनलोड करने और इसे स्वयं स्थापित करने के लिए बहुत आलसी हैं, तो एक चॉकलेट पैकेज भी है!


2

ADO.NET XML को क्रमबद्ध कर सकता है और इसमें RDBMS की लगभग सभी कार्यक्षमता है। (वैसे, सस्ते वाले, वैसे भी)

मुझे पता है कि यह "पुराना" है और अब नीचे देखा गया है, लेकिन ADO.NET वास्तव में ठीक उसी तरह से काम करता है जैसा आप वर्णन कर रहे हैं। यहां तक ​​कि यह गैर-प्रतिबद्ध परिवर्तनों पर नज़र रखने का एक बहुत अच्छा काम करता है।

यह "पुराना" हो सकता है, लेकिन यह निश्चित रूप से "बस्टेड" नहीं है। यह एक काफी भारी स्मृति पदचिह्न है, हालांकि, तो उस पर आपका कॉल। 4000 रिकॉर्ड एक मुद्दा नहीं होगा।


क्या आप "भारी स्मृति पदचिह्न" पर विस्तार से बता सकते हैं?
डेविड

@ डेविड - इसका मतलब है कि डेटासेट की संपूर्णता को स्मृति में रखा जाएगा, न कि केवल उन रिकॉर्ड्स से जिन्हें आप क्वेरी से वापस करते हैं। यदि आपके पास 4 मिलियन रिकॉर्ड का एक डेटाबेस था, तो यह सब ADO.NET डेटासेट में रखना संसाधनों पर एक गंभीर ड्रॉ होगा, जबकि एक "रियल" RDBMS इसे एक डिस्क पर तब तक दबाए रखेगा, जब तक कि आप उनमें से एक सबसेट का विरोध नहीं करते। 4000 रिकॉर्ड स्मृति उपयोग में एक छोटा सा छींक है, इसलिए मैं इसके बारे में चिंता नहीं करूंगा।
वेस्ले लॉन्ग

+1, मुझे लगता है कि यह सबसे अच्छा विकल्प है, इस आवश्यकता के लिए भी कुछ छोटा है क्योंकि SQLlite बहुत प्रयास लगता है।
डॉक ब्राउन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.