Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Modelo de datos relacional.
Codd propone un modelo de datos basado en la teoría de las relaciones, en donde los
datos se estructuran lógicamente en forma de relaciones (tablas), siendo el objetivo
fundamental del modelo el de mantener la independencia de esta estructura lógica
respecto al modo de almacenamiento de los datos. Esta fue una de las principales
diferencias que introdujo el modelo relacional frente al modelo en red y al jerárquico.
Los objetivos que perseguía el modelo de Codd, se pueden resumir en los siguientes:
Independencia física: es decir que no sea necesario cambiar los programas que
utilizan los usuarios para acceder a los datos cuando cambie la forma de
almacenarlos.
Independencia lógica: esto es, que añadir, eliminar o modificar objetos de la
base de datos no repercuta en los programas y/o usuarios que están accediendo a
subconjuntos parciales de los mismos (vistas).
Flexibilidad: en el sentido de poder presentar a cada usuario los datos de la
forma que se prefiera.
Uniformidad: las estructuras lógicas de los datos presentan un aspecto
uniforme, lo que facilita la concepción y manipulación de los datos por parte del
usuario.
Sencillez: las características anteriores, así como unos lenguajes de usuario muy
sencillos, producen como resultado que el modelo sea fácil de comprender y
utilizar por parte del usuario final.
Para conseguir estos objetivos, Codd introduce el concepto de relación (tabla) como
estructura básica del modelo. Todos los datos de una BD se representan en forma de
relaciones cuyo contenido varía en el tiempo. Además propone un conjunto de
operadores que se aplican a las relaciones.
2
Modelo de datos relacional.
Es normal representar una relación mediante una tabla, sin embargo existen una serie de
características que la diferencian del concepto típico de tabla:
No puede haber filas duplicadas.
El orden de las filas es irrelevante.
El orden de los atributos no es significativo.
Para un atributo de una tupla sólo puede haber un único valor, es decir, no se
permiten atributos multivaluados.
A un dominio se le puede asociar ciertas restricciones que deben cumplir los valores de
ese dominio.
Para definir completamente una relación, deberemos especificar, además de los pares
(atributo-dominio) sobre los que se define, las restricciones de integridad que deben
cumplir sus tuplas para que constituyan una ocurrencia válida del esquema. Por tanto,
podemos definir el esquema de relación con más precisión como R(A:D,S), siendo R el
nombre de la relación, A la lista de atributos, D los dominios subyacentes y S las
restricciones de usuario.
3
Modelo de datos relacional.
Se puede definir una base de datos relacional como una ocurrencia válida del esquema
de la base de datos relacional.
Una relación puede tener más de una clave candidata, entre las cuales se deben
distinguir:
Clave primaria: es aquella clave candidata que el usuario escogerá, por
consideraciones ajenas al modelo relacional, para identificar las tuplas de la
relación.
Claves alternativas: son aquellas claves candidatas que no han sido escogidas
como clave primaria.
4
Modelo de datos relacional.
Además de definir las claves externas, hay que determinar las consecuencias que
pueden tener ciertas operaciones (borrado y modificación) realizadas sobre tuplas de la
relación referenciada en la relación donde se define la clave externa, pudiéndose
distinguir las siguientes opciones:
Operación restringida (restrict). El borrado o modificación de tuplas de la
relación referenciada sólo se permite si no existen tuplas con esa clave en la
relación que tiene la clave externa.
Operación con transmisión en cascada (cascade). El borrado o modificación de
tuplas de la relación referenciada conlleva la modificación o el borrado en
cascada de las tuplas de la relación que tiene la clave externa para los valores de
clave primaria usados.
Operación con puesta a nulos (set null). El borrado o modificación de tuplas de
la relación referenciada conlleva poner a nulos los valores de la clave externa.
Operación con puesta a valor por defecto (set default). Igual que la anterior
pero en lugar de poner los valores de la clave externa a NULL, se ponen los
valores por defecto, que deben haber sido definidos al crear la relación.
Existen también las restricciones entre elementos, entre las que cabe destacar:
Restricción interrelación sobre atributos (column/table constraint(restricción)).
Se define en el esquema de la correspondiente relación mediante un par
S=<A,P> donde A es el conjunto de atributos involucrados en la restricción,
denominado contexto de la restricción, y P es un predicado definido sobre A. Si
el conjunto de atributos pertenece a más de una relación, este tipo de restricción
se conoce como restricción interrelación.
5
Modelo de datos relacional.
Por ejemplo la tabla que determina el resultado de las operaciones lógicas AND, OR y
NOT sería:
X Y X And Y X Or Y Not X
V V V V F
V F F V F
V N N V F
F V F V V
N V N V N
F N F N V
N F F N N
F F F F V
N N N N N
Para las operaciones aritméticas el resultado de operar un valor nulo con otro valor
cualquiera se considera siempre nulo.
Para los operadores de comparación surgen problemas serios, por ejemplo es 3 >
NULL, la única respuesta posible es quizás (que creo que se corresponde con el valor
NULL).
6
Modelo de datos relacional.
Aunque el estándar es muy claro en este punto, los productos SQL comerciales pueden
producir resultados diferentes.
Como puede verse en el esquema, el modelo relacional teórico se adapta bastante bien a
la arquitectura ANSI con las siguientes excepciones:
Si dispone de las oportunas autorizaciones, cualquier usuario puede acceder
tanto a relaciones base como a vistas, mientras que en la arquitectura ANSI para
un usuario la base de datos estaba limitada al esquema externo –vistas -, ya que
el esquema conceptual (relaciones base) es responsabilidad del administrador y
sólo pueden ser definidas y manejadas por éste.
Aunque las vistas se corresponden con los esquemas externos de ANSI, en el
modelo relacional no todas las vistas son actualizables.
En la práctica, muchos productos no responden a la arquitectura de tres niveles,
ya que la definición del esquema conceptual y del esquema interno no está
claramente diferenciadas.