अध्याय 07 डेटाबेस अवधारणाएँ
“आपके मन की असंगति… आपकी स्मृति को नुकसान पहुँचा सकती है… असंगत डेटा को हटा दो… और मूल डेटा को बनाए रखो !!!”
— निसर्ग जैन
7.1 परिचय
पिछले अध्याय में डेटा के महत्व को सीखने के बाद, हमें डेटा को इलेक्ट्रॉनिक रूप से संग्रहीत और प्रबंधित करने की विधियों का अन्वेषण करने की आवश्यकता है। आइए एक स्कूल के उदाहरण को लेते हैं जो अपने छात्रों के बारे में डेटा रखता है, उनकी उपस्थिति रिकॉर्ड और अभिभावक विवरणों के साथ।
कक्षा शिक्षक छात्रों की दैनिक उपस्थिति को उपस्थिति रजिस्टर में अंकित करता है। शिक्षक प्रत्येक कार्य दिवस पर प्रत्येक छात्र के रोल नंबर के सामने ’ $\mathrm{P}$ ’ उपस्थित या ’ $\mathrm{A}$ ’ अनुपस्थित दर्ज करता है। यदि कक्षा की ताकत 50 है और एक महीने में कुल कार्य दिवस 26 हैं, तो शिक्षक को हर महीने रजिस्टर में $50 \times 26$ रिकॉर्ड मैन्युअल रूप से दर्ज करने होते हैं। जैसे-जैसे डेटा की मात्रा बढ़ती है, मैन्युअल डेटा प्रविष्टि कठिन हो जाती है। इस उदाहरण में मैन्युअल रिकॉर्ड रखने की कुछ सीमाएँ निम्नलिखित हैं:
गतिविधि 7.1
कुछ दुकानों पर जाएँ जहाँ रिकॉर्ड मैन्युअल रूप से रखे जाते हैं और उनके द्वारा सामना की जाने वाली मैन्युअल रिकॉर्ड रखने की कुछ सीमाओं की पहचान करें।
1) नए उपस्थिति रजिस्टर में छात्र विवरण (रोल नंबर और नाम) की प्रविष्टि जब छात्र को अगली कक्षा में प्रोन्नत किया जाता है।
2) प्रत्येक महीने की उपस्थिति पृष्ठ पर छात्र विवरण लिखना जहाँ गलत तरीके से लिखे गए नामों, छूटे हुए छात्र रिकॉर्डों आदि के कारण असंगति हो सकती है।
3) उपस्थिति रजिस्टर के खो जाने या क्षतिग्रस्त होने की स्थिति में डेटा की हानि।
4) उपस्थिति रिकॉर्ड को मैन्युअल रूप से समेकित करते समय गलत गणना।
कार्यालय स्टाफ छात्रों का विवरण जैसे रोल नंबर, नाम और जन्म तिथि के साथ-साथ संबंधित अभिभावक का विवरण जैसे अभिभावक का नाम, संपर्क नंबर और पता भी मैन्युअल रूप से रखता है। यह छात्र की उपस्थिति और परिणाम के संबंध में अभिभावक से पत्राचार के लिए आवश्यक है।
कागजों के विशाल ढेर से जानकारी खोजना या किसी प्रविष्टि को हटाना/संशोधित करना पेन और पेपर आधारित दृष्टिकोण में एक कठिन कार्य है। मैन्युअल रिकॉर्ड रखने में आने वाली परेशानियों को दूर करने के लिए, यह वांछनीय है कि उपस्थिति रिकॉर्ड और छात्र विवरण को कंप्यूटरीकृत प्रणाली पर अलग-अलग डेटा फाइलों में संग्रहीत किया जाए, ताकि कार्यालय स्टाफ और शिक्षक:
1) जब छात्रों को अगली कक्षा में प्रोन्नत किया जाता है तो बस छात्र विवरण को पुरानी उपस्थिति फाइल से नई उपस्थिति फाइल में कॉपी कर सकें।
2) छात्र या अभिभावक के बारे में कोई भी डेटा खोज सकें।
3) जब भी कोई नया छात्र स्कूल में शामिल होता है तो मौजूदा डेटा में और अधिक विवरण जोड़ सकें।
4) जब भी आवश्यक हो तो संग्रहीत डेटा जैसे छात्र या अभिभावक का विवरण संशोधित कर सकें।
5) जब भी कोई छात्र स्कूल छोड़ता है तो डेटा को हटा/डिलीट कर सकें।
7.2 फाइल सिस्टम
एक फाइल को कंप्यूटर में डेटा संग्रहीत करने के लिए एक कंटेनर के रूप में समझा जा सकता है। फाइलें कंप्यूटर सिस्टम के स्टोरेज डिवाइस पर संग्रहीत की जा सकती हैं। फाइल की सामग्री पाठ, कंप्यूटर प्रोग्राम कोड, कॉमा सेपरेटेड वैल्यूज़ (CSV) आदि हो सकती है। इसी प्रकार, चित्र, ऑडियो/वीडियो, वेब पेज भी फाइलें हैं।
कंप्यूटर पर संग्रहित फ़ाइलों को सीधे एक्सेस किया जा सकता है और उनमें वांछित डेटा खोजा जा सकता है। लेकिन किसी सॉफ़्टवेयर के माध्यम से फ़ाइल के डेटा तक पहुँचने के लिए, उदाहरण के लिए, स्कूल की वेबसाइट पर मासिक उपस्थिति रिपोर्ट प्रदर्शित करने के लिए, फ़ाइलों से डेटा तक पहुँचने के लिए कंप्यूटर प्रोग्राम लिखने पड़ते हैं।
स्कूल में उपस्थिति के उदाहरण को आगे बढ़ाते हुए, हमें छात्रों और उपस्थिति के बारे में डेटा को दो अलग-अलग फ़ाइलों में संग्रहित करना होता है। तालिका 7.1 STUDENT फ़ाइल की सामग्री दिखाती है जिसमें छह कॉलम हैं, जैसा कि नीचे विस्तार से दिया गया है:
RollNumber - छात्र का रोल नंबर
SName - छात्र का नाम
SDateofBirth - छात्र की जन्म तिथि
GName - अभिभावक का नाम
GPhone - छात्र के अभिभावक का फोन नंबर
GAddress - छात्र के अभिभावक का पता
तालिका 7.1 कार्यालय स्टाफ द्वारा बनाए रखी गई STUDENT फ़ाइल
| Roll Number | SName | SDateof Birth | GName | GPhone | GAddress |
|---|---|---|---|---|---|
| 1 | अथर्व आहूजा | 2003-05-15 | अमित आहूजा | 5711492685 | G-35, अशोक विहार, दिल्ली |
| 2 | डेज़ी भूटिया | 2002-02-28 | बाइचुंग भूटिया | 7110047139 | फ्लैट नंबर 5, दार्जिलिंग अपार्टमेंट, शिमला |
| 3 | तालीम शाह | 2002-02-28 | हिमांशु शाह | 9818184855 | 26 / 77, वेस्ट पटेल नगर, अहमदाबाद |
| 4 | जॉन डिसूजा | 2003-08-18 | डैनी डिसूजा | S -13, अशोक विलेज, दमन | |
| 5 | अली शाह | 2003-07-05 | हिमांशु शाह | 9818184855 | 26 / 77, वेस्ट पटेल नगर, अहमदाबाद |
| 6 | मणिका पी. | 2002-03-10 | सुजाता पी. | 7802983674 | HNO-13, B- ब्लॉक, प्रीत विहार, मदुरै |
तालिका 7.2 एक अन्य फ़ाइल को ATTENDANCE दिखाती है जिसमें चार कॉलम हैं, जैसा कि नीचे विस्तृत है:
AttendanceDate - वह तिथि जिसके लिए उपस्थिति अंकित की गई थी
RollNumber - छात्र का रोल नंबर
SName $\quad-$ छात्र का नाम
AttendanceStatus - P (उपस्थित) या A (अनुपस्थित) के रूप में अंकित
तालिका 7.2 कक्षा शिक्षक द्वारा बनाए रखी गई ATTENDANCE फ़ाइल
| AttendanceDate | RollNumber | SName | AttendanceStatus |
|---|---|---|---|
| $2018-09-01$ | 1 | Atharv Ahuja | P |
| $2018-09-01$ | 2 | Daizy Bhutia | P |
| $2018-09-01$ | 3 | Taleem Shah | A |
| $2018-09-01$ | 4 | John Dsouza | P |
| $2018-09-01$ | 5 | Ali Shah | A |
| $2018-09-01$ | 6 | Manika P. | P |
| $2018-09-02$ | 1 | Atharv Ahuja | P |
| $2018-09-02$ | 2 | Daizy Bhutia | P |
| $2018-09-02$ | 3 | Taleem Shah | A |
| $2018-09-02$ | 4 | John Dsouza | A |
| $2018-09-02$ | 5 | Ali Shah | P |
| $2018-09-02$ | 6 | Manika P. |
7.2.1 फ़ाइल सिस्टम की सीमाएँ
फ़ाइल सिस्टम को संभालना कठिन हो जाता है जब फ़ाइलों की संख्या बढ़ती है और डेटा की मात्रा भी बढ़ती है। फ़ाइल सिस्टम की कुछ सीमाएँ निम्नलिखित हैं:
(A) पहुँच में कठिनाई
फ़ाइलें स्वयं डेटा पुनःप्राप्त करने के लिए कोई तंत्र प्रदान नहीं करती हैं। फ़ाइल सिस्टम में बनाए रखा गया डेटा अनुप्रयोग प्रोग्रामों के माध्यम से एक्सेस किया जाता है। ऐसे प्रोग्राम लिखते समय, डेवलपर उन सभी संभावित तरीकों की कल्पना नहीं कर सकता है जिनसे डेटा एक्सेस किया जा सकता है। इसलिए, कभी-कभी आवश्यक प्रारूप में डेटा तक पहुँचना कठिन होता है और डेटा तक पहुँचने के लिए अनुप्रयोग प्रोग्राम लिखना पड़ता है।
(B) डेटा रिडंडेंसी
रिडंडेंसी का अर्थ है कि समान डेटा विभिन्न स्थानों (फ़ाइलों) में दोहराया गया है। हमारे उदाहरण में, छात्रों के नाम दोनों फ़ाइलों में रखे गए हैं। इसके अतिरिक्त, तालिका 7.1 में रोल नंबर 3 और 5 वाले छात्रों के अभिभावक का नाम समान है और इसलिए समान अभिभावक का नाम दो बार रखा गया है। ये दोनों रिडंडेंसी के उदाहरण हैं जिनसे फ़ाइल सिस्टम में बचना कठिन होता है। रिडंडेंसी अतिरिक्त भंडारण का उपयोग करता है और डेटा असंगति का भी कारण बन सकता है।
(C) डेटा असंगति
डेटा असंगति तब होती है जब विभिन्न स्थानों पर रखा गया समान डेटा मेल नहीं खाता। यदि कोई छात्र अपने नाम की वर्तनी बदलवाना चाहती है, तो इसे दोनों फ़ाइलों में SName कॉलम में बदलना होगा। इसी प्रकार, यदि कोई छात्र स्कूल छोड़ देता है, तो विवरण को दोनों फ़ाइलों से हटाना होगा। चूँकि फ़ाइलें विभिन्न लोगों द्वारा बनाए रखी जाती हैं, परिवर्तन किसी एक फ़ाइल में नहीं हो सकता है। उस स्थिति में, छात्र का नाम दोनों फ़ाइलों में भिन्न (असंगत) होगा।
(D) डेटा आइसोलेशन
टेबल 7.1 (STUDENT) और टेबल 7.2 (ATTENDANCE) में प्रस्तुत दोनों फ़ाइलें छात्रों से संबंधित हैं। लेकिन इनके बीच कोई लिंक या मैपिंग नहीं है। स्कूल को इन दोनों फ़ाइलों तक पहुँचने के लिए अलग-अलग प्रोग्राम लिखने होंगे। ऐसा इसलिए है क्योंकि फ़ाइल सिस्टम में डेटा मैपिंग समर्थित नहीं है। एक अधिक जटिल सिस्टम में जहाँ डेटा फ़ाइलें विभिन्न व्यक्तियों द्वारा विभिन्न समय पर उत्पन्न की जाती हैं, अलग-अलग बनाई गई फ़ाइलें विभिन्न प्रारूपों की हो सकती हैं। ऐसी स्थिति में, कई स्थानों पर रखी गई विभिन्न फ़ाइलों से डेटा पुनः प्राप्त करने के लिए नए एप्लिकेशन प्रोग्राम लिखना कठिन होता है, क्योंकि प्रत्येक फ़ाइल की अंतर्निहित संरचना को समझना पड़ता है।
(E) डेटा निर्भरता
डेटा को फ़ाइल में एक विशिष्ट प्रारूप या संरचना में संग्रहीत किया जाता है। यदि संरचना या प्रारूप स्वयं बदल दिया जाता है, तो उस फ़ाइल तक पहुँचने वाले सभी मौजूदा एप्लिकेशन प्रोग्रामों को भी बदलना पड़ता है। अन्यथा, प्रोग्राम सही ढंग से काम नहीं कर सकते। यही डेटा निर्भरता है। इसलिए, डेटा फ़ाइल की संरचना को अद्यतन करने के लिए उस फ़ाइल तक पहुँचने वाले सभी एप्लिकेशन प्रोग्रामों में संशोधन की आवश्यकता होती है।
(F) नियंत्रित डेटा साझाकरण
विभिन्न प्रकार के उपयोगकर्ता हो सकते हैं जैसे शिक्षक, कार्यालय कर्मचारी और अभिभावक। आदर्श रूप से, हर उपयोगकर्ता को सभी डेटा तक पहुँच नहीं दी जानी चाहिए। उदाहरण के तौर पर, अभिभावक और कार्यालय कर्मचारी केवल छात्र की उपस्थिति का डेटा देख सकते हैं लेकिन उसे संशोधित/हटा नहीं सकते। इसका अर्थ है कि इन उपयोगकर्ताओं को ATTENDANCE फ़ाइल तक सीमित पहुँच (केवल पढ़ने योग्य) दी जानी चाहिए। केवल शिक्षक को ही उपस्थिति डेटा को अद्यतन करने की अनुमति होनी चाहिए। फ़ाइल प्रणाली में इस प्रकार का पहुँच नियंत्रण लागू करना बहुत कठिन होता है जबकि एप्लिकेशन प्रोग्रामों के माध्यम से फ़ाइलों तक पहुँची जाती है।
7.3 डेटाबेस प्रबंधन प्रणाली
फ़ाइल प्रणाली में आने वाली सीमाओं को दूर किया जा सकता है जब डेटा को एक डेटाबेस में संग्रहीत किया जाता है जहाँ डेटा तार्किक रूप से संबंधित होते हैं। हम संबंधित डेटा को एक डेटाबेस में इस प्रकार संगठित कर सकते हैं ताकि उसे कुशल और आसान तरीके से प्रबंधित किया जा सके।
एक डेटाबेस प्रबंधन प्रणाली (DBMS) या संक्षेप में डेटाबेस प्रणाली, एक सॉफ़्टवेयर है जिसका उपयोग डेटाबेस बनाने और प्रबंधित करने के लिए किया जा सकता है। DBMS उपयोगकर्ताओं को एक डेटाबेस बनाने, उसमें डेटा संग्रहीत करने, प्रबंधित करने, अद्यतन/संशोधित करने और उपयोगकर्ताओं या एप्लिकेशन प्रोग्रामों द्वारा उस डेटाबेस से डेटा पुनः प्राप्त करने की अनुमति देता है। कुछ ओपन सोर्स और वाणिज्यिक DBMS उदाहरणों में MySQL, Oracle, PostgreSQL, SQL Server, Microsoft Access, MongoDB शामिल हैं।
एक डेटाबेस प्रणाली डेटा को वास्तव में कैसे संग्रहीत और रखरखाव किया जाता है, के बारे में कुछ विवरण छिपाती है। इस प्रकार, यह उपयोगकर्ताओं को डेटा का एक अमूर्त दृश्य प्रदान करती है। एक डेटाबेस प्रणाली में प्रोग्रामों का एक समूह होता है जिनके माध्यम से उपयोगकर्ता या अन्य प्रोग्राम संग्रहीत डेटा तक पहुँच सकते हैं, उसे संशोधित कर सकते हैं और पुनः प्राप्त कर सकते हैं।
कुछ डेटाबेस प्रबंधन प्रणालियों में उपयोगकर्ताओं के लिए डेटाबेस बनाने और प्रबंधित करने हेतु ग्राफिकल यूज़र इंटरफेस होता है। अन्य डेटाबेस प्रणालियाँ कमांड लाइन इंटरफेस का उपयोग करती हैं जिनमें उपयोगकर्ताओं को डेटाबेस बनाने और प्रबंधित करने के लिए प्रोग्रामिंग कमांड्स का उपयोग करना पड़ता है।
DBMS डेटाबेस और अंतिम उपयोगकर्ताओं या अनुप्रयोग प्रोग्रामों के बीच इंटरफेस के रूप में कार्य करता है। विशेष प्रकार के कमांड्स के माध्यम से डेटाबेस से डेटा पुनः प्राप्त करने को डेटाबेस क्वेरींग कहा जाता है। इसके अतिरिक्त, उपयोगकर्ता DBMS के माध्यम से स्वयं डेटाबेस की संरचना को संशोधित कर सकते हैं।
डेटाबेस का विभिन्न क्षेत्रों में व्यापक रूप से उपयोग किया जाता है। कुछ अनुप्रयोग टेबल 7.3 में दिए गए हैं।
टेबल 7.3 वास्तविक जीवन के अनुप्रयोगों में डेटाबेस का उपयोग
| अनुप्रयोग | डेटाबेस द्वारा संरक्षित डेटा |
|---|---|
| बैंकिंग | ग्राहक सूचना, खाता विवरण, ऋण विवरण, लेन-देन विवरण आदि |
| फसल ऋण | किसान क्रेडिट कार्ड डेटा, किसान की व्यक्तिगत सूचना, भूमि क्षेत्र और खेती डेटा, ऋण इतिहास, पुनर्भुगतान डेटा आदि |
| इन्वेंटरी प्रबंधन | उत्पाद विवरण, ग्राहक सूचना, ऑर्डर विवरण, डिलीवरी डेटा आदि |
| संगठन संसाधन प्रबंधन | कर्मचारी रिकॉर्ड, वेतन विवरण, विभाग सूचना, शाखा स्थान आदि |
| ऑनलाइन शॉपिंग | वस्तु विवरण, उपयोगकर्ता लॉगिन विवरण, उपयोगकर्ता प्राथमिकताएँ विवरण आदि |
7.3.1 फाइल सिस्टम से DBMS
आइए हम अपने स्कूल के उदाहरण को फिर से देखें जहाँ दो डेटा फ़ाइलें बनाए रखी गई थीं (टेबल 7.1 कार्यालय द्वारा और टेबल 7.2 शिक्षक द्वारा)। आइए अब उन दोनों फ़ाइलों के डेटा को संग्रहीत करने के लिए एक डेटाबेस डिज़ाइन करें। हम जानते हैं कि डेटाबेस में टेबल एक या अधिक सामान्य कॉलम या फ़ील्ड के माध्यम से लिंक या संबंधित होती हैं। हमारे उदाहरण में, STUDENT (टेबल 7.1) फ़ाइल और ATTENDANCE (टेबल 7.2) फ़ाइल में RollNumber और SName सामान्य फ़ील्ड नाम हैं। इन दोनों फ़ाइलों को डेटाबेस में बदलने के लिए, हमें निम्नलिखित परिवर्तनों को शामिल करना होगा:
a) SName को ATTENDANCE फ़ाइल में बनाए रखने की आवश्यकता नहीं है क्योंकि यह पहले से ही STUDENT में मौजूद है। किसी छात्र का विवरण दोनों फ़ाइलों में सामान्य फ़ील्ड RollNumber के माध्यम से प्राप्त किया जा सकता है।
b) यदि दो भाई-बहन एक ही कक्षा में हैं, तो दोनों के लिए समान अभिभावक विवरण (GName, GPhone और GAddress) बनाए रखा जाता है। हम जानते हैं कि यह अतिरेक है और डेटाबेस का उपयोग करके हम इसे टाल सकते हैं। तो आइए STUDENT फ़ाइल को दो फ़ाइलों (STUDENT फ़ाइल और GUARDIAN फ़ाइल) में विभाजित करें ताकि प्रत्येक अभिभावक का डेटा केवल एक बार बनाए रखा जाए।
c) एक या अधिक अभिभावकों का एक ही नाम हो सकता है। ऐसे में यह संभव नहीं होगा कि पहचान की जाए कि कौन सा अभिभावक किस छात्र से संबंधित है। ऐसी स्थिति में, हमें एक अतिरिक्त कॉलम बनाने की आवश्यकता है, मान लीजिए GUID (Guardian ID) जो GUARDIAN फ़ाइल में प्रत्येक रिकॉर्ड के लिए अद्वितीय मान लेगा। कॉलम GUID को STUDENT फ़ाइल के साथ भी रखा जाएगा ताकि इन दोनों फ़ाइलों को संबंधित किया जा सके।
फ़ाइल सिस्टम से DBMS में बदलाव पर उच्च लागत आती है:
- परिष्कृत हार्डवेयर और सॉफ़्टवेयर की खरीद।
- क्वेरी करने के लिए उपयोगकर्ताओं को प्रशिक्षित करना।
- नियमित बैकअप लेने और रिकवरी संचालन करने की आवर्ती लागत।
नोट: हम अभिभावकों को उनके फ़ोन नंबर से भी पहचान सकते हैं। लेकिन फ़ोन नंबर बदल सकता है, और इसलिए वास्तव में अभिभावक को पहचानने वाला नहीं हो सकता।
चित्र 7.1 STUDENT, GUARDIAN और ATTENDANCE विवरण के लिए संबंधित डेटा फ़ाइलें दिखाता है। ध्यान दें कि यह पूर्ण डेटाबेस स्कीमा नहीं है क्योंकि यह तालिकाओं के बीच कोई संबंध नहीं दिखाता।
चित्र 7.1: STUDENTATTENDANCE डेटाबेस में तीन फ़ाइलों की रिकॉर्ड संरचना
चित्र 7.1 में दिखाई गई तालिकाएँ खाली हैं, जिन्हें तालिका 7.4, 7.5 और 7.6 में दिखाए गए वास्तविक डेटा से भरा जाना है।
तालिका 7.4 STUDENT तालिका का स्नैपशॉट
| RollNumber | SName | SDateofBirth | GUID |
|---|---|---|---|
| 1 | अथर्व आहूजा | 2003-05-15 | 444444444444 |
| 2 | डेज़ी भूटिया | 2002-02-28 | 11111111111 |
| 3 | तालीम शाह | 2002-02-28 | |
| 4 | जॉन डिसूज़ा | 2003-08-18 | 333333333333 |
| 5 | अली शाह | 2003-07-05 | 101010101010 |
| 6 | मणिका पी. | 2002-03-10 | 466444444666 |
तालिका 7.5 GUARDIAN तालिका का स्नैपशॉट
| GUID | GName | GPhone | GAddress |
|---|---|---|---|
| 444444444444 | अमित आहूजा | 5711492685 | G-35, अशोक विहार, दिल्ली |
| 111111111111 | बाइचुंग भूटिया | 7110047139 | फ्लैट नं. 5, दार्जिलिंग अपार्टमेंट, शिमला |
| 101010101010 | हिमांशु शाह | 9818184855 | 26/77, वेस्ट पटेल नगर, अहमदाबाद |
| 333333333333 | डैनी डिसूजा | S-13, अशोक विलेज, दमन | |
| 466444444666 | सुजाता पी. | 7802983674 | HNO-13, B-ब्लॉक, प्रीत विहार, मदुरै |
तालिका 7.6 ATTENDANCE तालिका का स्नैपशॉट
| Date | RollNumber | Status |
|---|---|---|
| $2018-09-01$ | 1 | $\mathrm{P}$ |
| $2018-09-01$ | 2 | $\mathrm{P}$ |
| $2018-09-01$ | 3 | $\mathrm{~A}$ |
| $2018-09-01$ | 4 | $\mathrm{P}$ |
| $2018-09-01$ | 5 | $\mathrm{~A}$ |
| $2018-09-01$ | 6 | $\mathrm{P}$ |
| $2018-09-02$ | 1 | $\mathrm{P}$ |
| $2018-09-02$ | 2 | $\mathrm{P}$ |
| $2018-09-02$ | 3 | $\mathrm{~A}$ |
| $2018-09-02$ | 4 | $\mathrm{~A}$ |
| $2018-09-02$ | 5 | $\mathrm{P}$ |
| $2018-09-02$ | 6 | $\mathrm{P}$ |
आकृति 7.2 एक सरल डेटाबेस STUDENTATTENDANCE दिखाती है, जिसका उपयोग छात्र, अभिभावक और उपस्थिति के बारे में डेटा बनाए रखने के लिए किया जाता है। जैसा यहाँ दिखाया गया है, DBMS एक केंद्रीकृत स्थान पर डेटा का एकल भंडार बनाए रखता है और इसे एक साथ कई उपयोगकर्ता (कार्यालय स्टाफ, शिक्षक) उपयोग कर सकते हैं।
7.3.2 DBMS में प्रमुख संकल्पनाएँ
डेटा को DBMS का उपयोग करके कुशलतापूर्वक प्रबंधित करने के लिए, आइए कुछ प्रमुख शब्दों को समझें:
(A) डेटाबेस स्कीमा
अनुवाद:
डेटाबेस स्कीमा एक डेटाबेस की संरचना (डिज़ाइन) होती है। यह डेटाबेस का ढांचा ( skeleton ) है जो बताता है कि कितनी टेबलें हैं, प्रत्येक टेबल में कौन-कौन-से कॉलम हैं, प्रत्येक कॉलम में किस प्रकार के डेटा रखे जा सकते हैं, डेटा पर कोई प्रतिबंध (constraint) है या नहीं, और टेबलों के बीच क्या संबंध हैं।
चित्र 7.3: StudentAttendance डेटाबेस का वातावरण
डेटाबेस स्कीमा को ‘दृश्य (visual)’ या ‘तार्किक (logical) संरचना’ भी कहा जाता है, क्योंकि यह बताती है कि डेटा डेटाबेस में किस तरह संगठित (organised) हैं।
(B) डेटा प्रतिबंध (Data Constraint)
कभी-कभी हम यह सुनिश्चित करना चाहते हैं कि किसी टेबल के एक या अधिक कॉलमों में किस प्रकार के डेटा डाले जा सकते हैं। इसके लिए टेबल बनाते समय उन कॉलमों पर प्रतिबंध (constraint) लगाए जाते हैं। उदाहरण के लिए, हम यह प्रतिबंध दे सकते हैं कि ‘मोबाइल नंबर’ कॉलम में केवल 10 अंकों की ऋणात्मक-रहित (non-negative) पूर्ण संख्याएँ ही डाली जाएँ। चूँकि प्रत्येक विद्यार्थी का एक अद्वितीय (unique) रोल नंबर होता है, हम RollNumber कॉलम पर NOT NULL और UNIQUE प्रतिबंध लगा सकते हैं। प्रतिबंध डेटा की शुद्धता (accuracy) और विश्वसनीयता (reliability) सुनिश्चित करने के लिए उपयोग किए जाते हैं।
(C) मेटा-डेटा या डेटा डिक्शनरी (Meta-data or Data Dictionary)
डेटाबेस स्कीमा तथा डेटा पर लगाए गए सभी प्रतिबंधों को DBMS एक विशेष कैटलॉग या डिक्शनरी में संग्रहित करता है, जिसे मेटा-डेटा कहा जाता है। मेटा-डेटा, डेटा के बारे में डेटा होता है।
(D) डेटाबेस इंस्टेंस (Database Instance)
जब हम डेटाबेस की संरचना या स्कीमा को परिभाषित करते हैं, तो डेटाबेस की स्थिति खाली होती है, अर्थात् कोई डेटा प्रविष्टि नहीं होती है। डेटा लोड करने के बाद, किसी दिए गए समय पर डेटाबेस की स्थिति या स्नैपशॉट डेटाबेस इंस्टेंस होता है। हम तब क्वेरी के माध्यम से डेटा पुनः प्राप्त कर सकते हैं या अद्यतन, संशोधन या विलोपन के माध्यम से डेटा को नियंत्रित कर सकते हैं। इस प्रकार, डेटाबेस की स्थिति बदल सकती है, और इस प्रकार एक डेटाबेस स्कीमा के विभिन्न समयों पर कई इंस्टेंस हो सकते हैं।
(E) क्वेरी
एक क्वेरी डेटाबेस से वांछित तरीके से जानकारी प्राप्त करने के लिए एक अनुरोध होता है। क्वेरी एक तालिका से या तालिकाओं के संयोजन से डेटा प्राप्त करने के लिए की जा सकती है। उदाहरण के लिए, “उन सभी छात्रों के नाम ज्ञात करें जो उपस्थिति तिथि 2000-01-02 को उपस्थित थे” डेटाबेस के लिए एक क्वेरी है। डेटा पुनः प्राप्त करने या नियंत्रित करने के लिए, उपयोगकर्ता को एक क्वेरी भाषा का उपयोग करके क्वेरी लिखनी होती है, जिसकी चर्चा अध्याय 8 में की गई है।
DBMS की सीमाएँ
बढ़ी हुई जटिलता: DBMS का उपयोग सुरक्षा, संगति, साझाकरण और अखंडता जैसी कार्यक्षमताओं को बनाए रखने की जटिलता को बढ़ाता है
बढ़ी हुई डेटा संवेदनशीलता: चूँकि डेटा केंद्रित रूप से संग्रहीत होते हैं, यह हार्डवेयर या सॉफ्टवेयर की किसी विफलता के कारण डेटा की हानि की संभावना को बढ़ाता है। यह सभी उपयोगकर्ताओं के लिए सभी संचालनों को रोक सकता है।
(F) डेटा नियंत्रण
डेटाबेस में संशोधन तीन संचालनों से मिलकर बनता है – सम्मिलन, विलोपन या अद्यतन। मान लीजिए रिवान कक्षा में एक नया छात्र के रूप में शामिल होता है तो छात्र की विवरण को STUDENT के साथ-साथ Student Attendance डेटाबेस के GUARDIAN फ़ाइलों में भी जोड़ना होगा। इसे डेटाबेस पर सम्मिलन संचालन कहा जाता है। यदि कोई छात्र स्कूल छोड़ता है तो उसका डेटा तथा अभिभावक का विवरण क्रमशः STUDENT, GUARDIAN और ATTENDANCE फ़ाइलों से हटाना होगा। इसे डेटाबेस पर विलोपन संचालन कहा जाता है। मान लीजिए अथर्व के अभिभावक ने अपना मोबाइल नंबर बदल दिया है, तो GUARDIAN फ़ाइल में उसका GPhone अद्यतित किया जाना चाहिए। इसे डेटाबेस पर अद्यतन संचालन कहा जाता है।
(G) डेटाबेस इंजन
डेटाबेस इंजन एक अंतर्निहित घटक या प्रोग्रामों का समूह है जिसे DBMS द्वारा डेटाबेस बनाने और डेटा पुनःप्राप्ति व हेरफेर के लिए विभिन्न क्वेरी संभालने के लिए प्रयोग किया जाता है।
7.4 संबंधात्मक डेटा मॉडल
विभिन्न प्रकार के DBMS उपलब्ध हैं और उनका वर्गीकरण अंतर्निहित डेटा मॉडल के आधार पर किया जाता है। एक डेटा मॉडल डेटाबेस की संरचना का वर्णन करता है, जिसमें यह शामिल है कि डेटा कैसे परिभाषित और प्रस्तुत किए जाते हैं, डेटा के बीच संबंध और बंधन। सबसे अधिक प्रयुक्त डेटा मॉडल संबंधात्मक डेटा मॉडल है। अन्य प्रकार के डेटा मॉडलों में वस्तु-उन्मुख डेटा मॉडल, इकाई-संबंध डेटा मॉडल, दस्तावेज़ मॉडल और पदानुक्रमित डेटा मॉडल शामिल हैं। यह पुस्तक संबंधात्मक डेटा मॉडल पर आधारित DBMS की चर्चा करती है।
रिलेशनल मॉडल में, टेबल्स को रिलेशन्स कहा जाता है जो विभिन्न कॉलमों के लिए डेटा स्टोर करते हैं। प्रत्येक टेबल में कई कॉलम हो सकते हैं जहाँ प्रत्येक कॉलम का नाम अद्वितीय होना चाहिए। उदाहरण के लिए, टेबल में प्रत्येक पंक्ति संबंधित मानों के एक सेट को दर्शाती है। टेबल 7.5 की प्रत्येक पंक्ति एक विशेष अभिभावक को दर्शाती है और इसमें संबंधित मान होते हैं जैसे अभिभावक की आईडी के साथ अभिभावक का नाम, पता और फोन नंबर। इस प्रकार, एक टेबल रिलेशनशिप्स के संग्रह से बनी होती है।
यहाँ यह ध्यान देना महत्वपूर्ण है कि डेटाबेस में रिलेशन्स स्वतंत्र टेबल्स नहीं होते, बल्कि वे एक-दूसरे से जुड़े होते हैं। उदाहरण के लिए, रिलेशन ATTENDANCE में विशेषता RollNumber होती है जो इसे रिलेशन STUDENT में संगत छात्र रिकॉर्ड से जोड़ती है। इसी प्रकार, विशेषता GUID STUDENT टेबल के साथ रखी जाती है किसी विशेष छात्र के अभिभावक विवरण निकालने के लिए। यदि उपयुक्त रिलेशन्स में लिंकिंग विशेषताएँ नहीं होंगी, तो डेटाबेस को सही स्थिति में रखना और डेटाबेस से वैध जानकारी प्राप्त करना संभव नहीं होगा।
चित्र 7.3 रिलेशनल डेटाबेस Student Attendance को तीन रिलेशन्स (टेबल्स) STUDENT, ATTENDANCE और GUARDIAN के साथ दिखाता है।
चित्र 7.4: रिलेशनल डेटा मॉडल का उपयोग करके StudentAttendance डेटाबेस को दर्शाना
तालिका 7.7 छात्र उपस्थिति डेटाबेस के संबंध स्कीमा और उनके विवरण
| संबंध स्कीमा | गुणों का विवरण |
|---|---|
| STUDENT(RollNumber, SName, SDateofBirth, GUID) |
RollNumber: छात्र की अद्वितीय पहचान SName: छात्र का नाम SDateofBirth: छात्र की जन्म तिथि GUID: छात्र के अभिभावक की अद्वितीय पहचान |
| ATTENDANCE (AttendanceDate, RollNumber, AttendanceStatus) |
AttendanceDate: वह तिथि जिस पर उपस्थिति ली गई RollNumber: छात्र का रोल नंबर AttendanceStatus: उपस्थित (P) या अनुपस्थित (A) ध्यान दें कि AttendanceDate और RollNumber का संयोजन तालिका के प्रत्येक रिकॉर्ड में अद्वितीय होगा |
| GUARDIAN(GUID, GName, GPhone, GAddress) |
GUID: अभिभावक की अद्वितीय पहचान GName: अभिभावक का नाम GPhone: अभिभावक का संपर्क नंबर GAddress: अभिभावक का संपर्क पता |
प्रत्येक संबंध (तालिका) में एक टपल (पंक्ति) किसी वास्तविक दुनिया की इकाई (उदाहरण के लिए, छात्र, अभिभावक और उपस्थिति) के डेटा से मेल खाती है। GUARDIAN संबंध (तालिका 7.5) में प्रत्येक पंक्ति अभिभावक के बारे में तथ्यों को दर्शाती है और GUARDIAN तालिका में प्रत्येक स्तंभ का नाम उस स्तंभ के अंतर्गत संग्रहीत डेटा के अर्थ की व्याख्या करने के लिए प्रयोग किया जाता है। एक डेटाबेस जो संबंधात्मक डेटा मॉडल की अवधारणा पर आधारित होता है, उसे संबंधात्मक डेटाबेस कहा जाता है। आकृति 7.4 कुछ आबाद डेटा के साथ GUARDIAN संबंध को दर्शाती है।
आइए अब आकृति 7.4 का उपयोग करके रिलेशनल डेटा मॉडल में प्रयुक्त सामान्य शब्दावली को समझें।
आकृति 7.5: संबंध GUARDIAN अपने गुणों (Attributes) और टपल्स (Tuples) के साथ
i) ATTRIBUTE (गुण): वे लक्षण या पैरामीटर जिनके लिए डेटा को संबंध में संग्रहीत किया जाना है। सरल शब्दों में, संबंध की स्तंभ गुण होते हैं जिन्हें फ़ील्ड भी कहा जाता है। उदाहरण के लिए, GUID, GName, GPhone और GAddress संबंध GUARDIAN के गुण हैं।
ii) TUPLE (टपल): संबंध (तालिका) में प्रत्येक डेटा पंक्ति को टपल कहा जाता है। n स्तंभों वाली तालिका में, टपल n संबंधित मानों के बीच संबंध होता है।
iii) DOMAIN (डोमेन): यह मानों का एक समुच्चय है जिससे प्रत्येक पंक्ति में कोई गुण मान ले सकता है। सामान्यतः, किसी गुण के लिए डोमेन निर्दिष्ट करने के लिए एक डेटा प्रकार प्रयुक्त होता है। उदाहरण के लिए, STUDENT संबंध में गुण RollNumber पूर्णांक मान लेता है और इसलिए इसका डोमेन पूर्णांक मानों का समुच्चय है। इसी प्रकार, वर्ण स्ट्रिंग्स का समुच्चय गुण SName का डोमेन बनाता है।
iv) DEGREE (डिग्री): संबंध में उपस्थित गुणों की संख्या को संबंध की डिग्री कहा जाता है। उदाहरण के लिए, चार गुणों वाला संबंध GUARDIAN डिग्री 4 का संबंध है।
v) CARDINALITY (कार्डिनैलिटी): संबंध में उपस्थित टपल्स की संख्या को संबंध की कार्डिनैलिटी कहा जाता है। उदाहरण के लिए, संबंध GUARDIAN की कार्डिनैलिटी 5 है क्योंकि तालिका में 5 टपल हैं।
7.4.1 एक संबंध के तीन महत्वपूर्ण गुण
रिलेशनल डेटा मॉडल में, एक संबंध के संबंध में निम्नलिखित तीन गुणों का पालन किया जाता है जो एक संबंध को एक डेटा फ़ाइल या एक साधारण तालिका से अलग बनाते हैं।
गुण 1: संबंध के गुण पर निम्नलिखित नियम थोपता है।
- एक संबंध में प्रत्येक गुण का एक अद्वितीय नाम होता है।
- एक संबंध में गुणों का क्रम महत्वहीन होता है।
गुण 2: संबंध के टपल पर निम्नलिखित नियमों को नियंत्रित करता है।
- एक संबंध में प्रत्येक टपल अलग होता है। उदाहरण के लिए, ATTENDANCE संबंध के किसी भी दो टपल में सभी गुणों के लिए डेटा मान समान नहीं हो सकते। इस प्रकार, एक संबंध के प्रत्येक टपल को इसकी सामग्री द्वारा अद्वितीय रूप से पहचाना जाना चाहिए।
- एक संबंध में टपल का क्रम महत्वहीन होता है। टपल को क्रमबद्ध नहीं माना जाता है, भले ही वे तालिका रूप में प्रतीत हों।
गुण 3: संबंध की स्थिति पर निम्नलिखित नियम थोपता है।
- किसी attribute के सभी data values एक ही domain (एक ही data type) से होने चाहिए।
- किसी attribute से जुड़ा प्रत्येक data value atomic होना चाहिए (अर्थपूर्ण उप-भागों में और विभाजित नहीं किया जा सकता)। उदाहरण के लिए, relation GUARDIAN का GPhone दस अंकों की संख्या है जो अविभाज्य है।
- कोई भी attribute एक tuple में कई data values नहीं रख सकता। उदाहरण के लिए, Guardian GPhone attribute के तहत कई contact numbers नहीं दे सकता।
- एक विशेष value “NULL” का उपयोग उन values को दर्शाने के लिए किया जाता है जो अज्ञात हैं या किसी attribute के लिए लागू नहीं होतीं। उदाहरण के लिए, यदि कोई guardian अपना contact number school authorities के साथ साझा नहीं करता है, तो GPhone को NULL सेट किया जाता है (data unknown)।
7.5 Keys in a Relational Database
किसी relation के भीतर tuples अलग-अलग होने चाहिए। इसका अर्थ है कि किसी table में कोई दो tuples सभी attributes के लिए same value नहीं रखने चाहिए। अर्थात्, कम से कम एक attribute ऐसा होना चाहिए जिसमें data अलग (unique) हों और NULL न हों। इस प्रकार हम किसी relation के प्रत्येक tuple को अद्वितिय रूप से पहचान सकते हैं। इसलिए relational data model attributes के values पर कुछ restrictions या constraints लगाता है और यह निर्धारित करता है कि एक relation की contents को दूसरे relation के माध्यम से कैसे refer किया जाए। ये restrictions database को define करते समय नीचे दिए गए विभिन्न प्रकार के keys के माध्यम से निर्दिष्ट किए जाते हैं:
7.5.1 Candidate Key
एक रिलेशन में एक या अधिक ऐसे ऐट्रिब्यूट हो सकते हैं जो विशिष्ट मान लेते हैं। इनमें से कोई भी ऐट्रिब्यूट रिलेशन के टपल्स को अद्वितीय रूप से पहचानने के लिए प्रयोग किया जा सकता है। ऐसे ऐट्रिब्यूट्स को कैंडिडेट कीज़ कहा जाता है क्योंकि इनमें से प्रत्येक प्राइमरी की के लिए उम्मीदवार होता है।
जैसा कि चित्र 7.4 में दिखाया गया है, GUARDIAN रिलेशन में चार ऐट्रिब्यूट हैं जिनमें से GUID और GPhone हमेशा अद्वितीय मान लेते हैं। कोई भी दो अभिभावक एक ही फोन नंबर या एक ही GUID नहीं रखेंगे। इसलिए ये दोनों ऐट्रिब्यूट कैंडिडेट कीज़ हैं क्योंकि ये दोनों प्राइमरी की के लिए उम्मीदवार हैं।
7.5.2 प्राइमरी की
एक या अधिक कैंडिडेट कीज़ में से वह ऐट्रिब्यूट जिसे डेटाबेस डिज़ाइनर द्वारा रिलेशन के टपल्स को अद्वितीय रूप से पहचानने के लिए चुना जाता है, उस रिलेशन की प्राइमरी की कहा जाता है। कैंडिडेट कीज़ की सूची में शेष ऐट्रिब्यूट्स को वैकल्पिक कीज़ कहा जाता है।
GUARDIAN रिलेशन में, मान लीजिए GUID को प्राइमरी की चुना गया है, तो GPhone को वैकल्पिक की कहा जाएगा।
7.5.3 समग्र प्राइमरी की
यदि किसी रिलेशन में कोई एकल ऐट्रिब्यूट टपल्स को अद्वितीय रूप से पहचानने में सक्षम नहीं है, तो एक से अधिक ऐट्रिब्यूट्स को मिलाकर प्राइमरी की के रूप में लिया जाता है। ऐसी प्राइमरी की जो एक से अधिक ऐट्रिब्यूट्स से बनी हो, समग्र प्राइमरी की कहलाती है।
सम्बन्ध ATTENDANCE में Roll Number को प्राइमरी की नहीं बनाया जा सकता क्योंकि एक ही छात्र का रोल नंबर दूसरी तारीख के लिए दूसरी पंक्ति में दिखाई देगा। इसी प्रकार, सम्बन्ध Attendance में AttendanceDate को प्राइमरी की नहीं बनाया जा सकता क्योंकि एक ही तारीख हर रोल नंबर के लिए दोहराई जाती है। हालाँकि इन दोनों गुणों RollNumber और AttendanceDate का संयोजन ATTENDANCE तालिका में हमेशा अद्वितीय मान रखेगा क्योंकि किसी भी कार्य दिवस पर एक छात्र की उपस्थिति केवल एक बार दर्ज की जाएगी। इसलिए {RollNumber,AttendanceDate} ATTENDANCE सम्बन्ध की संयुक्त प्राइमरी की बनाएगी।
7.5.4 विदेशी कुंजी
विदेशी कुंजी का उपयोग दो सम्बन्धों के बीच सम्बन्ध को दर्शाने के लिए किया जाता है। विदेशी कुंजी एक ऐसा गुण है जिसका मान किसी दूसरे सम्बन्ध की प्राइमरी की से प्राप्त होता है। इसका अर्थ है कि किसी सम्बन्ध (संदर्भित करने वाला) का कोई भी गुण, जो दूसरे (संदर्भित) सम्बन्ध की सामग्री को संदर्भित करने के लिए प्रयोग होता है, विदेशी कुंजी बन जाता है यदि वह संदर्भित सम्बन्ध की प्राइमरी की को संदर्भित करता है। संदर्भित करने वाले सम्बन्ध को विदेशी सम्बन्ध कहा जाता है। कुछ मामलों में, विदेशी कुंजी NULL मान ले सकती है यदि वह विदेशी तालिका की प्राइमरी की का हिस्सा नहीं है। सम्बन्ध जिसमें संदर्भित प्राइमरी की परिभाषित होती है, को प्राइमरी सम्बन्ध या मास्टर सम्बन्ध कहा जाता है।
चित्र 7.5 में, स्टूडेंट अटेंडेंस डेटाबेस में दो विदेशी कुंजियाँ स्कीमा आरेख का उपयोग करके दिखाई गई हैं, जहाँ विदेशी कुंजी को एक निर्देशित चाप (तीर) के रूप में प्रदर्शित किया गया है जो उससे उत्पन्न होकर संदर्भित तालिका की प्राथमिक कुंजी के संगत गुण पर समाप्त होता है। रेखांकित गुण उस तालिका की प्राथमिक कुंजी बनाते हैं।
चित्र 7.2: प्राथमिक और विदेशी कुंजियों के साथ स्टूडेंटअटेंडेंस डेटाबेस
सारांश
- फ़ाइल सिस्टम में एक फ़ाइल कंप्यूटर में डेटा संग्रहीत करने के लिए एक कंटेनर होती है।
- फ़ाइल सिस्टम डेटा रिडंडेंसी, डेटा असंगति, डेटा आइसोलेशन, डेटा डिपेंडेंस और नियंत्रित डेटा शेयरिंग से पीड़ित होता है।
- डेटाबेस मैनेजमेंट सिस्टम (DBMS) डेटाबेस बनाने और प्रबंधित करने के लिए एक सॉफ़्टवेयर है। एक डेटाबेस टेबलों का संग्रह होता है।
- डेटाबेस स्कीमा एक डेटाबेस का डिज़ाइन होता है।
- डेटाबेस कंस्ट्रेंट टेबल में डाले जाने वाले डेटा के प्रकार पर एक प्रतिबंध होता है।
- डेटाबेस स्कीमा और डेटाबेस कंस्ट्रेंट डेटाबेस कैटलॉग में संग्रहीत किए जाते हैं।
- जबकि किसी दिए गए समय पर डेटाबेस का स्नैपशॉट डेटाबेस इंस्टेंस होता है।
- एक क्वेरी डेटाबेस से सूचना पुनर्प्राप्ति और डेटा मैनिपुलेशन (इंसर्शन, डिलीशन या अपडेट) के लिए एक अनुरोध होती है। इसे स्ट्रक्चर्ड क्वेरी लैंग्वेज (SQL) में लिखा जाता है।
- रिलेशनल DBMS (RDBMS) संबंधित टेबलों में डेटा संग्रहीत करने के लिए उपयोग किया जाता है। टेबल की पंक्तियों और स्तंभों को क्रमशः टपल और एट्रिब्यूट कहा जाता है। एक टेबल को रिलेशन कहा जाता है।
- RDBMS में संग्रहीत डेटा पर प्रतिबंध कैंडिडेट की, प्राइमरी की, कंपोज़िट प्राइमरी की, फॉरेन की जैसी कुंजियों के उपयोग से लगाए जाते हैं।
- रिलेशन में प्राइमरी की टपल की अद्वितीय पहचान के लिए उपयोग की जाती है।
- फॉरेन की दो टेबलों या रिलेशनों को संबंधित करने के लिए उपयोग की जाती है।
- टेबल में प्रत्येक स्तंभ एक रिकॉर्ड की एक विशेषता (एट्रिब्यूट) को दर्शाता है। टेबल एक इकाई के लिए सूचना संग्रहीत करती है जबकि एक पंक्ति एक रिकॉर्ड को दर्शाती है।
- टेबल में प्रत्येक पंक्ति एक रिकॉर्ड को दर्शाती है। एक टपल एट्रिब्यूट मानों का संग्रह होता है जो एक रिकॉर्ड को अद्वितीय बनाता है।
- एक टपल अद्वितीय इकाई होती है जबकि एट्रिब्यूट मान टेबल में डुप्लिकेट हो सकते हैं।
- SQL MySQL जैसे RDBMS सिस्टम के लिए मानक भाषा है।
अभ्यास
1. निम्नलिखित के लिए उपयुक्त शब्द बताइए:
a) तार्किक रूप से संबंधित रिकॉर्डों का संग्रह।
b) DBMS द्वारा बनाया गया फ़ाइल जिसमें डेटाबेस में संग्रहीत डेटा के बारे में विवरण होता है।
c) वह गुण जो किसी संबंध के टपल्स को अद्वितीय रूप से पहचान सकता है।
d) वह विशेष मान जो तब संग्रहीत किया जाता है जब किसी गुण का वास्तविक डेटा मान अज्ञात हो।
e) वह गुण जो तालिका के टपल्स को अद्वितीय रूप से पहचान सकता है, परंतु प्राइमरी कुंजी के रूप में परिभाषित नहीं है।
f) वह सॉफ़्टवेयर जिसका उपयोग रिलेशनल डेटाबेस बनाने, संचालित करने और बनाए रखने के लिए किया जाता है।
2. विदेशी कुंजियों को NULL मान क्यों स्वीकार्य होते हैं? उदाहरण सहित समझाइए।
3. अंतर स्पष्ट कीजिए:
a) डेटाबेस स्थिति और डेटाबेस स्कीमा
b) प्राइमरी कुंजी और विदेशी कुंजी
c) किसी संबंध की डिग्री और कार्डिनैलिटी
4. फ़ाइल सिस्टम की तुलना में डेटाबेस मैनेजमेंट सिस्टम डेटा में अतिरिक्तता से कैसे बचता है?
5. फ़ाइल सिस्टम की कौन-सी सीमाएँ हैं जिन्हें रिलेशनल DBMS दूर कर सकता है?
6. एक स्कूल के नियम के अनुसार प्रत्येक विद्यार्थी को कोई एक खेल अवश्य करना होता है। इसलिए प्रत्येक को केवल एक खेल पसंद बतानी होती है। मान लीजिए किसी कक्षा में पाँच विद्यार्थी हैं, प्रत्येक की अद्वितीय रोल संख्या है। कक्षा प्रतिनिधि ने खेल पसंदों की निम्न सूची तैयार की है। निम्न प्रश्नों के उत्तर दीजिए:
तालिका: खेल पसंद
| Rol1_no | Preference |
|---|---|
| 9 | क्रिकेट |
| 13 | फुटबॉल |
| 17 | बैडमिंटन |
| 17 | फुटबॉल |
| 21 | हॉकी |
| 24 | NULL |
| NULL | कबड्डी |
क) रोल नंबर 24 को खेलों में रुचि नहीं हो सकती है। क्या उस छात्र के preference फ़ील्ड में NULL मान निर्धारित किया जा सकता है?
ख) रोल नंबर 17 ने दो खेल वरीयताएँ दी हैं। यहाँ रिलेशनल DBMC का कौन-सा गुण उल्लंघित होता है? क्या हम रिलेशनल DBMS में ऐसे उल्लंघन की जाँच के लिए कोई constraint या key उपयोग कर सकते हैं, यदि कोई हो?
ग) कबड्डी किसी भी छात्र द्वारा नहीं चुना गया। क्या Sports Preferences relation में यह tuple होना संभव है?
- एक अन्य कक्षा में जिसमें 2 sections हैं, दोनों sections के class representatives ने 2 अलग-अलग Sports Preferences tables तैयार किए हैं, जैसा नीचे दिखाया गया है:
Section 1 की Sports preference (roll number column पर व्यवस्थित) Table: Sports Preferences
| Roll_no | Sports |
|---|---|
| 9 | क्रिकेट |
| 13 | फुटबॉल |
| 17 | बैडमिंटन |
| 21 | हॉकी |
| 24 | क्रिकेट |
Section 2 की Sports preference (Sports name column पर व्यवस्थित, और column order भी अलग है)
Table: Sports Preferences
| Sports | Roll_no |
|---|---|
| बैडमिंटन | 17 |
| क्रिकेट | 9 |
| क्रिकेट | 24 |
| फुटबॉल | 13 |
| हॉकी | 21 |
क्या दोनों relations की states समतुल्य हैं? औचित्य दीजिए।
8. स्कूल कैंटीन स्कूल कैंटीन में उपलब्ध वस्तुओं के रिकॉर्ड रखना चाहती है और जब छात्र कैंटीन से कोई वस्तु खरीदते हैं तो बिल तैयार करना चाहती है। स्कूल कैंटीन में मौजूद वस्तुओं और छात्रों द्वारा खरीदी गई वस्तुओं का ट्रैक रखने के लिए एक कैंटीन डेटाबेस बनाना चाहता है। निम्नलिखित प्रश्नों के उत्तर देकर एक डेटाबेस डिज़ाइन करें:
a) प्रत्येक वस्तु का नाम और उसकी कीमत संग्रहित करने के लिए किस संबंध का उपयोग किया जाना चाहिए? उपयुक्त विशेषता नामों और उनके डेटा प्रकार का निर्णय लें। प्रत्येक वस्तु और उसकी कीमत केवल एक बार संग्रहित की जानी चाहिए। संबंध को परिभाषित करते समय किस प्रतिबंध का उपयोग किया जाना चाहिए?
b) बिल तैयार करने के लिए, हमें यह जानना होगा कि किसी वस्तु की कितनी मात्रा खरीदी गई है। क्या यह जानकारी एक नए संबंध में होनी चाहिए या पिछले संबंध का हिस्सा होनी चाहिए? यदि एक नया संबंध आवश्यक है, तो विशेषताओं के लिए उपयुक्त नाम और डेटा प्रकार का निर्णय लें। साथ ही, उपयुक्त प्राथमिक कुंजी और विदेशी कुंजी की पहचान करें ताकि निम्नलिखित दो प्रतिबंध संतुष्ट हों:
i) विभिन्न ऑर्डरों के लिए एक ही बिल नहीं बनाया जा सकता।
ii) बिल केवल कैंटीन में उपलब्ध वस्तुओं के लिए ही बनाया जा सकता है।
c) स्कूल यह जानना चाहता है कि जब छात्र कोई वस्तु ऑर्डर करते हैं तो वे कितनी कैलोरी लेते हैं। विशेषता ‘कैलोरीज़’ किस संबंध में संग्रहित की जानी चाहिए?
9. एक संगठन अपने कर्मचारियों और उनके आश्रितों के बारे में निम्नलिखित विवरण बनाए रखने के लिए एक डेटाबेस EMPDEPENDENT बनाना चाहता है।
$ \begin{gathered} \text { EMPLOYEE(AadharNumber, Name, Address, } \\ \text { Department, Employeel D) } \\ \text { DEPENDENT(Employeel D, DependentName, } \\ \text { Relationship) } \end{gathered} $
क) EMPLOYEE के उन गुणों का नाम बताइए जिन्हें उम्मीदवार कुंजी के रूप में प्रयोग किया जा सकता है।
ख) कंपनी किसी विशेष कर्मचारी के आश्रित का विवरण प्राप्त करना चाहती है। इस विवरण को प्राप्त करने के लिए आवश्यक तालिकाओं और कुंजी का नाम बताइए। ग) EMPLOYEE और DEPENDENT संबंध की डिग्री क्या है?
१०. स्कूल यूनिफॉर्म मेसर्स शीतल प्राइवेट लिमिटेड पर उपलब्ध है। उन्होंने SCHOOL_UNIFORM डेटाबेस दो संबंधों UNIFORM और COST के साथ बनाए रखा है। निम्न आकृति डेटाबेस स्कीमा और उसकी स्थिति दिखाती है।
स्कूल यूनिफॉर्म डेटाबेस
गुण और बाधाएँ
| तालिका: UNIFORM | |||
|---|---|---|---|
| गुण | UCode | UName | UColor |
| बाधाएँ | प्राइमरी कुंजी | नॉट नल | - |
| तालिका: COST | | | | | :—: | :—: | :—: | | गुण | UCode | Size | Price | | बाधाएँ | समग्र | प्राइमरी कुंजी | $>0$ |
तालिका: UNIFORM
| UCode | UName | UColor |
|---|---|---|
| 1 | शर्ट | सफेद |
| 2 | पैंट | ग्रे |
| 3 | स्कर्ट | ग्रे |
| 4 | टाई | नीला |
| 5 | मोजे | नीला |
| 6 | बेल्ट | नीला |
तालिका:
| UCode | Size | COST Price |
|---|---|---|
| 1 | $\mathrm{M}$ | 500 |
| 1 | $\mathrm{~L}$ | 580 |
| 1 | $\mathrm{XL}$ | 620 |
| 2 | $\mathrm{M}$ | 810 |
| 2 | $\mathrm{~L}$ | 890 |
| 2 | $\mathrm{XL}$ | 940 |
| 3 | $\mathrm{M}$ | 770 |
| 3 | $\mathrm{~L}$ | 830 |
| 3 | $\mathrm{XL}$ | 910 |
| 4 | $\mathrm{~S}$ | 150 |
| 4 | $\mathrm{~L}$ | 170 |
| 5 | $\mathrm{~S}$ | 180 |
| 5 | $\mathrm{~L}$ | 210 |
| 6 | $\mathrm{M}$ | 110 |
| 6 | $\mathrm{~L}$ | 140 |
| 6 | $\mathrm{XL}$ | 160 |
क) क्या वे निम्नलिखित टपल्स को UNIFORM संबंध में डाल सकते हैं? अपने उत्तर के समर्थन में कारण दीजिए।
i) 7, रूमाल, NULL
ii) 4, रिबन, लाल
iii) 8, NULL, सफेद
ख) क्या वे निम्नलिखित टपल्स को COST संबंध में डाल सकते हैं? अपने उत्तर के समर्थन में कारण दीजिए।
i) 7, S, 0
ii) 9, XL, 100
11. एक मल्टीप्लेक्स में फिल्में विभिन्न ऑडिटोरियमों में दिखाई जाती हैं। एक फिल्म एक से अधिक ऑडिटोरियम में दिखाई जा सकती है। फिल्मों का रिकॉर्ड रखने के लिए, मल्टीप्लेक्स एक रिलेशनल डेटाबेस बनाए रखता है जिसमें दो संबंध होते हैं अर्थात् MOVIE और AUDI जैसा कि नीचे दिखाया गया है:
Movie(Movie I D, MovieName, ReleaseDate)
Audi (AudiNo, Movie I D, Seats, Screentype, TicketPrice)
क) क्या MOVIE संबंध में Movie_ID को प्राइमरी कुंजी निर्धारित करना सही है? यदि नहीं, तो उपयुक्त प्राइमरी कुंजी सुझाइए।
ख) क्या AUDI संबंध में AudiNo को प्राइमरी कुंजी निर्धारित करना सही है? यदि नहीं, तो उपयुक्त प्राइमरी कुंजी सुझाइए।
c) क्या इनमें से किसी संबंध में कोई विदेशी कुंजी है?
छात्र परियोजना डेटाबेस
तालिका: STUDENT
| रोल नं | नाम | कक्षा | अनुभाग | Registration_ID |
|---|---|---|---|---|
| 11 | मोहन | XI | 1 | IP-101-15 |
| 12 | सोहन | XI | 2 | IP-104-15 |
| 21 | जॉन | XII | 1 | CS-103-14 |
| 22 | मीना | XII | 2 | CS-101-14 |
| 23 | जुही | XII | 2 | CS-101-10 |
तालिका: PROJECT
| ProjectNo | PName | SubmissionDate |
|---|---|---|
| 101 | एयरलाइन डेटाबेस | $12 / 01 / 2018$ |
| 102 | लाइब्रेरी डेटाबेस | $12 / 01 / 2018$ |
| 103 | एम्प्लॉयी डेटाबेस | $15 / 01 / 2018$ |
| 104 | स्टूडेंट डेटाबेस | $12 / 01 / 2018$ |
| 105 | इन्वेंटरी डेटाबेस | $15 / 01 / 2018$ |
| 106 | रेलवे डेटाबेस | $15 / 01 / 2018$ |
तालिका: PROJECT ASSIGNED
| Registration_ID | ProjectNo |
|---|---|
| IP-101-15 | 101 |
| IP-104-15 | 103 |
| CS-103-14 | 102 |
| CS-101-14 | 105 |
| CS-101-10 | 104 |
12. उपरोक्त दिए गए STUDENT-PROJECT डेटाबेस के लिए, निम्नलिखित का उत्तर दें:
a) प्रत्येक तालिका की प्राइमरी कुंजी का नाम बताएं।
b) तालिका PROJECT-ASSIGNED में विदेशी कुंजी(यों) को खोजें।
c) क्या तालिका STUDENT में कोई वैकल्पिक कुंजी है? अपने उत्तर के लिए औचित्य दें।
d) क्या कोई उपयोगकर्ता STUDENT तालिका के क्षेत्र RollNo में डुप्लिकेट मान निर्धारित कर सकता है? औचित्य दें।
13. उपरोक्त दिए गए STUDENT-PROJECT डेटाबेस के लिए, क्या हम निम्नलिखित संचालन कर सकते हैं?
a) एक छात्र रिकॉर्ड को रोल नंबर मान के बिना सम्मिलित करना।
b) एक छात्र रिकॉर्ड को रजिस्ट्रेशन नंबर मान के बिना सम्मिलित करना।
c) बिना submission-date के एक प्रोजेक्ट विवरण डालें।
d) टेबल PROJECT-ASSIGNED में registration ID IP-101-19 और ProjectNo 206 के साथ एक रिकॉर्ड डालें।