Friday, March 20, 2009

Reglas de Edgar Frank Codd

Codd se percató que existían bases de datos en el mercado las cuales decían ser relacionales, pero lo único que hacían era guardar la información en las tablas, sin estas tablas estar literalmente normalizadas.

Publicó 12 reglas que un verdadero sistema relacional debería tener. Un sistema podrá considerarse más relacional en tanto cuanto más siga estas reglas.

Regla Nro. 1: La regla de la información.
Toda la información en un RDBMS (DBMS Relacional) está explicitamente representada de una sola manera por valores en una tabla.

Regla Nro. 2: La regla del acceso garantizado.
Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine el nombre de la tabla, su clave primaria, y el nombre de la columna.

Regla Nro.3: Tratamiento sistemático de los valores nulos.
La información inaplicable o faltante puede ser representada a través de valores nulos.

Regla Nro. 4 La regla de la descripción de la base de datos.
La descripción de la base de datos es almacenada de la misma manera que los datos ordinarios, esto es, en tablas y columnas, y debe ser accesible a los usuarois autorizados.

Regla Nro. 5: La regla del sub-lenguaje Integral
Debe haber al menos un lenguaje que sea integral para soportar la definición de datos, manipulación de datoa, definición de vistas, restricciones de integridad, y control de autorizaciones y transacciones.

Regla Nro. 6: La regla de la actualización de vistas.
Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo.

Regla Nro. 7: La regla del insertar y actualizar.
La capacidad de manejar una base de datos con operandos simples aplica no solo para la recuperación o consulta de datos, sino también para la inserción, actualización y borrado de datos.

Regla Nro. 8 La regla de independencia física.
El acceso de usuarios a la base de datos a través de terminales o programas de aplicación, debe permanecer consistente lógicamente cuando quiera que haya cambios en los datos almacenados, o sean cambiados los métodos de acceso a los datos.

Regla Nro. 9: La regla de independencia lógica
Los programas de aplicación y las actividades de acceso por terminal deben permanecer lógicamente inalteradas cuando quiera que se hagan cambios (según los permisos asignados) en las tablas de la base de datos.

Regla Nro. 10: La regla de la independencia de la integridad
Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el catalogo, no en el programa de aplicación.

Regla Nro. 11: La regla de la distribución
El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de aplicación.

Regla Nro. 12: La regla de la no-subversión
Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de alto nivel (como SQL).