martes, 5 de junio de 2012

LAS 12 REGLAS DE CODD


Preocupado por los productos que decían ser sistemas gestores de bases de datos relacionales, sin serlo, Codd publica las 12 reglas que debe cumplir, para ser considerado relacional. Estas reglas en la práctica las cumplen pocos sistemas relacionales.
1) Información.
Toda la información de la base de datos debe estar representada explícitamente en el esquema lógico. Es decir, todos los datos están en las tablas.
Toda la información, incluyendo nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen tal información constituyen el Diccionario de Datos.
2) Acceso garantizado.
Todo dato es accesible sabiendo el valor de su clave y el nombre de la columna o atributo que contiene el dato.
Dado un nombre de tabla, dado el valor de la clave primaria, y dado el nombre de la columna requerida, deberá encontrarse uno y solamente un valor.
3) Tratamiento sistemático de los valores nulos.
El DBMS debe permitir el tratamiento adecuado de estos valores
El Sistema Gestor de Bases de Datos Relacionales debe ser capaz de soportar el uso de valores nulos en el lugar de columnas cuyos valores sean desconocidos o inaplicables.
4) Catálogo en línea basado en el modelo relacional.
Los metadatos deben de ser accesibles usando un esquema relacional.
"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 usuarios autorizados".
5) Sublenguaje de datos completo.
Al  menos  debe  de  existir  un  lenguaje  que permita el manejo completo de la base de datos. Este lenguaje, por lo tanto, debe permitir realizar cualquier operación.
Debe haber por lo menos un lenguaje con una sintaxis bien definida que pueda ser usado para administrar completamente la base de datos.
6) Actualización de vistas.
El DBMS debe encargarse de que las vistas muestren la última información.
"Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema mismo".
7) Inserciones, modificaciones y eliminaciones de dato nivel.
Cualquier operación de modificación debe actuar  sobre conjuntos de filas, nunca deben actuar registro a registro.
 Las cláusulas SELECT, UPDATE, DELETE e INSERT deben estar disponibles y operables sobre los registros, independientemente del tipo de relaciones y restricciones que haya entre las tablas.
8) Independencia física.
Los datos deben de ser accesibles desde la lógica de la base de datos aún cuando se modifique el almacenamiento.
El comportamiento de los programas de aplicación y de la actividad de usuarios vía terminales debería ser predecible basados en la definición lógica de la base de datos, y éste comportamiento debería permanecer inalterado, independientemente de los cambios en la definición física de ésta.
9) Independencia lógica.
Los programas no deben verse afectados por cambios en las tablas.
La independencia lógica de los datos especifica que los programas de aplicación y las actividades de terminal deben ser independientes de la estructura lógica, por lo tanto los cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación.
10) Independencia de integridad.
Las reglas de integridad deben almacenarse en la base de datos (en el diccionario de datos), no en los programas de aplicación.
Las reglas de integridad combinadas aseguran que haya Integridad referencial: 
·         Ningún componente de una clave primaria puede tener valores en blanco o nulos. (esta es la norma básica de integridad).
·         Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La combinación 
11) Independencia de la distribución.
El sublenguaje de datos debe permitir que sus instrucciones funciones igualmente en una base de datos distribuida que en una que no lo es.
El soporte para bases de datos distribuidas significa que una colección arbitraria de relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos sistemas operativos y que esté conectada por una variedad de redes, pueda funcionar como si estuviera disponible como en una única base de datos en una sola máquina.
12) No subversión.
Si el DBMS posee un lenguaje que permite el recorrido registro a registro, éste no puede utilizarse para incumplir las reglas relacionales.
Algunos productos solamente construyen una interfaz relacional para sus bases de datos No relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad. Esto no debe ser permitido. 

1 comentario:

  1. La violación en la "No subversión" se refiere a no modificar esta regla?

    ResponderEliminar