📘 CodingMarble Learn

संबंधपरक डेटाबेस: तालिकाएँ, पंक्तियाँ, स्तंभ और कीज़

डेटा को कई अलग फ़ाइलों में रखने से डेटा दोहराता है, कॉपियाँ आपस में मेल नहीं खातीं और खोजना कठिन होता है, इसलिए हम DBMS से चलने वाला डेटाबेस उपयोग करते हैं। संबंधपरक मॉडल में डेटा रिलेशन कहलाने वाली तालिकाओं में रहता है। स्तंभ एट्रिब्यूट है, पंक्ति ट्यूपल है, और किसी स्तंभ के मान्य मानों का समूह उसका डोमेन है। स्तंभों की संख्या डिग्री है; पंक्तियों की संख्या कार्डिनैलिटी। कैंडिडेट की वह स्तंभ (या समूह) है जो हर पंक्ति को अलग पहचान सके; चुनी गई प्राइमरी की है और बाकी अल्टरनेट की। फ़ॉरेन की एक तालिका का वह स्तंभ है जो दूसरी तालिका की प्राइमरी की की ओर इशारा करके उन्हें जोड़ता है।

🎬 कदम-दर-कदम कहानी

  1. दो दफ़्तर एक ही छात्र को दो अलग फ़ाइलों में रखते हैं। एक कॉपी बदली, दूसरी नहीं। अब डेटा मेल नहीं खाता। डेटाबेस एक साझा कॉपी रखता है।
  2. संबंधपरक मॉडल में तालिका रिलेशन है। स्तंभ एट्रिब्यूट, पंक्तियाँ ट्यूपल। डोमेन वे मान हैं जो कोई स्तंभ ले सकता है।
  3. गिनिए: डिग्री = स्तंभों की संख्या, कार्डिनैलिटी = पंक्तियों की संख्या। पंक्ति जोड़ने पर केवल कार्डिनैलिटी बढ़ती है।
  4. कौन-सा स्तंभ हर पंक्ति को अलग पहचान सकता है? RollNo और AadhaarNo दोनों: ये कैंडिडेट की हैं। हम RollNo को प्राइमरी की चुनते हैं; AadhaarNo अल्टरनेट की बनती है।
  5. फ़ॉरेन की दो तालिकाएँ जोड़ती है। MARKS में RollNo, STUDENT के RollNo की ओर इशारा करती है। इसमें केवल वही मान आ सकते हैं जो वहाँ मौजूद हैं।
  6. आपकी बारी: पंक्तियाँ डालकर देखिए। कीज़ उन्हें स्वीकार करती हैं या ठुकराती हैं।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

हर दफ़्तर के लिए अलग फ़ाइलें क्यों नहीं?

एक ही डेटा कई बार कॉपी होता है और कॉपियाँ मेल नहीं खातीं। DBMS एक साझा, नियंत्रित कॉपी रखता है।

डिग्री कौन-सी और कार्डिनैलिटी कौन-सी?

डिग्री स्तंभ (एट्रिब्यूट) गिनती है। कार्डिनैलिटी पंक्तियाँ (ट्यूपल) गिनती है।

क्या तालिका की दो प्राइमरी की हो सकती हैं?

नहीं। प्राइमरी की एक होती है। बाकी कैंडिडेट अल्टरनेट बनती हैं। प्राइमरी की दो स्तंभ मिलाकर (कंपोज़िट) भी हो सकती है।

क्या Name अच्छी प्राइमरी की है?

नहीं। नाम दोहरा सकते हैं और ख़ाली भी हो सकते हैं। प्राइमरी की अनोखी और NOT NULL हो।

क्या फ़ॉरेन की अनोखी होनी चाहिए?

नहीं। चाइल्ड तालिका में दोहरा सकती है, पर हर मान पैरेंट की प्राइमरी की में होना चाहिए (या NULL)।

डेटाबेस की ज़रूरत क्यों?

फ़ाइल सिस्टम में हर दफ़्तर अपनी फ़ाइलें रखता है। इससे समस्याएँ होती हैं:

डेटाबेस संबंधित डेटा का व्यवस्थित संग्रह है। DBMS (डेटाबेस मैनेजमेंट सिस्टम) वह सॉफ़्टवेयर है जो इसे बनाता, रखता, बदलता और सुरक्षित करता है, जैसे MySQL, Oracle, PostgreSQL, SQLite। DBMS दोहराव घटाता है, डेटा संगत रखता है, कई उपयोगकर्ताओं को सुरक्षित रूप से बाँटने देता है और प्रश्नों के उत्तर जल्दी देता है।

संबंधपरक मॉडल: रिलेशन, एट्रिब्यूट, ट्यूपल, डोमेन

संबंधपरक डेटा मॉडल (ई. एफ़. कॉड द्वारा) में डेटा द्वि-आयामी तालिकाओं में रहता है।

रिलेशन के नियम: हर एट्रिब्यूट का नाम अलग; पंक्तियों-स्तंभों का क्रम मायने नहीं रखता; कोई दो ट्यूपल बिल्कुल एक जैसे नहीं; हर ख़ाने में एक ही मान (atomic)।

RollNoNameClassAadhaarNo
1Asha12A4411…
2Ravi12B5522…
3Zoya12A6633…

ऊपर तालिका STUDENT।

डिग्री और कार्डिनैलिटी

पंक्ति जोड़ने से कार्डिनैलिटी बदलती है; स्तंभ जोड़ने से डिग्री।

दो रिलेशनों का कार्टेशियन गुणनफल बनाने पर डिग्री जुड़ती हैं और कार्डिनैलिटी गुणा होती हैं।

कीज़: कैंडिडेट, प्राइमरी, अल्टरनेट

की वह एट्रिब्यूट (या एट्रिब्यूटों का समूह) है जिससे पंक्तियाँ पहचानी जाती हैं।

संबंध: कैंडिडेट कीज़ = प्राइमरी की + अल्टरनेट कीज़।

फ़ॉरेन की

फ़ॉरेन की एक रिलेशन का वह एट्रिब्यूट है जो दूसरे रिलेशन की प्राइमरी की की ओर इशारा करता है। यह दोनों तालिकाएँ जोड़ता है।

ExamIDRollNoSubjectMarks
1011CS92
1023CS81

तालिका MARKS में RollNo फ़ॉरेन की है जो STUDENT(RollNo) की ओर इशारा करती है। STUDENT पैरेंट (संदर्भित) तालिका है; MARKS चाइल्ड (संदर्भ देने वाली) तालिका।

रेफ़रेंशियल इंटीग्रिटी: फ़ॉरेन की का मान या तो पैरेंट तालिका की किसी मौजूद प्राइमरी की से मेल खाए या NULL हो। इसलिए छात्र 9 न हो तो RollNo 9 के अंक नहीं डाल सकते, और छात्र 1 के अंक रहते छात्र 1 को नहीं हटा सकते (जब तक नियम न बताएँ क्या करना है)। फ़ॉरेन की दोहरा सकती है (एक छात्र की कई अंक-पंक्तियाँ)।

करके देखें: अपने आस-पास कीज़ ढूँढिए

5 दोस्तों की तालिका बनाइए: Name, Phone, Email, City, BirthDate। इसकी डिग्री और कार्डिनैलिटी लिखिए। कौन-से स्तंभ हर दोस्त को पहचान सकते हैं (कैंडिडेट की)? एक को प्राइमरी चुनिए; बाकी अल्टरनेट हैं। अब दूसरी तालिका CALLS(CallID, Phone, Minutes) बनाइए और फ़ॉरेन की पहचानिए। फिर 3D के आख़िरी कदम में नियम तोड़ने वाली पंक्तियाँ डालकर अपने विचार जाँचिए।

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. तालिका BOOK में स्तंभ BookID, Title, Author, Price, ISBN और 40 पंक्तियाँ हैं। डिग्री और कार्डिनैलिटी?

डिग्री = 5 (स्तंभ)। कार्डिनैलिटी = 40 (पंक्तियाँ)।

2. BOOK में 10 किताबें और एक स्तंभ Publisher जोड़ा गया। नई डिग्री और कार्डिनैलिटी?

डिग्री = 5 + 1 = 6। कार्डिनैलिटी = 40 + 10 = 50।

3. BOOK में BookID और ISBN दोनों हर किताब के लिए अलग हैं। Title दोहरा सकता है। कैंडिडेट, प्राइमरी और अल्टरनेट की बताइए।

कैंडिडेट: BookID, ISBN। BookID प्राइमरी चुनें तो ISBN अल्टरनेट। Title की नहीं है।

4. तालिका ISSUE(IssueNo, BookID, MemberID, Date)। फ़ॉरेन की कौन-सी हैं और किन तालिकाओं की ओर?

BookID → BOOK(BookID); MemberID → MEMBER(MemberID)। IssueNo, ISSUE की अपनी प्राइमरी की है।

5. Name, STUDENT की प्राइमरी की क्यों नहीं हो सकता?

दो छात्रों का नाम एक हो सकता है, इसलिए यह अनोखा नहीं, और प्राइमरी की अनोखी व NOT NULL होनी चाहिए।

6. R1 की डिग्री 3, कार्डिनैलिटी 4; R2 की डिग्री 2, कार्डिनैलिटी 5। कार्टेशियन गुणनफल की डिग्री और कार्डिनैलिटी?

डिग्री = 3 + 2 = 5। कार्डिनैलिटी = 4 × 5 = 20।

आम गलतियाँ

अभ्यास क्विज़

1. रिलेशन की पंक्ति को कहते हैं:
2. रिलेशन में स्तंभों की संख्या उसकी:
3. प्राइमरी न चुनी गई कैंडिडेट कीज़ हैं:
4. फ़ॉरेन की किसकी ओर इशारा करती है?
5. एक ही डेटा कई फ़ाइलों में रखने से होता है:

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

DBMS में डिग्री और कार्डिनैलिटी क्या हैं?

डिग्री रिलेशन के स्तंभों (एट्रिब्यूट) की संख्या है। कार्डिनैलिटी पंक्तियों (ट्यूपल) की संख्या।

प्राइमरी की और कैंडिडेट की में क्या अंतर है?

कैंडिडेट कीज़ वे सब एट्रिब्यूट हैं जो पंक्तियाँ अलग पहचान सकें। प्राइमरी की उनमें से चुनी गई एक है; बाकी अल्टरनेट।

फ़ॉरेन की क्या है?

एक तालिका का एट्रिब्यूट जो दूसरी तालिका की प्राइमरी की की ओर इशारा करता है, तालिकाएँ जोड़ने और रेफ़रेंशियल इंटीग्रिटी रखने के लिए।

यह कहाँ पढ़ाया जाता है

इटलीSecondaria di secondo grado – classe 3ªTools and foundations
इटलीSecondaria di secondo grado – classe 4ªTools and foundations
नीदरलैंडHAVO 5 (eindexamenjaar)Elective theme: Databases
नीदरलैंडVWO 6 (eindexamenjaar)Elective theme: Databases
रोमानियाClasa a XII-aModule 1: Databases (compulsory)
रोमानियाClasa a XII-aWorking with a database application
यूक्रेन11 класDatabases
सीबीएसई (भारत)कक्षा 12डेटाबेस प्रबंधन
इंग्लैंडYear 134.10 Fundamentals of databases
फ्रांसTerminaleDatabases
रूस11 классInformation technologies

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी कंप्यूटर विज्ञान पाठ