आज के डिजिटल युग में विशाल मात्रा में डेटा को व्यवस्थित, सुरक्षित और कुशलतापूर्वक संग्रहीत करने की आवश्यकता होती है। फाइलों में डेटा संग्रहीत करने से कई समस्याएँ उत्पन्न होती हैं - डेटा की पुनरावृत्ति, असंगतता और सुरक्षा की कमी। इन समस्याओं का समाधान डेटाबेस (Database) प्रदान करता है। इस अध्याय में हम डेटाबेस की अवधारणा, उसकी विशेषताएँ, डेटाबेस प्रबंधन प्रणाली (DBMS), रिलेशनल मॉडल, कुंजियाँ (Keys) और आगे SQL अध्याय की नींव को समझेंगे।
डेटाबेस केवल डेटा का संग्रह नहीं है, बल्कि यह एक संगठित प्रणाली है जो डेटा को तालिकाओं में व्यवस्थित करती है और उस पर विभिन्न क्रियाएँ (जोड़ना, सुधारना, हटाना, खोजना) करने की सुविधा देती है। स्कूल का परीक्षा परिणाम प्रणाली, बैंक का खाता प्रबंधन, ऑनलाइन शॉपिंग - सभी डेटाबेस पर आधारित हैं।
2. डेटाबेस और DBMS (Database and DBMS)
2.1 डेटाबेस (Database)
डेटाबेस परस्पर संबंधित डेटा का एक संगठित संग्रह है, जिसे सरलता से एक्सेस, प्रबंधित और अपडेट किया जा सकता है। उदाहरण के लिए, एक स्कूल का डेटाबेस विद्यार्थियों, शिक्षकों, विषयों और परीक्षा परिणामों की जानकारी संग्रहीत कर सकता है।
2.2 डेटाबेस प्रबंधन प्रणाली (DBMS)
DBMS एक सॉफ़्टवेयर है जो डेटाबेस के निर्माण, संचालन और प्रबंधन में सहायता करता है। यह उपयोगकर्ताओं और डेटाबेस के बीच मध्यस्थ के रूप में कार्य करता है। DBMS की मुख्य क्षमताएँ:
डेटा को परिभाषित करना (DDL) और प्रबंधित करना (DML)।
डेटा की सुरक्षा सुनिश्चित करना।
एक साथ कई उपयोगकर्ताओं को डेटा एक्सेस की सुविधा देना।
डेटा की स्थिरता (consistency) और अखंडता (integrity) बनाए रखना।
लोकप्रिय DBMS सॉफ़्टवेयर:
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, SQLite (पाइथन के साथ प्रयुक्त)
DBMS के लाभ:
डेटा की पुनरावृत्ति में कमी: फाइलों के विपरीत डेटाबेस में डेटा एक बार संग्रहीत होता है।
डेटा की स्थिरता: एक ही डेटा के कई प्रतियाँ न होने से असंगतता नहीं होती।
डेटा सुरक्षा: उपयोगकर्ता अधिकार निर्धारित किए जा सकते हैं।
डेटा साझा करना: कई उपयोगकर्ता एक साथ डेटा का उपयोग कर सकते हैं।
डेटा अखंडता: संबंधों के माध्यम से डेटा की शुद्धता बनाए रखी जाती है।
रिलेशनल मॉडल में डेटा को तालिकाओं (Tables) या संबंधों (Relations) के रूप में संग्रहीत किया जाता है। इस मॉडल में प्रत्येक तालिका में:
पंक्तियाँ (Rows/Tuples): प्रत्येक पंक्ति एक रिकॉर्ड को दर्शाती है।
स्तंभ (Columns/Attributes): प्रत्येक स्तंभ एक विशेषता (attribute) को दर्शाता है।
अवयव (Domain): स्तंभ के लिए अनुमत मानों का समुच्चय।
डिग्री (Degree): तालिका में स्तंभों की संख्या।
कार्डिनैलिटी (Cardinality): तालिका में पंक्तियों की संख्या।
उदाहरण: विद्यार्थी तालिका
रोलनो
नाम
कक्षा
शहर
101
अनु
XII
दिल्ली
102
रवि
XII
मुंबई
103
कविता
XII
दिल्ली
यहाँ तालिका की डिग्री = 4 (स्तंभ), कार्डिनैलिटी = 3 (पंक्तियाँ), प्राथमिक कुंजी = रोलनो।
4. रिलेशनल डेटाबेस की मुख्य शब्दावली (Terminology)
तालिका (Relation/Table): रिलेशनल मॉडल की मूल इकाई, जिसमें पंक्तियाँ और स्तंभ होते हैं।
रिकॉर्ड/टपल (Tuple/Row): तालिका की एक पंक्ति, जो एक इकाई की संपूर्ण जानकारी देती है।
विशेषता/एट्रिब्यूट (Attribute/Column): तालिका का एक स्तंभ, जो किसी विशेष गुण को दर्शाता है।
डोमेन (Domain): किसी विशेषता के लिए वैध मानों का समुच्चय। उदाहरण: कक्षा के लिए {IX, X, XI, XII}।
डिग्री (Degree): विशेषताओं (स्तंभों) की संख्या।
कार्डिनैलिटी (Cardinality): टपल (पंक्तियों) की संख्या।
योजना (Schema): डेटाबेस की संरचना का वर्णन।
5. कुंजियाँ (Keys)
कुंजियाँ तालिकाओं में रिकॉर्ड्स की पहचान और संबंध स्थापित करने के लिए प्रयुक्त होती हैं।
5.1 प्राथमिक कुंजी (Primary Key)
प्राथमिक कुंजी वह विशेषता (या विशेषताओं का समूह) है जो तालिका के प्रत्येक रिकॉर्ड को विशिष्ट रूप से पहचानती है। इसकी विशेषताएँ:
- इसमें अद्वितीय (unique) मान होते हैं।
- इसमें NULL मान नहीं हो सकता।
- एक तालिका में केवल एक प्राथमिक कुंजी होती है।
उपरोक्त तालिका में रोलनो प्राथमिक कुंजी है।
5.2 कैंडिडेट कुंजी (Candidate Key)
वे सभी विशेषताएँ जो प्राथमिक कुंजी बनने के योग्य हों, कैंडिडेट कुंजी कहलाती हैं। प्राथमिक कुंजी इन्हीं में से एक चुनी जाती है।
5.3 वैकल्पिक कुंजी (Alternate Key)
कैंडिडेट कुंजियों में से जो प्राथमिक कुंजी नहीं चुनी जाती, वे वैकल्पिक कुंजी कहलाती हैं।
5.4 विदेशी कुंजी (Foreign Key)
विदेशी कुंजी वह विशेषता है जो किसी अन्य तालिका की प्राथमिक कुंजी को संदर्भित करती है। इससे दो तालिकाओं के बीच संबंध स्थापित होता है।
उदाहरण:
रोलनो (PK)
नाम
शहर
पिनकोड
पिनकोड (PK)
शहर
यदि पहली तालिका का पिनकोड स्तंभ दूसरी तालिका के पिनकोड (प्राथमिक कुंजी) को संदर्भित करे तो पहली तालिका का पिनकोड विदेशी कुंजी है।
6. तालिकाओं के बीच संबंध (Relationships)
तालिकाओं के बीच निम्नलिखित प्रकार के संबंध होते हैं:
एक-से-एक (1:1): एक रिकॉर्ड दूसरी तालिका के एक ही रिकॉर्ड से संबंधित होता है। (जैसे: व्यक्ति और उसका पासपोर्ट)
एक-से-अनेक (1:M): एक तालिका का एक रिकॉर्ड दूसरी तालिका के कई रिकॉर्ड से संबंधित होता है। (जैसे: एक विभाग और उसके कई कर्मचारी)
अनेक-से-अनेक (M:N): दोनों तालिकाओं के कई रिकॉर्ड आपस में संबंधित होते हैं। (जैसे: विद्यार्थी और पाठ्यक्रम)
7. पाइथन और SQLite (Python and SQLite)
पाइथन में sqlite3 मॉड्यूल का उपयोग करके डेटाबेस के साथ कार्य किया जा सकता है। SQLite एक हल्का रिलेशनल डेटाबेस है जो पाइथन में अंतर्निहित होता है:
import sqlite3
conn = sqlite3.connect("school.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS student (roll INTEGER PRIMARY KEY, name TEXT, city TEXT)")
cursor.execute("INSERT INTO student VALUES (101, 'अनु', 'दिल्ली')")
conn.commit()
cursor.execute("SELECT * FROM student")
for row in cursor.fetchall():
print(row)
conn.close()
त्वरित पुनरावृत्ति तालिकाएँ
रिलेशनल डेटाबेस शब्दावली
शब्द
अर्थ
तालिका (Relation)
पंक्तियों-स्तंभों का संग्रह
टपल (Row)
एक रिकॉर्ड
विशेषता (Column)
एक गुण
डोमेन
वैध मानों का समुच्चय
डिग्री
स्तंभों की संख्या
कार्डिनैलिटी
पंक्तियों की संख्या
कुंजियों का सारांश
कुंजी
विशेषता
प्राथमिक कुंजी
अद्वितीय, NULL नहीं
कैंडिडेट कुंजी
प्राथमिक कुंजी बनने योग्य
वैकल्पिक कुंजी
अचुनी गई कैंडिडेट कुंजी
विदेशी कुंजी
अन्य तालिका की प्राथमिक कुंजी का संदर्भ
माइंड मैप
flowchart TD
A["डेटाबेस"] --> B["DBMS"]
A --> C["रिलेशनल मॉडल"]
A --> D["कुंजियाँ"]
A --> E["संबंध"]
B --> B1["MySQL, Oracle"]
B --> B2["SQLite (पाइथन)"]
C --> C1["तालिका/टपल"]
C --> C2["विशेषता/डोमेन"]
D --> D1["प्राथमिक कुंजी"]
D --> D2["विदेशी कुंजी"]
E --> E1["1:1"]
E --> E2["1:M"]
E --> E3["M:N"]
महत्वपूर्ण आरेख (SVG)
आरेख 1: DBMS का अवलोकन
आरेख 2: तालिका की संरचना और कुंजियाँ
सामान्य गलतियाँ
डेटाबेस और DBMS को एक ही समझना: डेटाबेस डेटा का संग्रह है, जबकि DBMS उसे प्रबंधित करने वाला सॉफ़्टवेयर है। दोनों अलग हैं।
डिग्री और कार्डिनैलिटी में भ्रम: डिग्री = स्तंभों की संख्या, कार्डिनैलिटी = पंक्तियों की संख्या। इन्हें उलटने से उत्तर गलत होता है।
प्राथमिक कुंजी में NULL या डुप्लिकेट की अनुमति: प्राथमिक कुंजी में न तो NULL हो सकता है और न ही डुप्लिकेट मान।
विदेशी कुंजी को प्राथमिक कुंजी समझना: विदेशी कुंजी केवल किसी अन्य तालिका की प्राथमिक कुंजी को संदर्भित करती है; यह अनिवार्यतः उस तालिका की प्राथमिक कुंजी नहीं होती।
कैंडिडेट और वैकल्पिक कुंजी में अंतर न समझना: कैंडिडेट कुंजियाँ सभी योग्य विशेषताएँ हैं, वैकल्पिक कुंजियाँ वे हैं जिन्हें प्राथमिक नहीं चुना गया।
टपल और विशेषता का गलत अर्थ: टपल पंक्ति है (एक रिकॉर्ड), विशेषता स्तंभ है। इन्हें अक्सर उलट दिया जाता है।
परीक्षा युक्तियाँ
प्राथमिक कुंजी की परिभाषा और विशेषताएँ (अद्वितीय, NULL रहित) शब्दशः याद रखें।
डिग्री (स्तंभ) और कार्डिनैलिटी (पंक्ति) का अंतर सदैव स्पष्ट रखें - यह वस्तुनिष्ठ प्रश्नों का प्रिय विषय है।
तालिका दी गई हो तो उसका प्राथमिक कुंजी, डिग्री और कार्डिनैलिटी पहचानने का अभ्यास करें।
DBMS के लाभ (पुनरावृत्ति में कमी, सुरक्षा, अखंडता) याद रखें।
संबंधों (1:1, 1:M, M:N) के जीवन-उदाहरण तैयार रखें।
रिलेशनल शब्दावली के अंग्रेज़ी-हिंदी दोनों नाम जानें (Relation-संबंध, Tuple-टपल, Attribute-विशेषता)।
निष्कर्ष
डेटाबेस आधुनिक सूचना प्रणालियों का केंद्र है। रिलेशनल डेटाबेस में डेटा तालिकाओं के रूप में संग्रहीत होता है, जिसमें टपल (पंक्तियाँ) और विशेषताएँ (स्तंभ) होते हैं। प्राथमिक कुंजी प्रत्येक रिकॉर्ड को विशिष्ट रूप से पहचानती है, जबकि विदेशी कुंजी तालिकाओं के बीच संबंध स्थापित करती है। DBMS डेटा को सुरक्षित, सुसंगत और साझा करने योग्य बनाता है। डिग्री, कार्डिनैलिटी, डोमेन जैसी शब्दावली और कुंजियों की समझ अगले अध्याय (SQL) के लिए आधार है। इन अवधारणाओं की गहरी पकड़ से डेटाबेस से संबंधित सभी प्रश्न आसानी से हल हो सकते हैं।