कंप्यूटर प्रौद्योगिकी के उद्भव हमारे मेंआधुनिकता ने मानव गतिविधि के सभी क्षेत्रों में सूचना क्रांति को चिह्नित किया है। लेकिन वैश्विक इंटरनेट पर सभी जानकारी को अनावश्यक कचरा बनने से रोकने के लिए, एक डेटाबेस प्रणाली का आविष्कार किया गया था, जिसमें सामग्री को क्रमबद्ध, व्यवस्थित किया जाता है, जिसके परिणामस्वरूप उन्हें आसानी से पाया जा सकता है और बाद के प्रसंस्करण के लिए प्रस्तुत किया जा सकता है। तीन मुख्य प्रकार हैं - संबंधपरक डेटाबेस, पदानुक्रमित, नेटवर्क।
डेटाबेस की उत्पत्ति पर वापस जाना, यह मूल्य हैयह कहने के लिए कि यह प्रक्रिया काफी जटिल थी, यह प्रोग्रामेबल सूचना प्रसंस्करण उपकरणों के विकास के साथ उत्पन्न हुई। इसलिए, यह आश्चर्यजनक नहीं है कि इस समय उनके मॉडल की संख्या 50 से अधिक तक पहुंच गई है, लेकिन मुख्य लोगों को पदानुक्रमित, संबंधपरक और नेटवर्क माना जाता है, जो अभी भी व्यापक रूप से व्यवहार में उपयोग किए जाते हैं। वे क्या हैं?
पदानुक्रमित डेटाबेस में एक पेड़ जैसा होता हैसंरचना और विभिन्न स्तरों के डेटा से बना है, जिसके बीच संबंध हैं। DB नेटवर्क मॉडल एक अधिक जटिल पैटर्न है। इसकी संरचना एक पदानुक्रम से मिलती जुलती है, और यह योजना विस्तारित और बेहतर है। उनके बीच अंतर यह है कि एक पदानुक्रमित मॉडल के वंशानुगत डेटा का केवल एक पूर्वज के साथ संबंध हो सकता है, जबकि नेटवर्क डेटा में कई हो सकते हैं। एक संबंधपरक डेटाबेस की संरचना बहुत अधिक जटिल है। इसलिए, इसका अधिक विस्तार से विश्लेषण किया जाना चाहिए।
इस मॉडल को 1970 के दशक में विकसित किया गया था।एडगर Codd, विज्ञान के डॉक्टर द्वारा। यह एक तार्किक रूप से संरचित तालिका है जिसमें डेटा का वर्णन करने वाले क्षेत्र, एक-दूसरे के साथ उनके संबंध, उन पर किए गए संचालन और सबसे महत्वपूर्ण, नियम जो उनकी अखंडता की गारंटी देते हैं। मॉडल को संबंधपरक क्यों कहा जाता है? यह डेटा के बीच रिश्तों पर आधारित है। इस प्रकार के डेटाबेस के लिए कई परिभाषाएँ हैं। नेटवर्क या पदानुक्रमित मॉडल की तुलना में जानकारी के साथ संबंधपरक तालिकाओं को व्यवस्थित और संसाधित करना बहुत आसान है। यह कैसे किया जा सकता है? यह सुविधाओं, मॉडल की संरचना और संबंधपरक तालिकाओं के गुणों को जानने के लिए पर्याप्त है।
अपना खुद का DBMS बनाने के लिए, आपको चाहिएमॉडलिंग टूल में से किसी एक का उपयोग करें, इस बारे में सोचें कि आपको डेटा, टेबल्स और रिलेशनल सिंगल और डेटा के बीच कई संबंधों के साथ क्या काम करने की आवश्यकता है, इकाई कोशिकाओं में भरें और प्राथमिक, विदेशी कुंजी सेट करें।
टेबल मॉडलिंग और रिलेशनल डिज़ाइनडेटाबेस मुफ्त उपकरण जैसे वर्कबेंच, PhpMyAdmin, Case Studio, dbForge Studio के माध्यम से निर्मित होते हैं। विस्तृत डिज़ाइन के बाद, आपको ग्राफ़िकल रूप से तैयार रिलेशनल मॉडल को सहेजना चाहिए और इसे तैयार किए गए SQL कोड में अनुवाद करना चाहिए। इस स्तर पर, आप डेटा छँटाई, प्रसंस्करण और प्रणालीकरण के साथ काम करना शुरू कर सकते हैं।
प्रत्येक स्रोत अपने तत्वों का अपने तरीके से वर्णन करता है, इसलिए कम भ्रम के लिए मैं एक छोटा संकेत देना चाहूंगा:
एक संबंधपरक डेटाबेस के गुणों को प्राप्त करने के लिए, आपको यह जानना होगा कि इसमें कौन से मूल घटक हैं और वे किसके लिए हैं।
अब, तालिका के घटक तत्वों को जानते हुए, आप डेटाबेस रिलेशनल मॉडल के गुणों पर जा सकते हैं:
एक संबंधपरक डीबीएमएस के गुणों के आधार पर, यह स्पष्ट है कि विशेषता मान एक ही प्रकार और लंबाई के होने चाहिए। आइए विशेषता मानों की सुविधाओं पर विचार करें।
फ़ील्ड नाम अद्वितीय होने चाहिएएक इकाई। संबंधपरक डेटाबेस विशेषता या फ़ील्ड प्रकार यह वर्णन करते हैं कि कौन सा श्रेणी डेटा इकाई फ़ील्ड में संग्रहीत है। एक रिलेशनल डेटाबेस फ़ील्ड का वर्णों में निश्चित आकार होना चाहिए। विशेषता मानों के पैरामीटर और प्रारूप यह निर्धारित करते हैं कि उनमें डेटा कैसे सही किया गया है। "मुखौटा" या "इनपुट पैटर्न" जैसी कोई चीज भी है। इसका उद्देश्य विशेषता मूल्य में डेटा प्रविष्टि के कॉन्फ़िगरेशन को परिभाषित करना है। यह अनिवार्य है कि किसी क्षेत्र में गलत डेटा प्रकार लिखते समय त्रुटि संदेश जारी किया जाता है। इसके अलावा, खेतों के तत्वों पर कुछ प्रतिबंध लगाए गए हैं - सटीकता और त्रुटि-मुक्त डेटा प्रविष्टि की जांच के लिए शर्तें। कुछ आवश्यक विशेषता मान है जो डेटा के साथ स्पष्ट रूप से आबादी होना चाहिए। कुछ विशेषता तार NULL मानों से भरे जा सकते हैं। फ़ील्ड विशेषताओं में खाली डेटा दर्ज करने की अनुमति है। त्रुटि सूचना की तरह, ऐसे मान हैं जो सिस्टम द्वारा स्वचालित रूप से भरे जाते हैं - यह डिफ़ॉल्ट डेटा है। एक अनुक्रमित क्षेत्र का उद्देश्य किसी भी डेटा की खोज को गति देना है।
गुण नाम १ | गुण नाम २ | गुण नाम ३ | गुण नाम ४ | गुण नाम ५ |
आइटम_1 | आइटम_1_2 | आइटम_1_3 | आइटम_1_4 | आइटम_1_5 |
आइटम .2_1 | आइटम .2 | आइटम_2_3 | आइटम_2_4 | आइटम .2_5 |
आइटम_3_1 | आइटम_3_2 | आइटम_3_3 | आइटम_3_4 | आइटम_3_5 |
नियंत्रण प्रणाली की विस्तृत समझ के लिएSQL का उपयोग करने वाले मॉडल, स्कीमा को देखने का सबसे अच्छा तरीका है। हम पहले से ही जानते हैं कि एक संबंधपरक डेटाबेस क्या है। प्रत्येक तालिका में एक रिकॉर्ड एक डेटा आइटम है। डेटा अतिरेक को रोकने के लिए, सामान्यीकरण ऑपरेशन करना आवश्यक है।
1. एक संबंधपरक तालिका के लिए फ़ील्ड नाम का मूल्य अद्वितीय होना चाहिए, एक प्रकार का (पहला सामान्य रूप 1NF है)।
2. ऐसी तालिका के लिए जो पहले से ही 1NF तक कम हो गई है, किसी भी गैर-पहचान वाले कॉलम का नाम तालिका के अद्वितीय पहचानकर्ता (2NF) पर निर्भर होना चाहिए।
3. पूरी तालिका जो पहले से ही 2NF में है, के लिए प्रत्येक गैर-पहचान फ़ील्ड किसी अन्य अपरिचित मान (निकाय 3NF) के एक तत्व पर निर्भर नहीं कर सकता है।
संबंध तालिका के 2 मुख्य प्रकार हैं:
प्राथमिक और माध्यमिक कुंजी परिभाषित करती हैंसंभावित डेटाबेस संबंध। डेटा मॉडल के संबंधपरक लिंक में केवल एक संभावित कुंजी हो सकती है, यह प्राथमिक कुंजी होगी। वह किस तरह का है? एक प्राथमिक कुंजी एक इकाई स्तंभ या विशेषताओं का सेट है जो आपको किसी विशेष पंक्ति के लिए डेटा तक पहुंचने की अनुमति देता है। यह विशिष्ट, अद्वितीय होना चाहिए, और इसके फ़ील्ड में रिक्त मान नहीं हो सकते। यदि प्राथमिक कुंजी में केवल एक विशेषता होती है, तो इसे सरल कहा जाता है, अन्यथा यह एक घटक होगा।
प्राथमिक कुंजी के अलावा, एक बाहरी भी है(विदेशी कुंजी)। बहुतों को समझ में नहीं आता है कि उनके बीच क्या अंतर है। आइए एक उदाहरण का उपयोग करके उन्हें और अधिक विस्तार से देखें। तो, वहाँ 2 टेबल हैं: "डीन के कार्यालय" और "छात्र"। "डीन के कार्यालय" इकाई में फ़ील्ड शामिल हैं: "छात्र आईडी", "पूर्ण नाम" और "समूह"। "छात्र" तालिका में "नाम", "समूह" और "औसत" जैसे गुण हैं। चूंकि छात्र आईडी कई छात्रों के लिए समान नहीं हो सकता है, यह फ़ील्ड प्राथमिक कुंजी होगी। "छात्रों" तालिका से "पूर्ण नाम" और "समूह" कई लोगों के लिए समान हो सकते हैं, वे "डीन के कार्यालय" इकाई से छात्र की आईडी संख्या को संदर्भित करते हैं, इसलिए उन्हें एक विदेशी कुंजी के रूप में उपयोग किया जा सकता है।
स्पष्टता के लिए, हम दो संस्थाओं से मिलकर एक संबंधपरक डेटाबेस मॉडल का एक सरल उदाहरण देंगे। "डीनरी" नामक एक तालिका है।
सार "डीनरी" | ||
छात्र आईडी | पूरा नाम | समूह |
111 | इवानोव ओलेग पेट्रोविच | आईएन 41 में |
222 | इलिया लाज़रेव | IN-72 में |
333 | कोनोप्लेव पेट्र वासिलिविच | आईएन 41 में |
444 | कुशनेरेवा नतालिया इगोरवाना | IN-72 में |
पाने के लिए आपको कनेक्शन बनाने की आवश्यकता हैपूर्ण-भाग संबंधित डेटाबेस। रिकॉर्ड "IN-41", "IN-72" की तरह, "डीन के कार्यालय" प्लेट में एक से अधिक बार मौजूद हो सकता है, और उपनाम, पहला नाम और दुर्लभ मामलों में छात्रों का संरक्षक मेल खा सकता है, इसलिए ये क्षेत्र नहीं कर सकते हैं प्राथमिक कुंजी बना दी। आइए "छात्र" संस्था को दिखाएं।
"छात्र" तालिका | |||
पूरा नाम | समूह | औसत अंक | टेलीफोन |
इवानोव ओलेग पेट्रोविच | आईएन 41 में | 3,0 | 2-27-36 |
इलिया लाज़रेव | IN-72 में | 3,8 | 2-36-82 |
कोनोप्लेव पेट्र वासिलिविच | आईएन 41 में | 3,9 | 2-54-78 |
कुशनेरेवा नतालिया इगोरवाना | IN-72 में | 4,7 | 2-65-25 |
जैसा कि हम देख सकते हैं, रिलेशनल डेटाबेस में फ़ील्ड्स के प्रकारपूरी तरह से अलग। डिजिटल और प्रतीकात्मक दोनों प्रविष्टियाँ हैं। इसलिए, विशेषता सेटिंग्स में पूर्णांक, चार, वाचर, तिथि और अन्य के मान निर्दिष्ट किए जाने चाहिए। "डीन के कार्यालय" तालिका में, केवल छात्र आईडी एक अद्वितीय मूल्य है। इस क्षेत्र को एक प्राथमिक कुंजी के रूप में लिया जा सकता है। "छात्र" संस्था से पूरा नाम, समूह और फोन नंबर, छात्र आईडी के संदर्भ में एक विदेशी कुंजी के रूप में लिया जा सकता है। कनेक्शन स्थापित किया गया है। यह वन-टू-वन रिलेशनशिप मॉडल का एक उदाहरण है। हाइपोथेटिक रूप से, तालिकाओं में से एक शानदार है, उन्हें आसानी से एक इकाई में जोड़ा जा सकता है। आम तौर पर छात्र आईडी संख्याओं को ज्ञात होने से रोकने के लिए, दो तालिकाओं का अस्तित्व काफी यथार्थवादी है।