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