Дванадесет правила на Codd за релационни СУБД
Дванадесетте правила на Код за релационни СУБД - раздел Програмиране, Средата Delphi е широко известна и не създава допълнителни трудности при изучаването и използването В статия, публикувана през 1985 г. [3], Е. Код формулира дванадесетте правила
1.Правилото за информация. Цялата информация в базата данни трябва да бъде предоставена изключително на логическо ниво и само по един начин - под формата на стойности, съдържащи се в таблици.
2.Правило за гарантиран достъп. Логическият достъп до всеки елемент от данни (атомарна стойност) в релационна база данни трябва да бъде предоставен с помощта на комбинация от име на таблица, първичен ключ и име на колона.
3.Правило за невалидна поддръжка. Истинската релационна база данни трябва да поддържа невалидни стойности, които са различни от символен низ с нулева дължина, празен символен низ и нула или друго число и се използват за представяне на липсващи данни, независимо от типа на данните.
4.Правило за динамичен каталог, базирано на релационния модел. Описанието на базата данни на логическо ниво трябва да бъде представено в същата форма като основните данни, така че потребителите с подходящите права да могат да работят с него, използвайки същия релационен език, който използват за работа с основните данни.
5.Правило за подезик на изчерпателни данни. Една релационна система може да поддържа различни езици и режими на потребителско взаимодействие (напр. режим на въпроси и отговори). Трябва обаче да има поне един език, чиито оператори могат да бъдат представени като символни низове според някакъв добре дефиниран синтаксис и който, внапълно поддържа следните елементи:
- обработка на данни (интерактивна и софтуерна);
- идентифициране на права за достъп;
- граници на транзакцията (начало, край и отмяна).
6.Правило за актуализиране на изгледи. Всички изгледи, които теоретично могат да бъдат актуализирани, трябва да са налични за актуализиране.
7.Правилото за добавяне, актуализиране и изтриване. Възможността за работа с релация като единичен операнд трябва да съществува не само при четене на данни, но и при добавяне, актуализиране и изтриване на данни.
8.Правило за независимост на физическите данни. Приложните програми и помощните програми за работа с данни трябва да останат незасегнати на логическо ниво с всякакви промени в методите за съхранение на данни или методите за достъп до данни.
9.Правилото за независимост на логическите данни. Приложните програми и помощните програми за манипулиране на данни трябва да останат логически непокътнати, когато се правят каквито и да било промени в базовите таблици, които теоретично позволяват данните, съдържащи се в тези таблици, да останат непокътнати.
10.Правило за независимост на условието за интегритет. Трябва да е възможно да се дефинират специфични за релационна база данни условия за интегритет в подезик на релационна база данни и да се съхраняват в директория, а не в приложение.
11.Правило за независимост на разпространението. Релационната СУБД не трябва да зависи от нуждите на конкретен клиент.
12.Правилото за уникалност. Ако една релационна система има език от ниско ниво (обработващ запис по един), тогава не трябва да е възможно да се използва за заобикаляне на правилата за интегритет и условията, изразени в релационен език от високо ниво(обработка на множество записи наведнъж).
Правило 1 напомня на дефиницията на неформалната релационна база данни, дадена по-рано.
Правило 2 посочва ролята на първичните ключове при търсене на информация в база данни. Името на таблицата намира необходимата таблица, името на колоната намира необходимата колона, а първичният ключ намира реда, който съдържа елемента от данни, който търсите.
Правило 3 изисква липсващите данни да могат да бъдат представени с нулеви стойности.
Правило 4 казва, че релационната база данни трябва да описва сама себе си. С други думи, базата данни трябва да съдържа набор отсистемни таблици, описващи структурата на самата база данни.
Правило 5 изисква СУБД да използва език за релационни бази данни като SQL, въпреки че SQL не се споменава изрично в правилото. Такъв език трябва да поддържа всички основни функции на СУБД - създаване на база данни, четене и въвеждане на данни, прилагане на защита на базата данни и т.н.
Правило 6 се отнася доизгледи,които са виртуални таблици, които позволяват на различни потребители да виждат различни части от структурата на базата данни. Това е едно от най-трудните правила за прилагане на практика.
Правило 7 подчертава, че базите данни са ориентирани към множество по природа. Това изисква операциите за добавяне, изтриване и актуализиране да могат да се извършват върху набори от редове. Това правило има за цел да забрани реализации, които поддържат операции само на един ред.
Правила 8 и 9 означават отделянето на потребителя и приложната програма от изпълнението на ниско ниво на базата данни. Те твърдят, че специфичните реализации за съхранение или достъп, използвани в СУБД идори промените в структурата на таблиците на базата данни не трябва да засягат способността на потребителя да работи с данни.
Правило 10 гласи, че езикът на базата данни трябва да поддържа ограниченията, поставени върху входните данни и действията, които могат да бъдат извършени върху данните.
Правило 11 гласи, че езикът на базата данни трябва да осигурява възможност за работа с разпределени данни, разположени на други компютърни системи.
И накрая, правило 12 предотвратява използването на характеристики на база данни, различни от езика на базата данни, тъй като това може да компрометира целостта на базата данни.
Някои от термините в тези правила са интуитивни, но все още не са дефинирани. Това ще бъде направено по-долу.