سؤال

لا بد لي من تطوير قاعدة بيانات لبيئة فريدة من نوعها. ليس لدي خبرة مع تصميم قاعدة البيانات ويمكن أن تستخدم حكمة الجميع.

تقوم مجموعتي بتصميم قاعدة بيانات للقطعة من أجهزة الفيزياء ونظام استحواذ البيانات. نحتاج إلى نظام سيقوم بتخزين جميع معلمات تكوين الأجهزة، وتتبع التغييرات الموجودة على هذه المعلمات حيث يتم تغييرها من قبل المستخدم.

وانشاء:

  • لدينا ما يقرب من 200 كاشف ونحو 40 معلمة مرتبطة بكل كاشف. من بين هذه المعلمات الأربعين، نتوقع تغيير عدد قليل فقط أثناء التجربة. معظم المعلمات المرتبطة كاشف واحد هي ثابتة.
  • نجمع البيانات لهذه التجربة في عمليات تشغيل توقيت. أثناء هذه الأعمال، يجب ألا تتغير المعلمات المحملة في الجهاز، على الرغم من أننا يجب أن نكون قادرين على تحرير قاعدة البيانات في أي وقت للتحضير للمرك التشغيل التالي. الخطة الحالية:

    • ستوفر قاعدة البيانات الفرق بين المعلمات الحالية والمعلمات المستخدمة أثناء التشغيل الأخير.
    • في بداية تشغيل جديد، يتم تحميل أحدث تغييرات قاعدة البيانات في الأجهزة.
    • يجب وضع علامة على الإعدادات المستخدمة في التشغيل القادم برقم تشغيل والتاريخ والوقت الحاليين. هذا ضروري. أحتاج إلى تاريخ تشغيل التشغيل من الإعداد التجريبي.
  • سيكون هناك العديد من العملاء المختلفين الذين يقرأون وكتابة قاعدة البيانات. على الرغم من أن التغييرات في قاعدة البيانات ستكون نادرة، لا أستطيع أن أضمن أن التغييرات لن تحدث بشكل متزامن.

  • يجب أن تكون قوية وغير واضحة. يعتمد تكوين النظام التجريبي على الأجهزة. من شأن أي انهيار قاعدة البيانات يمنع اكتساب البيانات، ووقتنا مكلفا. النسخ الاحتياطي لقاعدة البيانات؟

خطري الحالية هي تنفيذ المتطلبات المذكورة أعلاه باستخدام قاعدة بيانات SQLite، على الرغم من أنني غير متأكد إذا كان بإمكانه دعم كل متطلباتي. هل هناك أي تكنولوجيا أخرى يجب أن أنظر إليها؟ هل فعل أي شخص شيء مماثل؟ أنا على استعداد لمعرفة أي تقنية، طالما أنها ناضجة.

نصائح والمشورة هي موضع ترحيب.

شكرا لك،

شون


تحديث 1.:

الوصول إلى قاعدة البيانات:

هناك ثلاث تطبيقات لايت يمكنها الكتابة والقراءة إلى قاعدة البيانات وتطبيق واحد يمكن قراءته فقط.

تكون التطبيقات مع وصول الكتابة مسؤولة عن إعداد مجموعة فرعية غير متداخلة من معلمات الأجهزة. لتكون محددة، لدينا تطبيق واحد (قد يكون هناك نسخ متعددة) تقوم بتعيين الجهد العالي، وهو تطبيق واحد يضع ما تبقى من معلمات الأجهزة التي قد تتغير أثناء التجربة، واجهة المستخدم الرسومية التي تحدد ما تبقى من المعلمات والتي هي ثابتة تقريبا وغير ضرورية فقط لإعادة الإعمار المناسب للبيانات.

برنامج الوصول للقراءة هو برنامج تحليل البيانات الخاص بنا فقط. يحتاج إلى الوصول إلى جميع المعلمات تقريبا في قاعدة البيانات لتنسيق البيانات الواردة بشكل صحيح في شيء يمكننا تحليله بشكل صحيح. يجب أن يكون عدد الاتصالات إلى قاعدة البيانات> 10.

النسخ الاحتياطي:

إعداد آخر في مقالب مختبرنا ملف XML كل تشغيل. على الرغم من أنني لا أعتقد أن XML مناسب، كنت أخطط لعمل نسخة احتياطية من النظام كل تشغيل، فقط في حالة.

هل كانت مفيدة؟

المحلول

بعض الأشياء الأساسية حول التصميم؛ يجب عليك التأكد من عدم حذف البيانات من أي طاولات؛ تتبع أحدث البيانات (ربما بشكل أفضل مع آخر تاريخ تحديث آخر)؛ عند تغيير قيمة البيانات، على الرغم من عدم حذف البيانات القديمة. عند بدء تشغيل تشغيل، قم بوضع علامة على كل جدول يستخدم مع معرف التشغيل (في عمود آخر)؛ بهذه الطريقة، تحافظ على سجل تاريخي كامل حول كل إعداد، ويمكن أن تعتبر بالضبط ما كانت الدولة المستخدمة في تشغيل معين.

نصائح أخرى

اسأل حول زملائك.

أنت لا تقول أي نوع من الفيزياء التي تقوم بها، أو ما حجم الفريق العامل، ولكن في الانضباط (فيزياء الجسيمات) هناك مستودع عميق للتجربة وضع هذا النوع من الأنظمة فقط (نسميها "الضوابط البطيئة" وما شابهها). هناك فرصة جيدة جدا لأن شخصا يعمل معه قد فعلت ذلك أو يعرف شخص لديه. قد يكون هناك وصف مفصل للمرة الأخيرة في أطروحة شخص ما.

ليس لدي شخصيا الكثير للقيام بهذا، لكنني أعلم أن هذا: ميزة واحدة مشتركة هي أن يكون لديك تصميم غير حذف غير الكتابة. تستطيع فقط يضيف البيانات، لا تزيلها أبدا. هذا يحافظ على فرصك في معرفة ما حدث حقا في حالة وجود مشكلة


ربما يجب أن أشرح أكثر قليلا. في حين أن هذه مهمة مهمة ويجب أن يتم ذلك بشكل صحيح، فهي غير مرتبطة حقا بالفيزياء، لذلك لا يمكنك البحث عنه أبراج أو في arxive.org.. وبعد لا أحد يكتب أوراقا على تصميم وتنفيذ قواعد بيانات الضوابط البطيئة الحجم المتوسطة الحجم. لكنهم في بعض الأحيان وضعه في أطروحاتهم. أسهل طريقة للعثور على مؤشر هي حقا أن تطلب مجموعة من الناس حول المختبر.

هذه ليست قاعدة بيانات كبيرة خاصة بأصوات الأشياء. لذلك قد تكون قادرا على الابتعاد باستخدام قاعدة بيانات أوراكل الحرة مما سيعطيك جميع أنواع المرونة الكبيرة مع اليومية (غير متأكد إذا كانت هذه كلمة حقيقية) وإدارة.

ذكر الخاص بك "غير قابل للفساد" مباشرة بعد أن تقول "سيكون هناك العديد من العملاء المختلفين الذين يقرأون وكتابة قاعدة البيانات" يثيرون علامة حمراء بالنسبة لي. هل تخطط لإنشاء نوع من التطبيقات التي لديها واجهة لهذا؟ أو كنت تخطط للوصول المباشر إلى DB عبر أداة مثل الضفدع؟

من أجل الحفاظ على سلامة البيانات الخاصة بك، ستحتاج إلى الحصول على صارمة بالفعل على أذوناتك. أود أن أسمح فقط لشخص واحد (ونسخة احتياطية) بحقوق مسؤول بالقدرة على القيام بمعالجة البيانات خارج واجهة المستخدم الرسومية (والتي ستجعل حياتك أسهل).

النسخ الاحتياطي؟ نعم بالتاكيد! ليس فقط يجب أن تفعل النسخ الاحتياطية اليومية والأسبوعية والشهرية التي يجب عليك فعلها ممتلئة وتزايدي. أيضا، اختبر صورك الاحتياطية في كثير من الأحيان لتأكيد أنها تعمل في الواقع.

بالنسبة لهيكل البيانات، سأحتاج إلى تفاصيل أكبر بكثير فيما تحاول تخزينه وكيف يمكنك الوصول إليه. ولكن من ما وضعته هنا، أود أن أقول أنك بحاجة إلى الجداول التالية (لتبدأ):

Detectors
Parameters
Detector_Parameters

بعض الملاحظات الإضافية:

نظرا لأنك ستقوم بعمل الكثير من التغييرات التي أوصي بها باستخدام عنصر تحكم إصدار svn. لتتبع جميع DDLs الخاص بك وما إلى ذلك، أود أن أوصي باستخدام شيء مثل بوجزيلا لتتبع الأخطاء (إذا لزم الأمر) واستخدام مستندات جوجل لإدارة وثائق الفريق.

امل ان يساعد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top