Está en la página 1de 5

REGLAS DE CODD -1-

REGLAS DE CODD DEL MODELO RELACIONAL

En la dcada de los 80s comenzaron a aparecer numerosos Sistemas de Gestin


de Bases de Datos que se anunciaban como relacionales. Sin embargo estos
sistemas carecan de muchas caractersticas que se consideran importantes en un
sistema relacional, perdiendo muchas ventajas del modelo relacional. Como
ejemplo extremo de esto sistemas relacionales eran simplemente sistemas que
utilizaban tablas para almacenar la informacin, no disponiendo de elementos
como claves primarias, etc.

En 1984 Edgar F. Codd, creador de del Modelo Relacional public las 12 Reglas
que un verdadero Sistema Relacional de Bases de Datos debera cumplir. En la
prctica algunas de estas reglas son difciles de implementar, as que un sistema
podr considerarse ms relacional cuanto ms siga estas reglas.

REGLA 0

Para que un sistema se denomine Sistema de Gestin de Bases de Datos


Relacionales, este sistema debe usar exclusivamente sus capacidades
relacionales para gestionar la base de datos.

REGLA 1: REGLA DE LA INFORMACIN

Toda la informacin en una base de datos relacional se representa explcitamente


en el nivel lgico mediante tablas y slo mediante tablas.

Por tanto los metadatos (diccionario, catlogo) se representan y se


manipulan exactamente igual que los datos de usuario, usando quizs el
mismo lenguaje (ejemplo SQL)

REGLA 2: REGLA DEL ACCESO GARANTIZADO

Para todos y cada uno de los datos (valores atmicos) de una base de datos
relacional se garantiza que son accesibles a nivel lgico utilizando una
combinacin de nombre de tabla, valor de clave primaria y nombre de columna.

Cualquier dato almacenado en una base de datos relacional tiene que


poder ser direccionado unvocamente. Para ello hay que indicar en qu
tabla est, cul es la columna y cul es la fila (mediante la clave primaria).

ING. NERIO VILLALOBOS FINOL


REGLAS DE CODD -2-

REGLA 3: TRATAMIENTO SISTEMTICO DE VALORES NULOS

Se debe disponer de valores nulos (distintos de la cadena vaca, blancos, 0, etc.)


para representar informacin desconocida o no aplicable de manera sistemtica,
independientemente del tipo de datos.

Se reconoce la necesidad de la existencia del valor nulo, el cual podra


servir para representar, o bien, una informacin desconocida (ejemplo, no
se sabe la direccin de un empleado), o bien una informacin que no aplica
(a un empleado soltero no se le puede asignar un nombre de esposa). As
mismo, consideremos el caso de un alumno que obtiene 0 puntos en una
prueba y el de un alumno que no present la prueba.

Hay problemas para soportar los valores nulos en las operaciones


relacionales, especialmente en las operaciones lgicas, para lo cual se
considera una lgica trivaluada, con tres (no dos) valores de verdad:
Verdadero, Falso y null. Se crean tablas de verdad para las operaciones
lgicas:

null AND null = null


Verdadero AND null = null
Falso AND null = Falso
Verdadero OR null = Verdadero, etc.

REGLA 4: CATLOGO DINMICO EN LNEA BASADO EN EL MODELO


RELACIONAL

La descripcin de la base de datos se representa a nivel lgico de la misma


manera que los datos normales, de modo que los usuarios autorizados pueden
aplicar el mismo lenguaje relacional a su consulta, igual que lo aplican a los datos
normales.

Los metadatos se almacenan y se manejan usando el modelo relacional,


con todas las consecuencias.

REGLA 5: REGLA DEL SUBLENGUAJE DE DATOS COMPLETO

Un sistema relacional debe soportar varios lenguajes y varios modos de uso de


terminal (ejemplo: rellenar formularios, etc.). Sin embargo, debe existir al menos
un lenguaje cuyas sentencias sean expresables, mediante una sintaxis bien
definida, como cadenas de caracteres y que sea completo, soportando:

o Definicin de datos

ING. NERIO VILLALOBOS FINOL


REGLAS DE CODD -3-

o Definicin de vistas

o Manipulacin de datos (interactiva y por programa)

o Restricciones de integridad

o Restricciones de transacciones (begin, commit, rollback).

Adems de poder tener interfaces ms amigables para hacer consultas, etc.


siempre debe haber una manera de hacerlo todo de manera textual, que es
tanto como decir que pueda ser incorporada en un programa tradicional. Un
lenguaje que cumple esto en gran medida es SQL.

REGLA 6: REGLA DE ACTUALIZACIN DE VISTAS

Todas las vistas que son tericamente actualizables se pueden actualizar tambin
por el sistema.

El problema es determinar cules son las vistas tericamente actualizables,


ya que no est muy claro.

Cada sistema puede hacer unas suposiciones particulares sobre las vistas
que son actualizables.

REGLA 7: INSERCIN, ACTUALIZACIN Y BORRADO DE ALTO NIVEL

La capacidad de manejar una relacin base o derivada como un solo operando se


aplica no slo a la recuperacin de los datos (consultas), sino tambin a la
insercin, actualizacin y borrado de datos.

Esto es, el lenguaje de manejo de datos tambin debe ser de alto nivel (de
conjuntos). Algunos sistemas de bases de datos inicialmente slo podan
modificar las filas de una tabla de una en una (un registro de cada vez).

REGLA 8: INDEPENDENCIA FSICA DE DATOS

Los programas de aplicacin y actividades del terminal permanecen inalterados a


nivel lgico cualesquiera sean los cambios efectuados, tanto en la representacin
del almacenamiento, como en los mtodos de acceso.

El modelo relacional es un modelo lgico de datos, y oculta las


caractersticas de su representacin fsica.

ING. NERIO VILLALOBOS FINOL


REGLAS DE CODD -4-

REGLA 9: INDEPENDENCIA LGICA DE DATOS

Los programas de aplicacin y actividades del terminal permanecen inalterados a


nivel lgico cualesquiera sean los cambios que se realicen a las tablas base que
preserven la informacin.

Cuando se modifica el esquema lgico preservando informacin (no valdra


por ejemplo, eliminar un atributo) no es necesario modificar nada en niveles
superiores.

Ejemplos de cambios que preservan la informacin:

o Aadir un atributo a una tabla base.

o Sustituir dos tablas base por la unin de las mismas. Usando vistas
de la unin se pueden recrear las tablas anteriores...

REGLA 10: INDEPENDENCIA DE INTEGRIDAD

Los restricciones de integridad especficas para una determinada base de datos


relacional deben poder ser definidos en el sublenguaje de datos relacional, y
almacenables en el catlogo, no en los programas de aplicacin.

El objetivo de las bases de datos no es slo almacenar los datos, sino


tambin sus relaciones y evitar que estas restricciones se codifiquen en los
programas. Por tanto en una base de datos relacional se deben poder
definir restricciones de integridad.

Cada vez se van ampliando ms los tipos de restricciones de integridad que


se pueden utilizar en los Sistemas de Gestin de Bases de Datos
Relacionales, aunque hasta hace poco eran muy escasos.

Como parte de las restricciones inherentes al modelo relacional (forman


parte de su definicin) estn:

o Integridad de Entidad: Toda tabla debe tener una clave primaria.

o Integridad de Dominio: Toda columna de una tabla contendr


valores exclusivamente de un determinado dominio (conjunto de
valores vlidos)

o Integridad Referencial: Toda clave fornea no nula debe existir en


la relacin donde es clave primaria.

ING. NERIO VILLALOBOS FINOL


REGLAS DE CODD -5-

REGLA 11: INDEPENDENCIA DE DISTRIBUCIN

Una Base de Datos Relacional es independencia de la distribucin.

Las mismas rdenes y programas se ejecutan igual en una base de datos


centralizada que en una distribuida.

Las bases de datos son fcilmente distribuibles.

Esta regla es responsable de tres tipos de transparencia de distribucin:

o Transparencia de Localizacin. El usuario tiene la impresin de


que trabaja con una base de datos local. (Regla de Independencia
Fsica)

o Transparencia de Fragmentacin: El usuario no se da cuenta de


que la relacin con que trabaja est fragmentada. (Regla de
Independencia Lgica).

o Transparencia de Replicacin: El usuario no se da cuenta de que


pueden existir copias (rplicas) de una misma relacin en diferentes
lugares.

REGLA 12: REGLA DE LA NO SUBVERSIN

Si un sistema relacional tiene un lenguaje de bajo nivel (un registro a la vez), ese
bajo nivel no puede ser usado para subvertir (saltarse) las reglas de integridad y
las restricciones expresadas en los lenguajes relacionales de ms alto nivel (una
relacin a la cada vez).

Algunos problemas no se pueden solucionar directamente con el lenguaje


de alto nivel.

Normalmente se usa SQL incorporado en un lenguaje anfitrin para


solucionar estos problemas. Se utiliza el concepto de cursor para tratar
individualmente las filas de una tabla. En cualquier caso no debe ser
posible saltarse las restricciones de integridad impuestos al tratar las filas a
ese nivel.

ING. NERIO VILLALOBOS FINOL

También podría gustarte