अध्याय 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 Atharv Ahuja 2003-05-15 444444444444
2 Daizy Bhutia 2002-02-28 11111111111
3 Taleem Shah 2002-02-28
4 John Dsouza 2003-08-18 333333333333
5 Ali Shah 2003-07-05 101010101010
6 Manika P. 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 उपस्थिति तालिका का स्नैपशॉट

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) डेटाबेस स्कीमा

डेटाबेस स्कीमा एक डेटाबेस की डिज़ाइन है। यह डेटाबेस का ढांचा होता है जो संरचना (टेबल के नाम और उनके फ़ील्ड/कॉलम), प्रत्येक कॉलम में रखे जा सकने वाले डेटा का प्रकार, डेटा पर लगाए गए किसी भी प्रतिबंध, और टेबलों के बीच संबंधों को दर्शाता है।

चित्र 7.3: StudentAttendance डेटाबेस वातावरण

डेटाबेस स्कीमा को दृश्य या तार्किक आर्किटेक्चर भी कहा जाता है क्योंकि यह बताता है कि डेटा डेटाबेस में किस प्रकार संगठित है।

(B) डेटा प्रतिबंध

कभी-कभी हम किसी टेबल के एक या अधिक कॉलम में डाले जाने वाले डेटा के प्रकार पर कुछ प्रतिबंध या सीमाएँ लगाते हैं। यह टेबल बनाते समय उस कॉलम (या कॉलमों) पर एक या अधिक प्रतिबंध निर्धारित करके किया जाता है। उदाहरण के लिए, कोई यह प्रतिबंध परिभाषित कर सकता है कि मोबाइल नंबर कॉलम में केवल ठीक 10 अंकों के ऋणात्मक नहीं पूर्णांक मान ही होंगे। चूँकि प्रत्येक छात्र का एक अद्वितीय रोल नंबर होता है, हम RollNumber कॉलम पर NOT NULL और UNIQUE प्रतिबंध लगा सकते हैं। प्रतिबंध डेटाबेस में डेटा की शुद्धता और विश्वसनीयता सुनिश्चित करने के लिए उपयोग किए जाते हैं।

(C) मेटा-डेटा या डेटा डिक्शनरी

डेटाबेस स्कीमा के साथ-साथ डेटा पर लगाए गए विभिन्न प्रतिबंधों को DBMS एक डेटाबेस कैटलॉग या डिक्शनरी में संग्रहीत करता है, जिसे मेटा-डेटा कहा जाता है। मेटा-डेटा डेटा के बारे में डेटा होता है।

(D) डेटाबेस इंस्टेंस

जब हम डेटाबेस संरचना या स्कीमा को परिभाषित करते हैं, तो डेटाबेस की स्थिति खाली होती है अर्थात कोई डेटा प्रविष्टि नहीं होती है। डेटा लोड करने के बाद, किसी भी समय डेटाबेस की स्थिति या स्नैपशॉट डेटाबेस इंस्टेंस होता है। हम तब क्वेरी के माध्यम से डेटा पुनः प्राप्त कर सकते हैं या अद्यतन, संशोधन या विलोपन के माध्यम से डेटा को हेरफेर कर सकते हैं। इस प्रकार, डेटाबेस की स्थिति बदल सकती है, और इस प्रकार एक डेटाबेस स्कीमा के विभिन्न समय पर कई इंस्टेंस हो सकते हैं।

(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: संबंध की स्थिति पर निम्नलिखित नियम थोपता है।

  • एक विशेषता में सभी डेटा मान एक ही डोमेन (एक ही डेटा प्रकार) से होने चाहिए।
  • किसी विशेषता से जुड़ा प्रत्येक डेटा मान परमाणुिक (atomic) होना चाहिए (अर्थपूर्ण उप-भागों में और विभाजित नहीं किया जा सकता)। उदाहरण के लिए, GUARDIAN संबंध का GPhone दस अंकों का नंबर है जिसे और विभाजित नहीं किया जा सकता।
  • कोई भी विशेषता एक टपल में कई डेटा मान नहीं रख सकती। उदाहरण के लिए, अभिभावक GPhone विशेषता के तहत कई संपर्क नंबर नहीं दे सकता।
  • एक विशेष मान “NULL” उन मानों को दर्शाने के लिए प्रयोग किया जाता है जो अज्ञात हैं या किसी विशेषता पर लागू नहीं होते। उदाहरण के लिए, यदि कोई अभिभावक अपना संपर्क नंबर स्कूल अधिकारियों के साथ साझा नहीं करता है, तो GPhone को NULL (अज्ञात डेटा) पर सेट किया जाता है।

7.5 संबंधपरक डेटाबेस में कुंजियाँ

संबंध के भीतर टपलों को भिन्न होना चाहिए। इसका अर्थ है कि किसी तालिका में दो टपलों के सभी विशेषताओं में समान मान नहीं होने चाहिए। अर्थात्, कम से कम एक ऐसी विशेषता होनी चाहिए जिसमें डेटा भिन्न (अद्वितीय) और NULL न हों। इस प्रकार हम किसी संबंध के प्रत्येक टपल को अद्वितिय रूप से पहचान सकते हैं। इसलिए, संबंधपरक डेटा मॉडल विशेषताओं के मानों पर कुछ प्रतिबंध या बाध्यताएँ लगाता है और यह निर्धारित करता है कि एक संबंध की सामग्री को दूसरे संबंध के माध्यम से कैसे संदर्भित किया जाए। ये प्रतिबंध डेटाबेस को परिभाषित करते समय नीचे दी गई विभिन्न प्रकार की कुंजियों के माध्यम से निर्दिष्ट किए जाते हैं:

7.5.1 उम्मीदवार कुंजी

एक रिलेशन में एक या अधिक ऐसे ऐट्रिब्यूट हो सकते हैं जो विभिन्न मान लेते हैं। इनमें से कोई भी ऐट्रिब्यूट रिलेशन में मौजूद टपल्स को अद्वितीय रूप से पहचानने के लिए प्रयोग किया जा सकता है। ऐसे ऐट्रिब्यूट्स को उम्मीदवार कुंजियाँ (candidate keys) कहा जाता है क्योंकि इनमें से प्रत्येक प्राइमरी कुंजी के लिए उम्मीदवार होता है।

जैसा कि चित्र 7.4 में दिखाया गया है, रिलेशन GUARDIAN में चार ऐट्रिब्यूट हैं जिनमें से GUID और GPhone हमेशा अद्वितीय मान लेते हैं। कोई भी दो अभिभावक एक ही फोन नंबर या एक ही GUID नहीं रखेंगे। इसलिए ये दोनों ऐट्रिब्यूट उम्मीदवार कुंजियाँ हैं क्योंकि ये दोनों प्राइमरी कुंजी के उम्मीदवार हैं।

7.5.2 प्राइमरी कुंजी

एक या अधिक उम्मीदवार कुंजियों में से वह ऐट्रिब्यूट जिसे डेटाबेस डिज़ाइनर द्वारा रिलेशन में मौजूद टपल्स को अद्वितीय रूप से पहचानने के लिए चुना जाता है, उस रिलेशन की प्राइमरी कुंजी कहलाती है। उम्मीदवार कुंजियों की सूची में शेष बचे ऐट्रिब्यूट्स को वैकल्पिक कुंजियाँ (alternate keys) कहा जाता है।

रिलेशन GUARDIAN में, मान लीजिए GUID को प्राइमरी कुंजी चुना गया, तो GPhone को वैकल्पिक कुंजी कहा जाएगा।

7.5.3 समग्र प्राइमरी कुंजी

यदि किसी रिलेशन में कोई एकल ऐट्रिब्यूट टपल्स को अद्वितीय रूप से अलग करने में सक्षम नहीं है, तो एक से अधिक ऐट्रिब्यूट्स को मिलाकर प्राइमरी कुंजी बनाई जाती है। एक से अधिक ऐट्रिब्यूट्स से बनी ऐसी प्राइमरी कुंजी को समग्र प्राइमरी कुंजी (Composite Primary key) कहा जाता है।

संबंध ATTENDANCE में, रोल नंबर को प्राथमिक कुंजी के रूप में उपयोग नहीं किया जा सकता क्योंकि एक ही छात्र का रोल नंबर किसी अन्य तिथि के लिए दूसरी पंक्ति में दिखाई देगा। इसी प्रकार, संबंध 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 कबड्डी

a) रोल नंबर 24 को खेल में रुचि नहीं हो सकती है। क्या उस छात्र के preference फ़ील्ड में NULL मान निर्धारित किया जा सकता है?

b) रोल नंबर 17 ने दो खेल वरीयताएँ दी हैं। यहाँ रिलेशनल DBMS का कौन-सा गुण उल्लंघित होता है? क्या हम ऐसे उल्लंघन की जाँच के लिए रिलेशनल DBMS में कोई constraint या key उपयोग कर सकते हैं, यदि कोई हो?

c) कबड्डी को किसी भी छात्र ने नहीं चुना है। क्या Sports Preferences relation में यह tuple होना संभव है?

  1. एक अन्य कक्षा में 2 खंड हैं, दोनों के क्लास प्रतिनिधियों ने 2 अलग-अलग Sports Preferences तालिकाएँ तैयार की हैं, जैसा नीचे दिखाया गया है:

खंड 1 की खेल वरीयता (रोल नंबर कॉलम पर व्यवस्थित) तालिका: Sports Preferences

Roll_no Sports
9 क्रिकेट
13 फुटबॉल
17 बैडमिंटन
21 हॉकी
24 क्रिकेट

खंड 2 की खेल वरीयता (खेल के नाम पर व्यवस्थित, और कॉलम क्रम भी भिन्न है)

तालिका: Sports Preferences

Sports Roll_no
बैडमिंटन 17
क्रिकेट 9
क्रिकेट 24
फुटबॉल 13
हॉकी 21

क्या दोनों relations की स्थितियाँ समतुल्य हैं? औचित्य दीजिए।

8. स्कूल कैंटीन स्कूल कैंटीन में उपलब्ध वस्तुओं के रिकॉर्ड रखना चाहती है और जब कोई छात्र कैंटीन से कोई वस्तु खरीदता है तो बिल तैयार करना चाहती है। स्कूल कैंटीन डेटाबेस बनाना चाहता है ताकि कैंटीन में मौजूद वस्तुओं और छात्रों द्वारा खरीदी गई वस्तुओं का ट्रैक रखा जा सके। निम्नलिखित प्रश्नों के उत्तर देकर एक डेटाबेस डिज़ाइन करें:

a) प्रत्येक वस्तु का नाम उसकी कीमत के साथ संग्रहीत करने के लिए कौन-सा संबंध (relation) प्रयोग किया जाना चाहिए? उपयुक्त गुण (attribute) नाम और उनके डेटा प्रकार तय करें। प्रत्येक वस्तु और उसकी कीमत केवल एक बार संग्रहीत होनी चाहिए। संबंध को परिभाषित करते समय कौन-सी पाबंदी (restriction) लगाई जानी चाहिए?

b) बिल तैयार करने के लिए यह जानना आवश्यक है कि किसी वस्तु की कितनी मात्रा खरीदी गई। क्या यह जानकारी एक नए संबंध में होनी चाहिए या पिछले संबंध का हिस्सा होनी चाहिए? यदि नया संबंध आवश्यक है, तो गुणों के लिए उपयुक्त नाम और डेटा प्रकार तय करें। साथ ही उपयुक्त प्राइमरी कुंजी (primary key) और फॉरेन कुंजी (foreign key) की पहचान करें ताकि निम्न दो पाबंदियाँ पूरी हों:

i) एक ही बिल भिन्न-भिन्न ऑर्डरों के लिए नहीं बनाया जा सकता।

ii) बिल केवल कैंटीन में उपलब्ध वस्तुओं के लिए ही बनाया जा सकता है।

c) स्कूल यह जानना चाहता है कि जब कोई छात्र कोई वस्तु ऑर्डर करता है तो वह कितनी कैलोरी लेता है। गुण ‘calories’ किस संबंध में होना चाहिए?

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 संबंध की डिग्री क्या है?

10. स्कूल यूनिफॉर्म मेसर्स शीतल प्राइवेट लिमिटेड पर उपलब्ध है। उन्होंने SCHOOL_UNIFORM डेटाबेस दो संबंधों UNIFORM और COST के साथ बनाए रखा है। निम्न आकृति डेटाबेस स्कीमा और उसकी स्थिति दिखाती है।

स्कूल यूनिफॉर्म डेटाबेस

गुण और बाधाएँ

तालिका: UNIFORM
गुण UCode UName UColor
बाधाएँ प्राइमरी कुंजी नॉट नल -

तालिका: COST
गुण UCode Size Price
बाधाएँ समग्र प्राइमरी कुंजी $>0$

तालिका: UNIFORM

UCode UName UColor
1 Shirt White
2 Pant Grey
3 Skirt Grey
4 Tie Blue
5 Socks Blue
6 Belt Blue

तालिका:
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

रोल नं. नाम कक्षा अनुभाग पंजीकरण_आईडी
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

परियोजना नं. PName जमा करने की तिथि
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

पंजीकरण_आईडी परियोजना नं.
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 के साथ एक रिकॉर्ड डालें।