एडगर एफ कॉड एक कंप्यूटर वैज्ञानिक थे जिन्होंने डेटाबेस प्रबंधन के लिए रिलेशनल मॉडल का आविष्कार किया। उन्हें रिलेशनल डेटाबेस के साथ-साथ रिलेशनल डेटाबेस मैनेजमेंट सिस्टम की नींव बनाने का श्रेय भी दिया जाता है।
Codd के बारह नियम उन विशेषताओं को परिभाषित करते हैं जो एक डेटाबेस मैनेजमेंट सिस्टम में होनी चाहिए ताकि उसे रिलेशनल माना जा सके यानी एक रिलेशनल डेटाबेस मैनेजमेंट सिस्टम।
नियम 0: फाउंडेशन नियम
किसी भी सिस्टम को रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के रूप में योग्य होने के लिए, इसे अपनी रिलेशनल क्षमता का उपयोग करके अपने डेटा को प्रबंधित करना चाहिए।
नियम 1: सूचना नियम
सभी जानकारी (मेटाडेटा सहित) पंक्तियों और कॉलम का उपयोग करके टेबल में दर्शाई जाती है। पंक्तियों और कॉलम को सख्ती से अनऑर्डर्ड होना चाहिए।
नियम 2: गारंटीड एक्सेस नियम
डेटाबेस में सभी मान टेबल नाम, प्राइमरी की और कॉलम नाम के संयोजन का उपयोग करके सुलभ होने चाहिए। (डेटा को पॉइंटर का उपयोग करके सीधे एक्सेस करने की क्षमता इस नियम के अनुसार अमान्य है)।
नियम 3: NULL मानों का व्यवस्थित उपचार
डेटा की अनुपस्थिति या अमान्य डेटा को व्यवस्थित तरीके से दर्शाने के लिए डेटाबेस में NULL मान पूरी तरह से समर्थित हैं। NULL मान डेटा प्रकारों से स्वतंत्र हैं और उन पर कोई भी ऑपरेशन NULL वापस करना चाहिए।
नियम 4: डायनामिक ऑनलाइन कैटलॉग
कैटलॉग डेटाबेस का पूर्ण विवरण है। यह ऑनलाइन संग्रहीत है और डेटाबेस पर अतिरिक्त जानकारी देता है। डेटाबेस पर उपयोग की जाने वाली क्वेरी भाषा का उपयोग कैटलॉग पर भी किया जाता है।
नियम 5: शक्तिशाली और सुव्यवस्थित भाषा
एक रिलेशनल डेटाबेस कई भाषाओं का समर्थन कर सकता है। हालांकि कम से कम एक भाषा होनी चाहिए जो सभी प्रकार की डेटा पहुंच, डेटा मैनिपुलेशन आदि प्रदान करती हो। ऐसी एक भाषा SQL है।
नियम 6: व्यू अपडेशन नियम
सभी व्यू जो सैद्धांतिक रूप से अपडेटेबल हैं, उन्हें सिस्टम द्वारा भी अपडेटेबल होना चाहिए।
नियम 7: गुणवत्ता सम्मिलन, अद्यतन, विलोपन
एकल ऑपरेंड के संदर्भ में सम्मिलन, विलोपन और अद्यतन संभव होना चाहिए। यह सुविधा रिलेशन के सभी स्तरों पर उपलब्ध होनी चाहिए।
नियम 8: भौतिक डेटा स्वतंत्रता
सिस्टम में भौतिक परिवर्तन, जैसे स्टोरेज स्पेस का परिवर्तन, एक्सेस विधियों का परिवर्तन आदि, एप्लिकेशन प्रोग्राम और सिस्टम की अन्य गतिविधियों को प्रभावित नहीं करना चाहिए।
नियम 9: तार्किक डेटा स्वतंत्रता
रिलेशनल डेटाबेस का उपयोगकर्ता दृश्य तार्किक संरचना में परिवर्तन होने पर भी सुसंगत रहना चाहिए। इस नियम को पूरा करना काफी कठिन है।
नियम 10: इंटीग्रिटी स्वतंत्रता
रिलेशनल डेटाबेस के लिए विशिष्ट इंटीग्रिटी कंस्ट्रेंट को उस डेटाबेस की भाषा में परिभाषित किया जाना चाहिए और कैटलॉग में संग्रहीत किया जाना चाहिए। इसका अर्थ है कि रिलेशनल DBMS फ्रंट एंड पर निर्भर नहीं है।
नियम 11: वितरण स्वतंत्रता
भले ही डेटाबेस में डेटा कई स्थानों पर वितरित हो, एंड यूज़र को डेटाबेस को एक समान इकाई के रूप में देखना चाहिए। साथ ही, डेटाबेस को नेटवर्क पर वितरित होने पर भी पूरी तरह से काम करना चाहिए।
नियम 12: नॉन-सबवर्जन नियम
यदि रिलेशनल डेटाबेस के लिए निम्न-स्तरीय पहुंच की अनुमति है, तो यह इंटीग्रिटी कंस्ट्रेंट को उल्टा करने और सुरक्षा को बायपास करके डेटा बदलने में सक्षम नहीं होना चाहिए।