2010-03-09 11 views
22

मुझे हमारी कंपनी के लिए बहुत सारी जानकारी संग्रहीत करने के लिए डेटाबेस डिज़ाइन करने का कार्य दिया गया है। क्योंकि कार्य बड़ा है और इसमें कई मॉड्यूल हैं जहां उपयोगकर्ता सामान करने में सक्षम होना चाहिए, मैं इसके लिए एक अच्छा डेटा मॉडल तैयार करने के बारे में चिंतित हूं। मैं बस एक बुरी तरह से डिजाइन डेटाबेस के साथ खत्म नहीं करना चाहता।उदाहरण के लिए देखने के लिए अच्छी जगह डेटाबेस डिज़ाइन - सर्वोत्तम प्रथाओं

मैं एक अच्छे संबंधपरक डेटाबेस में उनको गठबंधन करने के लिए अनुबंध/बिलिंग/ऑर्डर आदि के लिए डेटाबेस संरचनाओं के कुछ सभ्य उदाहरण प्राप्त करना चाहता हूं। क्या वहां कोई संसाधन है जो इस बारे में कुछ उदाहरणों में मेरी मदद कर सकता है?

+1

ऐसे "बड़े" प्रश्न, अभी तक एक जवाब स्वीकार करने से पहले इतना कम समय? –

उत्तर

8

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

प्रत्येक मॉड्यूल के लिए सावधानीपूर्वक अपनी आवश्यकताओं को इकट्ठा करें।

व्यापार नियमों (जो अनुप्रयोगों के लिए विशिष्ट हैं और डेटाबेस inthe लागू किया जाना चाहिए जो क्योंकि वे कोई बात नहीं स्रोत सभी रिकॉर्ड पर लागू किया जाना चाहिए),

वहाँ कानूनी या नियामक चिंताओं हैं (HIPAA: आप जानना चाहते हैं एन्क्रिप्ट होने के लिए उदाहरण या Sarbanes-Oxley आवश्यकताओं) सुरक्षा (के लिए डेटा की जरूरत है?)

कौन-सा डेटा स्टोर करने के लिए की जरूरत है और यही कारण है (है इस डेटा कहीं और उपलब्ध)

कौन सा डेटा के टुकड़े केवल डेटा की एक पंक्ति है और जो मल्टीप्लिप की आवश्यकता होगी पंक्तियां

आप प्रत्येक तालिका में पंक्ति की विशिष्टता को लागू करने का इरादा कैसे रखते हैं? क्या आपके पास प्राकृतिक कुंजी है या आपको सरोगेट कुंजी की आवश्यकता है (लगभग सभी मामलों में एक सरोगेट कुंजी का सुझाव दें)

क्या आपको प्रतिकृति की आवश्यकता है?

क्या आपको ऑडिटिंग की आवश्यकता है?

डाटाबेस में डेटा कैसे दर्ज किया जा रहा है? क्या यह एप्लिकेशन एक समय में एक रिकॉर्ड (या यहां तक ​​कि कई अनुप्रयोगों से) से आएगा या इसमें से कुछ ईटीएल उपकरण से या किसी अन्य डेटाबेस से थोक आवेषण से आएंगे।

आप को पता है, जो रिकॉर्ड में प्रवेश किया और जब (अत्यधिक संभावना यह एक उद्यम प्रणाली में जरूरी होगा की जरूरत है।

आप देखने टेबल किस तरह की आवश्यकता होगी? डेटा प्रविष्टि अधिक सटीक होता है जब आप उपयोग कर सकते हैं देखने टेबल और उन मूल्यों के लिए

डेटा सत्यापन आप किस तरह की ज़रूरत है?

मोटे तौर पर कितने रिकॉर्ड प्रणाली होगा? आप एक विचार पता करने के लिए अपने परीक्षण बनाने के लिए कितना बड़ा है की जरूरत है प्रतिबंधित। डेटा

आप डेटा से पूछताछ कैसे करेंगे। क्या आप संग्रहीत प्रोसेस या ओआरएम या गतिशील प्रश्नों का उपयोग करेंगे?

आपके डिजाइन में याद रखने के लिए कुछ बहुत ही बुनियादी चीजें हैं। अपने डेटा के लिए सही डेटा प्रकार चुनें। स्ट्रिंग फ़ील्ड में गणित करने के लिए इच्छित तिथियों या संख्याओं को संग्रहीत न करें। स्टोर संख्याएं जो गणित के लिए उम्मीदवार नहीं हैं (भाग संख्या, ज़िप कोड, फोन नंबर, आदि) स्ट्रिंग डेटा के रूप में आपको अग्रणी शून्य की आवश्यकता हो सकती है। एक क्षेत्र में जानकारी के एक से अधिक टुकड़े स्टोर न करें। इसलिए कोई कॉमा-समेकित सूचियां नहीं (ये संबंधित तालिका की आवश्यकता को इंगित करती हैं) और जब आप उस पर हों, तो आप फोन 1, फोन 2, फोन 3 जैसे कुछ कर रहे हैं, तुरंत बंद करें और संबंधित तालिका डिज़ाइन करें। डेटा अखंडता उद्देश्यों के लिए विदेशी कुंजी का उपयोग करें।

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

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

और भी कुछ है लेकिन यह पचाने शुरू करने के लिए पर्याप्त है।

2

डेटा मॉडल संसाधन पुस्तक।

http://www.amazon.com/Data-Model-Resource-Book-Vol/dp/0471380237/ref=dp_cp_ob_b_title_0

हैवी सामान है, लेकिन बहुत अच्छी तरह से बाहर के माध्यम से। 3 वॉल्यूम सभी में ...

जेनेरिक संरचनाओं के माध्यम से बहुत अच्छी तरह से है - लेकिन वे आसान नहीं हैं, क्योंकि वे सब कुछ शामिल करते हैं;) हमेशा एक अच्छा प्रारंभिक बिंदु, हालांकि।

2

अपनी चिंताओं को अलग रखने की कोशिश करें। उपयोगकर्ता डेटाबेस को अपडेट करने में सक्षम होने के कारण "एप्लिकेशन डिज़ाइन" समस्या से अधिक है। यदि आपको अपना डेटाबेस डिज़ाइन सही मिलता है तो यह इसके लिए एक अच्छा फ्रंट एंड विकसित करने का मामला होना चाहिए।

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

+0

आपके उत्तर के लिए धन्यवाद, मैं इसके लिए स्कूल गया हूं और जानता हूं कि सामान्यीकरण क्या है। मैं यहां बहुत सावधान हूं क्योंकि मैं नहीं चाहता कि मेरा पहला असली प्रोजेक्ट असफल हो जाए :)। यही कारण है कि मैं कुछ उदाहरण सामान्यीकृत संबंधपरक डीबी देखना चाहता हूं। – Younes

+1

@Younes - परियोजनाओं में विफल होने के बारे में बहुत चिंता न करें, यह हर किसी के लिए होता है ... यहां तक ​​कि सबसे अच्छे डेवलपर्स :) जब तक आप डेटाबेस में कौन सी जानकारी * को संग्रहीत करना चाहते हैं, तब डेटाबेस को संग्रहीत करना चाहिए बहुत मुश्किल नहीं है। आपकी टिप्पणी के लिए – James

+0

thx, मैं बहुत ज्यादा चिंता करने की कोशिश नहीं करूंगा। – Younes

0

डेटाबेस मॉडल नहीं होना चाहिए। इसका उपयोग काम के सत्रों के बीच सूचनाओं को बचाने के लिए किया जाता है।

आपको डेटा मॉडल पर अपना आवेदन नहीं बनाना चाहिए, लेकिन अच्छे ऑब्जेक्ट ओरिएंटेड मॉडल पर व्यवसाय तर्क का पालन करना चाहिए।

एक बार आपका ऑब्जेक्ट मॉडल पूरा हो जाने के बाद, इसके बारे में सोचें कि आप इसे कैसे सहेज सकते हैं और लोड कर सकते हैं, इसके साथ चलने वाले सभी डेटाबेस डिज़ाइन के साथ।

+0

सही, लेकिन मुझे पहले से ही यह पता था। ऐसा नहीं है कि मुझे नहीं पता कि डेटाबेस क्या है या कुछ भी;)। बस काम करने के लिए एक सभ्य डीबी चाहते हैं। – Younes

+1

एकाधिक एप्लिकेशन एक डेटाबेस साझा कर सकते हैं। इसके अलावा कंपनी के डेटा की अखंडता अपने अस्तित्व के लिए महत्वपूर्ण हो सकती है। इसलिए यह महत्वपूर्ण है कि डेटाबेस कंपनी के डेटा को सटीक रूप से मॉडल करे। – APC

+0

सबसे खराब तरीका मैं एंटरप्राइज़-प्रकार डेटाबेस को डिज़ाइन करने के बारे में सोच सकता हूं। – HLGEM

19

बैरी विलियम्स अनुप्रयोगों के सभी प्रकार के लिए के बारे में छह सौ डेटा मॉडलों के एक पुस्तकालय प्रकाशित किया है (लेकिन जाहिरा तौर पर आपकी कंपनी केवल आपके एक डेटाबेस? नहीं एक आवेदन? डिजाइन करने के लिए चाहते हैं)। लगभग निश्चित रूप से यह आपको अपने सभी उपप्रणाली के लिए "दस के लिए स्टार्टर" देगा। इस पुस्तकालय तक पहुंच मुफ्त है check it out

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

यह भी सुनिश्चित करें कि आपके पास एक सभ्य डेटा मॉडलिंग टूल है। SQL Power Architect एक मुफ्त उपकरण के लिए काफी अच्छा है।

+0

हाय वहाँ, मैंने मुफ्त टूल डाउनलोड करने का प्रयास किया। googlecode.com ने फ़ाइल को बहुत बड़ा होने और इसलिए अवरोधित करने के बारे में एक त्रुटि दी। क्या आप हमारे साथ डाउनलोड कर सकते हैं? धन्यवाद, बैरी विलियम के डेटा मॉडल के लिए अंजन बाचु – anjanb

+1

+1 http://www.databaseanswers.org/data_models/ – Azi

संबंधित मुद्दे