12-те правила на Код е списък от 12 правила формулиран от Едгар Код, един от пионерите на релационния модел за бази от данни, дефиниращ какво е необходимо на една система за управление на бази данни (СУБД) за да бъде определана като релационна (РСУБД).

Код създава тези правила като част от личната си кампания за предпазване на идеята за релационна база данни, от опитите на производителите на бази данни да обявят съществуващите си продукти за релационни. Всъщност правилата са толкова стриктни, че повечето т.нар. РСУБД не покриват много от тях.

Правилата редактиране

Правило 000 редактиране

Системата трябва да е релационна, база от данни и система за управление.

За да бъде една система окачествена като релационна система за управление на бази данни, тя трябва да използва релационни методи, за да управлява базата данни.

Правило 1: Правило за информацията редактиране

Цялата информация в базата данни трябва да се представят по един-единствен начин – стойности подредени в колони в редове от таблици.

Правило 2: Правило за гарантираната достъпност редактиране

Цялата информация трябва да бъде еднозначно достъпна. Т.е. всяка индивидуална скаларна стойност в базата данни, трябва да може да бъде логичести адресирана, като се укажат името на съдържащите я таблица, съдържащата я колона, и стойността на първичния ключ за съдържащия я ред.

Правило 3: Системно управление на нул стойности редактиране

Системата за управление на бази данни трябва да позволява всяко поле да остане нул (празно). По-точно тя трябва да поддържа съхранение и представяне на „липсваща информация или непълна информация“, различно от стандартните стойности (напр. различно от нула или друго число ако става въпрос за целочислени стойности), и независещо от типа данни.

Правило 4: Достъпен каталог базиран на релационния модел редактиране

Системата трябва да поддържа отворен, подреден, релационен каталог, който да е достъпен за ауторизираните потребители. Т.е. потребителите трябва да могат да достъпват структурата на базата данни (каталог) използвайки същия език за заявки, който използват за достъпване на данните.