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

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

मेरी राय में, टूल -
माइक्रोसॉफ्ट विज़ियो (केवल विंडोज के तहत, कीमत $ 249.99) में एक बेहतर ज्ञात, उच्च-गुणवत्ता भी है। लेकिन चिंता मत करो, वहाँ सस्ता विकल्प हैं, जिनमें से कई खुले स्रोत परियोजनाएं हैं, जिनमें ऊपर उल्लिखित दोनों शामिल हैं।
डेटाबेस मॉडल बनाने के लिए आवश्यक सामान्य ग्राफिक प्रतीकों और मानक दृश्य तत्वों के साथ खुद को परिचित करें, और फ़्लोचार्ट और आरेख के साथ अपनी प्रारंभिक योजना शुरू करें। किसी भी विशिष्ट डेटाबेस को बनाने से पहले यह तार्किक त्रुटियों से बच जाएगा।
संबंधपरक डेटाबेस
अधिकांश डेटाबेस
रिलेशनल डेटाबेस हैं । इसका मतलब यह है कि डेटाबेस में टेबल किसी तरह से जुड़े हुए हैं। उदाहरण के लिए, यदि ऑनलाइन स्टोर की वेबसाइट पर "उपयोगकर्ता" है, तो यह निश्चित रूप से कुछ उत्पादों से जुड़ा हो सकता है, जो उनके आदेशों के बारे में जानकारी के आधार पर या वांछित उत्पादों का संकेत देते हैं। एक ब्लॉग डेटाबेस के लिए, लेखकों को किसी भी तरह उनके लिखे पदों से जुड़ा होना चाहिए, और अधिकृत उपयोगकर्ताओं को उनके द्वारा छोड़ी गई टिप्पणियों से जोड़ा जाना चाहिए।
संबंधपरक डेटाबेस के कुछ तरीकों का उपयोग करते हुए, हम अलग-अलग तालिकाओं में एक संगठित रूप में बड़ी मात्रा में जानकारी संग्रहीत कर सकते हैं: उपयोगकर्ताओं के लिए एक, नोट्स के लिए एक, टिप्पणियों के लिए, उत्पादों के लिए, आदि। अब हम अद्वितीय कुंजियों का उपयोग करके विभिन्न तालिकाओं में डेटा को बांध सकते हैं।
प्रत्येक तालिका में किसी भी प्रविष्टि के पास एक अद्वितीय कुंजी होनी चाहिए। यह रिकॉर्डिंग के लिए "सामाजिक सुरक्षा उपाय" या "बारकोड" का एक प्रकार है। यह प्रत्येक प्रविष्टि के लिए अद्वितीय है। और कोई अन्य रिकॉर्ड समान तालिका में समान पहचानकर्ता नहीं हो सकता है। डेटाबेस में अद्वितीय या उत्पाद नाम होना पर्याप्त नहीं है। बहुत अधिक कुशल अद्वितीय प्राथमिक कुंजियों का उपयोग है। यहां तक कि डेटाबेस में कई अनूठे क्षेत्र इसे डेटा दोहराव की संभावना से बचाते हैं, जो बाद में साइट को प्रतिकूल रूप से प्रभावित कर सकते हैं।
दो तालिकाओं को जोड़ने के लिए, हम एक विदेशी कुंजी का उपयोग करते हैं, जो सिर्फ एक पहचानकर्ता है जो किसी अन्य तालिका में एक अद्वितीय कुंजी को संदर्भित करता है, आमतौर पर यह एक प्राथमिक कुंजी है। नीचे दिए गए उदाहरण में, हम देखते हैं कि पहली तालिका में एक अद्वितीय पहचानकर्ता (आईडी) के साथ तीन लेखकों के बारे में जानकारी है। दूसरी तालिका में, हम प्रत्येक लेख प्रविष्टि को इस पहचानकर्ता के माध्यम से लेखक के साथ जोड़ते हैं। अब हम पहले लेख के लेखक को पा सकते हैं, और इसके विपरीत, देख सकते हैं कि टॉम ने दो लेख लिखे, मैरी - एक, और जेन एक और नहीं।
यह एक साधारण एक-से-एक संबंध मॉडल है।
एक-से-कई और
कई-से-कई मॉडल भी हैं।
डेटा को समूहीकृत करना और साझा करना
फ़ील्ड के रूप में, यह जानना भी महत्वपूर्ण है कि डेटा का एक निश्चित समूह कब, और कब नहीं। यह निर्धारित करने का एक अच्छा तरीका है कि किसी क्षेत्र में क्या जानकारी होनी चाहिए या इसके विपरीत, यह सोचने के लिए कि क्या इसके किसी भी हिस्से को बदलने के लिए आवश्यक होगा? उदाहरण के लिए, क्या पते को संग्रहीत करना आवश्यक है, इसे अपने घटकों में तोड़कर: 1) सड़क, 2) शहर, 3) राज्य, 4) डाक कोड, 5) देश?
क्या यह साइट की कार्यक्षमता का एक अभिन्न अंग है (शायद उपयोगकर्ता या व्यवस्थापक पते या राज्य द्वारा अन्य उपयोगकर्ताओं को खोजना चाहेंगे), या बस डिस्क पर डेटाबेस द्वारा कब्जा किए गए स्थान को बढ़ा सकते हैं? यदि यह इतना महत्वपूर्ण नहीं है, तो जब आप केवल एक स्ट्रिंग फ़ील्ड को अपडेट कर सकते हैं, तो 5 फ़ील्ड बदलने पर डेटाबेस को लोड क्यों करें। एक अधिक सुविधाजनक विकल्प एक HTML फॉर्म से यह डेटा प्राप्त करना होगा, जहां फ़ील्ड अलग हो जाते हैं, और डेटाबेस में पते को जोड़ने से पहले, संबंधित फ़ील्ड के मानों को एक पंक्ति में संयोजित करें।
यह सिर्फ एक उदाहरण है, लेकिन हमेशा टेबल फ़ील्ड को व्यवस्थित करने के लिए सबसे प्रभावी तरीकों का एक विचार है, जब उन्हें संयोजित करना है, जब उन्हें अलग रखना है, ताकि साइट की कार्यक्षमता को बनाए रखा जा सके।
डेटाबेस सामान्यीकरण
सामान्यीकरण सूचनाओं के अधिक कुशल भंडारण को व्यवस्थित करने के लिए डिज़ाइन किए गए दिशानिर्देशों का एक समूह है। हमने पहले ही कुछ महत्वपूर्ण बुनियादी प्रथाओं का उल्लेख किया है जो सबसे लोकप्रिय सामान्य रूपों में आते हैं। पाँच सामान्य रूप हैं। अपनी आवश्यकताओं के अनुसार इन सामान्य रूपों और डिजाइन डेटाबेस के साथ खुद को परिचित करना उपयोगी होगा।
डेटाबेस सामान्यीकरण एक बड़ा विषय है, लेकिन इसकी मूल बातें समझने से आपको काफी मदद मिल सकती है। सामान्य रूप से प्रत्येक सामान्य रूप और सामान्यीकरण का एक सामान्य विचार रखने के लिए,
डेटाबेस सामान्यीकरण के
मूल सिद्धांतों पर एक नज़र डालना न भूलें।
निष्कर्ष
डेटाबेस डिजाइन एक व्यापक विषय है, लेकिन आपको मूल बातें सीखने के लिए बहुत कुछ करने की जरूरत नहीं है और सही डेटाबेस संरचना का विचार है। शायद डेटाबेस को डिजाइन करने में सबसे महत्वपूर्ण कदम इसकी शुरुआत और मंथन है। यही वह है जो किसी भी डेवलपर को अग्रिम में सभी आवश्यक जानकारी प्राप्त करने और योजना को आवश्यक रूप से लागू करने की अनुमति देता है। केवल डिजाइन के लिए सभी आवश्यक जानकारी होने पर, आप ठीक से लिंक किए गए तालिकाओं के साथ एक प्रभावी डेटाबेस बना सकते हैं।
कोई भी डेटाबेस कुशल और स्केलेबल होना चाहिए। डेटा को लगातार संपादित, जोड़ा, हटाया जाता है, इसलिए, डेटाबेस को इस तरह से व्यवस्थित रखना महत्वपूर्ण होगा, ताकि यह लगातार बदलते डेटा सेट का समर्थन कर सके। सुनिश्चित करें कि केवल बनाई गई जानकारी को हटाए गए डेटाबेस में डुप्लिकेट नहीं किया जाना चाहिए, और यह कि अन्य डेटा को आसानी से और बस संदर्भित किया जा सकता है।
अतिरिक्त संसाधन
पीएम के पीएम के ट्रांसफर के दावों का स्वागत है। उन सभी को धन्यवाद जो परेशान नहीं हुए :)