۱۲ قانون کاد

**۱۲ قانون کاد** (به انگلیسی: Codd's 12 rules) مجموعه ای از سیزده قانون (شروع شده از صفر تا دوازده) است که توسط ادگار کاد (به انگلیسی: Edgar Codd) یکی از پیشگامان مدل رابطه‌ای پایگاه داده (به انگلیسی: The Relational Model) ارائه شده‌است و بیانگر این است که یک پایگاه داده به چه چیزهایی نیاز دارد تا به راستی جزو پایگاه داده‌های با مدل رابطه‌ای به‌شمار آید.

**قانون صفر - قانون پایه:**

برای هر سیستمی که به عنوان یک سیستم مدیریت پایگاه داده رابطه‌ای تبلیغ می‌شود یا ادعا می‌شود، آن سیستم باید بتواند پایگاه‌های داده را کاملاً از طریق قابلیت‌های رابطه‌ای خود مدیریت کند.

**قانون ۱ - قانون اطلاعات:**

داده‌های ذخیره شده در پایگاه داده، بگونه‌ای باید مقدار یک سلول جدول باشد. همه چیز در یک پایگاه داده باید در قالب جدول ذخیره شود.

**قانون ۲ - قانون دسترسی تضمینی:**

هر عنصر داده (مقدار) تضمین شده است که با ترکیبی از نام جدول، کلید اصلی (مقدار ردیف) و نام ویژگی (مقدار ستون) به طور منطقی قابل دسترسی است. روش‌های دیگری مانند اشاره‌گرها برای دسترسی به داده استفاده نمی‌شود.

**قانون ۳ - پردازش منظم مقادیر NULL:**

مقادیر NULL در پایگاه داده باید به صورت سیستماتیک و یکنواختی تحت تیمار قرار گیرند. این قانون بسیار مهم است زیرا مقدار NULL می‌تواند به عنوان یکی از موارد زیر تفسیر شود: داده از دست رفته است، داده شناخته نیست یا داده قابل اعمال نیست.

**قانون ۴ - کاتالوگ آنلاین فعال:**

توصیف ساختار کلیه پایگاه داده باید در یک کاتالوگ آنلاین، شناخته شده به عنوان فرهنگ داده، که توسط کاربران مجاز قابل دسترسی است، ذخیره شود. کاربران می‌توانند از همان زبان پرس و جویی استفاده کنند که برای دسترسی به پایگاه داده استفاده می‌کنند.

**قانون ۵ - زبان فرعی جامع داده:**

یک پایگاه داده فقط با استفاده از یک زبانی با دستورات خطی که عملیات تعریف داده، مدیریت داده و مدیریت تراکنش‌ها را پشتیبانی می‌کند، قابل دسترسی است. این زبان می‌تواند به صورت مستقیم یا با استفاده از برنامه‌هایی استفاده شود. اگر پایگاه داده به داده‌ها بدون هیچ کمکی از این زبان دسترسی داشته باشد، آنگاه به عنوان یک نقض در نظر گرفته می‌شود.

**قانون ۶ - قانون بروزرسانی نمای:**

تمامی نماهای یک پایگاه داده که به طور نظری قابل بروزرسانی هستند، باید توسط سیستم قابل بروزرسانی باشند.

**قانون ۷ - قانون درج، بروزرسانی و حذف سطح بالا:**

یک پایگاه داده باید درج، به‌روزرسانی و حذف سطح بالا را پشتیبانی کند. این باید محدود به یک ردیف نباشد، به عبارت دیگر باید همچنین عملیات اتحاد، اشتراک و منهایی را برای تولید مجموعه‌هایی از رکورد داده‌ها پشتیبانی کند.

**قانون ۸ - استقلال فیزیکی داده:**

داده‌های ذخیره شده در پایگاه داده باید مستقل از برنامه‌هایی که به پایگاه داده دسترسی می‌کنند، باشد. هر تغییری در ساختار فیزیکی پایگاه داده باید هیچ تأثیری در نحوه دسترسی به داده توسط برنامه‌های خارجی نداشته باشد.

**قانون ۹ - استقلال منطقی داده:**

داده‌های منطقی در یک پایگاه داده باید مستقل از دید کاربر (برنامه) آن باشند. هر تغییری در داده‌های منطقی نباید تأثیری بر روی برنامه‌هایی که از آن استفاده می‌کنند، داشته باشد. به عنوان مثال، اگر دو جدول با هم ادغام شوند یا یک جدول به دو جدول متفاوت تقسیم شود، باید هیچ تأثیر یا تغییری بر روی برنامه کاربردی نباشد. این یکی از دشوارترین قوانین برای اعمال است.

**قانون ۱۰ - استقلال یکپارچگی:**

یک پایگاه داده باید مستقل از برنامه‌ای که از آن استفاده می‌کند باشد. تمامی محدودیت‌های صحت داده‌ها به طور مستقل قابل تغییر باشند بدون نیاز به هرگونه تغییر در برنامه. این قانون پایگاه داده را مستقل از برنامه کاربردی و رابط کاربری آن می‌کند.

**قانون ۱۱ - استقلال توزیع:**

کاربر نباید بتواند مشاهده کند که داده در مکان‌های مختلف توزیع شده است. کاربران همیشه باید احساس کنند که داده در یک سایت واحد قرار دارد. این قانون به عنوان پایه‌ای برای سیستم‌های پایگاه داده توزیع شده محسوب می‌شود.

**قانون ۱۲ - قانون عدم زیرکردن:**

اگر یک سیستم رابطی دارای دسترسی به رکوردهای سطح پایین باشد، آن رابط نباید بتواند سیستم را زیرکردن و از محدودیت‌های امنیتی و صحتی بگذراند.

## منابع

رده:مدل رابطه‌ای
رده:مدل‌سازی در داده‌ها
رده:مقاله‌های ایجادشده توسط ایجادگر
رده:نظریه پایگاه داده
رده:ویکی‌سازی رباتیک