हम एक वेब प्लेटफ़ॉर्म का निर्माण कर रहे हैं, जिसमें कई सेवाएँ शामिल हैं, जिनमें से प्रत्येक का अपना अंतर्निहित डेटा है। ये सेवाएं स्वतंत्र रूप से सेवा-उन्मुख वास्तुकला के सिद्धांतों का पालन करते हुए बनाई जा रही हैं , लेकिन वे संभावित रूप से संबंधित डेटा के खिलाफ लेनदेन करते हैं। हम विचार कर रहे हैं कि क्या इन सेवाओं को एक बड़ा डेटाबेस साझा करना चाहिए या प्रत्येक का अपना डेटाबेस होना चाहिए। (हम Windows 2008 क्लस्टर पर SQL Server 2008 एंटरप्राइज़ का उपयोग करने की योजना बना रहे हैं।)
हमारे द्वारा पहले से विचार किए गए प्रत्येक दृष्टिकोण के कुछ फायदे शामिल हैं:
एकल डेटाबेस
- विभिन्न सेवाओं से संबंधित डेटा को विदेशी प्रमुख बाधाओं द्वारा एक साथ बांधा जा सकता है
- विश्लेषणात्मक अर्क लिखने के लिए सरल और तेजी से निष्पादित करने के लिए हैं
- एक आपदा की स्थिति में, प्लेटफॉर्म को एक सुसंगत स्थिति में बहाल करना आसान है
- कई सेवाओं द्वारा संदर्भित डेटा के लिए, एक सेवा द्वारा कैश किए गए डेटा का उपयोग दूसरी सेवा द्वारा जल्द ही किए जाने की संभावना है
- प्रशासन और निगरानी सरल और सस्ता है
एकाधिक डेटाबेस
- रखरखाव कार्य, हार्डवेयर समस्याएं, सुरक्षा उल्लंघनों और इसके बाद के संस्करण पूरे मंच को प्रभावित नहीं करते हैं
- प्रत्येक डेटाबेस को अलग हार्डवेयर पर मान लिया जाए, तो कई मशीनों को स्केल करने से एक बड़े पैमाने पर स्केलिंग की तुलना में अधिक प्रदर्शन लाभ मिलते हैं
एक परिचालन दृष्टिकोण से, क्या यह अधिक फायदेमंद है कि इस प्लेटफ़ॉर्म में प्रत्येक सेवा को अपना डेटाबेस मिलता है, या कि वे सभी एक ही डेटाबेस में जाते हैं? इस प्रश्न के उत्तर के लिए कौन से प्रमुख कारक सूचित करते हैं?