डाटाबेस के गुण
- एक डाटाबेस वास्तविक दुनिया के कुछ पहलू प्रस्तुत करता है।
- एक डाटाबेस को कुछ खास उद्देश्य के लिए डिजाइन किया जाता है, बनाया जाता है और डाटा से युक्त किया जाता है।
- डाटाबेस डाटा का तर्कसंगत संग्रह है।
- डाटाबेस किसी भी आकार का और अस्थिर रूप से जटिल हो करता है। सिस्टम के यूजर को फाईलों पर कई प्रकार के कार्य करने की सुविधा दी जाती है जैसे
- डाटाबेस में नई फाईलें जोड़ना।
- पहले से उपस्थित फाईलों में नया डाटा डालना।
- मौजूद फाईलों से डाटा प्राप्त करना।
- मौजूद फाईलों में डाटा को अपडेट करना।
- फाईलों से डाटा को डिलिट करना।
- डाटाबेस से मौजूद फाईलों को हटाना।
फाईलों के प्रयोग के दौरान होने वाली कठिनाईयाँ
- अनियंत्रित प्रतिलिपि बनाना
- स्थान व्यर्थ करता है।
- सभी फाईलों को अपडेट करने में कठिनाई.
- इनकंसिटेंट डाटा.
- कठोरता
- डाटा परिवर्तन में कठिनाई.
- प्रोग्राम परिवर्तन में कठिनाई.
- सीमित डाटा शेयरिंग.
- अधिक प्रोग्राम नियंत्रण.
- डाटा एक्सेस में कठिनाईयाँ.
- सुरक्षा कठिनाई.
डाटाबेस के प्रमुख भाग: डाटाबेस मेनेजमेंट सिस्टम(डीबीएमएस) एक ऐसा साफ्टवेयर है जो डाटाबेस को परिभाषित करता है, डाटा को स्टोर करता है, क्वैरी भाषा को सपोर्ट करता है, रिपोर्ट बनाता है और डाटा इन्ट्री की स्क्रीन बनाता है। डाटाबेस मेनेजमेंट सिस्टम (डीबीएमएस) ऐसे प्रोग्राम्स का संग्रह है जो यूजर को डाटाबेस की रचना करने व उसका रख-रखाव करने की क्षमता प्रदान करतें हैं । इसलिए डीबीएमएस एक जनरल पर्पस साफ्टवेयर सिस्टम है जो विभिन्न एप्लिकेशन्स के लिए डाटाबेस को बनाने की, मेनिप्यूलेट करने की व परिभाषित करने की प्रक्रिया को सुगम बनाता है । डाटाबेस के अन्तर्गत चार प्रमुख भाग होते है:
- डाटा: डाटाबेस सिस्टम्स उन मशीनों पर उपलब्ध हैं, जो या तो सिंगल यूजर सिस्टम्स हैं, या मल्टीयूजर्स सिस्टम्स हैं। सिंगल यूजर सिस्टम वह सिस्टम हैं जिसमें एक समय पर केवल एक यूजर ही सिस्टम को एक्सेस कर सकता है। मल्टीयूजर सिस्टम वह सिस्टम हैं जिसमें कई यूजर्स एक साथ एक ही समय पर डाटाबेस को एक्सेस कर सकते हैं। डाटा के दो प्रमुख गुण होने चाहिए - इन्टीग्रेटेड तथा शेयर्ड. इन्टीग्रेटेड से आशय है कि डाटाबेस कई फाईलों का यूनिफिकेशन है, जो कि अलग-अलग है, और कोई भी समानताऐं पूर्णतः या आंशिक रूप से मिटा दी जाती हैं। शेयरिंग का अर्थ है डाटा का व्यक्तिगत भाग जो विभिन्न यूजर्स द्वारा आपस में बाँटा जा सकता है, और इन यूजर्स में से प्रत्येक को उस भाग तक एक्सेस प्राप्त है, (या अलग-अलग) यूजर्स एक ही डाटा को अलग-अलग कार्य के लिए एक ही समय पर प्रयोग कर सकते हैं।
- हार्डवेयर: हार्डवेयर सेकेण्डरी स्टोरेज वाल्यूम, मुविंग हेड, डिवाइस कंट्रोलर, इनपुट-आउटपुट चैनल्स और मेग्नेटिक डिस्क जो डाटा को एक साथ थामे रखने के उपयोग में आती है आदि से मिलकर बनती है। प्रोसेस और एसोसिएटेड मुख्य मेमोरी, जिनका प्रयोग डाटाबेस सिस्टम सॉफ्टवेयर के संपादन का सपोर्ट करने मेंहोता है।
- साफ्टवेयर: फिजीकल डाटाबेस और उसके यूजर के मध्य की एक परत होती है, जिसे डीबीएमएस कहा जाता है। यूजर्स द्वारा डाटाबेस को एक्सेस करने हेतु , किये गये सभी आग्रहों को डीबीएमएस हैंडल करता है।
- यूजर: यूजर्स तीन प्रकार के होते हैं:
- डाटाबेस एडमिनिस्ट्रेटर: डीबीए डाटाबेस के उपयोग को अधिकृत करने के लिए, समन्वित करने के लिए और इसके उपयोग को मोनिटर करने के लिए जिम्मेदार होता है। तथा सॉफ्टवेयर एवं हार्डवेयर को प्राप्त करने के लिए भी जिम्मेदार है। डाटाबेस डिजाइनर वे व्यक्ति हैं जो डाटाबेस में स्टोर किये जाने वाले डाटा को पहचानने के लिए जिम्मेदार हैं। डाटाबेस एडमिनिस्ट्रेटर वह व्यक्ति या व्यक्तियों का समूह है, जो संगठन के डाटा संबंधी नीतिगत निर्णय लेता है, और इन निर्णयों को लागू करने हेतु आवश्यक तकनिकी समर्थन प्रदान करता है। इस प्रकार यह वह व्यक्ति है जिसका सिस्टम पर पूर्णतः नियंत्रण होता है। डीबीए के कुछ कार्य हैं आन्तरिक स्कीमा को परिभाषित करना, विचार संबंधी स्कीमा को परिभाषित करना, डाटा एक्सेस के लिए अधिकृति प्रदान करना, बैकअप और रिकवरी प्रक्रियाओं को परिभाषित करना, पर्फामेंस को मॉनिटर करना और आवश्यकताओं में बदलाव को रिसपॉण्ड करना तथा इन्टेग्रीटी के नियमों और सुरक्षा को डिफाइन करना।
- एप्ळिकेशन प्रोग्रामर / सिस्टम एनेलिस्ट: सिस्टम एनेलिस्ट अंतिम यूजर की आवश्यकताओं को तय करता है,और इन आवश्यकताओं की पूर्ति के लिए निर्धारणों को विकसित करता हैं। एप्ळिकेशन प्रोग्रामर्स ने हैं जो इन निर्धारणों को प्रोग्राम की तरह लागू करते हैं, और फिर वे इन ट्रांजेक्शन को टेस्ट, डिबग, डाक्यूमेंट और मेन्टेन करता हैं।
- एन्ड यूजर: अंतिम यूजर्स वे हैं जो डाटाबेस का उपयोग क्वैरिंग, अपडेटिंग और रिपोर्ट जनरेटिंग के लिए करते हैं । अंतिम यूजर्स की कुछ श्रेणियाँ अनऔपचारिक अंतिम यूजर्स, अत्याधुनिक अंतिम यूजर्स तथा स्टैण्ड अलोन यूजर हैं.
डी बी एम एस के लाभ
- रिडण्डेंसी नियंत्रण: इसका अर्थ है एक ही डाटा को बार -बार स्टोर करना। इससे कई समस्याऐं उत्पन्न होता हैं - ऐसी हर फाईल में सिंगल लॉजिकल अपडेट करने की आवश्यकता होती है जहाँ एक ही डाटा स्टोर होता है। इससे डाटा का डुप्लीकेशन होता है। जब एक ही डाटा कई बार स्टोर किया जाता है तो स्टोरेज स्पेस व्यर्थ होती है। वे फाईलें इन्कन्सीस्टेन्ट (परस्पर विरोधी) हो सकती हैं जो एक ही डाटा को रिप्रेसेन्ट करती हैं। ऐसा इसलिए क्योंकि एक अपडेट एक फाईल को सप्लाई की जा चुकी है, परन्तु अन्य को नहीं अर्थात् रिडण्डेंसी के कारण कुछ डाटा अपडेट किये गये होते हैं और कुछ नहीं। यही डाटा को इन्कन्सीस्टेन्ट बना देता है। इस समस्या को हल करने, व क्वैरिज की कार्यक्षमता को सुधारने के लिए, रिडण्डेंसी को नियंत्रित करना पड़ता है।
- अनाधिकृत एक्सेस प्रतिबंधन: जब अनेक यूजर्स, एक डाटाबेस को आपस में बाँटते हैं, तब संभव है कि कुछ यूजर्स डाटाबेस पर उपलब्ध पूरी जानकारी को एक्सेस करने का अधिकार नहीं रखते हों। इसलिए, एक्सेस ऑपरेशन का प्रकार भी नियंत्रित होना चाहिए। डीबीएमएस को एक सुरक्षा और प्राधिकरण सबसिस्टम प्रदान करना चाहिए, जिसके प्रयोग डीबीए खाते बनाने और सीमाऐं निर्धारित करने के लिए करे। अधिकतर डाटाबेस एप्लीकेशन्स के कुछ इन्टेग्रीटी कन्सट्रेन्ट्स होते हैं- जो डाटा पर लागू होने चाहिए। एक डीबीएमएस को इन प्रतिबंधों को परिभाषित व लागू करने की क्षमताऐं प्रदान करना चाहिए। सबसे साधारण प्रकार के इन्टेग्रीटी कन्सट्रेन्ट्स के अन्तर्गत हर डाटा आईटम का डाटा टाइप निर्धारित करना आता है। इन्टेग्रीटी की समस्या, यह सुनिश्चित समस्या है - कि डाटाबेस में स्टोर किया गया डाटा सटीक है या नहीं।
- स्टैण्डर्डस लागू किये जा सकते हैं: डाटाबेस केन्द्रीय नियंत्रण के साथ, डीबीए यह सुनिश्चित कर सकता है कि डाटा के रिप्रेजेन्टेशन को स्टैण्डराइज करना, विभिन्न सिस्टम्स के मध्य डाटा के इन्टरचेंज में उपयोगी होता है।
- बैकअप और रिकवरी प्रदान करना: डीबीएमएस का बैकअप और रिकवरी सबसिस्टम, रिकवरी के लिए जिम्मेदार होता है। साथ ही रिकवरी सबसिस्टम यह भी सुनिश्चित करता है कि प्रोग्राम उसी बिन्दु से दोबारा प्रारंभ हो जहां पर वह रूका था ताकि इसका पूरा प्रभाव डाटाबेस पर रिकॉर्ड हो जाए।
- एप्लीकेशन डेवलपमेंट टाईम को कम करना: एक बार जब डाटाबेस तैयार हो जाता है, तब वह नये डाटाबेस की डिजाइनिंग और इम्प्लीमेंटिंग की अपेक्षा कम समय लेता है।
- सरलता (फ्लेक्सिब्लिटि): डीबीएमएस स्टोर किये जा चुके डाटा या उपस्थित एप्लीकेशन प्रोग्राम को प्रभावित किये बिना डाटा के स्ट्रक्चर में कुछ बदलावों की आज्ञा देता है।
डी बी एम एस की हानियाँ: डीबीएमएस के प्रयोग के अनेक लाभों के बावजूद, ऐसी कुछ परिस्थितियाँ हैं जिनमें यह सिस्टम कुछ अनावश्यक खर्चों को बढ़ा देता है जो परंपरागत सिस्टम में जरूरी नहीं होते। डीबीएमएस में अतिरिक्त लागत निम्न कारणों से है
- हार्डवेयर, सॉफ्टवेयर और प्रशिक्षण में उच्च प्रारंभिक निवेश।
- वह जनरेलिटि () जो डीबीएमएस डाटा को परिभाषित और प्रोसेस करने के लिए प्रदान करता है।
- सुरक्षा, कॉन्करैन्सी कंट्रोल, रिकवरी और इन्टैग्रीटी कन्सट्रैन्ट्स प्रदान करने के लिए होने वाले व्यय।
- कुछ प्रोग्राम्स के लिए कुछ वास्तविक समय की आवश्यकताऐं(रियल टाईम रिक्वायरमेंट्स) होती हैं, जो डीबीएमएस के अतिरिक्त व्ययों के चलते पूरी नहीं की जा सकतीं।
डाटा माडल: यह उन विचारों का संग्रह है जो डाटाबेस के स्ट्रक्चर के वर्णन करने में किये जा सकते हैं अर्थात् इसका उपयोग डाटा का वर्णन करने, डाटा के मध्य संबंधों का वर्णन करने इन्टरफेस, डाटा सिमेन्टिक्स और कन्सिस्टैन्सी कन्सट्रैन्ट्स का वर्णन करने के कार्य के लिए होता है। डाटा मॉडल तीन समूहों में विभाजित होता है:
- ऑब्जक्ट बेस्ड लॉजिकल मॉडल: इसका उपयोग विचार संबंधी व्यू स्तर पर डाटा का वर्णन करने के लिए किया जाता है। ये निम्न प्रकार के होते हैं:
- इन्टीटी रिलेशनशिप मॉडल
- ऑब्जक्ट ओरिइन्टेड मॉडल
- बाइनरी मॉडल
- सिमेन्टिक्स डाटा मॉडल
- फंक्शनल डाटा मॉडल
- रिकॉर्ड बेस्ड लॉजिकल मॉडल: इसका प्रयोग भी विचार संबंधी (conceptual) व्यू स्तर पर डाटा का वर्णन करने हेतू होता है। यह स्थाई फार्मेट रिकॉर्ड टाइप में प्रयोग किया जाता है। प्रत्येक रिकॉर्ड टाइप में एट्रीब्यूट्स की संख्या या फिल्ड्स होती हैं और हर फिल्ड निश्चित लंबाई की होती है। इसमें तीन मॉडल होते हैं:
- रिलेशनल मॉडल
- नेटवर्क मॉडल
- हाइरारिकल मॉडल
- फिजिकल डाटा मॉडल: इसका प्रयोग, आन्तरिक स्तर पर न्यूनतम स्तर पर डाटा का वर्णन करने हेतु किया जाता है।
- इंटिटि: यह वास्तविक दुनिया की वस्तुओं को दर्शाती है।
- एट्रीब्यूट: यह उपभोक्ता का नाम, पता आदि जैसी इंटिटि का वर्णन करता है।
- इंटिटि सेट: यह एट्रीब्यूट्स और फिल्ड्स का संग्रह है।
- रिलेशनलशीप: यह इंटिटिज के मध्य परस्पर संबंधों को दर्शाता है।
- रिलेशनलशीप सेट: एक ही प्रकार की रिलेशनलशीप का समूह है। दो इंटिटि सेट के मध्य के संबंध को रिलेशनलशीप सेट कहते हैं।
डी बी एम एस की संरचना:
- आन्तरिक स्तर(Internal level): इस स्तर में, यह डाटाबेस के भौतिक संग्रहण संरचना का वर्णन करता है। वह डाटा संग्रहण की पूर्ण जानकारी का और डाटाबेस के लिए एक्सेस पाथ का वर्णन करता है। वह यह भी निर्धारित करता है कि कौन सी इन्डेक्सेस मौजूद हैं, स्टोर किए गए रिकॉर्ड किस क्रम में हैं आदि।
- बाहरी स्तर(External level): इस स्तर में, डाटा व्यक्तिगत यूजर द्वारा उपयोग में लाया जाता है। यह डाटाबेस के उस भाग का वर्णन करता है जो यूजर के लिए उपयोगी होती है। यह डाटाबेस की सूची को यूजर से छिपाता है। यह स्तर अलग -अलग यूजर के लिए अलग -अलग होता है।
- विचार संबंधी स्तर(Conceptual level): इस स्तर में, पूर्ण डाटाबेस की संरचना का वर्णन होता है। इसमें बाहरी स्तर से विचार संबंधी स्तर तक की मैपिंग होती है, और विचार संबंधी स्तर से आन्तरिक स्तर तक की मैपिंग होती है। यह स्तरों के मध्य जानकारी के रूपान्तरण की प्रक्रिया है।
- विचार संबंधी - आंतरिक मैपिंग: यह, कॉन्सेप्चुअल व्यू को और स्टोर किए जा चुके डाटाबेस के मध्य अनुकूलता को परिभाषित करता है। यह ये निर्धारित करता है कि कॉन्सेप्चुअल रिकॉर्ड्स और फिल्ड्स आन्तरिक स्तर पर कैसे प्रदर्शित किए जा सकते हैं। अगर स्टोर किए जा चुके डाटाबेस की संरचना बदलती है या डाटाबेस में कोई परिवर्तन किया जाता है, तब इसके अनुसार ही कॉन्सेप्चुअल-आन्तरिक मैपिंग को भी परिवर्तित किया जाना चाहिए, ताकि कॉन्सेप्चुअल स्कीमा अनुकूल रहे।
- बाहरी-कॉन्सेप्चुअल मैपिंग: यह एक विशिष्ट बाहरी व्यू और कॉन्सेप्चुअल व्यू के मध्य परस्पर अनुकूलता को परिभाषित करता है। एक ही समय पर बाहरी व्यू की कोई भी संख्या मौजूद हो सकती है, किसी भी संख्या में यूजर्स दिए गए एक बाहरी व्यू को आपस में बाँट सकते हैं।
स्कीमॉस और इंटेन्सेस: डाटाबेस का वर्णन डाटाबेस स्कीमा कहलाता है, जो डाटाबेस डिजाइन के दौरान निर्धारित किया जाता है, और जिसके अधिक आवृति से बदलने की आशंका नहीं होती। डिस्प्ले किये गये स्कीमा को स्कीमा डिजाइन कहा जाता है। एक स्कीमा चित्र स्कीमा के केवल कुछ ही पहलुओं को दर्शाता है जैसे रिकॉर्ड टाइप्स के नाम, डाटा आइटम्स, और कन्सट्रैन्ट्स के कुछ प्रकार। डाटाबेस का वास्तविक डाटा अधिक आवृत्ति से बदलता है - क्योंकि हमें हर समय नये रिकॉर्ड की आवश्यकता होती है। डाटाबेस में एक विशिष्ट समय बिन्दु पर रखे डाटा को डाटाबेस में इन्सटेन्स कहा जाता है। इसे डाटाबेस स्टेट या स्नैपशॉट भी कहा जाता है। हर समय जब हम रिकॉर्ड को इन्सर्ट या डिलिट करते हैं या रिकॉर्ड में डाटा आईटम की वेल्यू को बदलते हैं तो डाटाबेस की एक स्टेट को दूसरी स्टेट में बदलते हैं, जिसे डाटाबेस स्टेट कहते हैं।
स्वतंत्रता (Independence): नॉन-डीबीएमएस सिस्टम पर लागू किए गए एप्लीकेशन्स डाटा आश्रित होते हैं अर्थात् वह तरीका जिससे सेकेण्डरी स्टोरेज पर संगठित किया जाता है, और उसे एक्सेस करने की तकनीक, दोनों ही बातें विचाराधीन एप्लीकेशन की आवश्यकताओं द्वारा वर्णित की जाती है। डाटा संगठन और वह एक्सेस तकनीक, एप्लीकेशन तर्क और कोड में बनाई जाती है। स्टोरेज स्ट्रक्चर या एक्सेस तकनीक को एप्लीकेशन को प्रभावित किए बिना परिवर्तित करना असंभव है। परन्तु डाटा स्वतंत्रता दो कारणों से महत्वपूर्ण है
स्वतंत्रता (Independence): नॉन-डीबीएमएस सिस्टम पर लागू किए गए एप्लीकेशन्स डाटा आश्रित होते हैं अर्थात् वह तरीका जिससे सेकेण्डरी स्टोरेज पर संगठित किया जाता है, और उसे एक्सेस करने की तकनीक, दोनों ही बातें विचाराधीन एप्लीकेशन की आवश्यकताओं द्वारा वर्णित की जाती है। डाटा संगठन और वह एक्सेस तकनीक, एप्लीकेशन तर्क और कोड में बनाई जाती है। स्टोरेज स्ट्रक्चर या एक्सेस तकनीक को एप्लीकेशन को प्रभावित किए बिना परिवर्तित करना असंभव है। परन्तु डाटा स्वतंत्रता दो कारणों से महत्वपूर्ण है
- अलग अलग एप्लीकेशन को एक ही डाटा के अलग अलग व्यू की आवश्यकता होगी, जिसके लिए संगठन डाटाबेस की रचना करता है।
- डीबीए को बदलती आवश्यकताओं को ध्यान में रखतचे हुए स्टोरेज स्ट्रक्चर या एक्सेस तकनीक को परिवर्तित करने की स्वतंत्रता होनी चाहिए।
डाटा स्वतंत्रता के प्रकार
- तर्कसंगत डाटा स्वतंत्रता: तर्कसंगत डाटा स्वतंत्रता, बाहरी स्कीमा और एप्लीकेशन प्रोग्राम को परिवर्तित किए बिना ही, आन्तरिक स्कीमा को परिवर्तित करने की क्षमता - को कहते हैं। कॉन्सेप्चुअल स्कीमा को, रिकॉर्ड या डाटा आईटम को हटाने अथवा डाटाबेस का विस्तार करने के लिए, परिवर्तित किया जाता है-परन्तु एडीशन और डिलीशन बाहरी न्यू पर कोई प्रभाव नहीं डालता।
- भौतिक डाटा स्वतंत्रता: भौतिक डाटा स्वतंत्रता, कॉन्सेप्चुअल अथवा बाहरी स्कीमा में, कोई भी परिवर्तन किए बिना, आन्तरिक स्कीमा को परिवर्तित करने की क्षमता - को कहते हैं। आन्तरिक स्कीमा में परिवर्तन इसलिए आवश्यक होते हैं क्योंकि कुछ भौतिक फाईलों को पुनर्गठित किया जाना होता है। इसलिए, डाटा स्वतंत्रता में, जब स्कीमा किसी स्तर पर परिवर्तित की जाती है, तो अगले उच्च स्तर की स्कीमा अपरिवर्तित रहती है, केवल दो स्तरों के मध्य की मैपिंग परिवर्तित होती है। इसलिए उच्च स्तर स्कीमा को रिफर करने वाले एप्लीकेशन्स प्रोग्राम्स को परिवर्तित करने की आवश्यकता नहीं होती है।
डाटाबेस की भाषाएँ
- डाटा डेफिनेशन लेंग्वेज: इसका उपयोग डाटा स्ट्रक्चर, टेबल, व्यू और इन्डाइसिस को परिभाषित करने हेतु होता है। इसमें डाटा डिक्शनरी भी होती है।
- डाटा मेनिप्यूलेशन लेंग्वेज (डीएमएल): इसका प्रयोग डाटा के इन्सर्शन, डिलिशन, मॉडिफिकेशन के लिए, टेबल से जानकारी को रिट्राइव करने के लिए होता है। यह दो प्रकार की होती है
- प्रोसिजरल डीएमएल: इसमें यूजर व्यक्तिगत रिकॉर्ड्स प्राप्त करता है या आब्जेक्ट्स को डाटाबेस से प्राप्त करता है और उसेअलग से प्रोसेस करता है। यूजर यह निर्धारित करता है कि उसे किस प्रकार का डाटा चाहिए और कैसे।
- नॉन-प्रोसिजरल डीएमएल: इसमें यूजर यह निर्धारित करता है कि उसे किस प्रकार का डाटा चाहिए, पर यह निर्धारित नहीं कर सकता कि वह डाटा कैसे प्राप्त किया जाए।
- डाटा कंट्रोल लेंग्वेज: इसका उपयोग यूजर को डाटाबेस तक एक्सेस करने में नियंत्रित करने के लिए होता है। डाटाबेस को सभी सुरक्षाऐं डाटा कंट्रोल लिंग्वेज द्वारा प्रदान की जाती हैं।
डाटाबेस सिस्टम इन्वाइरोमेंट: डाटाबेस एक जटिल सॉफ्टवेयर सिस्टम है। डाटाबेस और डीबीएमएस केटलॉग सामान्यतः डिस्क पर स्टोर रहते हैं। डिस्क उस ऑपरेटिंग सिस्टम द्वारा नियंत्रित होता है जो इसके इनपुट और आउटपुट का नियंत्रण करता है। डीबीएमएस के मुख्य कम्पोनेंट्स
- डीडीएल कंपायलर
- रन टाईम डाटाबेस प्रोसेसर
- क्वैरी कंपायलर
- प्री-कंपायलर
रिलाशनल माडल लेंग्वेजेस और सिस्टम्स: रिलेशनल डाटाबेस मैनेजमेण्ट सिस्टम(आरडीबीएमएस) एक सॉफ्टवेयर है जो कि रिलेशनल डाटाबेस को मैनेज करता है। रिलेशनल डाटाबेस, डाटाबेस का एक प्रकार है जो कि रिलेशनल मॉडल पर आधारित है। आरडीबीएमएस आर्किटेक्चर के दो मुख्य अंग हैं, कर्नल जो कि सॉफ्टनेयर है और डाटा डिक्शनरी जो कि सिस्टम लेवल डाटा स्ट्रक्चर से बनी है जिसे कर्नल डाटाबेस को मैनेज करने के लिए उपयोग करता है।
आरडीबीएमएस की विशेषताऐं
आरडीबीएमएस की विशेषताऐं
- रिलेशनल डाटा मैनेजमेण्ट मॉडल ने सभी पेरेन्ट-चाइल्ड रिलेशनशीप को मिटा दिया और इसके स्थान पर उसने डाटाबेस में सभी डाटा को डाटा वेल्यूस की साधारण रो-कॉलम सारणियों की तरह दर्शाया।
- रिलेशन, डाटा वेल्यूस की रो-कॉलम सारणियों के समान है। सारणी की पंक्तियों को ट्यूपल्स कहा जाता है और कॉलम को एट्रीब्यूट्स कहा जाता है।
- हर टेबल का अपना स्वतंत्र अस्तित्व होता है और इनमें कोई फिजिकल रिलेशनशिप नहीं होती है।
- रिलेशनल मॉडल पर आधारित अधिकतर डाटा मैनेजमेण्ट सिस्टम्स में एसक्यूएल और क्यूबीई जैसी क्वैरी लैंग्वेजेस के लिए एक बिल्ट इन सपोर्ट होता है।
- डाटा मैनेजमेण्ट रिलेशनल मॉडल, सैट थ्योरी पर आधारित है।
- रिलेशनल मॉडल के साथ उपयोग में आने वाला यूजर इन्टरफेस नॉन-प्रोसिजरल है।
रिलेशनल डाटाबेस की संरचना: रिलेशनल मॉडल डाटाबेस को रिलेशन्स के संग्रह की तरह दर्शाता है। जब रिलेशन को टेबल की तरह देखा जाता है तो टेबल में प्रत्येक पंक्ति (row),संबंधित डाटा वेल्यूज के संग्रह को दर्शाती है। टेबल का नाम और कॉलम के नामों का प्रयोग हर पंक्ति के वेल्यूज के अर्थ को समझाने के लिए होता है। औपचारिक रिलेशन मॉडल शब्दों में, एक पंक्ति को ट्यूपल कहा जाता है, एक कॉलम को एट्रीब्यूट कहा जाता है और टेबल को रिलेशन कहा जाता है। एक कॉलम में आ सकने वाली वेल्यूस के प्रकार का वर्णन करने वाले डाटा टाईप को डोमेन कहा जाता है।
रिलेशनल डाटाबेस स्कीमा: एक रिलेशनल डाटाबेस, रिलेशन्स की संख्या से बना हुआ हो सकता है। डाटाबेस के स्ट्रक्चर का निरूपण कॉन्सेप्चुअल स्कीमा के उपयोग द्वारा किया जाता है जो डाटाबेस के पूर्ण लॉजिकल स्ट्रक्चर का वर्णन है। एक कॉन्सेप्चुअल स्कीमा को व्यक्त करने की सामान्य विधियाँ निम्न हैं
- शॉर्ट टेक्स्ट स्टेटमेंट, जिनमें प्रत्येक रिलेशन का नाम होता है और इसके एट्रीब्यूट्स का नाम कोष्ठक में बाद में लिखा जाता है।
- एक ग्राफिकल प्रस्तुति जिसमें प्रत्येक रिलेशन को एक आयत द्वारा दर्शाया जाता है, जिसमें रिलेशन के एट्रीब्यूट होते हैं।
रिलेशनल कन्स्ट्रैन्ट्स और की: एक रिलेशन में, एक डाटा की पंक्ति को, उस पंक्ति में स्टोर की जा चुकी डाटावेल्यूज के आधार पर रिट्राइव करने की क्षमता होनी चाहिए। टेबल में अंडरलाइन किया गया एट्रीब्यूट उस पंक्ति को अद्वितिय रूप से पहचानता है। ये एट्रीब्यूट की कहलाता है। एट्रीब्यूट का कोई समूह, जो रिलेशन में हर ट्यूपल को अद्वितिय रूप से पहचानता है, उसे सुपर की कहा जाता है। एक कंपोजिट की वह प्राइमरी की है जो एक से अधिक एट्रीब्यूट से बनी है। फॉरेन की डाटाबेस में वह रिलेशन है जो उसी डाटाबेस में अन्य रिलेशन की प्राइमरी की (key) की तरह काम करता है। फॉरेन की का प्रयोग दो सारणियों और रिलेशन्स के बीच संबंधों को दर्शाता है। कन्स्ट्रैन्ट्स वह नियम है, जो उन वेल्यूस को सीमित करता है जो डाटाबेस में उपस्थित हो सकती है। कॉड्स के रिलेशनल डाटा मॉडल में ऐसे कन्स्ट्रैन्ट्स शामिल हैं जो डाटाबेस में डाटा की मान्यता को जांचने के लिए उपयोग किये जाते हैं। कन्स्ट्रैन्ट्स तीन प्रकार के होते हैं-
- एंटीटी इंटीग्रीटी
- रिफ्रेन्शियल इंटीग्रीटी
- फंक्शनल डिपेंडेंसी
रिलेशनल एलजेबरा: यह एक प्रोसिजरल क्वैरी लैंग्वेज है । यह ऑपरेशन्स के ऐसे समूह से मिलकर बनती है, जो एक या दो रिलेशन पर इनपुट की तरह कार्य करते हैं और परिणाम प्राप्त करने के लिए नए रिलेशन्स की रचना करते हैं । मूल ऑपरेशन्स निम्न हैं
- सलेक्ट ऑपरेशन: इसे एक ऐसा ट्यूपल चुनने के लिए उपयोग में लाया जाता है, जो एक दी गई शर्त(कंडीशन) को पूरा करता हो । इसे सिग्मा नोटेशन से दर्शाया जाता है।
- प्रोजेक्ट ऑपरेशन: यह एक यूनरी ऑपरेटर है, प्रोजेक्ट ऑपरेशन टेबल में से कुछ कॉलम्स को सलेक्ट करता है और अन्य को छोड़ देता है। इसे पाई नोटेशन से दर्शाया जाता है।
- सेट ऑपरेशन: यह उस ट्यूपल को दोनों रिलेशन्स में ज्ञात करता है। इस यूनियन ऑपरेशन को सेट थ्योरी की तरह U से दर्शाया जाता है। सेट ऑपरेशन के प्रकार निम्न हैं-
- यूनियन ऑपरेशन: इस स्थिति में कहा जा सकता है कि दोनों रिलेशन में ट्यूपल उपस्थित हैं। इसे U द्वारा दर्शाया जाता है।
- सेट इन्टरसेक्शन ऑपरेशन: इसमें केवल वे ट्यूपल्स शामिल हैं जो दोनो रिलेशन्स में मौजूद (कॉमन) हैं।
- सेट डिफरेन्स ऑपरेशन: इस स्थिति में हम देखते हैं कि ट्यूपल एक रिलेशन में तो उपस्थित है परन्तु दूसरे में नहीं। इसे (-) से दर्शाया जाता है।
- कार्टिसिअन प्रोडक्ट: यह ऑपरेशन हमें दो रिलेशन्स से मिली जानकारी को जोड़ने की अनुमति देता है। इसे X द्वारा दर्शाया जाता है।
- रिनेम ऑपरेशन: यह रिलेशन नेम या एट्रीब्यूट नेम को या फिर दोनों को रिनेम कर सकता है।
- नेचुरल ज्वाइन ऑपरेशन: यह एक बाइनरी ऑपरेशन है। यहाँ ये सलेक्शन और कार्टिसिअन प्रोडक्ट को एक ऑपरेशन में मिला देता है। इसे JOIN चिन्ह द्वारा दर्शाया जाता है।
टपल रिलेशनल कैल्कुलस: एक कैल्कुलस एक्सप्रेशन यह निर्धारित करता है कि क्या रिट्राइव किया जाना है, वह यह निर्धारित नहीं करता कि कैसे रिट्राइव करना है। रिलेशनल कैल्कुलस को एक नॉन-प्रोसिजरल लैंग्वेज माना जाता है। यह रिलेशनल एलजेब्रा से अलग होता है जहां हमें रिट्राइव रिक्वेस्ट निर्धारित करने के लिए ऑपरेशन का क्रम(सिक्वेंस) लिखना होता है, इस कारण इसे क्वैरी निर्दिष्ट करने के एक प्रोसिजरल तरीके की तरह माना जा सकता है।
डोमेन रिलेशनल कैल्कुलस: डोमेन रिलेशनल कैल्कुलस, टपल रिलेशनल कैल्कुलस से भिन्न है क्योंकि इसमें प्रयुक्त होने वाले वेरियबल के टाइप भिन्न-भिन्न होते हैं, यहाँ वेरियबल ट्यूपल पर रेन्ज नहीं करते अपितु वेरियबल एट्रीब्यूट के डोमेन से सिंगल विल्यू पर रेन्ज करते हैं।
डोमेन रिलेशनल कैल्कुलस: डोमेन रिलेशनल कैल्कुलस, टपल रिलेशनल कैल्कुलस से भिन्न है क्योंकि इसमें प्रयुक्त होने वाले वेरियबल के टाइप भिन्न-भिन्न होते हैं, यहाँ वेरियबल ट्यूपल पर रेन्ज नहीं करते अपितु वेरियबल एट्रीब्यूट के डोमेन से सिंगल विल्यू पर रेन्ज करते हैं।
इंटीटी रिलेशनशिप माडल: इन्टीटी रिलेशनशिप मॉडल, वास्तविक दुनिया के बोध(पर्सेप्शन) पर आधारित है जो ऑब्जेक्ट्स के समूह से बनता है।इन्टीटी रिलेशनशिप मॉडल (ई-आर) के मूल घटक (कम्पोनेन्ट्स) हैं-
- इन्टीटी: यह एक स्थान कॉन्सेप्ट, घटना, व्यक्ति, वस्तु को प्रदर्शित करता है। इन्टीटी के प्रकार निम्न हैं
- स्ट्रॉग इन्टीटी सेट: वह इन्टीटी सेट जिसमें प्राइमरी की होती है, उसे स्ट्रॉग इन्टीटी सेट कहते हैं। यह एक स्वतंत्र इन्टीटी सेट है।
- वीक इन्टीटी सेट: वह इन्टीटी सेट जिसमें प्राइमरी की नहीं होती है, उसे वीक इन्टीटी सेट कहते हैं। यह एक डिपेन्डेन्ट इन्टीटी सेट है।
- एसोसिएटिव इन्टीटी: एसोसिएटिव इन्टीटी वह इन्टीटी टाइप है जो एक या कई इन्टीटी टाइप्स के इन्सटेंसेस को जोड़ती है और इसमें वे एट्रीब्यूटभी होते हैं जो उन इन्टीटी इन्सटेंसेस के बीच रिलेशन्स के लिए विशिष्ट होते हैं।
- एट्रीब्यूट: हर इन्टीटी टाइप के साथ एक एट्रीब्यूट्स का सेट जुड़ा होता है। एक एट्रीब्यूट इन्टीटी टाइप की कोई विशेषता या गुण होता है जो ऑर्गेनाइजेशन के लिए महत्वपूर्ण होता है। एट्रीब्यूट के प्रकार निम्न हैं
- सिन्गल वैल्यूड एट्रीब्यूट: सिन्गल वैल्यूड एट्रीब्यूट वह एट्रीब्यूट है जो कि एक इन्टीटी इन्सटेंस के लिए एक ही वैल्यू ग्रहण कर सकता है।
- मल्टीवैल्यूड एट्रीब्यूट: मल्टीवैल्यूड एट्रीब्यूट वह एट्रीब्यूट है जो कि एक इन्टीटी इन्सटेंस के लिए एक से अधिक वैल्यूस ग्रहण कर सकता है।
- स्टोर्ड एट्रीब्यूट: स्टोर्ड एट्रीब्यूट वह एट्रीब्यूट है जो डाटाबेस में स्टोर्ड होते हैं।
- डिराइव्ड एट्रीब्यूट: डिराइव्ड एट्रीब्यूट वह एट्रीब्यूट है जिसकी वैल्यू संबंधित एट्रीब्यूट वैल्यूस द्वारा ज्ञात की जा सकती है।
- रिलेशनशिप: रिलेशनशिप वे तत्व हैं जो एक ई-आर मॉडल के विभिन्न कम्पोनेन्ट्स को एक-दूसरे से जोड़े रहते हैं। रिलेशनशिप एक या अधिक इन्टीटी टाईप्स के इन्सटेंसेस के मध्य वह संबंध है जो ऑर्गेनाइजेशन के लिए महत्व रखता है।रिलेशनशिप इन्टीटी टाईप्स के मध्य सार्थक संबंध है।
रिलेशनशिप की डिग्री: रिलेशनशिप की डिग्री, उस रिलेशनशीप में सम्मिलित इन्टीटी टाइप्स की संख्या है। ई-आर मॉडल में तीन सर्वाधिक सामान्य रिलेशनशिप्स हैं
- यूनरी रिलेशनशिप: यूनरी रिलेशनशिप, सिंगल इन्टीटी टाइप के इन्सटेंसेस के मध्य रिलेशनशिप है।
- बाइनरी रिलेशनशिप: दो इन्टीटी टाइप के इन्सटेंसेस के मध्य बाइनरी रिलेशनशिप, डाटा कॉडलिंग में उपयोग होने वाली सर्वाधिक सामान्य रिलेशनशिप है।
- टर्नरी रिलेशनशिप: टर्नरी रिलेशनशिप एक ही समय पर तीन इन्टीटी टाइप के इन्सटेंसेस के मध्य रिलेशनशिप है।
एट्रीब्यूट इन्हेरिटेन्स: एट्रीब्यूट इन्हेरिटेन्स वह गुण है जिसके द्वारा सबटाइप इन्टीटीज़, सुपरटाइप के सभी एट्रीब्यूट्स की वैल्यू को इन्हेरिट करती है। यह महत्वपूर्ण गुण सुपरटाइप एट्रीब्यूट्स को सबटाइप्स में रिडण्डेटली शामिल करने को आवश्यक बना देता है। दो प्रक्रियाऐं जो सबटाइप-सुपरटाइप रिलेशनशिप के लिए एक मेन्टल मॉडल की तरह कार्य करती हैं, वे हैं:
- जनरलाइजेशन: इसमें हायर-लेवल इन्टीटी सेट और एक या अधिक लोअर लेवल इन्टीटी सेट के मध्य की रिलेशनशिप होती है। जनरलाइजेशन अधिक स्पेशियलाइज्ड इन्टीटी टाइप्स के सेट से एक अधिक जनरल इन्टीटी टाइप डिफाइन करने की प्रक्रिया है। इस प्रकार जनरलाइजेशन एक बॉटम-अप प्रक्रिया है।
- स्पेशियलाइजेशन: यह एक टॉप-डाउन प्रक्रिया है। जनरलाइजेशन के विपरित, स्पेशियलाइजेशन सुपरटाइप के एक या अधिक सबटाइप्स को परिभाषित करने और सुपरटाइप-सबटाइप रिलेशनशिप की रचना करने की प्रक्रिया है।
एग्रीगेशन: ई-आर मॉडल की एक कमी यह भी है कि रिलेशनशिप्स के मध्य रिलेशनशिप व्यक्त करना संभव नहीं है। इस समस्या का समाधान करने का सर्वोच्च तरीका है एग्रीगेशन। एग्रीगेशन एक सब्सट्रेक्शन है जिसके द्वारा रिलेशनशिप्स को हायर लेवल इन्टीटीज़ की तरह समझा जाता है।
स्ट्रक्चर्ड क्वैरी लैंग्वेज: स्ट्रक्चर्ड क्वैरी लैंग्वेज (एसक्यूएल) एक हाई लेवल लैंग्वेज है जो रिलेशनल डाटाबेस में डाटा के परिभाषण, नियंत्रण और मेनिप्यूलेशन का समर्थन करती है। यह लैंग्वेज प्रोग्रामर को यह निर्धारित करने में सहायक होती है कि किस डाटा की आवश्यकता है परन्तु यह निर्धारित नहीं किया जाता कि यह कार्य कैसे सम्पन्न होगा। एसक्यूएल रिलेशनल डाटाबेस मैनेजमेंट सिस्टम पर आधारित है।
एसक्यूएल के लाभ
- एसक्यूएल एक हाई लेवल लैंग्वेज़ है जो प्रोसिजरल लैंग्वेज़ से अधिक मात्रा में एब्सट्रेक्शन प्रदान करती है।
- एसक्यूएल सिस्टम पर्सनेल और यूज़र को कई डाटाबेस सिस्टम के साथ कार्य करने में सक्षम बनाती है।
- एसक्यूएल में लिखा एप्लिकेशन आसानी से इधर-उधर ले जाने योग्य होता है अर्थात् इन्हें ऐरे प्लेटफार्म पर उपयोग में लाया जा सकता है।
- एसक्यूएल साधारण और सीखने में सरल है परन्तु जटिल परिस्थितियों में कार्य कर सकती है।
- एसक्यूएल ना केवल एक क्वैरी लैंग्वेज है परन्तु उपयोग डाटा स्ट्रक्चर को डिफाइन करने में,डाटा तक एक्सेस को नियंत्रित करने और डाटा के ऑकरेन्सेस को डिलिट,इन्तर्ट और मॉडिफाय करने में भी होता है।
एसक्यूएल लैंग्वेज के भाग
- डाटा डेफिनिशन लैंग्वेज
- इन्टरेक्टिव डाटा मेनिप्यूलेशन लैंग्वेज
- इम्बडेड डाटा मेनिप्यूलेशन लैंग्वेज
- व्यू परिभाषा
- ट्रांज़ेक्शन कंट्रोल
- ऑथराइजेशन
- इन्टीग्रीटी
करंसी और रिकवरी तकनीकें: ट्रान्जेक्शन प्रोग्राम क्रियान्वयन की एक यूनिट है, जो विभिन्न डाटा आइटम को प्राप्त करता है और उसमें संभावित परिवर्तन करता है। ट्रान्जेक्शन सामान्यतः यूजर प्रोग्राम के क्रियान्वयन का परिणाम है। ट्रान्जेक्शन में सभी ऑपरेशन शामिल रहते हैं, बिगन और एन्ड के बीच सम्पन्न किये गये सभी ऑपरेशन से मिलकर ट्रान्सेक्शन बनता है। डाटाबेस एक्सेस के लिए मुख्य ऑपरेशन, जो कि ट्रान्जेक्शन में शामिल हो करते हैं, वे हैं रीड तथा राइट.
संयुक्त नियंत्रण और पुनः प्राप्त विधियाँ (Concurrency Control and Recovery Mechanisms): मुख्य रूप से डाटाबेस एक्सेस कमाण्ड से संबंध रखते हैं। और यह समान डाटाबेस आइटम को एक्सेस एवं अपडेट कर सकता है। यदि यह कॉन्करेन्ट एक्सिक्यूशन अनियंत्रित हो जाता है तब यह समस्या उत्पन्न कर सकता है। जैसे अव्यवस्थित डाटाबेस। ट्रान्जेक्शन के कई प्रकार के गुण होते हैं। ये एसिड गुण या एसिड प्रापर्टी कहलाते हैं। इस प्रापर्टी को डाटाबेस मैनेजमेंट सिस्टम के कॉन्करेन्सी नियंत्रण और रिकवरी तकनीकों के द्वारा उपयोग किया जाना चाहिए। एसिड (ACID) प्रापर्टी निम्नलिखित हैं-
- एटॉमिसिटी: ट्रान्जेक्शन प्रोसेसिंग की एक एटॉमिक इकाई है। यह या तो ट्रान्जेक्शन को पीर्ण रूप से परफार्म करता है या अंततः कुछ भी नहीं परफार्म करता है। इस समस्या के निवारण के लिए एटॉमिसिटी की आवश्यकता होती है। एटॉमिसिटी के पीछे मुख्य सिद्धांत यह है कि डाटाबेस सिस्टम किसी भी पुरानी वेल्यू का ट्रेक या पता रखता है, जिस पर ट्रान्जेक्शन राइट () ऑपरेशन परफार्म करता है, और यदि ट्रान्जेक्शन इसके क्रियान्वयन को पूर्ण नहीं करता है, तब पुरानी वेल्यू पुनः स्टोर हो जाती है, और यह दर्शाता है कि ट्रान्जेक्शन कभी भी क्रियान्वित नहीं हुआ है। यदि डाटाबेस सिस्टम ट्रान्जेक्शन को स्वतः क्रियानवित करता है, तब एटॉमिसिटी को निर्धारित करना डाटाबेस का दायित्व रहता है। खास करके यह एक कम्पोनेन्ट (घटक) के द्वारा हेण्डल किया जाता है, जिसे ट्रान्जेक्शन मैनेजमेंट कम्पोनेण्ट कहते हैं।
- अनुकूलता या स्थिरता को संरक्षित करना (Consistency Preservation): कोई ट्रान्जेक्शन अनुकूलता को संरक्षित करता है यदि इसका पूर्ण execution डाटाबेस को एक योग्य अवस्था से दूसरी योग्य अवस्था में ले जाता है।
- आइसोलेशन: क्रियान्वित (Execute) किया जा रहा ट्रान्सेक्शन, दूसरे ट्रान्जेक्शन से पृथक रूप से उपस्थित रहना चाहिए, या अलग दर्शाया जाना चाहिए।
- स्थिरता (Durability): समर्पित किये गये ट्रान्जेक्शन के द्वारा डाटाबेस पर लागू किये गये परिवर्तन, डाटाबेस में अस्तित्व में होने चाहिए। किसी भी फेल्यूअर के कारण ये परिवर्तन नष्ट नहीं होना चाहिए। स्थिरता को हम ग्यारंटी के साथ इस प्रकार कह सकते हैं कि यह तब पूर्ण होती है, जब ट्रान्जेक्शन के द्वारा ले जाये गये अपडेट्स ट्रान्जेक्शन के पूर्ण होने के पहले ही डिस्क पर लिखे जा चुके हैं। -ट्रान्जेक्शन के द्वारा अपडेट के बारे में ले जायी गयी सूचना डिस्क पर लिखी गयी हो तथा यह पर्याप्त हो अर्थात् सिस्टम फेल्यूअर के बाद डाटबेस के द्वारा अपडेट्स को फिर से बनाया जा सके।
संयुक्त रूप से नियंत्रित करना (करंसी कंट्रोल): इस तकनीक का उपयोग, ट्रान्जेक्शन को साथ-साथ रन करने के लिए किया जाता है, यह तकनीक डाटा आइटम को लॉक करने के सिद्धान्त परआधारित है। लॉक एक अवयव (Variable) है,जो डाटा आइटम के साथ जुड़ा रहता है एवं यह संभव ऑपरेशन के सापेक्ष आइटम की स्थिति को दर्शाता है। आइटम के सापेक्ष सभी संभव ऑपरेशन अर्थात् वह ऑपरेशन जो डाटा आइटम पर लागू किये जा सकते हैं। सामान्यतः डाटाबेस में प्रत्येक डाटा आइटम के लिए एक-एक लॉक रहता है। लॉक का प्रयोग डाटाबेस आइटम को ट्रान्जेक्शन द्वारा एक साथ एक ही समय में एक्सेस करने के लिए किया जाता है।
डेडलॉक: डेडलॉक तब घटित होता है जब प्रत्येक ट्रान्जेक्शन दो या अधिक ट्रान्जेक्शन के सेट में ऐसे किसी आइटम की प्रतीक्षा कर रहा है जो सेट में किसी अन्य ट्रान्जेक्शन द्वारा लॉक कर दिया गया है। एक सिस्टम तब डेडलॉक अवस्था में होता है जब एक ऐसा ट्रान्जेक्शन का सेट उपस्थित है जिसके सेट में हर ट्रान्जेक्शन अन्य किसी ट्रान्जेक्शन की प्रतीक्षा कर रहा है। इसलिए सेट में हर ट्रान्जेक्शन प्रतीक्षा कर रहा है कि कोई एक ट्रान्जेक्शन एक आइटम पर लॉक रिलिज़ कर देगा। डेडलॉक समस्या का समाधान करने की दो मुख्य विधियाँ हैं।यह निश्चित करने के लिए कि सिस्टम कभी भी डेडलॉक अवस्था में नहीं पहुँचेगा। इसके अलावा हम सिस्टम को डेडलॉक में जाने की अनुमति दे सकते हैं और इससे उभरने के लिए डेडलॉक डिटेक्शन और डेडलॉक रिकवरी स्कीम का उपयोग कर सकते हैं।
कॉन्करेन्सी नियंत्रण के लिए टाइमस्टम्प ऑडरिंग: टाइमस्टम्प एक ऐसा अनोखा आइडेंटिफायर है, जो कि डीबीएमएस के द्वारा ट्रान्जेक्शन को पहचानने के लिए बना है। आदर्श रूप से टाइमस्टम्प वेल्यूस उसी क्रम में असाइन की जाती हैं, जिस क्रम में ट्रान्जेक्शन को सिस्टम में जमा किया जाता है। इसलिए टाइमस्टम्प को ट्रान्जेक्शन स्टार्ट टाइम की तरह माना जा सकता है।
डेडलॉक: डेडलॉक तब घटित होता है जब प्रत्येक ट्रान्जेक्शन दो या अधिक ट्रान्जेक्शन के सेट में ऐसे किसी आइटम की प्रतीक्षा कर रहा है जो सेट में किसी अन्य ट्रान्जेक्शन द्वारा लॉक कर दिया गया है। एक सिस्टम तब डेडलॉक अवस्था में होता है जब एक ऐसा ट्रान्जेक्शन का सेट उपस्थित है जिसके सेट में हर ट्रान्जेक्शन अन्य किसी ट्रान्जेक्शन की प्रतीक्षा कर रहा है। इसलिए सेट में हर ट्रान्जेक्शन प्रतीक्षा कर रहा है कि कोई एक ट्रान्जेक्शन एक आइटम पर लॉक रिलिज़ कर देगा। डेडलॉक समस्या का समाधान करने की दो मुख्य विधियाँ हैं।यह निश्चित करने के लिए कि सिस्टम कभी भी डेडलॉक अवस्था में नहीं पहुँचेगा। इसके अलावा हम सिस्टम को डेडलॉक में जाने की अनुमति दे सकते हैं और इससे उभरने के लिए डेडलॉक डिटेक्शन और डेडलॉक रिकवरी स्कीम का उपयोग कर सकते हैं।
कॉन्करेन्सी नियंत्रण के लिए टाइमस्टम्प ऑडरिंग: टाइमस्टम्प एक ऐसा अनोखा आइडेंटिफायर है, जो कि डीबीएमएस के द्वारा ट्रान्जेक्शन को पहचानने के लिए बना है। आदर्श रूप से टाइमस्टम्प वेल्यूस उसी क्रम में असाइन की जाती हैं, जिस क्रम में ट्रान्जेक्शन को सिस्टम में जमा किया जाता है। इसलिए टाइमस्टम्प को ट्रान्जेक्शन स्टार्ट टाइम की तरह माना जा सकता है।
मल्टीपल ग्रेन्यूलैरिटी: कॉन्करेन्सी नियंत्रण तकनीकें यह मानती हैं कि डाटाबेस कई नेम्ड डाटा आइटम्स से बना है। एक डाटा आइटम निम्न में से कोई एक होने के लिए चुना जा सकता है-
- एक डाटाबेस रिकॉर्ड
- एक डाटाबेस रिकॉर्ड की एक फिल्ड वेल्यू
- एक डिस्क ब्लॉक
- एक पूरी फाईल
- एक पूरा डाटाबेस
ग्रेन्यूलैरिटी कॉन्करेन्सी नियंत्रण और रिकवरी की कार्यक्षमता को प्रभावित कर सकता है। डाटा आइटम की साइज़ को डाटा आइटम की ग्रेन्यूलैरिटी भी कहा जा सकता है। फाइन आइटम ग्रेन्यूलैरिटी छोटे आइटम साइज़ को दर्शाती है, जबकि कोर्स आइटम ग्रेन्यूलैरिटी विशाल आइटम साइज़ को दर्शाती है।
रिकवरी सिस्टम: सामान्यतः ट्रान्जेक्शन फेलियर से रिकवरी का अर्थ है कि डाटाबेस के फेलियर के समय के पूर्व की सबसे रिसेन्ट, कन्सिस्टेंट स्टेट में रिस्टोर कर दिया गया है। ऐसा करने के लिए सिस्टम को विभिन्न ट्रान्जेक्शन द्वारा डाटा आइटम पर किये गये सभी बदलावों की जानकारी रखनी होती है। इस जानकारी को सिस्टम लॉग में रखा जाता है। कई बार ये फेलियर्स सिस्टम में घटित हो सकते हैं इन सभी का अलग-अलग तरह से सामना करना होता है। निम्न प्रकार के फेलियर्स हैं-
रिकवरी सिस्टम: सामान्यतः ट्रान्जेक्शन फेलियर से रिकवरी का अर्थ है कि डाटाबेस के फेलियर के समय के पूर्व की सबसे रिसेन्ट, कन्सिस्टेंट स्टेट में रिस्टोर कर दिया गया है। ऐसा करने के लिए सिस्टम को विभिन्न ट्रान्जेक्शन द्वारा डाटा आइटम पर किये गये सभी बदलावों की जानकारी रखनी होती है। इस जानकारी को सिस्टम लॉग में रखा जाता है। कई बार ये फेलियर्स सिस्टम में घटित हो सकते हैं इन सभी का अलग-अलग तरह से सामना करना होता है। निम्न प्रकार के फेलियर्स हैं-
- ट्रान्जेक्शन फेलियर
- लॉजिकल फेलियर
- सिस्टम एरर
- सिस्टम क्रैश
- डिस्क फेलियर
ट्रान्जेक्शन रोलबैक: अगर डाटाबेस को अपडेट करने के बाद किसी भी कारण से ट्रान्जेक्शन फेल हो जाता है तो इसे रोलबैक करना आवश्यक हो सकता है, अगर कोई डाटा आइटम वेल्यू, इसके द्वारा बदली गयी है या डाटाबेस में लिखी गयी हैं तो उन्हें उनकी पिछली वेल्यू पर रिस्टोर करना चाहिए। उन आइटम्स की पुरानी वेल्यूस को रिस्टोर करने के लिए अनडू -टाइप लॉग एन्ट्री का प्रयोग होता है, जिन्हें रोलबैक करना चाहिए।
शैडो पेजिंग: सिंगल यूज़र वातावरण में रिकवरी को लॉग के उपयोग की आवश्यकता नहीं होती है। मल्टीयूज़र वातावरण में कॉन्करेन्सी नियंत्रण विधि के लिए लॉग की आवश्यकता हो सकती है। शैडो पेजिंग डाटाबेस को कई निश्चित आकार के डिस्क पेजेस या डिस्क ब्लॉक से निर्मित मानता है। डायरेक्टरी यदि बहुत बड़ी न हो तो उसे मुख्य मैमोरी में रखा जात है और डिस्क पर डाटाबेस पेजेस को सभी रिफरेन्सेस - रीड या राइट के द्वारा ही जाते हैं। जब ट्रान्जेक्शन का एक्सिक्यूशन आरंभ होता है तब करंट डायरेक्टरी, जिसकी प्रविष्टियाँ डिस्क पर सबसे नवीनतम डाटाबेस पेजेस को पाइंट करती है, को एक शैडो डायरेक्टरी में कॉपी कर लिया जाता है। इसके बाद शैडो डायरेक्टरी को डिस्क पर सेव कर लिया जाता है जबकि करंट डायरेक्टरी ट्रान्जेक्शन द्वारा प्रयोग में लाई जाती है।
शैडो पेजिंग: सिंगल यूज़र वातावरण में रिकवरी को लॉग के उपयोग की आवश्यकता नहीं होती है। मल्टीयूज़र वातावरण में कॉन्करेन्सी नियंत्रण विधि के लिए लॉग की आवश्यकता हो सकती है। शैडो पेजिंग डाटाबेस को कई निश्चित आकार के डिस्क पेजेस या डिस्क ब्लॉक से निर्मित मानता है। डायरेक्टरी यदि बहुत बड़ी न हो तो उसे मुख्य मैमोरी में रखा जात है और डिस्क पर डाटाबेस पेजेस को सभी रिफरेन्सेस - रीड या राइट के द्वारा ही जाते हैं। जब ट्रान्जेक्शन का एक्सिक्यूशन आरंभ होता है तब करंट डायरेक्टरी, जिसकी प्रविष्टियाँ डिस्क पर सबसे नवीनतम डाटाबेस पेजेस को पाइंट करती है, को एक शैडो डायरेक्टरी में कॉपी कर लिया जाता है। इसके बाद शैडो डायरेक्टरी को डिस्क पर सेव कर लिया जाता है जबकि करंट डायरेक्टरी ट्रान्जेक्शन द्वारा प्रयोग में लाई जाती है।
डिस्ट्रिब्यूटेड डाटाबेस: डिस्ट्रिब्यूटेड डाटाबेस एक सिंगल लॉजिकल डाटबेस है, जो कि डाटा क्मयूनिकेशन लिंक द्वारा कनेक्टेड मल्टीपल लोकेशन्स में कम्प्यूटर्स में एक छोर से दूसरे छोर तक फैला हुआ है। एक डिस्ट्रिब्यूटेड डाटाबेस में प्रत्येक रिमोट साइट पर मल्टीपल डाटाबेस मैनेजमेण्ट सिस्टम को रन करने की आवश्यकता होती है। डिस्ट्रिब्यूटेड डाटाबेस के कई डाटाबेस एन्वायरमेण्ट हैं जैसे होमोजिनियस तथा हेट्रोजिनियस.
डिस्ट्रिब्यूटेड डाटाबेस के लक्ष्य
- लोकेशन ट्रान्सपेरेन्सी
- लोकल आटोनॉमी
डिस्ट्रिब्यूटेड डाटाबेस के लाभ
- अधिक विश्वसनियता और उपलब्धता
- लोकल कण्ट्रोल
- मॉड्यूल ग्रोथ
- लोअर कम्यूनिकेशन कॉस्ट
- फास्टर रिस्पॉन्स
डिस्ट्रिब्यूटेड डाटाबेस के दोष
- सॉफ्टवेयर कॉस्ट और जटिलताएँ
- प्रोसेसिंग ओवरहेड
- डाटा इन्टीग्रीटी
डिस्ट्रिब्यूटेड डाटाबेस के लिए स्ट्रैटजिस
- डाटा रिप्लीकेशन: डाटा रिप्लीकेशन का अर्थ है हर दो या अधिक साइट्स पर डाटाबेस की अलग प्रति स्टोर करना।
- हॉरिजोण्टल पार्टिशनिंग: हॉरिजोण्टल पार्टिशनिंग के साथ टेबल की कुछ रो को एक साइट पर बेस रिलेशन में रखा जाता है और अन्य रो को एक अन्य साइट में बेस रिलेशन में रखा जाता है।
- वर्टिकल पार्टिशनिंग: वर्टिकल पार्टिशनिंग के साथ टेबल के कुछ कॉलम्स को एक साइट पर बेस रिलेशन में प्रोजेक्ट कर दिया जाता है और अन्य कॉलम्स को एक अन्य साइट में बेस रिलेशन में प्रोजेक्ट कर दिया जाता है। हर साइट में रिलेशन का एक कॉमन डोमेन होना चाहिए, ताकि मूल टेबल को रिकन्सट्रक्ट किया जा सके।
डिस्ट्रिब्यूटेड डाटाबेस मैनेजमेंट सिस्टम: एक डिस्ट्रिब्यूटेड डाटाबेस के लिए एक डाटाबेस मैनेजमेंट सिस्टम होना चाहिए, जो विभिन्न नोड्स पर डाटा के एक्सेस को को-ऑर्डिनेट कर सके। ऐसे सिस्टम को डिस्ट्रिब्यूटेड डाटाबेस मैनेजमेंट सिस्टम (डीडीबीएमएस) कहा जाता है। एक डिस्ट्रिब्यूटेड डाटाबेस मैनेजमेंट सिस्टम निम्नलिखित कार्य करता है-
- डिस्ट्रिब्यूटेड डाटा डायरेक्टरी में डाटा कहाँ लोकेट किया गया है, इसकी खबर रखना।
- यह निशचित करना कि किस लोकेशन से रिक्वेस्टेट डाटा को रिट्रीव करना हैऔर डिस्ट्रिब्यूटेड क्वैरी के हर भाग को किस लोकेशन पर प्रोसेस करना है।
- सिक्योरिटी, कॉन्करेंसी और डेडलॉक क्वैरी ऑप्टीमाइजेशन और फेलियर रिकवरी जैसे डाटा मेनेजमेंट फंक्शन्स प्रदान करना।
- रिमोट साइट्स के बीच डाटा की प्रतियों के बीच स्थिरता प्रदान करना।
डिस्ट्रिब्यूटेड डाटाबेस मैनेजमेंट सिस्टम के कार्य
- लोकेशन ट्रान्सपेरेन्सी
- रिप्लीकेशन ट्रान्सपेरेन्सी
- फेलियर ट्रान्सपेरेन्सी
- कॉन्करेंसी ट्रान्सपेरेन्सी
फ़ाइल ओर्गेनाइजेशन: एक फाईल को तर्कसंगत तरीके से रिकॉर्ड्स के एक क्रम की तरह संगठित किया जाता है। इन रिकॉर्ड्स को डिस्क ब्लॉक्स में स्टोर किया जाता है। एक फाईल में डाटाबेस स्टोर करने के कई तरीकें हैं। एक तकनीक है- अनेक फाईलों का उपयोग करना और इनमें से दी गयी किसी एक फाईल में केवल एक ही लम्बाई के रिसॉर्ड्स को स्टोर करना। अन्य तकनीक है- एक फाईल को इस प्रकार स्ट्रक्चर करना कि हम मल्टीपल लेन्थ रिकॉर्ड स्टोर कर सकें।
फाईल में रिकॉर्ड्स का संगठन: हम रिकॉर्ड्स को फाईल में कई तरह से ऑर्गेनाइज़ कर सकते हैं-
- हीप फाईल ऑर्गेनाइजेशन: इस ऑर्गेनाइजेशन के अन्तर्गत कोई भी रिकॉर्ड फाईल में कहीं भी, जहाँ जगह हो, वहाँ रखा जा सकता है। यहाँ अभिलेखों का कोई क्रम नहीं होता, हर रिलेशन के लिए सिंगल फाईल होती है।
- सिक्वेन्शियल फाईल ऑर्गेनाइजेशन: इस फाईल ऑर्गेनाइजेशन में रिकॉर्ड्स को सिक्वेन्शियल क्रम में स्टोर किया जाता है, यह हर रिकॉर्ड की सर्च की वेल्यू पर आधारित होता है।
- हैशिंग फाईल ऑर्गेनाइजेशन: इस फाईल ऑर्गेनाइजेशन में हर रिकॉर्ड के कुछ एट्रीब्यूट पर, एक हैश फंक्शन कम्प्यूट किया जाता है। इस हैश फंक्शन का परिणाम ब्लॉक में वह ब्लॉक निर्धारित करता है, जहाँ रिकॉर्ड फाईल रखा जाना है।
- क्लस्टरिंग फाईल ऑर्गेनाइजेशन: इस फाईल ऑर्गेनाइजेशन में अनेक अलग-अलग रिलेशन्स के रिकॉर्ड्स एक ही फाईल पर स्टोर किये जा सकते हैं।
डाटा डिक्शनरी स्टोरेज: एक रिलेश्नल डाटाबेस सिस्टम को ऐसे रिलेशन्स के बारे में डाटा मेण्टेन करना होता है- जैसे रिलेशन्स का स्कीमा, इस जानकारी को डाटा डिक्शनरी कहते हैं। सिस्टम में स्टोर जानकारी निम्न हैं-
- रिलेशन्स के नाम
- प्रत्येक रिलेशन के एट्रीब्यूट के नाम
- एट्रीब्यूट्स की डोमेन और लंबाई़
- डाटाबेस पर डिफाइण्ड व्यूस के नाम और इन व्यूस की परिभाषाएं
- इणटीग्रीटी कन्सट्रेण्ट्स
इण्डैक्सिंग और हैशिंग: सिस्टम में एक फाईल के लिए इम्डेक्स ठीक उसी तरह कार्य करता है, जैसे लाइब्रेरी में किसी बुक के लिए केटलॉग। मूलतः दो प्रकार की इण्डैक्सिंग होती है-
- ऑडर्ड इन्डिसिस: ऐसी इन्डिसिस, वेल्यू की सॉर्टेड ऑडरिंग पर आधारित होती है।
- हैश इन्डिसिस: ऐसी इन्डिसिस बकेट के चारों ओर यूनिफॉर्मली फैलाई जा रही वेल्यूस पर आधारित होती है।
बी-ट्री इण्डेक्स फाईल: बी-ट्री का सबसे अधिक उपयोग ऐसे स्ट्रक्चर के लिए होता है, जो इन्सर्शन और डिलिशन के बावजूद अपनी कार्यकुशलता बनाए रखते हैं। एक बी-ट्री, एक बेलेन्स्ड ट्री का रूप ले लेती है, जिसमें ट्री की रूट से उसकी लीफ तक हर रास्ते की लंबाई समान होती है।
1 comments:
php स्क्रिप्टिंग उदाहरण कोड
PHP3 और MySQL नमूना स्क्रिप्ट का उपयोग करके रंग चयनकर्ता विजेट
Post a Comment