# Les 12 regles de Codd

Les dotze regles de Codd són un conjunt de tretze regles (numerades de zero a dotze) proposades per Edgar F. Codd, pioner del model relacional per a bases de dades, dissenyat per definir què cal un sistema de gestió de bases de dades perquè pugui considerar-se relacional, és a dir, un sistema de gestió de bases de dades relacionals (RDBMS). De vegades es coneixen com "els dotze manaments de Codd".

## Història

Codd va establir originalment les regles el 1970 i les va desenvolupar encara més en un document de la conferència de 1974. El seu objectiu era evitar que la visió de la base de dades relacional original es diluís, ja que els venedors de bases de dades es van lluitar a principis dels anys vuitanta per tornar a empaquetar els productes existents amb una xapa relacional. La regla 12 va ser especialment dissenyada per contrarestar aquest posicionament.
L'any 1999, un llibre de text deia "Avui en dia, la majoria dels RDBMS... passen la prova". No obstant això, l'any 2007 un altre llibre de text deia que "cap sistema de bases de dades compleix amb les dotze regles. Més tard va ampliar aquestes 12 regles originals fins a 333 excepcionals el 1990. Com que els 12 originals són un lot ambiciós, és dubtós que qualsevol RDBMS compleixi mai les regles 333."

## Normes

Regla 0: la regla bàsica:
    Per a qualsevol sistema que s'anunciï com un sistema de gestió de bases de dades relacionals o es digui que és relacional, aquest sistema ha de ser capaç de gestionar les bases de dades completament mitjançant les seves capacitats relacionals.
Regla 1: la regla de la informació:
    Tota la informació d'una base de dades relacional es representa explícitament, lògicament i exactament d'una manera – pels valors de les taules.
Regla 2: la regla d'accés garantit:
    Es garanteix que totes i cadascuna de les dades (valor atòmic) d'una base de dades relacional siguin accessibles lògicament recorrent a una combinació de nom de taula, valor de clau primària i nom de columna.
Regla 3: Tractament sistemàtic de valors nuls:
    Els valors nuls (diferents de la cadena de caràcters buida o una cadena de caràcters en blanc i diferents de zero o qualsevol altre nombre) són compatibles amb el SGBD totalment relacional per representar la informació que falta i la informació inaplicable d'una manera sistemàtica, independentment del tipus de dades.
Regla 4: Catàleg en línia dinàmic basat en el model relacional:
    La descripció de la base de dades es representa lògicament de la mateixa manera que les dades ordinàries, de manera que els usuaris autoritzats poden aplicar a la seva interrogació el mateix llenguatge relacional que s'apliquen a les dades habituals.
Regla 5: la regla completa del subllenguatge de dades:
    Un sistema relacional pot suportar diversos idiomes i diversos modes d'ús del terminal (per exemple, el mode d'omplir els espais en blanc). Tanmateix, ha d'haver-hi com a mínim un llenguatge les declaracions del qual siguin expressables, segons una sintaxi ben definida, com a cadenes de caràcters i que sigui complet per donar suport a tots els elements següents:
      * Definició de dades.
      * Veure definició.
      * Manipulació de dades (interactiva i per programa).
      * Restriccions d'integritat.
      * Autorització.
      * Límits de la transacció (inici, confirmació i retrocés).
Regla 6: la regla d'actualització de visualitzacions:
    Totes les vistes que teòricament es poden actualitzar també són actualitzables pel sistema.
Regla 7: Regla d'Operacions Relacionals / Possibilitat d'inserir, actualitzar i suprimir en alt nivell:
    La capacitat de gestionar una relació base o una relació derivada com un únic operand s'aplica no només a la recuperació de dades sinó també a la inserció, actualització i supressió de dades.
Regla 8: Independència de les dades físiques:
    Els programes d'aplicació i les activitats del terminal romanen lògicament intactes sempre que es facin canvis en les representacions d'emmagatzematge o en els mètodes d'accés.
Regla 9: Independència de les dades lògiques:
    Els programes d'aplicació i les activitats del terminal es mantenen lògicament intactes quan es fan canvis de qualsevol mena que preserven la informació que teòricament permetin la intacta a les taules base.
Regla 10: Independència de la integritat:
    Les restriccions d'integritat específiques d'una base de dades relacional particular s'han de definir al subllenguatge de dades relacionals i emmagatzemar-les al catàleg, no als programes d'aplicació.
Regla 11: Independència de distribució:
    L'usuari final no ha de poder veure que les dades es distribueixen en diverses ubicacions. Els usuaris sempre haurien de tenir la impressió que les dades es troben només en un lloc.
Regla 12: la regla de no subversió:
    Si un sistema relacional té un llenguatge de baix nivell (de registre únic a la vegada), aquest nivell baix no es pot utilitzar per subvertir o eludir les regles d'integritat i les restriccions expressades en el llenguatge relacional de nivell superior (en múltiples registres a la vegada).

## Referències

* ↑ «Codd's 12 Rules». RelDB.org, 30-06-2019. [Consulta: 14 agost 2020].
* ↑ Codd, Edgar Frank «Is Your DBMS Really Relational?». ComputerWorld, 14-10-1985.
* ↑ Codd, Edgar Frank «Does Your DBMS Run By the Rules». ComputerWorld, 21-10-1985.
* ↑ Cowley, Stewart. Man vs Big Data: Everyday data explained, 2017. ISBN 9781781317563.
* 1 2 Kline, Kevin. Transact-SQL Programming: Covers Microsoft SQL Server 6.5 /7.0 and Sybase Adaptive Server 11.5, 1999. ISBN 9781565924017.
* ↑ Hess, Kenneth. Microsoft Office Access 2007: The L Line, The Express Line to Learning, 2007. ISBN 9780470107904.

## Bibliografia addicional

* Codd, Edgar F. The relational model for database management: Version 2. Addison-Wesley, 1990. ISBN 9780201141924.
* Harrington, Jan L. «Codd's Rules». A: Relational Database Design Clearly Explained. 2a edició. Morgan Kaufmann, 2002 (The Morgan Kaufmann Series in Data Management Systems). ISBN 9781558608207.
* Krishna, S. «Criteria for Evaluating Relational Database Systems». A: Introduction to Database and Knowledge-Base Systems. 28. World Scientific, 1992, p. 91 et seq (Computer Science). ISBN 9789810206192.