Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EL MODELO RELACIONAL
1. INTRODUCCIÓN_____________________________________________________ 56
2. ESTRUCTURA DEL MODELO RELACIONAL____________________________ 57
Dominio y Atributo______________________________________________________
58
Relación______________________________________________________________ 59
Claves________________________________________________________________ 59
Restricciones__________________________________________________________ 60
3. El MODELO RELACIONAL Y LA ARQUITECTURA ANSI__________________ 62
4. LOS VALORES NULOS EN EL MODELO RELACIONAL___________________ 62
5. DINAMICA DEL MODELO RELACIONAL_______________________________ 63
6. ALGEBRA RELACIONAL______________________________________________ 63
OPERADORES PRIMITIVOS____________________________________________ 64
OPERADORES DERIVADOS_____________________________________________ 68
7. CALCULO RELACIONAL______________________________________________ 70
Cálculo Relacional orientado a la
tupla______________________________________ 70
Cálculo relacional orientado a
dominios._____________________________________ 72
8. SQL (STRUCTURED QUERY LANGUAGE)_______________________________ 73
1. INTRODUCCIÓN
La introducción por Codd, muy a finales de los sesenta, de la teoría de
las relaciones en el campo de las bases de datos supuso un importante paso
en la investigación de los SGBD, suministrando un sólido fundamento
teórico para el desarrollo, dentro de este enfoque relacional, de nuevos
productos. El documento de 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 un objetivo fundamental d
el modelo
mantener la independencia de esta estructura lógica respecto al modo de
almacenamiento y a otras características de tipo físico.
El trabajo publicado por Codd (1970), presentaba un nuevo modelo de datos
que perseguía una serie de objetivos, que se pueden resumir en los
siguientes.
Dominio y Atributo
Un dominio D es un conjunto finito de valores homogéneos y atómicos
caracterizados por un nombre; decimos homogéneos porque son todos del
mismo tipo y atómicos porque son indivisibles.
Todo dominio ha de tener un nombre por el cual nos podamos referir a él y
un tipo de datos; así el tipo de datos del dominio "nacionalidades" es una
tira de caracteres de longitud 10.
El dominio "nacionalidades" tiene valores : España, Francia,... Si
descompusiéramos España en E,s,p,... perdería la semántica.
Ejemplos de dominios serían:
· Colores: Es el conjunto de los colores D={rojo, verde, azul,}
· Números de DNI: Es conjunto de números del DNI válidos, formados
por ocho dígitos.
· Edad: Edades posibles de los empleados entre 18 y 80 años.
Un atributo es el papel que tiene un determinado dominio en una relación.
Es muy usual dar el mismo nombre al atributo y al dominio. En el caso de
que sean varios los atributos de una misma tabla definidos sobre el mismo
dominio, habrá que darles nombres distintos, ya que una tabla no puede
tener dos atributos con el mismo nombre.
Por ejemplo los atributos edad_física y edad_mental pueden estar definidos
sobre el mismo dominio edad; o loa atributos precio_compra y precio_venta
pueden estar definidos sobre el mismo dominio de enteros de longitud 5.
Además de los dominios y atributos simples que acabamos de definir, en los
últimos trabajos de algunos autores [Codd (1990), Date (1990)] se
introduce el concepto de dominio compuesto.
Un dominio compuesto se puede definir como una combinación de
dominios simples que tiene un nombre y a la que se pueden aplicar ciertas
restricciones de integridad. Por ejemplo, un usuario puede necesitar
manejar, además de los tres dominios Día, Mes y Año, un dominio compuesto
denominado Fecha que sería la combinación de los tres primeros, y al que
podríamos aplicar las adecuadas restricciones de integridad a fin de que
no aparecieran valores no válidos para la fecha; algo análogo ocurre Con
el nombre y los apellidos, que, según las aplicaciones, puede ser
conveniente tratarlos en conjunto o por separado.
De la misma forma, es posible definir un atributo compuesto Fecha que
tomaría sus valores del dominio compuesto de igual nombre.
Relación
Matemáticamente, una relación se puede definir como un subconjunto del
producto cartesiano de una lista de dominios, donde cada elemento de la
relación, tupla, es una serie de n valores ordenados.
En esta definición matemática de relación, que es la que
aparece en los primeros trabajos de Codd, no se alude a los atributos, es
decir, al papel que tienen los dominios en la relación y, además, en ella
el orden de los valores dentro o de una tupla es significativo. A fin de
evitar estos inconvenientes, se puede dar otra definición de relación más
adecuada al punto de vista de las bases de datos, para lo cual es preciso
distinguir, dos conceptos en la noción de relación :
q Intensión o Esquema de relación, denotado R (Al:D1, A2:D2, ...,
An:Dn) es un conjunto de n pares atributo‑dominio subyacente (Ai:Di)
. La
intensión es la parte definitoria y estática de la relación, que se
corresponde con la cabecera cuando la relación se percibe como una tabla.
Claves
Restricciones
En el modelo relacional, existen restricciones, es decir, estructuras u
ocurrencias no permitidas, siendo preciso distinguir entre restricciones
inherentes y restricciones de usuario.
Restricciones inherentes
Además de las derivadas de la definición matemática de "relación" como
eran que:
· No hay dos tuplas iguales.
· El orden de las tuplas no es significativo.
· El orden de los atributos (columnas) no es significativo.
· Cada atributo sólo puede tomar un único valor del dominio, no
admitiéndose por tanto los grupos repetitivos.
Tenemos que la regla de integridad de entidad establece que "Ningún
atributo que forme parte de la clave primaria de una relación puede tomar
un valor nulo"; esto es, un valor desconocido o inexistente. Esta
restricción debería aplicarse también a las claves alternativas, pero el
modelo no lo exige.
Restricciones de usuario
Podemos considerar la restricción de usuario, dentro del contexto
relacional, como un predicado definido sobre un conjunto de atributos, de
tuplas o de dominios, que debe ser verificado por los correspondientes
objetos para que éstos constituyan una ocurrencia válida del esquema.
Dentro de las restricciones de usuario destaca la restricción de
integridad referencial que dice que los valores de clave ajena deben
coincidir con los de clave primaria asociada a ella o ser nulos.
La integridad referencial es una restricción de comportamiento ya que
viene impuesta por el mundo real y es el usuario quien la define al
describir el esquema relacional; es también de tipo implícito, ya que se
define en el esquema y el modelo la reconoce (o así algunos productos) sin
necesidad de que se programe ni de que se tenga que escribir ningún
procedimiento para obligar a que se cumpla.
EDITORIAL (NOMBRE_E, DIRECCION, CIUDAD, PAIS)
LIBRO (CODIGO, TITULO, IDIOMA, ..., NOMBRE_E)
z
que referencia a EDITORIAL, de modo que debe concordar con la clave
primaria de la relación EDITORIAL o bien ser nulo, porque los libros de
nuestra base de datos deberán pertenecer a una editorial existente, o si
se desconoce la editorial, no se tendrá ningún valor para este atributo.
AUTOR (NOMBRE, NACIONALIDAD, INSTITUCION, ..)
LIBRO (CODIGO, TITULO, IDIOMA, EDITORIAL, ...)
ESCRIBE (NOMBRE, COD LIBRO)
En este ejemplo la relación ESCRIBE posee dos claves ajenas: nombre, que
referencia a la relación AUTOR, y cod_libro, que referencia a la relación
LIBRO; en este caso ninguna de las dos claves ajenas puede tomar valores
nulos, ya que forman parte de la clave primaria de la relación ESCRIBE.
Además de definir las claves ajenas, hay que determinar las consecuencias
que pueden tener ciertas operaciones (borrado y modificación) realizadas
sobre tuplas de la relación referenciada; pudiéndose distinguir, en
principio, las siguientes opciones:
q Operación restringida: esto es, el borrado o la modificación de
tuplas de la relación que contiene la clave primaria referenciada; sólo se
permite si no existen tuplas con dicha clave en la relación que contiene
la clave ajena. Esto nos llevaría, por ejemplo, a que para poder borrar
una editorial de nuestra base de datos no tendría que haber ningún libro
que estuviese publicado por dicha editorial, en caso contrario el sistema
impediría el borrado.
q Operación con transmisión en cascada: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo el borrado o modificación en cascada de las
tuplas de la relación que contienen la clave ajena. En nuestro ejemplo,
equivaldría a decir que al modificar el nombre de una editorial en la
relación EDITORIAL, se tendría que modificar también dicho nombre en todos
los libros de nuestra base de datos publicados por dicha editorial.
q Operación con puesta a nulos: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo poner a nulos los valores de las claves ajenas
de la relación que referencia. Esto nos llevaría a que cuando se borra una
editorial, a los libros que ha publicado dicha editorial y que se
encuentran en la relación LIBROS se les coloque el atributo nombre_e a
nulos. Esta opción, obviamente, sólo es posible cuando el atributo que es
clave ajena admite el valor nulo.
q Operación con puesta a valor por defecto: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo poner el valor por defecto a la clave ajena de
la relación que referencia.
q Operación que desencadena un procedimiento de usuario: en este
caso, el borrado o la modificación de tuplas de la tabla referenciada pone
en marcha un procedimiento definido por el usuario.
6. ALGEBRA RELACIONAL
El aspecto dinámico del modelo relacional en lo que al álgebra se refiere,
lo constituye una colección de operadores que, aplicados a las relaciones,
dan como resultado nuevas relaciones (propiedad de cierre).
Los operandos del álgebra son las relaciones y los operadores se aplican a
las relaciones a fin de formular consultas a la BD.
Son cinco los operadores que podríamos llamar primitivos: los
tradicionales de teoría de conjuntos unión, diferencia y producto
cartesiano, y los especialmente introducidos por Codd de restricción y
proyección; además, existen otros operadores que se pueden considerar
derivados, ya que se pueden deducir de los primitivos.
OPERADORES PRIMITIVOS
A) Unarios
Los operadores unarios tienen como operando una única relación; para su
definición utilizaremos la siguiente notación:
q Restricción o selección
La restricción, también llamada selección, de una relación
mediante una expresión lógica da como resultado una relación formada por
el subconjunto de tuplas que satisface dicha expresión lógica. Se denota
mediante la letra s.
s condicion_de_seleccion (nombre_de_relacion)
q Proyección
P lista_de_atributos (nombre_de_relacion)
B) Binarios
Los operadores binarios se aplican a dos relaciones, y algunos de ellos
(unión, diferencia e intersección) exigen que las dos relaciones
involucradas sean compatibles en sus esquemas. Es decir deben estar
definidas sobre el mismo dominios, lo que no quiere decir que los nombres
de los atributos sean los mismos
q Unión
La unión de dos relaciones compatibles en su esquema es otra relación
definida sobre el mismo esquema de relación cuya extensión estará
constituida por las tuplas que pertenezcan a una de las dos relaciones o a
ambas (se eliminarán las tuplas duplicadas puesto que se trata de una
relación). Se denota mediante el símbolo U.
Relacion1 U Relacion2
Ejemplo de unión de dos relaciones.
AUTOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4
EDITOR
NombreNacionalidadInstitucion
JuanEspañaI2
ChenEEUUI5
SmithEEUUI6
PedroEspañaI3
AUTOR U EDITOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4
ChenEEUUI5
SmithEEUUI6
q Diferencia
La diferencia de dos relaciones compatibles en su esquema es otra relación
definida sobre el mismo esquema de relación, cuya extensión estará
constituida por el conjunto de tuplas que pertenezcan a la primera
relación, pero no a la segunda. Se denota mediante el símbolo -
Relacion1 - Relacion2
AUTOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4
EDITOR
NombreNacionalidadInstitucion
JuanEspañaI2
ChenEEUUI5
SmithEEUUI6
PedroEspañaI3
q Producto cartesiano
Producto cartesiano de dos relaciones de cardinalidades m y n es una
relación cuyo esquema estará definido sobre la unión de los atributos de
ambas relaciones, y cuya extensión estará constituida por las m x n tuplas
formadas concatenando cada tupla de la primera relación con cada una de
las tuplas de la segunda. Se denota por la letra x.
Relacion1 x Relacion2
Ejemplo:
SOCIO
CodigoNombreDireccion
1ElenaMadrid
2ManuelBilbao
LIBRO
LibroAutorEditorial
BDGardarinMcGraw
INFORMIXZeroualRa-Ma
SOCIO x LIBRO
CodigoNombreDireccionLibroAutorEditorial
1ElenaMadridBDGardarinMcGraw
1ElenaMadridINFORMIXZeroualRa-Ma
2ManuelBilbaoBDGardarinMcGraw
2ManuelBilbaoINFORMIXZeroualRa-Ma
OPERADORES DERIVADOS
Los operadores derivados son aquellos que se pueden expresar siempre en
función de operadores primitivos, pero su introducción tiene por fin la
simplificación de las consultas.
q Combinación o join
La combinación de dos relaciones respecto de sus columnas d y k es otra
relación constituida por todos los pares de tuplas concatenadas, tales
que, en cada par, las columnas d y k de las correspondientes tuplas
satisfacen la condición especificada. Si la condición es de igualdad se
denomina combinación por igualdad (también se denomina equijoin o join).
La llamada combinación natural (o join natual) es una combinación por
igualdad donde se ha eliminado en la relación resultante uno de los
atributos idénticos. Es el caso más utilizado de combinación para
relaciones que tienen un atributo común (se suele hablar de join para
referirse a esta posibilidad por ser el caso más usual). Se denota
mediante el símbolo
Relacion1 Relacion2
Ejemplo:
AUTOR
NombreNacionalidadInstitucion
A1N1I1
A2N2I2
A3N3I3
A4N4I4
LIBRO
LibroAutorEditorial
L1A1E1
L2A4E2
L3A1E1
L4A2E3
q Intersección
La intersección de dos relaciones compatibles en sus esquema es otra
relación definida sobre el mismo esquema de relación, cuya extensión
estará constituida por las tuplas que pertenezcan a ambas relaciones. Se
denota por la letra I.
Relacion1 I Relacion2 = Relacion1 (Relacion1 Relacion2)
AUTOR
NombreNacionalidadInstitucion
A1N1I1
A2N2I2
A3N3I3
A4N4I4
EDITOR
NombreNacionalidadInstitucion
A2N2I2
A5N1I5
A6N1I6
A3N2I3
VINO
TipoCosechaCalidad
Albariño1977Bueno
Ulla1978Malo
Condado1977Bueno
Condado1978Bueno
Amandi1978Bueno
CALIDAD_BUENA
CosechaCalidad
1977Bueno
1978Bueno
7. CALCULO RELACIONAL
El cálculo relacional fue propuesto por Codd como alternativa al álgebra.
La diferencia fundamental entre un lenguaje algebraico y un lenguaje
predicativo (denominado así porque utiliza el cálculo de predicados para
la formulación de consultas), es que en el primero hay que especificar que
operadores se tienen que aplicar a las relaciones para obtener un
resultado, mientras que en el segundo sólo es preciso indicar el resultado
que se quiere obtener.
Los lenguajes del cálculo relacional pueden ser de dos tipos: orientados a
la tupla y orientados al dominio.
Características:
· El SQL es manejable bajo dos modalidades distintas: como módulo
interactivo que proporciona un potente lenguaje de consultas interpretadas
y como lenguaje huésped de un lenguaje anfitrión.
· Respeta la independencia entre el nivel conceptual y las
aplicaciones (nivel externo), ya que permite la creación de esquemas
externos personalizados.
· Garantiza una seguridad total de acceso a los datos, gracias a
una distribución selectiva de prioridades de acceso.
· Garantiza la independencia entre el nivel conceptual y el nivel
interno. El usuario no nota la presencia de un índice, es asunto del
administrador el conseguir la optimización de las ejecuciones.
· Permite la gestión multiusuario de los datos. Cada fila a la que
se accede para su modificación queda automáticamente bloqueada por el
sistema. En particular, el SQL contiene el concepto de transacción, que
permite restaurar el estado anterior de la BD en caso de anomalías.
· Independencia de los vendedores. El SQL es ofertado por los
principales vendedores. Los programas que lo utilizan pueden transferirse
de un sistema de gestión de BD a otro con mínimo esfuerzo de conversión.