0.- Todo sistema relacional debe manejar sus bases de datos a través de sus capacidades relacionales exclusivamente.
1.- Toda la información en una base de datos relacional se debe representar explícitamente en el nivel lógico en forma de tablas relacionales.
2.- Acceso garantizado: Todos y cada uno de los datos en una base de datos relacional deben poder accesarse a través de la combinación: Nombre de relación (Tabla), llave primaria (Renglón) y nombre atributo (Columna).
3.- Valores nulos: Todo manejador relacional debe poder representar y manipular valores nulos, utilizando para su representación un código específico.
V F N V F N
V V F N V V V V
F F F F F V F N
N N F N AND N V N N OR
4.- Catálogo relacional: La información sobre la base de datos debe estar representada en tablas para que podamos utilizar el mismo lenguaje para su administración.
5.- Sublenguaje de datos (SQL): Un manejador relacional debe soportar al menos un lenguaje, con una sintáxis formalmente definida, a través del cual podemos: Definir datos, definir vistas lógicas, manipular datos, controlar la integridad, controlar seguridad y realizar transacciones lógicas.
6.- Actualización de vistas: Un DBMS relacional debe tener un algoritmo al menos tan poderoso como el VU-1 para determinar si la vista lógica en cuestión es sujeta a inserciones o borrados de tuplas y si se pueden modificar columnas.
7.- Operaciones masivas: La capacidad del manejador de manipular una relación a través de un solo operando debe aplicar no solo al Select si no también al Insert, Delete y al Update.
8.- Independencia física: Los programas de aplicación deben permanecer sin cambios cuando se modifiquen, ya sea las representaciones de almacenamiento, o los métodos de acceso a la información (modelo físico).
9.- Independencia lógica: Los programas de aplicación deben permanecer sin cambios cuando se lleven a cabo modificaciones para preservar la información (modelo lógico).
10.- Independencia de integridad: Las reglas de integridad deben poder definirse en el lenguaje de datos y almacenarse en el catálogo del sistema relacional.
11.- Independencia de distribución: Los programas de aplicación no deben sufrir modificaciones cuando la información se distribuye en lugares físicamente diferentes. Esto debe ser transparente para el usuario.
12.- No subversión: Ninguna aplicación podrá accesar directamente la información en la base de datos por cuestiones de integridad. Toda aplicación deberá pasar a través de los controles de seguridad e integridad del DBMS.
Lo importante de un DBMS no es que sea relacional, si no que cumpla con las características de integridad, independencia y seguridad. Hay que evaluar no solo que el producto cumpla con las reglas de Codd, si no también que tan eficientemente las lleva a cabo.