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.
La violación en la "No subversión" se refiere a no modificar esta regla?
ResponderEliminar