डेटाबेस डिज़ाइन और सामान्यीकरण
डेटाबेस डिज़ाइन और सामान्यीकरण संबंधपरक स्कीमा (relational schemas) को संरचित करने का अनुशासन है ताकि वे डेटा का सही प्रतिनिधित्व करें और अतिरेक (redundancy) तथा उसके कारण होने वाली अद्यतन (update), प्रविष्टि (insertion) और विलोपन (deletion) विसंगतियों (anomalies) को समाप्त करें।
Definition
सामान्यीकरण अतिरेक को कम करने और विसंगतियों से बचने के लिए संबंधों को विघटित करने की प्रक्रिया है, जो विशेषताओं (attributes) के बीच मौजूद कार्यात्मक और बहु-मूल्यवान निर्भरताओं द्वारा निर्देशित होती है, जबकि मूल स्कीमा की सूचना सामग्री को संरक्षित करती है।
Scope
यह क्षेत्र संबंधपरक स्कीमा को परिष्कृत करने के सिद्धांत और व्यवहार को शामिल करता है: कार्यात्मक (functional) और बहु-मूल्यवान निर्भरताएँ (multivalued dependencies) अर्थ संबंधी बाधाओं (semantic constraints) के रूप में जो डिज़ाइन को संचालित करती हैं, सामान्य रूपों का पदानुक्रम (1NF से BCNF, 4NF तक), और अतिरेक को हटाने के लिए संबंधों का अपघटन (decomposition) जबकि दोषरहित जोड़ (lossless joins) और, जहाँ संभव हो, निर्भरताओं को बनाए रखना। इसमें अवधारणात्मक मॉडलिंग नोटेशन (conceptual modeling notations) जैसे कि इकाई-संबंध आरेख (entity-relationship diagrams) (डेटा मॉडल और क्वेरी भाषाओं में शामिल) और भौतिक डिज़ाइन विकल्प जैसे अनुक्रमण (indexing) शामिल नहीं हैं।
Sub-topics
Core questions
- किसी संबंध की विशेषताओं के बीच कौन सी कार्यात्मक और बहु-मूल्यवान निर्भरताएँ मौजूद हैं?
- अतिरेक के कारण कौन सी विसंगतियाँ — अद्यतन, प्रविष्टि, विलोपन — होती हैं?
- प्रत्येक सामान्य रूप को कौन सी शर्तें परिभाषित करती हैं, और प्रत्येक कौन सा अतिरेक हटाता है?
- किसी संबंध को जानकारी खोए बिना कैसे विघटित किया जा सकता है?
- उच्च सामान्य रूप के बदले निर्भरता संरक्षण का त्याग कब करना पड़ता है?
Key concepts
- कार्यात्मक निर्भरता (functional dependency)
- आर्मस्ट्रांग के स्वयंसिद्ध और समापन (Armstrong's axioms and closure)
- उम्मीदवार कुंजियाँ और प्रमुख विशेषताएँ (candidate keys and prime attributes)
- अद्यतन, प्रविष्टि, विलोपन विसंगतियाँ (update, insertion, deletion anomalies)
- पहला, दूसरा, तीसरा सामान्य रूप (first, second, third normal form)
- बॉयस-कॉर्ड सामान्य रूप (Boyce-Codd normal form)
- बहु-मूल्यवान निर्भरताएँ और 4NF (multivalued dependencies and 4NF)
- दोषरहित-जॉइन अपघटन (lossless-join decomposition)
- निर्भरता संरक्षण (dependency preservation)
Key theories
- कार्यात्मक निर्भरताएँ और समापन
- एक कार्यात्मक निर्भरता X → Y यह दावा करती है कि X, Y को निर्धारित करता है; आर्मस्ट्रांग के स्वयंसिद्ध निर्भरताओं के एक सेट के समापन की गणना करने की अनुमति देते हैं, जो कुंजी-खोज और सामान्य रूपों के परीक्षण का आधार है।
- सामान्य रूप
- पहले से तीसरे सामान्य रूप और बॉयस-कॉर्ड सामान्य रूप अतिरेक को खत्म करने के लिए कार्यात्मक निर्भरताओं पर उत्तरोत्तर सख्त शर्तें लगाते हैं; चौथा सामान्य रूप इसे बहु-मूल्यवान निर्भरताओं तक विस्तारित करता है।
- दोषरहित-जॉइन और निर्भरता-संरक्षण अपघटन
- एक अपघटन तभी वांछनीय है जब वह दोषरहित हो (मूल संबंध को भागों को जोड़कर पुनर्निर्मित किया जा सकता है) और आदर्श रूप से निर्भरता-संरक्षण हो (सभी मूल निर्भरताओं को भागों पर लागू किया जा सकता है), ऐसे मानदंड जो स्कीमा को कैसे विभाजित किया जाता है, इसे बाधित करते हैं।
Clinical relevance
विश्वसनीय सूचना प्रणालियों के निर्माण में सामान्यीकरण एक मुख्य कौशल है: अच्छी तरह से सामान्यीकृत स्कीमा असंगत डेटा को रोकते हैं और लेनदेन संबंधी अनुप्रयोगों (transactional applications) में रखरखाव को सरल बनाते हैं, जबकि चिकित्सक जानबूझकर भारी-पठन विश्लेषण (read-heavy analytics) और रिपोर्टिंग के लिए डीनॉर्मलाइज़ (denormalize) भी करते हैं, जिससे वास्तविक दुनिया के डेटाबेस इंजीनियरिंग के लिए व्यापार-बंद (trade-offs) केंद्रीय बन जाते हैं।
History
कॉर्ड ने 1970 के दशक की शुरुआत में पहले, दूसरे और तीसरे सामान्य रूपों को पेश किया और, बॉयस के साथ, मजबूत बॉयस-कॉर्ड सामान्य रूप (Boyce-Codd normal form) को। रोनाल्ड फागिन ने बाद में बहु-मूल्यवान और जॉइन निर्भरताओं (join dependencies) के आधार पर चौथे और पांचवें सामान्य रूपों को परिभाषित किया। इन परिणामों ने मिलकर स्कीमा डिज़ाइन को एक कला से निर्भरता बाधाओं पर आधारित एक सिद्धांत में बदल दिया।
Debates
- व्यवहार में सामान्यीकरण कितना करना चाहिए
- सख्त सामान्यीकरण अतिरेक और विसंगतियों को समाप्त करता है लेकिन कई जॉइन की आवश्यकता हो सकती है जो भारी-पठन वर्कलोड को धीमा कर देते हैं; चिकित्सक इस बात पर बहस करते हैं कि प्रदर्शन के लिए नियंत्रित डीनॉर्मलाइज़ेशन कब उचित है बनाम कब यह उन विसंगतियों को आमंत्रित करता है जिन्हें सामान्यीकरण रोकने के लिए डिज़ाइन किया गया था।
Key figures
- Edgar F. Codd
- Raymond F. Boyce
- Ronald Fagin
Related topics
Seminal works
- codd1972
- silberschatz2019
- garciamolina2008
Frequently asked questions
- यदि मैं सावधान रहूँ तो अतिरेक समस्याएँ क्यों पैदा करता है?
- एक ही तथ्य का कई पंक्तियों में अतिरेकपूर्ण भंडारण विसंगतियों को जन्म देता है: एक अद्यतन कुछ प्रतियों को बदल सकता है लेकिन दूसरों को नहीं (अद्यतन विसंगति), आप असंबंधित डेटा के बिना एक तथ्य को रिकॉर्ड करने में असमर्थ हो सकते हैं (प्रविष्टि विसंगति), या एक पंक्ति को हटाने से वह जानकारी खो सकती है जिसे आप रखना चाहते थे (विलोपन विसंगति)। सामान्यीकरण उस अतिरेक को हटाता है जो इन्हें संभव बनाता है।
- BCNF और तीसरे सामान्य रूप में क्या अंतर है?
- दोनों कार्यात्मक निर्भरताओं से उत्पन्न अतिरेक को संबोधित करते हैं, लेकिन BCNF सख्त है: इसके लिए प्रत्येक गैर-तुच्छ निर्भरता के बाईं ओर एक सुपरकी (superkey) होना आवश्यक है। एक स्कीमा 3NF में हो सकता है फिर भी BCNF में नहीं। BCNF हमेशा एक दोषरहित अपघटन देता है लेकिन निर्भरता-संरक्षण नहीं हो सकता है, यही कारण है कि कभी-कभी 3NF को बनाए रखा जाता है।