UNIT 3: Relational Data Model (रिलेशनल डेटा मॉडल और रिलेशनल डेटाबेस कंस्ट्रेंट्स)

Hello Everyone, Welcome to Rajasthan Polytechnic Blogs.

Subject - Introduction to DBMS CS 4002(Same as CI/IT 4002)
Branch - Computer Science Engineering
Semester - 4th Semester

📍⚡ Important 
▶ Video PDF - Update Soon
👉 WhatsApp Group - Join Now
👉 Telegram Channel - Join Now
📄 Notes in Hindi - Click Here
📄 Notes in English - Click Here
🔥 4th Semester All Subjects Notes - Click Here

Please take a moment to share your Review in Comment Section.

UNIT 3: रिलेशनल डेटा मॉडल और रिलेशनल डेटाबेस कंस्ट्रेंट्स

यह यूनिट रिलेशनल डेटा मॉडल, इसके कंस्ट्रेंट्स, Codd के नियम, और ER/EER मॉडल्स को रिलेशनल मॉडल में मैप करने की प्रक्रिया को कवर करता है। इसमें रिलेशनल एल्जेब्रा और रिलेशनल कैलकुलस भी शामिल हैं, जो रिलेशनल डेटा को मैनिपुलेट करने के लिए औपचारिक क्वेरी भाषाएँ हैं।


3.1. रिलेशनल डेटा मॉडल और रिलेशनल डेटाबेस कंस्ट्रेंट्स 🔄

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

मुख्य अवधारणाएँ:

  • रिलेशन: रिलेशनल डेटाबेस में एक टेबल। इसमें पंक्तियाँ (ट्यूपल्स) और स्तंभ (एट्रिब्यूट्स) होते हैं। उदाहरण के लिए, एक Student टेबल एक रिलेशन हो सकता है, जिसमें स्तंभ जैसे Student_ID, Name, Age आदि हो सकते हैं।

  • ट्यूपल: एक पंक्ति एक टेबल में। यह एक विशिष्ट डेटा प्रविष्टि को दर्शाता है, जैसे कि एक छात्र जिसकी एक अद्वितीय Student_ID है।

  • एट्रिब्यूट: टेबल में एक स्तंभ। यह एक विशेषता या गुण को दर्शाता है। उदाहरण के लिए, Name, Age, Gender छात्र के एट्रिब्यूट हो सकते हैं।

रिलेशनल डेटाबेस कंस्ट्रेंट्स:

  • प्राइमरी की (PK): रिलेशन में प्रत्येक रिकॉर्ड को अद्वितीय रूप से पहचानने वाली की। कोई भी दो ट्यूपल्स एक ही प्राइमरी की के लिए समान मान नहीं रख सकते हैं।

  • फॉरेन की (FK): एक एट्रिब्यूट जो एक रिलेशन में दूसरे रिलेशन की प्राइमरी की से जुड़ा होता है। यह टेबल्स के बीच संबंध स्थापित करने के लिए उपयोग होता है।

  • यूनिक कंस्ट्रेंट: यह सुनिश्चित करता है कि एक स्तंभ में सभी मान अद्वितीय हों।

  • नॉट नल कंस्ट्रेंट: यह सुनिश्चित करता है कि एक स्तंभ में NULL मान नहीं हो सकते।

  • चेक कंस्ट्रेंट: यह सुनिश्चित करता है कि एक स्तंभ में जो मान डाले जाएं, वे एक विशेष शर्त को संतुष्ट करते हैं।

  • डोमेन कंस्ट्रेंट: यह सुनिश्चित करता है कि एक स्तंभ में डाले गए मान एक परिभाषित डोमेन के अनुसार वैध हों, जैसे कि संख्यात्मक सीमाएँ या पूर्वनिर्धारित मानों का सेट।


3.2. Codd के नियम 📜

डॉ. एडगर एफ. कॉड ने 13 नियम (जिन्हें Codd के 12 नियम या Codd के 12 आज्ञाएँ भी कहा जाता है) को प्रस्तावित किया था, ताकि रिलेशनल डेटाबेस मैनेजमेंट सिस्टम्स (RDBMS) का सही तरीके से संचालन और संरचना सुनिश्चित हो सके।

मुख्य नियम निम्नलिखित हैं:

  1. सूचना नियम: रिलेशनल डेटाबेस में सभी जानकारी को टेबल्स (रिलेशंस) में मानों के रूप में प्रस्तुत किया जाता है, जो पंक्तियों और स्तंभों के रूप में होते हैं।

  2. गारंटी प्राप्ति नियम: रिलेशनल डेटाबेस में हर मान को टेबल का नाम, प्राइमरी की, और स्तंभ नाम के संयोजन के माध्यम से प्राप्त किया जाता है।

  3. नल मानों का प्रणालीबद्ध उपचार: डेटाबेस को नल मानों को समान और सुसंगत रूप से संभालना चाहिए।

  4. डायनामिक ऑन-लाइन कैटलॉग: डेटाबेस की संरचना को एक कैटलॉग (डेटा डिक्शनरी) में संग्रहीत किया जाना चाहिए, और यह कैटलॉग उसी रिलेशनल क्वेरी भाषा का उपयोग करके उपलब्ध होना चाहिए।

  5. व्यापक डेटा उपभाषा नियम: डेटाबेस को कम से कम एक रिलेशनल भाषा का समर्थन करना चाहिए, जो डेटाबेस के सभी पहलुओं (क्वेरीज़, अपडेट्स आदि) को प्रबंधित करने के लिए पर्याप्त हो।

  6. व्यू अपडेटिंग नियम: सभी दृश्य (वर्चुअल टेबल्स) अपडेट किए जा सकने चाहिए, यानी दृश्य में डेटा को संशोधित किया जा सकता है।

  7. उच्च-स्तरीय इंसर्ट, अपडेट और डिलीट: डेटाबेस को एक साथ कई ट्यूपल्स को इंसर्ट, अपडेट और डिलीट करने का समर्थन करना चाहिए।

  8. भौतिक डेटा स्वतंत्रता: डेटा के भौतिक भंडारण में किए गए परिवर्तन उपयोगकर्ता द्वारा डेटा को एक्सेस करने के तरीके को प्रभावित नहीं करना चाहिए।

  9. लॉजिकल डेटा स्वतंत्रता: लॉजिकल स्कीमा (संरचना) में किए गए परिवर्तन बाहरी स्कीमा या एप्लिकेशन प्रोग्राम्स को प्रभावित नहीं करने चाहिए।

  10. अखंडता स्वतंत्रता: डेटाबेस को अखंडता कंस्ट्रेंट्स को उपयोगकर्ता एप्लिकेशन से स्वतंत्र रूप से लागू करना चाहिए।

  11. वितरण स्वतंत्रता: डेटाबेस को कई मशीनों या प्रणालियों में डेटा वितरण को संभालने में सक्षम होना चाहिए, बिना उपयोगकर्ता या एप्लिकेशन को प्रभावित किए।

  12. गैर-उपनिवेश नियम: यदि रिलेशनल सिस्टम निम्न-स्तरीय एक्सेस का समर्थन करता है, तो निम्न-स्तरीय संचालन को डेटाबेस की रिलेशनल अखंडता को नष्ट नहीं करना चाहिए।


3.3. ER/EER से रिलेशनल मॉडल में मैपिंग 🗺️

ER (Entity-Relationship) या EER (Enhanced Entity-Relationship) मॉडल को रिलेशनल मॉडल में मैप करने की प्रक्रिया डेटाबेस डिज़ाइन को अमूर्त रूप से भौतिक रिलेशनल स्कीमा में बदलने के लिए महत्वपूर्ण है।

मैपिंग के चरण:

  1. एंटिटी को टेबल में बदलना: ER/EER मॉडल में प्रत्येक एंटिटी को रिलेशनल मॉडल में एक टेबल में बदल दिया जाता है।

    • उदाहरण: Student एंटिटी Student टेबल में बदल जाती है, जिसमें Student_ID, Name, Age जैसे एट्रिब्यूट होते हैं।
  2. एट्रिब्यूट्स को कॉलम में बदलना: एंटिटी या रिलेशनशिप के एट्रिब्यूट्स को संबंधित टेबल में कॉलम के रूप में मैप किया जाता है।

    • उदाहरण: Student_Name को Student टेबल में एक कॉलम के रूप में बदल दिया जाता है।
  3. प्राइमरी की: ER/EER मॉडल में प्राइमरी की को रिलेशनल टेबल में प्राइमरी की के रूप में मैप किया जाता है।

    • उदाहरण: Student_ID को Student टेबल के लिए प्राइमरी की के रूप में उपयोग किया जा सकता है।
  4. रिलेशनशिप को फॉरेन की: रिलेशनल मॉडल में एंटिटी के बीच संबंधों को फॉरेन की के रूप में मैप किया जाता है।

    • उदाहरण: यदि एक Student Course में दाखिला लेता है, तो Student_ID को Enrollment टेबल में फॉरेन की के रूप में उपयोग किया जा सकता है, जो Course से जुड़ा होता है।
  5. वीक एंटिटी: वे एंटिटी जो प्राइमरी की नहीं रखती, उनके लिए एक संकलित की का उपयोग किया जाता है, जो पेरेंट एंटिटी की प्राइमरी की के साथ मिलकर काम करती है।

    • उदाहरण: Course_Enrollment टेबल में Student_ID और Course_Code का संयोजन एक संकलित प्राइमरी की हो सकता है।

3.4. रिलेशनल एल्जेब्रा 🔢

रिलेशनल एल्जेब्रा एक प्रक्रियात्मक क्वेरी भाषा है जिसका उपयोग रिलेशनल डेटाबेस में डेटा को क्वेरी और मैनिपुलेट करने के लिए किया जाता है। इसमें कुछ ऑपरेशंस होते हैं, जो एक या अधिक रिलेशन्स को इनपुट के रूप में लेकर एक नया रिलेशन आउटपुट के रूप में प्रदान करते हैं।

रिलेशनल एल्जेब्रा में मुख्य ऑपरेशंस:

  1. चयन (σ): एक रिलेशन से उन पंक्तियों को चुनता है जो एक विशिष्ट शर्त को संतुष्ट करती हैं।

    • सिंटेक्स: σ_condition(Relation)
    • उदाहरण: σ_Age>20(Student) उन छात्रों को चुनता है जिनकी उम्र 20 से अधिक है।
  2. प्रक्षिप्ति (π): एक रिलेशन से विशिष्ट कॉलम (एट्रिब्यूट्स) को चुनता है।

    • सिंटेक्स: π_column1, column2(Relation)
    • उदाहरण: π_Name, Age(Student) Student टेबल से Name और Age कॉलम को चुनता है।
  3. संघ (∪): दो रिलेशन्स के ट्यूपल्स को जोड़ता है, डुप्लिकेट्स को हटा देता है।

    • सिंटेक्स: Relation1 ∪ Relation2
    • उदाहरण: यदि Student1 और Student2 में अलग-अलग छात्र हैं, तो Student1 ∪ Student2 उन्हें जोड़ता है।
  4. सेट अंतर (−): उन ट्यूपल्स को लौटाता है जो एक रिलेशन में हैं लेकिन दूसरे में नहीं।

    • सिंटेक्स: Relation1 − Relation2
    • उदाहरण: Student1 − Student2 उन छात्रों को लौटाता है जो Student1 में हैं लेकिन Student2 में नहीं।
  5. कार्टेशियन गुणन (×): दो रिलेशन्स का कार्टेशियन गुणन लौटाता है, हर ट्यूपल को दूसरे रिलेशन के हर ट्यूपल के साथ जोड़ता है।

    • सिंटेक्स: Relation1 × Relation2
    • उदाहरण: Student × Course सभी छात्रों को सभी पाठ्यक्रमों के साथ जोड़ता है।
  6. जोड़ (⨝): दो रिलेशन्स को एक सामान्य एट्रिब्यूट के आधार पर जोड़ता है।

    • सिंटेक्स: Relation1 ⨝ Relation2
    • उदाहरण: Student ⨝ Enrollment छात्रों को उनके पंजीकरण से जोड़ता है।

3.5. रिलेशनल कैलकुलस 📊

रिलेशनल कैलकुलस एक गैर-प्रक्रियात्मक क्वेरी भाषा है जो गणितीय तर्क का उपयोग करके क्वेरियों को व्यक्त करता है। यह यह परिभाषित करता है कि कौन से डेटा को प्राप्त करना है, न कि इसे कैसे प्राप्त किया जाए। इसमें दो प्रकार के रिलेशनल कैलकुलस होते हैं:

  1. ट्यूपल रिलेशनल कैलकुलस (TRC): यह क्वेरियों को वेरिएबल्स के रूप में व्यक्त करता है जो ट्यूपल्स का प्रतिनिधित्व करते हैं।

    • सिंटेक्स: {T | condition(T)}
    • उदाहरण: {T | T ∈ Student ∧ T.Age > 20} उन ट्यूपल्स को चुनता है जो Student रिलेशन से हैं और जिनकी उम्र 20 से अधिक है।
  2. डोमेन रिलेशनल कैलकुलस (DRC): यह क्वेरियों को वेरिएबल्स के रूप में व्यक्त करता है जो एट्रिब्यूट्स के मानों का प्रतिनिधित्व करते हैं।

    • सिंटेक्स: {(x1, x2, ..., xn) | condition(x1, x2, ..., xn)}
    • उदाहरण: {(Name, Age) | ∃Student(Student.Name = Name ∧ Student.Age > 20)} छात्रों के Name और Age को चुनता है जिनकी उम्र 20 से अधिक है।

निष्कर्ष 🎯

  • रिलेशनल डेटा मॉडल एक व्यापक रूप से उपयोग किया जाने वाला मॉडल है जो डेटा को टेबल्स के रूप में संरचित करता है, जिससे इसे समझना और प्रबंधित करना आसान होता है।
  • रिलेशनल एल्जेब्रा और रिलेशनल कैलकुलस रिलेशनल डेटाबेस में क्वेरी करने के लिए औपचारिक नींव प्रदान करते हैं।
  • Codd के नियम रिलेशनल डेटाबेस को प्रभावी और दक्षतापूर्वक डिजाइन और प्रबंधित करने के लिए दिशानिर्देश प्रदान करते हैं।
  • ER/EER मॉडल्स को रिलेशनल मॉडल में मैप करना डेटाबेस स्कीमा बनाने के लिए आवश्यक है।

इन अवधारणाओं को समझना डेटाबेस को डिज़ाइन करने, प्रबंधित करने और क्वेरी करने में सक्षम बनने के लिए महत्वपूर्ण है।

Post a Comment

0 Comments