Codd के 12 नियम

डॉ एडगर एफ। कोडड, रिलेशनल मॉडल ऑफ डेटाबेस सिस्टम पर अपने व्यापक शोध के बाद, अपने स्वयं के बारह नियमों के साथ आए, जो उनके अनुसार, एक डेटाबेस को एक सच्चे रिलेशनल डेटाबेस के रूप में माना जाना चाहिए।

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

नियम 1: सूचना नियम

एक डेटाबेस में संग्रहीत डेटा, यह उपयोगकर्ता डेटा या मेटाडेटा हो सकता है, कुछ टेबल सेल का मान होना चाहिए। एक डेटाबेस में सब कुछ एक तालिका प्रारूप में संग्रहीत किया जाना चाहिए।

नियम 2: गारंटी नियम

हर एक डेटा तत्व (मूल्य) को तालिका-नाम, प्राथमिक-कुंजी (पंक्ति मूल्य), और विशेषता-नाम (स्तंभ मान) के संयोजन के साथ तार्किक रूप से सुलभ होने की गारंटी है। कोई अन्य साधन, जैसे कि संकेत, डेटा तक पहुंचने के लिए उपयोग किया जा सकता है।

नियम 3: पूर्ण मानों का व्यवस्थित उपचार

डेटाबेस में NULL मान को एक व्यवस्थित और एक समान उपचार दिया जाना चाहिए। यह एक बहुत ही महत्वपूर्ण नियम है क्योंकि किसी NULL की व्याख्या निम्न के रूप में की जा सकती है - डेटा गायब है, डेटा ज्ञात नहीं है, या डेटा लागू नहीं है।

नियम 4: सक्रिय ऑनलाइन कैटलॉग

पूरे डेटाबेस का संरचना विवरण एक ऑनलाइन कैटलॉग में संग्रहीत किया जाना चाहिए, जिसे कहा जाता है data dictionary, जो अधिकृत उपयोगकर्ताओं द्वारा पहुँचा जा सकता है। उपयोगकर्ता कैटलॉग तक पहुंचने के लिए उसी क्वेरी भाषा का उपयोग कर सकते हैं जिसका उपयोग वे डेटाबेस तक पहुंचने के लिए करते हैं।

नियम 5: व्यापक डेटा उप-भाषा नियम

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

नियम 6: अद्यतन नियम देखें

एक डेटाबेस के सभी विचार, जो सैद्धांतिक रूप से अपडेट किए जा सकते हैं, सिस्टम द्वारा भी अद्यतन होना चाहिए।

नियम 7: उच्च-स्तरीय सम्मिलित करें, अद्यतन करें, और नियम हटाएँ

एक डेटाबेस को उच्च-स्तरीय सम्मिलन, अपडेशन और विलोपन का समर्थन करना चाहिए। यह केवल एक पंक्ति तक सीमित नहीं होना चाहिए, अर्थात, यह डेटा रिकॉर्ड के सेट के लिए यूनियन, चौराहे और माइनस संचालन का भी समर्थन करना चाहिए।

नियम 8: भौतिक डेटा स्वतंत्रता

एक डेटाबेस में संग्रहीत डेटा डेटाबेस तक पहुंचने वाले अनुप्रयोगों से स्वतंत्र होना चाहिए। किसी डेटाबेस की भौतिक संरचना में किसी भी बदलाव का बाहरी अनुप्रयोगों द्वारा डेटा तक पहुंचने का कोई प्रभाव नहीं होना चाहिए।

नियम 9: तार्किक डेटा स्वतंत्रता

एक डेटाबेस में तार्किक डेटा उसके उपयोगकर्ता के दृश्य (एप्लिकेशन) से स्वतंत्र होना चाहिए। तार्किक डेटा में किसी भी परिवर्तन का उपयोग करने वाले अनुप्रयोगों को प्रभावित नहीं करना चाहिए। उदाहरण के लिए, यदि दो तालिकाओं को मिला दिया जाता है या एक को दो अलग-अलग तालिकाओं में विभाजित किया जाता है, तो उपयोगकर्ता के आवेदन पर कोई प्रभाव या परिवर्तन नहीं होना चाहिए। यह लागू करने के लिए सबसे कठिन नियम में से एक है।

नियम 10: अखंडता की स्वतंत्रता

एक डेटाबेस उस एप्लिकेशन से स्वतंत्र होना चाहिए जो इसका उपयोग करता है। एप्लिकेशन में किसी भी बदलाव की आवश्यकता के बिना इसकी सभी अखंडता बाधाओं को स्वतंत्र रूप से संशोधित किया जा सकता है। यह नियम एक डेटाबेस को फ्रंट-एंड एप्लिकेशन और उसके इंटरफेस से स्वतंत्र बनाता है।

नियम 11: वितरण स्वतंत्रता

अंत-उपयोगकर्ता को यह देखने में सक्षम नहीं होना चाहिए कि डेटा विभिन्न स्थानों पर वितरित किया गया है। उपयोगकर्ताओं को हमेशा यह धारणा मिलनी चाहिए कि डेटा केवल एक साइट पर स्थित है। इस नियम को वितरित डेटाबेस सिस्टम की नींव के रूप में माना गया है।

नियम 12: गैर-तोड़फोड़ नियम

यदि किसी सिस्टम में एक इंटरफ़ेस है जो निम्न-स्तरीय रिकॉर्ड तक पहुँच प्रदान करता है, तो इंटरफ़ेस को सिस्टम को हटाने और सुरक्षा और अखंडता बाधाओं को बायपास करने में सक्षम नहीं होना चाहिए।