You are on page 1of 58

U.D.

2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Unidad Didctica 2: El Modelo Relacional: ESTTICA Y DINMICA

0. ESTTICA Y DINMICA DEL MODELO RELACIONAL

PARTE I ESTTICA

1. HISTORIA DE LAS BASES DE DATOS RELACIONALES


2. ESTRUCTURA DEL MODELO RELACIONAL
2.1 RELACIONES, DOMINIOS, ATRIBUTOS
2.2 DEFINICIN FORMAL DE RELACIN
2.3 CLASIFICACIN DE LAS RELACIONES
2.4 CLAVES

3. RESTRICCIONES
3.1 RESTRICCIONES INHERENTES
3.2 RESTRICCIONES SEMNTICAS

4. ESQUEMA DE RELACIN Y ESQUEMA RELACIONAL


5. EL MODELO RELACIONAL Y LA ARQUITECTURA ANSI
6. LOS VALORES NULOS EN EL MODELO RELACIONAL
6.1 VALORES NULOS
6.2 PROBLEMAS DE LA LGICA TRIVALUADA Y VALORES POR DEFECTO
6.3 LGICA CUATRIVALUADA

7. LAS 12 REGLAS DE CODD PARA LOS SISTEMAS RELACIONALES

-1-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

PARTE II DINMICA

8. QU ES LA DINMICA DEL MODELO RELACIONAL?


9. EL LGEBRA RELACIONAL
9.1 OPERADORES FUNDAMENTALES
Seleccin y Proyeccin
Unin, Diferencia y Producto cartesiano.
Renombrado
9.2 DEFINICIN FORMAL DE LGEBRA RELACIONAL
9.3 OPERADORES DERIVADOS:
Interseccin, Combinacin y Divisin.
9.4 OPERADORES ADICIONALES DE CONSULTA
Agrupacin y Cierre transitivo
9.5 OPERADORES RELACIONALES CON VALORES NULOS
Combinacin externa, ES_POSIBLE
9.6 OPERADORES ADICIONALES DE MANIPULACIN
Asignacin, Borrado, Insercin y Modificacin

10 EL CLCULO RELACIONAL
10.1 CLCULO RELACIONAL ORIENTADO A TUPLAS
10.2 CLCULO RELACIONAL ORIENTADO A DOMINIOS

-2-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

0. ESTTICA Y DINMICA DEL MODELO RELACIONAL


El modelo relacional como modelo de datos se caracteriza por una esttica y por una dinmica.
La esttica se ocupa de definir los elementos u objetos que va a manejar el modelo. Y la dinmica trata de las
operaciones que se pueden realizar sobre los objetos del modelo.
Comenzaremos hablando de la esttica del modelo.
El objetivo fundamental del modelo es mantener la independencia de la estructura lgica respecto al modo de
almacenamiento y a otras caractersticas de tipo fsico.
Los datos en este modelo se estructuran en forma de relaciones o tablas, conjunto de filas o tuplas que cumplen
determinadas condiciones.
Posteriormente trataremos la dinmica que se concretar, fundamentalmente, en el uso del algebra relacional.

-3-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

1. HISTORIA DE LAS BASES DE DATOS RELACIONALES


El modelo relacional fue introducido por Codd a finales de los aos sesenta y primeros setenta. Proviene de la
aplicacin de la teora matemtica de las relaciones a las Bases de Datos.
La relacin es la estructura bsica del modelo.
Hay un conjunto de operadores que se aplican a las relaciones. Algunos de estos operadores son clsicos de la teora de
conjuntos, mientras que otros fueron introducidos para el modelo relacional.
Las operaciones en el modelo relacional se formalizan a travs de dos lenguajes creados por CODD en 1972, el lgebra
relacional y el clculo relacional.

1.1 LOS COMIENZOS


El modelo relacional fue sido muy criticado en sus orgenes debido a la poca eficiencia de los primeros productos
comerciales. No obstante puede ser que en su fecha de aparicin no exista el soporte tecnolgico para poderla
implementar eficientemente.
Aunque hemos situado la aparicin del modelo relacional en 1970, y a lo largo de la dcada surgieron prototipos como el
Sistema R

(IBM)

los primeros sistemas comerciales no aparecen hasta finales de la dcada de los 70, entre ellos destacamos:

Query By Example (QBE)

IBM

1978

Oracle

Oracle

1979

SQL/DS

IBM

1981

DB2

IBM

1982

INGRES

U. de Berkeley

1980

DB

QBE es en realidad un lenguaje de acceso relacional a ficheros VSAM de IBM por lo que no se considera un verdadero
SGBDR.
Es por tanto ORACLE DB el que se considera al primer SGBDR comercial. Soporta como lenguaje de definicin y
manipulacin de datos SQL.
INGRES, derivado de un prototipo de la Universidad de Berkeley que dispona de un lenguaje basado en el clculo
relacional denominado QUEL. Fue el preferido durante mucho tiempo de las universidades americanas.

-4-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

POSTRELACIONAL

RELACIONAL

PRE
RELACIONAL

1.2 TABLA EVOLUTIVA DEL MODELO


1968-70

Aparicin del modelo

1970 .......

Desarrollos tericos

1973-78

Prototipos (Ingres, Sistema R, etc. )

1978

QBE

1979

Oracle

1980

Ingres

1981

SQL/DS

IBM

1982

DB2

IBM

1986

SQL/ANS

1987

SQL/ISO

1989

SQL Addendum (SQL-89) (SQL-1)

1989

Manifiesto de los SGBDO

1990

Modelo Relacional Versin 2

1990

Manifiesto de los SGBO-3G

1992

SQL 92 (SQL-2)

1995

Manifiesto 3

1998

SQL-3

1999

SQL/MM SQL/99 (SQL-1999)

2003

SQL-2003

2006

SQL-2006

2008

SQL-2008

En la etapa pre-relacional los SGBD se basan en los modelos CODASYL y Jerarquico.


En la segunda etapa que hemos calificado como periodo relacional los productos de este tipo van sustituyendo a los
basados en los anteriores modelos.
En la tercera etapa, llamada post-relacional, aparecen nuevos paradigmas o modelos de datos como el orientado a
objetos, aunque todava parece quedar lejana la sustitucin de los modelos relacionales por estos nuevos modelos.
-5-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Aunque las Bases de Datos relacionales no son las nicas existentes en el mercado, en el ao 2000 estas suponan ms del
90% del total.

ACTIVIDADES
2.1. Actualizar los datos de evolucin del SQL a fecha de 2013. Indicando las caractersticas ms importantes aadidas
por cada revisin
2.2. Elaborar una relacin de fabricantes de SGBDR que utilicen SQL

-6-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

2. ESTRUCTURA DEL MODELO RELACIONAL


Definimos aqu los elementos bsicos del modelo que prcticamente coinciden con los definidos para el Modelo E-R.

2.1 RELACIONES, DOMINIOS, ATRIBUTOS


RELACIONES
La relacin es el elemento bsico del modelo, se puede representar como una tabla y sirve tanto para representar los
objetos como asociaciones entre ellos:
Nombre tabla
Atributo 1

Atributo 2

Atributo n

XXX

XXX

XXX

tupla 1

XXX

XXX

..

XXX

tupla 2

..

XXX

XXX

..

XXX

tupla 3

En una tabla se distinguen los siguientes elementos:


- Nombre
- Conjunto de columnas denominadas atributos que representan propiedades de la relacin o tabla.
- Conjunto de filas denominadas tuplas, que contienen los valores que toma cada uno de los atributos para cada
elemento de la relacin. Son los elementos del conjunto que representa la relacin.
Una relacin se puede representar en forma de tabla, aunque tiene una serie de elementos caractersticos que la distinguen
de la tabla, ya que no admite filas duplicadas, las filas y las columnas no estn ordenadas y es plana, es decir en el cruce
de una fila y una columna solo puede haber un valor. Estas propiedades derivan de su definicin matemtica.
El nmero de atributos de la relacin se llama GRADO. No vara con el tiempo.
El nmero de tuplas de la relacin se llama CARDINALIDAD. Es normal que vare en el transcurso del tiempo.
En una tabla se distinguen una cabecera que define la estructura de la tabla, es decir, sus atributos con los dominios
subyacentes, y un cuerpo que est formado por un conjunto de tuplas que varan en el tiempo.
En la siguiente tabla se compara la terminologa relacional con la utilizada con respecto a tablas y ficheros
RELACIN

TABLA

FICHERO

Tupla
Atributo
Grado
Cardinalidad

Fila
Columna
N de columnas
N de filas

Registro
Campo
N de campos
N de registros

-7-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

DOMINIOS
Un dominio D es un conjunto finito de valores homogneos y atmicos que identificamos por un nombre.
Los valores son homogneos cuando son del mismo tipo y atmicos porque son indivisibles con respecto al modelo, es
decir, perderan la semntica que tienen asociada. No obstante, esta exigencia de atomicidad ha cambiado en la versin 2
del modelo relacional donde distingue entre dominios simples y compuestos.
Los dominios pueden definirse por comprensin o por extensin.
Un dominio se define por comprensin cuando se hace a travs de una propiedad que cumplen todos los datos
asociados al mismo.
Un ejemplo sera el de las edades de las personas empleadas, que se puede definir como un entero de dos cifras entre
18 y 65.
Y por extensin cuando se enumeran todos y cada uno de esos datos.
Por ejemplo las edades de los alumnos de primaria expresadas en aos estarn siempre en el conjunto { 6, 7, 8, 9, 10, 11,
12, 13 }
Un dominio COMPUESTO se puede definir como una combinacin de dominios simples a la que se pueden aplicar
ciertas restricciones de integridad. Por ejemplo, un usuario puede necesitar manejar, adems de los tres dominios Da, Mes
y Ao, un dominio compuesto por ellos denominado Fecha, al que podremos aplicar las restricciones de integridad
adecuadas a fin de que no aparecieran valores no vlidos para la fecha; algo anlogo ocurre con el nombre y los apellidos
que, segn las aplicaciones puede ser conveniente tratarlos en conjunto o por separado.

ATRIBUTOS
Los atributos son las propiedades de las relaciones y se definen sobre los dominios.
Un atributo es el papel que juega un determinado dominio en una relacin. Si D es el dominio de un atributo A, esto se
anota como dom(A).
D = dom(A)
El universo de discurso U de una base de datos relacional est compuesto por un conjunto finito y no vaco de atributos,
A1, A2, ........, An, estructurados en relaciones; cada atributo toma sus valores de un nico dominio, llamado dominio
subyacente y varios atributos pueden tener el mismo dominio subyacente.
Es usual dar el mismo nombre al atributo y al dominio subyacente. Si varios atributos de una tabla estn definidos sobre el
mismo dominio habr que darles nombres distintos, ya que el nombre de atributo no puede repetirse en una misma tabla.
Se puede hablar tambin de atributos COMPUESTOS, Fecha sera un atributo de este tipo que tomara sus valores en el
dominio compuesto de igual nombre.
-8-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Ejemplo 1.
Si tenemos la relacin Autor que contiene los datos relativos a autores de artculos sobre bases de datos representados en
la siguiente tabla:
Nombre

Nacionalidad

Date, C.J.
Codd, E.F.
Ceri, S.
Saltor, F.

Norteamericana
Norteamericana
Italiana
Espaola

Institucin
Relational Institute
Relational Institute
Politcnico de Miln
U.P.C.

Los atributos son Nombre, Nacionalidad e Institucin. El Grado de la relacin es 3 (nmero de atributos).
A los dominios sobre los que toman valores los atributos se les ha asignado el mismo nombre y sern
Nombres: nombres con un mximo de 25 caracteres.
Nacionalidades: Espaola, Francesa, Italiana, Norteamericana, Inglesa,
Instituciones: U.P.C., U.P.M., Politcnico de Miln, Relational Institute
Las tuplas sern cada una de las filas de la tabla.
La cardinalidad es 4 (nmero de filas o tuplas de la tabla)

CUESTIONES A RESOLVER
2.3 Dos atributos distintos pueden tomar sus valores en un mismo dominio?.
2.4 Un atributo puede tomar valores en dos dominios?.
2.5 Los dominios estn asociados a los atributos y a las relaciones o se puede decir que son independientes?.

2.2 DEFINICIN FORMAL DE RELACIN


DEFINICIN 1
Una RELACIN definida sobre un conjunto de dominios

D1, ..., Dn no necesariamente distintos es un subconjunto del

producto cartesiano de los n dominios.


DEFINICIN 2
Si definimos primero un ESQUEMA de relacin como:
-

un NOMBRE de relacin R

un conjunto de n ATRIBUTOS { A }

un conjunto de n DOMINIOS no necesariamente distintos { D }, que se corresponden con los atributos { A }

-9-

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

y representamos el ESQUEMA como:

R( A1 : D1, A2 : D2 , ... , An : Dn )
Al conjunto de pares ( A : D ) se le suele llamar CABECERA DE RELACIN.
i

Por tanto, podemos decir tambin que:

ESQUEMA = NOMBRE + CABECERA

A partir de aqu definimos una RELACIN o Estado de Relacin r( R ) como un conjunto de m elementos denominados
tuplas { t }.
j

Cada tupla es un conjunto de pares

( < A1 : v1j >, ... , < Ai : vij >, ... , < An : vnj > )
donde cada A es el nombre de un atributo y v es un valor del correspondiente dominio D .
i

ij

El conjunto de tuplas t donde cada tupla es un conjunto de n pares ( atributo:valor ) recibe tambin el nombre de CUERPO
j

DE LA RELACIN.
Y representamos la Relacin o Estado de Relacin de la siguiente manera:

r( R ) = tj { (< A1 : v1j >, ... , < Ai : vij >, ... , < An : vnj >) : vij Di }
La RELACIN o Estado de Relacin r( R ) est constituida por el esquema y el cuerpo de la relacin:

< esquema, cuerpo >


donde el cuerpo es un conjunto de tuplas que, en un instante dado, satisface el correspondiente esquema de relacin.

CUESTIONES A RESOLVER
2.6. Todas las relaciones tienen nombre?

- 10 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

2.3 CLASIFICACIN DE LAS RELACIONES


Las relaciones se pueden clasificar con respecto a varios criterios, un primer criterio es si tienen o no nombre.
Las relaciones nominadas, a su vez, pueden ser persistentes y temporales.
PERSISTENTES: son aquellas relaciones cuya definicin (esquema de relacin) permanece en la base de datos,
borrndose solamente mediante una accin explcita del usuario.
Las relaciones persistentes se dividen en:
Relaciones base (se corresponden con el nivel conceptual de la arquitectura ANSI). Existen por s mismas, no en
funcin de otras relaciones, y se cran especificando explcitamente su esquema de relacin (nombre y conjunto de pares:
atributo/dominio). Sus extensiones (ocurrencias de relacin), al igual que su definicin, tambin se encuentran
almacenadas.
Vistas (se corresponden con el nivel externo de la arquitectura ANSI). Son relaciones derivadas que se definen dando un
nombre a una expresin de consulta. Se podra decir que son relaciones virtuales (como ventanas sobre otras relaciones, en
el sentido de que no tienen datos almacenados, sino que lo nico que se almacena es su definicin en trminos de otras
relaciones con nombre, las cuales pueden ser relaciones base, otras vistas o instantneas.
Instantneas (se corresponden con el nivel interno de la arquitectura ANSI). Son relaciones derivadas al igual que las
vistas, es decir, se definen en trminos de otras relaciones nominadas, pero tienen datos propios almacenados, los cuales
son el resultado de ejecutar la consulta especificada o de guardar una relacin base.
La instantneas no se actualizan cuando cambian los datos de las relaciones sobre las que estn definidas, pero se
refrescan, es decir, se renueva sus datos, cada cierto tiempo, de acuerdo con lo indicado por el usuario en el momento
de su creacin. Son por tanto, slo de lectura, no pudiendo ser actualizadas por el usuario, sino nicamente refrescadas
por el sistema.
TEMPORALES.
A diferencia de las relaciones persistentes, una relacin temporal desaparece de la base de datos en un cierto momento sin
necesidad de una accin de borrado especfica del usuario: por ejemplo, al terminar una sesin o una transaccin. En
general, una relacin temporal suele ser una relacin autnoma (en el sentido de que no se deriva de otra, al igual que las
relaciones base), pero tambin podra ser una vista o una instantnea.

Las relaciones sin nombre son los resultados de las consultas que no se materializan sino que se entregan al usuario que
ha realizado la consulta, y pueden ser tanto resultados intermedios como finales; en consecuencia las relaciones no
nominadas son siempre temporales.

- 11 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Existen otras clasificaciones con su propia terminologa. Por ejemplo DATE (1995) habla de relaciones de expresin que
son aquellas que se derivan de otras. Relaciones almacenadas que son las que tienen representacin directa en el
almacenamiento fsico.
En terminologa del estndar ISO 92 se habla de tablas persistentes y temporales. Las persistentes se almacenan en
memoria secundaria y permanecen all cuando termina la sesin en la que fueran creadas, mientras que las temporales
solo se materializan y tienen existencia durante un periodo de tiempo especfico (una sesin o una transaccin). Las tablas
temporales se dividen a su vez en globales y locales.

2.4 CLAVES
Una CLAVE de una relacin es un conjunto de atributos que identifican unvoca y mnimamente cada tupla de la
relacin.
Una clave CANDIDATA es cada uno de los posibles conjuntos que puede ser clave de una relacin.
Por la propia definicin de relacin no existen dos tuplas iguales y,por tanto, al menos el conjunto de todos los atributos
tiene que identificar unvocamente a cada tupla. Si no cumple la restriccin de minimalidad se eliminaran aquellos atributos
que lo impediesen.
Por ejemplo, en la relacin AUTOR (Nombre, Nacionalidad, Institucin) podemos tomar como clave candidata el atributo
Nombre, suponiendo que no existen dos autores con el mismo nombre.
Una relacin puede tener ms de una clave candidata, entre las cuales se hacen dos grupos:
-

Clave PRIMARIA: clave candidata que el usuario escoger como clave de la relacin.

Claves ALTERNATIVAs : todas las claves candidatas que no han sido escogidas como clave primaria.

Se denomina clave AJENA de una relacin R1 a un conjunto no vaco de atributos cuyos valores han de coincidir con los
valores de la clave candidata de otra relacin R2 (R1 y R2 pueden coincidir).
La clave ajena y la clave candidata con la que est relacionada han de estar definidas sobre el mismo dominio.

- 12 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

3. RESTRICCIONES
En el modelo relacional, al igual que en otros modelos, existen restricciones, es decir, estructuras u ocurrencias no
permitidas, siendo preciso distinguir entre restricciones inherentes y restricciones semnticas o de usuario.
Los datos almacenados en la base de datos han de adaptarse a las estructuras impuestas por el modelo (por ejemplo, no
tener tuplas duplicadas) y han de cumplir las restricciones de usuario a fin de constituir una ocurrencia vlida del esquema.

3.1 RESTRICCIONES INHERENTES


Como en cualquier modelo de datos, el modelo relacional tiene una serie de restricciones impuestas que quitan flexibilidad
a la hora de representar el mundo real.
Entre las restricciones inherentes del modelo estarn las condiciones que ya hemos sealado para establecer las
condiciones en las que una tabla puede considerarse una relacin:
-

No hay dos tuplas iguales

El orden de las tuplas no es significativo

El orden de los atributos no es significativo

Cada atributo solo puede tomar un valor sobre el dominio en el que est definido.

Por ejemplo si en la relacin AUTOR (Nombre, Nacionalidad, Institucin) aadimos un nuevo atributo Idiomas que indica
las lenguas en las que escribe cada autor tendramos una tabla del siguiente tipo:
Nombre

Nacionalidad

Date, C.J.
Codd, E.F.
Ceri, S.
Saltor, F.

Norteamericana
Norteamericana
Italiana
Espaola

Institucin
Relational Institute
Relational Institute
Politcnico de Miln
U.P.C.

Idiomas
Ingls, Espaol
Ingls
Italiano, Ingls
Espaol, Cataln

Esta tabla no sera una relacin ya que no cumple la condicin de que cada atributo tome un nico valor en su dominio,
pues el atributo Idiomas puede ser multivaluado para cada autor.
La conversin (normalizacin) de esta tabla en una relacin consiste en repetir los valores de los atributos Nombre,
Nacionalidad, Institucin para cada uno de los idiomas de un autor.
De la tabla inicial pasamos entonces a:
Nombre
Date, C.J.
Date, C.J.
Codd, E.F.
Ceri, S.
Ceri, S.
Saltor, F.
Saltor, F.

Nacionalidad
Norteamericana
Norteamericana
Norteamericana
Italiana
Italiana
Espaola
Espaola

Institucin
Relational Institute
Relational Institute
Relational Institute
Politcnico de Miln
Politcnico de Miln
U.P.C.
U.P.C.
- 13 -

Idioma
Ingls
Espaol
Ingls
Italiano
Ingls
Espaol
Cataln

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

CUESTIONES A RESOLVER
2.7 Cul ser la clave de esta relacin ?

Adems de las restricciones inherentes derivadas de la definicin de relacin existe una restriccin inherente importante que
se denomina Regla de integridad de entidad, la cual impone que: Ningn atributo que forme parte de la clave
primaria de una relacin puede tomar un valor nulo.
Esta restriccin que debera aplicarse tambin a las claves alternativas no es exigida por el modelo en este caso.

ACTIVIDADES
2.8 Comprobar si en SQL Server 2012 funcionan las restricciones inherentes, incluida la regla de integridad de entidad.
2.9 Se exige que las claves alternativas no tomen valores nulos?.

3.2 RESTRICCIONES SEMNTICAS


Las restricciones semnticas o de usuario permiten a estos reflejar, lo ms fielmente posible, los condicionantes del mundo
real.
Estas restricciones no son muchas veces suficientes para captar la riqueza semntica del universo de discurso que
queremos modelar. Por ello las restricciones deberan ser incluidas en un programa de aplicacin, escrito en un lenguaje
estndar (C, Cobol, ) con sentencias del LMD o LDD embebidas. O bien programarlas con las facilidades no estndar
permitidas por algunos productos comerciales.
Las restricciones semnticas principales son:

Clave primaria (PRIMARY KEY). Permite declarar un atributo o un conjunto de atributos como clave primaria de una
relacin, por lo que sus valores no se podrn repetir ni se admitirn los nulos (ausencia de valor). La obligatoriedad de
la clave primaria es una restriccin inherente del modelo relacional; sin embargo, la declaracin de un atributo como
clave primaria de una relacin es una restriccin semntica que responde a la necesidad del usuario de imponer que
los valores del conjunto de atributos que constituyen la clave primaria no se repitan en la relacin ni tampoco tomen
valores nulos.

Ni el SQL92 ni los productos relacionales obligan a la declaracin de una clave primaria para cada relacin, no imponen por
tanto la restriccin inherente de que no existan tuplas duplicadas (el modelo terico s la impone), aunque permiten la
definicin de la misma. Nosotros distinguimos entre la restriccin inherente de obligatoriedad de la clave primaria y la
restriccin semntica que le permite al usuario indicar qu atributos forman parte de la clave primaria.

Unicidad (UNIQUE) mediante la cual se indica que los valores de un conjunto de atributos (uno o ms) no pueden
repetirse en una relacin. Esta restriccin permite la definicin de claves alternativas.
- 14 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Obligatoriedad (NOT NULL) de uno o ms atributos, con lo que se indica que el conjunto de atributos no admite
valores nulos.

Integridad referencial (FOREIGN KEY). Si una relacin R2 (relacin de referencia) tiene un descriptor que es una
clave candidata de la relacin R1 (relacin referenciada), todo valor de dicho descriptor debe concordar con un valor de
la clave candidata referenciada de R1 o bien ser nulo. El descriptor es por tanto una clave ajena de la relacin R2. Y las
relaciones R1 y R2 no son necesariamente distintas. Adems cabe destacar que la clave ajena puede ser tambin
parte de la clave primaria de R2.

La siguiente figura muestra la concordancia de los valores del atributo Editorial de la relacin LIBRO con los de la clave
primaria Nombre_e de la relacin EDITORIAL

EDITORIAL
Nombre_e
Rama
McGraw-Hill
Paraninfo
Morgan Kauffman

Direccin
Canillas 144
Basauri 17
Virtudes 7
Trinity Sq. 18

Pas

Ciudad

Espaa
Espaa
Espaa
EEUU

Madrid
Madrid
Madrid
Los ngeles

LIBRO
Cdigo

Ttulo

Editorial

00345D7
1022305
4939H2
0045307

Inteligencia Artificial
Fundamentos de BD
Turbo C++
Virus informticos

Paraninfo
Rama
McGraw-Hill
Nulo

01123J3

Sistema informticos

Rama

Fig. Clave ajena de la tabla LIBRO que referencia a EDITORIAL


La integridad referencial es una importante restriccin semntica que viene impuesta por el mundo real, siendo el usuario
quien la define al describir el esquema relacional, y el modelo la reconoce sin necesidad de que se programe ni de que se
tenga que escribir ningn procedimiento para obligar a su cumplimiento.
La siguiente figura muestra una forma de representar las claves ajenas. En el EJEMPLO_1, el atributo Editorial de la
relacin LIBRO es clave ajena que referencia a EDITORIAL, de modo que sus valores deben concordar con la clave primaria
de la relacin EDITORIAL o bien ser nulos (los libros deben pertenecer a una editorial existente o, si se desconoce la
editorial, tendrn valor nulo para ese atributo).

- 15 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

En el EJEMPLO_2, la relacin ESCRIBE posee dos claves ajenas: Nombre que referencia a la relacin AUTOR y Cod_libro
que referencia a la relacin LIBRO; en este caso ninguna de las dos claves ajenas puede tomar valores nulos, ya que
forman parte de la clave primaria de la relacin ESCRIBE.

EJEMPLO_1

EDITORIAL ( Nombre_e, Direccin, Ciudad, Pais )

LIBRO ( Cdigo, Ttulo, Idioma, , Editorial )


clave ajena

EJEMPLO_2

AUTOR ( Nombre, Nacionalidad, Institucin, )

LIBRO ( Cdigo, Ttulo, Idioma, Editorial, )

ESCRIBE ( Nombre, Cod_Libro )


clave ajena clave ajena

Hay que observar que todo atributo de una clave primaria compuesta de una relacin R2, si no est definido sobre un
dominio compuesto, debe ser clave ajena de R2 con referencia a una relacin R1 cuya clave primaria sea simple.
Adems de definir las claves ajenas, hay que determinar las consecuencias que pueden tener ciertas operaciones (borrado y
modificacin) realizadas sobre tuplas de la relacin referenciada; pudindose distinguir, segn el estndar SQL92, las
siguientes opciones:

Operacin restringida (NO ACTION)


El borrado de tuplas de la relacin que contiene la clave referenciada (o la modificacin de dicha clave) slo se permite
si no existen tuplas con ese valor en la relacin que contiene la clave ajena.
Aplicando esto a nuestro Ejemplo_1, esto significa que para borrar una editorial de nuestra base de datos no debera
haber ningn libro que estuviese publicado por esa editorial, en caso contrario el sistema impedira el borrado.
Es la opcin vlida por defecto, es decir, si no se indica ninguna opcin, el sistema tomar esta.
- 16 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operacin de transmisin en cascada (CASCADE)


El borrado de tuplas de la relacin que contiene la clave candidata referenciada (o la modificacin de dicha clave) lleva
consigo el borrado (o modificacin) en cascada de las tuplas de la relacin que contiene la clave ajena.
En el Ejemplo_1, equivaldra a decir que, al modificar el nombre de una editorial en la relacin EDITORIAL, se
modificara automticamente dicho nombre en todos los libros de la base de datos publicados por dicha editorial.
Anlogamente ocurrira en el caso de borrado de la clave referenciada, al borrar una editorial se borrarn todos los
libros de esa editorial.

Operacin con puesta a nulos (SET NULL)


El borrado de tuplas de la relacin que contiene la clave candidata referenciada (o la modificacin de dicha clave) lleva
consigo poner a nulos los valores de las claves ajenas de la relacin que referencia.
Por tanto en el Ejemplo_1, esto nos lleva a que cuando se borra una editorial, a los libros que ha publicado dicha
editorial y que se encuentran en la relacin LIBROS se les pone automticamente a nulos el atributo Nombre_E. Esta
opcin, obviamente, slo es posible cuando el atributo que es clave ajena admite valores nulos.

Operacin con puesta a valor por defecto (SET DEFAULT)


El borrado de tuplas de la relacin que contiene la clave candidata referenciada (o la modificacin de dicha clave) lleva
consigo poner el valor por defecto a la clave ajena de la relacin que referencia. Valor por defecto que habra sido
definido al crear la tabla correspondiente.

ACTIVIDAD
2.10 Comprobar en SQL Server 2012 las operaciones descritas para las tablas del ejemplo.

La opcin seleccionada en caso de borrado es independiente de la de modificacin, es decir, las opciones de borrado y de
modificacin pueden ser distintas.
Cuando las restricciones de integridad referencial afectan a varias tablas hay que tener en cuenta que la combinacin de
opciones que se definan puede provocar graves problemas de integridad.
Adems de las restricciones que acabamos de exponer, existen en el modelo relacional otras restricciones que podramos
llamar de rechazo, en las que el usuario formula una condicin mediante un predicado definido sobre un conjunto de
atributos, de tuplas o dominios, el cual debe ser verificado por los correspondientes objetos en toda operacin de
actualizacin para que el nuevo estado constituya una ocurrencia vlida del esquema; en caso de que la operacin intente
violar la condicin se impide que la operacin se lleve a cabo (es decir, se produce un rechazo de la operacin).
En el modelo relacional se pueden distinguir dos restricciones de rechazo distintas, segn la condicin afecte a un nico
elemento de la base de datos (por ejemplo, a una relacin) o a ms de uno:

- 17 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Verificacin (CHECK): comprueba, en toda operacin de actualizacin, si el predicado es cierto o falso y, en el


segundo caso, rechaza la operacin. La restriccin de verificacin se define sobre un nico elemento (incluyndose en
la definicin de dicho elemento) y puede o no tener nombre.

Asercin (ASSERTION): acta de forma idntica a la anterior, pero se diferencia de ella en que puede afectar a
varios elementos (por ejemplo, a dos relaciones distintas) y su definicin; por tanto, no va unida a la de un
determinado elemento, por lo que siempre ha de tener un nombre, ya que la asercin es un elemento u objeto ms del
esquema que tiene vida por s mismo.

Las restricciones de rechazo que se definen sobre un solo dominio, relacin o atributo, diremos que son restricciones
intraelemento, y las que se definen sobre varios elementos se dice que son restricciones interelementos.
Ademas de las restricciones declarativas vistas hasta ahora, existen las restricciones procedimentales como los
disparadores o desencadenadores (triggers en ingls), para los que tendremos que escribir el procedimiento asociado a los
mismos.
Date (1995) propone clasificar las reglas de integridad del modelo relacional en cuatro categoras atendiendo a los
elementos sobre los que se definen:
-

Reglas de dominio

Reglas de atributo

Reglas de relacin

Reglas de base de datos

Propone la siguiente sintaxis para expresar las reglas de integridad:

CREATE INTEGRITY RULE nombre_regla


restriccin
[ ON ATTEMPTED VIOLATION accin ];

Como podemos observar, considera que una regla de integridad est constituida, adems de por su nombre, por dos
componentes, restriccin y accin.
La restriccin propiamente dicha que establece la condicin que deben cumplir los datos.
La accin es la respuesta a la violacin. Las acciones a tomar pueden ser: rechazar las operaciones, informar al usuario,
corregir el error con acciones complementarias, etc.
Tambin es importante en una restriccin el momento en el que esta se verifica dentro de una transaccin. As, si el modo
de verificacin es inmediato, la restriccin se verificar al finalizar cada sentencia, mientras que si es diferido se verificar al
finalizar la transaccin.
En el modelo relacional existen, adems de las expuestas hasta el momento otras restricciones que son las dependencias
que estn relacionadas con la Normalizacin.
- 18 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

4. ESQUEMA DE RELACIN Y ESQUEMA RELACIONAL


En un esquema de relacin deberemos especificar los atributos y dominios sobre los que se define la relacin, as como
las restricciones de integridad que se deben cumplir para que la relacin constituya una ocurrencia vlida del esquema; es
decir, aquellas restricciones que afectan a cada uno de los elementos que forman parte del correspondiente esquema de
relacin (restricciones intra-elementos).
Por tanto, podremos definir un esquema de relacin como:

R < A: D, S >
siendo

R = nombre de la relacin
A = lista de atributos
D = dominios sobre los que estn definidos los atributos
S = restricciones de integridad, intra-elementos

El esquema de la base de datos relacional ser una coleccin de esquemas de relacin y de restricciones de integridad
inter-elementos. Esto se puede representar:

E < { Ri }, { Ii } >
donde

E = nombre del esquema relacional


{ R } = conjunto de esquemas de relacin
i

{ I } = conjunto de restricciones de integridad inter-elementos


i

Podemos definir una Base de Datos Relacional siguiendo la terminologa de Date (1995) como un esquema
relacional junto a una ocurrencia vlida de dicho esquema, es decir, una ocurrencia que cumple todas las
restricciones descritas en el esquema.

- 19 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

5. EL MODELO RELACIONAL Y LA ARQUITECTURA ANSI


El modelo relacional puede examinarse, en el marco de la arquitectura ANSI, a los tres niveles del mismo: interno,
conceptual y externo.
En el nivel conceptual de la arquitectura ANSI se encuentran, adems de los dominios y restricciones inter-elementos, las
relaciones base (relaciones persistentes no derivadas) que se denominan tambin tablas reales, ya que tienen una
representacin directa en el almacenamiento interno.
En el nivel externo de la arquitectura ANSI estn las vistas, tablas virtuales de las que slo se almacena su definicin, y no
tienen, por tanto, representacin directa en el almacenamiento.
Por lo que respecta al esquema interno, el modelo relacional no especifica absolutamente nada al tratarse de un modelo
lgico.
En general, cada registro del esquema interno se corresponde con una tupla de las relaciones base, pero no tendra por qu
haber una correspondencia biunvoca, ya que un registro podra estar constituido por varias tuplas de distintas relaciones o,
viceversa, una tupla podra dividirse en varios registros. Adems, cada producto ofrecer los elementos internos, por
ejemplo, ndices, agrupamientos, particiones, etc., que el instrumentador considere ms oportunos con el fin de mejorar el
rendimiento del sistema.
La siguiente figura da una visin global del modelo relacional dentro del marco definido por la arquitectura ANSI, mostrando,
adems ciertas sentencias del lenguaje SQL que ayudan a definir los elementos correspondientes en los tres niveles. Las
sentencias que ataen al nivel interno variarn de un producto a otro, ya que no estn estandarizadas.

SQL - Manipulacin
VISTA 1

NIVEL

EXTERNO

VISTA N

VISTA 2

CREATE VIEW
L

TABLA BASE

CONCEPTUAL

CREATE TABLE

TABLA BASE

TABLA BASE

- 20 -

INTERNO

CREATE INDEX

CREATE PARTITION

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Vemos, por tanto que el modelo relacional terico se adapta bastante bien a la arquitectura ANSI, con las siguientes
excepciones:

Al usuario se le permite ver, si tiene las correspondientes autorizaciones, tanto las relaciones base como las vistas,
mientras que en la arquitectura ANSI, para un usuario, la base de datos est limitada al esquema externo vistas ya
que el esquema conceptual, relaciones base, es responsabilidad exclusiva del diseador o administrador de la base de
datos, y slo pueden ser definidas y manejadas por este.

Aunque las vistas se corresponden con los esquemas externos de ANSI y estos pueden actualizarse, en el modelo
relacional no todas las vistas son actualizables.

En la prctica, muchos productos no responden a la arquitectura a tres niveles, ya que las definiciones del esquema
conceptual y del esquema interno no estn claramente diferenciadas.

- 21 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

6. LOS VALORES NULOS EN EL MODELO RELACIONAL


En el modelo Relacional y, en otros modelos se admite la existencia de valores nulos que de una manera muy simplista
podemos decir que significan ausencia de valor.
En realidad la ausencia de valor puede tener distintos matices.
Adems la existencia de estos valores extraos modifican el comportamiento normal de operaciones relacionales
En los apartados que siguen definiremos formalmente los valores nulos y su comportamiento ante determinadas
operaciones.

6.1 VALORES NULOS


Se puede definir el valor nulo como una seal utilizada para representar informacin desconocida, inaplicable, inexistente,
no vlida, no proporcionada, indefinida, etc.
Una entidad puede no tener ningn valor aplicable (inaplicable) para un atributo.
Por ejemplo, el atributo Numero-Apartamento no se aplica cuando la residencia es una casa. O el atributo TituloUniversitario es inaplicable en aquellas personas que no tienen ttulo universitario.
Una entidad puede tener un atributo desconocido.
Por ejemplo de una persona desconocemos su Telefono. Ello puede ser porque no tenga o porque no lo conocemos en este
momento.
Por ejemplo si de una persona no conocemos su Altura, est claro que es debido a que no lo conocemos y no a que no
tenga un valor para dicho atributo

Codd (1990) propone abandonar el trmino valor nulo y sustituirlo por el de marca, ya que:
-

Los SGBDR no deberan tratar las marcas como si fueran cualquier otro valor.

Al introducir la lgica cuatrivaluada, se desdobla el concepto de valor nulo.

Algunos lenguajes anfitriones tratan objetos que denominan nulos pero con diferente significado al de las
marcas.

Es ms fcil decir marcado y sin marcar,que anulado, nulificado, etc.

La necesidad de los valores nulos o marcas en las bases de datos es evidente por diversas razones:
-

Crear tuplas (filas) con ciertos atributos desconocidos en ese momento, por ejemplo, el ao de edicin de un libro.

Aadir un nuevo atributo a una relacin existente; atributo que, en el momento de aadirse, no tendra ningn
valor para las tuplas de la relacin.

Atributos inaplicables a ciertas tuplas, por ejemplo, la editorial para un artculo (ya que un artculo no tiene
editorial) o la profesin de un menor.
- 22 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

El tratamiento de valores nulos exige definir, de manera especfica para dichos valores :
-

Operaciones de comparacin.

Operaciones aritmticas.

Operaciones algebraicas.

Funciones de agregacin.

y obliga tambin a introducir nuevos operadores especiales.


En las operaciones de comparacin se plantea el problema de saber si dos valores nulos son o no iguales. No
podemos decir que es cierto que sean iguales puesto que estaramos afirmando que no son tan desconocidos; pero
tampoco podramos decir que es falso que sean iguales; son tan desconocidos; la nica solucin que nos queda es decir
que quizs sean iguales.
Surge, de esta manera, una lgica distinta a la Lgica Bivaluada habitual (L2V), la denominada Lgica Trivaluada (L3V).

LGICA TRIVALUADA
En la figura siguiente aparecen las tablas de verdad para la LGICA TRIVALUADA, donde existen los valores C (cierto), F
(falso) y Q (quizs).
Adems, se incluye un nuevo operador denominado ES_POSIBLE (MAYBE), que aplicado al valor de una expresin
quizs, da como resultado cierto.

AND
C
Q
F

C
C
Q
F

Q
Q
Q
F

F
F
F
F

OR
C
Q
F

C
C
C
C

Q
C
Q
Q

F
C
Q
F

NOT
C
Q
F

F
Q
C

Tablas de Verdad de la Lgica Trivaluada

Date (1995) seala que es preciso tambin introducir otros dos operadores especiales:
ES_NULO (IS_NULL), que toma el valor cierto si el operando es nulo y falso en caso contrario.
SI_NULO (IF_NULL),, que se aplica a dos operandos y devuelve el valor del primero, salvo que sea nulo, en cuyo caso
devuelve el valor del segundo.
En cuanto a las operaciones aritmticas con valores nulos, se considera nulo el resultado de sumar, restar,
multiplicar o dividir cuando alguno de los operandos toma valor nulo.
Tambin los valores nulos inciden en algunas operaciones algebraicas.
Otro tema importante es el de la evaluacin de la igualdad o desigualdad de dos tuplas; dos tuplas se considerarn
duplicadas si, atributo a atributo ambos son iguales y no nulos o ambos nulos. Esta definicin de tupla duplicada afecta,
- 23 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

como es lgico, a la insercin y a la modificacin de relaciones en lo que se refiere a la clave primaria, y tiene, por tanto,
incidencia en varios operadores del lgebra relacional.
Otro aspecto a tener en cuenta es al realizacin de operaciones de agregacin con el fin de aplicar funciones
aritmticas o estadsticas, por ejemplo, suma, varianza, media, etc. En estos casos hay que establecer muy claramente qu
hacer con los valores nulos al efectuar los clculos, ya que nos podemos llevar sorpresas como, por ejemplo, en la media,
donde el valor nulo puede entrar en el clculo como si fuese cero o puede no entrar, dando lugar a distintos valores para la
media.
Tambin cabe destacar la importancia de considerar los valores nulos a fin de evitar perdidas de informacin a la hora de
realizar consultas a la base de datos, para lo cual aparecen nuevos operadores.
Si bien los valores nulos no son un concepto exclusivo del modelo relacional, ha sido en el contexto de este modelo donde
se ha abordado su estudio de manera sistemtica y donde se estn realizando ms investigaciones a fin de formalizar su
tratamiento.

6.2 PROBLEMAS DE LA LGICA TRIVALUADA Y VALORES POR DEFECTO


La lgica trivaluada, como seala DATE (1995), puede causar problemas psicolgicos a los usuarios, porque atenta contra
la intuicin. En efecto, si un usuario realizara las consultas siguientes:

Libros editados en 1995,

Libros editados antes de 1995, y

Libros editados despus de 1995,

Tendra, en nuestra lgica habitual, que haber recuperado todos los libros de la base de datos; pero esto puede no ser as,
ya que no habra recuperado los libros cuyo ao de edicin se desconoce, es decir, cuyo ao de edicin es nulo.
Date (1995) destaca cmo expresiones que son siempre ciertas en el mundo real:
-

X = X, siendo X una variable

p OR NOT (p), siendo p una expresin condicional,

no se cumplen en la L3V, lo que afecta a las equivalencias algebraicas que se utilizan en las leyes de transformacin en la
optimizacin de consultas.
Como admite el propio COD (1990) esta parte del modelo relacional no presenta un fundamento terico tan
slido como las otras; por lo que Codd y Date (1993) han propuesto aadir a la L3V capacidades de inferencia que
permitan detectar tautologas (expresiones que siempre son ciertas en ausencia de valores nulos).
Los problemas de la L3V se agravan an ms si cabe en la prctica, ya que los productos relacionales no siempre
implementan los valores nulos de una manera consistente. Por estos motivos algunos expertos, como Date, propugnan
evitar los valores nulos mediante la utilizacin de valores por defecto. Este enfoque, familiar en algunos viejos lenguajes
de programacin, ha sido criticado en Codd (1990) por los siguientes motivos:
- 24 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

No resuelve toda la problemtica asociada al tratamiento de valores nulos, sino que simplemente proporciona un
medio para representar informacin desconocida.

Al representarse mediante un valor (y no por medio de un concepto especial), fuerza a comprobar las
dependencias funcionales y otro tipo de dependencias al introducir la informacin.

La representacin del hecho de que un valor es desconocido, no slo depende del tipo de datos de cada columna,
sino que tambin puede variar entre columnas de un mismo tipo de datos.

Las distintas tcnicas para tratar estos valores por defecto quedan embebidas en los programas, con pocas
posibilidades de que sean uniformes y sistemticas y estn bien documentadas.

Cada valor desconocido se trata, en definitiva, como si fuera cualquier otro valor.

Representa un retroceso hacia enfoques no sistemticos y ad hoc propios de la era pre-relacional.

Date rebate esta postura diciendo que los valores nulos dan un falso sentido de seguridad que resulta peligroso. Este debate
se prolonga ya casi quince aos, desde que Date empezara su cruzada contra los valores nulos y Codd se empeara en
considerar la L3V como una parte integrante del modelo relacional; cosa que Date no admite, llegando a afirmar que una
relacin que contenga valores nulos no puede considerarse una relacin. Adems de Hugh Darwen, coautor de
algunos libros con Date, recientemente varios expertos han expresado su acuerdo con el enfoque de los valores por defecto,
por ejemplo McGovernan (1994).
Por otro lado Johnston (1995) se pone al lado de Codd, demostrando que la lgica multivaluada es tan segura, desde el
punto de vista matemticos, como la L2V,y que se sacrifica potencia expresiva con el enfoque conservador de Date. As,
si Date (1990) demuestra que el operador lgico de la L3V NOT no es lo mismo que el no en el lenguaje natural,
Johnston (1995) afirma que los operadores lgicos AND, OR, IMPLICA de la L2V no se corresponden con lo que
entendemos en lenguaje natural por y, o o implica. Segn este autor mientras que Codd y Date discuten desde el
punto de vista de la lgica matemtica, la cuestin de la intuitividad es objeto de la lgica filosfica, de ah los problemas de
interpretacin.
Nosotros, sin entrar en esta polmica, proponemos disear bases de datos evitando, en la medida de lo posible,
los valores nulos (especialmente en el paso del esquema E/R al relacional) y especificar siempre que se pueda la
obligatoriedad de los atributos (NOT NULL). Si, a pesar de esto, por motivos de semntica o de eficiencia, nos vemos
obligados a aceptar los valores nulos, recomendamos prestar mucha atencin a las operaciones que se
realizan, as como llevar a cabo un estudio pormenorizado del tratamiento que hace de los valores nulos el SGBDR que se
va a utilizar. La aceptacin de valores nulos lleva consigo, muchas veces, un aumento en la dificultad de depuracin de los
programas que actan sobre la base de datos.

- 25 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

6.2 LGICA CUATRIVALUADA


La lgica cuatrivaluada surge de la necesidad de diferenciar dos tipos importantes de valores nulos:

inaplicables, esto es, que no tienen sentido, por ejemplo, la editorial para un artculo o la profesin de un menor.

desconocidos aplicables, es decir, que momentneamente son desconocidos pero deberan existir y puede

de

que, en un determinado momento, lleguen a conocerse por ejemplo, el ao de edicin de un libro -.


Esta diferencia, que puede parecer acadmica en exceso, es de hecho muy importante para reflejar con ms precisin la
semntica del universo del discurso a tratar y para responder de manera ms inteligente a las consultas que se realicen
sobre la base de datos.
En la lgica cuatrivaluada se distingue, por tanto, entre un valor nulo o marca que representa informacin desconocida pero
aplicable, que denominaremos, a, de otro que representa informacin inaplicable, que denominaremos i.
En este caso las operaciones aritmticas quedan modificadas como sigue:
Si

& es un operador aritmtico (suma, resta, divisin o multiplicacin) y x un valor no nulo de la base de datos se

cumple que:
x&a=a&x=a
x&i=i&x=i
a&i=i&a=i
a&a=a
i&i=i

En la figura siguiente se muestran las tablas de verdad para la lgica cuatrivaluada, donde por A y por I se representan
los valores de verdad de la lgica cuatrivaluada, segn COD (1990).

AND
C
A
F
I

C
C
A
F
I

A
A
A
F
I

F
F
F
F
F

I
I
I
F
I

OR
C
A
F
I

C
C
C
C
C

A
C
A
A
A

F
C
A
F
F

I
C
A
F
I

Tablas de Verdad de la Lgica Cuatrivaluada segn CODD

- 26 -

NOT
C
A
F
I

F
A
C
I

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Existe, sin embargo, cierto desacuerdo en torno al tema, puesto que hay autores como GESSERT (1990), que al considerar
que el valor lgico inaplicable es el menos verdadero, proponen ligeras variaciones en las anteriores tablas de verdad, las
cuales se muestran a continuacin:

AND
C
A
F
I

C
C
A
F
I

A
A
A
F
I

F
F
F
F
I

NOT
C
A
F
I

I
I
I
F
I

OR
C
A
F
I

F
A
C
I

INV
C
A
F
I

C
C
C
C
C

A
C
A
A
A

F
C
A
F
F

I
C
A
F
I

I
F
A
C

Tablas de Verdad de la Lgica Cuatrivaluada segn GESSERT

Veamos, con un ejemplo, las consecuencias de emplear estas tablas de verdad en la siguiente consulta sobre una tabla de
Documentos, que pueden ser artculos o libros:

(IDIOMA = INGLES) OR (EDITORIAL = RAMA)


A.

Si se trata de un artculo en italiano, el primer termino se evaluara como falso, mientras que el segundo sera
inaplicable (al carecer de sentido que un artculo tenga editorial), siendo el resultado falso, tanto para Codd como para
Gessert, ya que ambos utilizan la misma tabla de verdad para la operacin booleana OR.

B.

Si se trata de un libro en italiano cuya editorial desconocemos, dara resultado aplicable en ambos enfoques, al ser el
primer trmino falso y el segundo aplicable.

Sin embargo, para la consulta:

(IDIOMA = INGLES) AND (EDITORIAL = RAMA)


A.

Si se trata de un artculo en italiano, el primer termino se evaluara como falso, mientras que el segundo sera
inaplicable y el resultado falso para Codd, e inaplicable para Gessert;. Ya que Gessert considera inaplicable una
conjuncin si y solo si cualquiera de sus trminos es inaplicable.

B.

Si se trata de un libro en italiano dara como resultado falso para ambos.

- 27 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Adems, la diferencia de Gessert (1990) con respecto a Codd (1990) es que el primero introduce un nuevo operador de
negacin denominado inverso (INV), tal que el inverso de aplicable resulta ser el valor falso y viceversa.

En general se pueden distinguir actualmente dos opiniones respecto de la lgica cuatrivaluada:


1. Hay autores como Date que piensan que la lgica cuatrivalauda es demasiado compleja (ya lo afirmaba de la
trivaluada) y que no debe ser incorporada a los SGBDR, ya que resulta de valor limitado comparado con el esfuerzo
intelectual de implementacin que supone.
Tambin es de esta opinin McGovernan (1994), que destaca el elevado nmero de conectivas que implica la lgica
multivaluada.
En efecto, dicho nmero es igual a

nn para las conectivas unarias, por lo que en la L2V es 4, para L3V es 27, y

para L4V es 256.


E igual a n

n+2

para las conectivas binarias que en el caso de L2V es 16, para L3V es 19683 y para L4V da ms de

cuatro billones. Este experto seala tambin que la L4V puede llevarnos a un camino sin retorno, ya que si al insertar
una fila en una tabla falta un valor y no sabemos si es inaplicable o aplicable, hara falta un quinto valor para
distinguirlo, y as sucesivamente.
2. Hay otros expertos como Gessert (1990), sin embargo, que creen que la lgica cuatrivaluada puede ser afrontada con
un coste intelectual relativamente modesto y que compensa su implantacin. El mismo Codd sugiere que se presente
como una opcin en los SGBD relacionales.

Por lo que respecta a los principales vendedores que se encuentran representados en los comits de estandarizacin
(especialmente en el ANSI X3H2), Melton y Simon (1993) sealan como el DataBase Systems Sudy Group (DBSSG)
ha identificado ms de 29 tipos de valor nulo, por lo que no son partidarios de introducir una lgica
cuatrivaluada, sino que de momento propugnan no ir ms all de la lgica trivaluada.
Hace unos aos se propuso introducir una clase de nulos en el lenguaje SQL3 para permitir mltiples valores nulos, pero
esta propuesta fue descartada.

- 28 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

7. LAS 12 REGLAS DE CODD PARA LOS SISTEMAS RELACIONALES


La discusin sobre el mejor modelo de datos, y la inclusin de caractersticas relacionales en productos no relacionales en
su origen (sistemas renacidos, en palabras de Codd), hizo surgir un debate en torno a si la aplicacin del marchamo
relacional estaba o no justificada en muchos casos; CODD (1985) publica sus famosas 12 reglas, analizando algunos de los
productos comerciales en el marco de las mismas, llegando a la conclusin de la escasa relacionabilidad de la mayora de
los productos que se ofrecan en el mercado.
Dichas reglas son las siguientes:
1.

Representacin de la informacin: Toda informacin en una base de datos relacional debe representarse
explcitamente a nivel lgico, y de manera nica, por medio de valores en tablas. Podramos decir que ste es el
principio bsico del modelo relacional.

2.

Acceso garantizado: Todo dato debe ser accesible mediante una combinacin de un nombre de tabla, un valor de
su clave y el nombre de una columna. Es una forma de insistir en la obligatoriedad de la clave primaria.

3.

Tratamiento sistemtico de valores nulos: Los valores nulos, informacin desconocida o inaplicable, han de ser
tratados sistemticamente por el sistema, el cual ha de ofrecer las facilidades necesarias para su tratamiento.

4.

Catlogo activo en lnea basado en el modelo relacional: La representacin de la metainformacin (descripcin


de la base de datos) debe ser igual a la de los otros datos, y su acceso debe poder realizarse por medio del mismo
lenguaje relacional que se utiliza para los dems datos; es decir, el modelo de datos para al metainformacin debe ser
tambin el relacional.

5.

Sublenguaje de datos completo: Debe existir un lenguaje que permita un completo manejo de la base de datos
(definicin de datos, definicin de vistas, manipulacin de datos, restricciones de integridad, autorizaciones y gestin
de transacciones).

6.

Actualizacin de vistas: Toda vista tericamente actualizable debe poder ser actualizada por el sistema.

7.

Inserciones, modificaciones y eliminaciones de alto nivel: Todas las operaciones de manipulacin de datos
(consulta, insercin, modificacin y borrado) deben operar sobre conjuntos de filas (lenguaje no navegacional). Los
sistemas existentes hasta el momento en el que surge el modelo relacional actuaban registro a registro obligando al
programador de una base de datos a navegar por la misma.

8.

Independencia fsica de los datos: El acceso lgico a los datos debe mantenerse incluso cuando cambien los
mtodos de acceso o la forma de almacenamiento.
Es decir, el modo en que se almacenan los datos no debe influir en su manipulacin lgica y, por tanto, los usuarios
que acceden a esos datos no han de modificar sus programas por cambios en el almacenamiento fsico.

9.

Independencia lgica de los datos. Los programas de aplicacin no deben verse afectados por cambios realizados
en las tablas que estn permitidos tericamente y que preserven la informacin.

- 29 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Es decir, aadir, eliminar o modificar cualquier elemento de la base de datos no debe repercutir en los programas y/o
usuarios que estn accediendo a subconjuntos parciales de los mismos (vistas).
10. Independencia de la integridad: Las reglas de integridad de una base de datos deben ser definibles por medio del
sublenguaje de datos relacional y habrn de almacenarse en el catlogo de la base de datos (metabase), no en los
programas de aplicacin.
11. Independencia de la distribucin: debe existir un sub-lenguaje de datos que pueda soportar bases de datos
distribuidas sin alterar los programas de aplicacin cuando se distribuyan los datos por primera vez o se redistribuyan
estos posteriormente.
12. Regla de la no subversin: Si un SGBD soporta un lenguaje de alto nivel que permite el acceso fila a fila, ste no
puede utilizarse para saltarse las reglas de integridad expresadas por medio del lenguaje de ms alto nivel.

Hay que advertir que no todas las reglas tienen igual importancia, y que los SGBDR suelen cumplir, como mximo, 8 de
ellas. Segn Codd, slo si se satisfacen las 12 reglas se aprovecharan los beneficios potenciales que ofrece el modelo
relacional.
Los objetivos perseguidos por CODD eran comunes a otros modelos de Bases de Datos y a las ya mencionadas
Independencia fsica y lgica, podemos aadir los siguientes:
Flexibilidad: en cuanto que se puede ofrecer a cada usuario los datos de una forma adecuada a cada aplicacin.
Uniformidad: las estructuras lgicas de los datos presentan un aspecto uniforme (tablas), lo que facilita la concepcin y
manipulacin de la base de datos por parte de los usuarios.
Sencillez: las caractersticas anteriores, as como unos lenguajes de usuario muy sencillos producen como resultado que
el modelo de datos relacional sea fcil de comprender y de utilizar por parte del usuario final.

- 30 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

8. QU ES LA DINMICA DEL MODELO RELACIONAL?


En este bloque de la unidad didctica se estudia la DINMICA del modelo Relacional.
El modelo relacional como modelo de datos se caracteriza por una esttica y por una dinmica.
La DINMICA se ocupa de definir las operaciones que se pueden realizar sobre los objetos del modelo.
El modelo relacional propuso, en sus inicios, dos modos diferentes para el acceso y manipulacin de la informacin: visin
conjuntista y visin predicativa de los datos que dan lugar respectivamente a dos tipos de lenguajes:

Algebraicos: se caracterizan porque los cambios de estado se especifican mediante operaciones, cuyos
operandos son relaciones y cuyos resultados son otra relacin. Se basan en lgebra de predicados y se conocen
tambin como lgebra relacional.

Predicativos: los cambios de estado se especifican mediante predicados que definen un estado objetivo sin
indicar las operaciones que hay que realizar para llegar al mismo. Se basan en el clculo de predicados y se
conocen como clculo relacional. Se dividen en dos tipos: orientados a tuplas y orientados a dominios.

Los distintos lenguajes desarrollados se basan en estos lenguajes base: lgebra y clculo relacional.
En cualquier caso, el lgebra y el clculo relacional son equivalentes pues para cualquier expresin del lgebra
relacional podemos encontrar una expresin del clculo que obtiene la misma informacin.
El SQL, lenguaje que estudiaremos en este curso, se basa ms en el lenguaje algebraico

- 31 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

9. EL LGEBRA RELACIONAL
El lgebra relacional es un lenguaje de consulta formal.
Existen cinco operaciones (operadores) que defini originariamente CODD cuando propuso el modelo relacional (1970).
Los operadores que podramos llamar primitivos: los tradicionales de teora de conjuntos unin, diferencia y
producto cartesiano, y los operadores especiales para el modelo, definidos por Codd y que son de seleccin y
proyeccin.
Adems, existen otros operadores que se pueden considerar derivados, ya que se pueden deducir de los primitivos que
son interseccin, combinacin ( producto theta, producto natural ) y divisin.
Todas estos operadores, aplicados a una o varias relaciones, producen una nueva relacin..
En total los operadores relacionales se pueden resumir en 8: union, interseccin, diferencia, producto cartesiano, seleccin,
proyeccin, combinacin y divisin.
Los operadores se pueden clasificar segn distintos criterios:

Operadores tradicionales de conjuntos y especiales (no conjuntistas): en el primer grupo estaran la unin,
interseccin, diferencia y producto cartesiano; en el segundo la seleccin, proyeccin, combinacin y divisin.

Operadores primitivos y derivados segn sean esenciales o se puedan deducir de los anteriores

Operadores unarios y binarios segn acten sobre una o dos relaciones

El siguiente cuadro sirve de resumen de la clasificacin de los operadores del lgebra Relacional

PRIMITIVOS
CONJUNTISTAS

Seleccin
Proyeccin

UNARIOS

BINARIOS

NO
CONJUNTISTAS

Producto Cartesiano
Unin
Diferencia

Combinacin
Divisin

Interseccin

NO
CONJUNTISTAS
DERIVADOS

CONJUNTISTAS

- 32 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Consideremos la Base de Datos Libros con las siguientes relaciones que se utilizar en los ejemplos:

Tabla AUTOR

Tabla EDITOR

Nombre

Nacionalidad

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Institucin

Nombre

Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Chen, P.
Yao, L.
Ceri, S.

Tabla SOCIO
Cdigo
1
2

Norteamericana
Norteamericana
Italiana

Institucin
ER Institute
U.N.Y.
Politcnico de Miln

Tabla LIBRO
Nombre

Elena Manrique
Manuel Garca

Direccin

Libro

Villovela, 25
P. Vergara, 56

DB Systems
Basi di Dati
SQL Standard

Tabla AUTOR_EDITORIAL
Nombre

Nacionalidad

Date, C.J.
Cervera, J.
Saltor, F.
Ceri, S.
Costilla, C.
Codd, E.
Cervera, J.

Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana
Espaola

Nacionalidad
Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana

Autor
Date, C.J.
Ceri, S.
Date, C.J.

Editorial
Addison
Clup
Addison

Tabla EDITORIAL
Editorial

Editorial

Addison
Rama
Paraninfo
Clup
Diaz de Santos
Prentice Hall
Addison

Addison
Rama
Paraninfo
Clup
Dias de Santos
Prentice Hall

Tabla TEMAS

Tabla AUTOR_ARTIC
Nombre
Date, C.J.
Cervera, J.
Saltor F.
Ceri, S.
Costilla, C.
Codd, E.

Nacionalidad

Tema_P
Bases de datos
Bases de datos
Diseo
Diseo
Diseo lgico

Num_Art
27
10
14
9
8
29

- 33 -

Tema_S
Fundamentos
Diseo
Diseo conceptual
Diseo lgico
Diseo relacional

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

9.1 OPERADORES FUNDAMENTALES


Los operadores fundamentales o primitivos, como los hemos llamado anteriormente, del lgebra Relacional son

CONJUNTISTAS

Seleccin
Proyeccin

UNARIOS

BINARIOS

NO
CONJUNTISTAS

Producto Cartesiano
Unin
Diferencia

Una representacin grfica que puede ayudar a tener una primera aproximacin del significado de las operaciones
relacionales fundamentales es la siguiente

Producto (
Seleccin ( )

x )

Proyeccin ( )

a
b
c

Unin (U )

Diferencia ( --- )

- 34 -

x
y

a
a
b
b
c
c

x
y
x
y
x
y

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador SELECCIN
La seleccin de una relacin mediante una expresin lgica o predicado de seleccin da como resultado una relacin
formada por el subconjunto de tuplas que satisface dicha expresin.
La relacin resultante constituye un subconjunto horizontal de r( R ).
Representamos la operacin de SELECCIN mediante la siguiente expresin

predicado ( R )
donde

predicado

Smbolo que representa a la operacin


Condicin que deben cumplir las tuplas a seleccionar
Nombre de la relacin sobre la que ejecutamos la operacin

En la condicin se permiten comparaciones utilizando los smbolos

=, , <, <=, >, >=


Adems pueden combinarse varios predicados para formar un predicado compuesto, utilizando los operadores
booleanos AND, Y ( ); OR, O ( ) o NOT, NO ( )

Ejemplo 9.1: Elegir las tuplas de la relacin AUTOR en las que la nacionalidad es espaola

Nacionalidad = Espaola ( AUTOR )


Las tuplas que deseamos son las que se han resaltado en amarillo
Nombre

Nacionalidad

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Institucin
Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Por tanto el resultado de la seleccin pedida ser


Nombre

Nacionalidad

Date, C.J.
Ceri, S.

Norteamericana
Italiana

- 35 -

Institucin
Relational Institute
Politcnico de Miln

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador PROYECCIN
La proyeccin de una relacin R sobre un conjunto de atributos, es una nueva relacin en la que se han eliminando ciertos
atributos. Y se eliminan las tuplas resultado duplicadas.
Representamos la operacin de PROYECCIN mediante la siguiente expresin

atributos

(R)

donde

atributos

Smbolo que representa a la operacin


Lista de atributos que queremos que aparezcan en el resultado, separados por comas
Nombre de la relacin sobre la que ejecutamos la operacin

Ejemplo 9.2: Obtener las nacionalidades de la relacin AUTOR.

Nacionalidad

( AUTOR )

Las tuplas que deseamos son las que se han resaltado en amarillo
Nombre

Nacionalidad

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Institucin
Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Por tanto el resultado de la seleccin pedida ser


Nacionalidad

Nacionalidad

Norteamericana
Espaola
Italiana
Espaola

Norteamericana
Espaola
Italiana

Eliminando duplicados del resultado queda

- 36 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador UNION
La unin de dos relaciones R y S es otra relacin definida sobre el mismo esquema de relacin constituida por las tuplas
que pertenezcan a una de ellas o a ambas relaciones. Eliminando las tuplas duplicadas
Para que se pueda realizar la unin de dos relaciones estn han de ser compatibles, es decir han de tener el mismo
nmero de atributos iguales y colocados en el mismo orden. Si no fueran iguales en nombre se pueden renombrar. El que
los atributos sean iguales se puede expresar tambin diciendo que tengan los mismos dominios, es decir, el i-simo
atributo de R tiene el mismo dominio que el i-simo atributo de S.
El sentido que tiene la unin de relaciones es el mismo que el de la unin de conjuntos. Y se puede expresar como sigue:
r(R US)={t/tRtS}
Representamos la operacin de UNIN mediante la siguiente expresin

RUS
donde

R
U
S

Nombre de la primera relacin


Smbolo que representa la operacin
Nombre de la segunda relacin

Ejemplo 9.3: Determinar todos los autores o editores.

AUTOR U EDITOR
Las tuplas que deseamos son las siguientes

Tuplas
EDITOR

-eTuplas
AUTOR

Nombre

Nacionalidad

Institucin

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Chen, P.

Norteamericana

ER Institute

Yao, L.

Norteamericana

U.N.Y.

Ceri, S.

Italiana

Politcnico de Miln

Una vez eliminadas las duplicidades, el resultado de la unin es el siguiente


Nombre
Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.
Chen, P.
Yao, L.

Nacionalidad
Norteamericana
Espaola
Italiana
Espaola
Norteamericana
Norteamericana
- 37 -

Institucin
Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.
ER Institute
U.N.Y.

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador DIFERENCIA
La diferencia de dos relaciones compatibles es otra relacin definida sobre el mismo esquema de la relacin constituida por
el conjunto de tuplas que pertenecen a R, pero no a S.
Para que se pueda realizar la diferencia de dos relaciones estn han de ser compatibles, es decir han de tener el mismo
nmero de atributos iguales y colocados en el mismo orden. Si no fueran iguales en nombre se pueden renombrar.
El sentido que tiene la diferencia de relaciones es el mismo que el de la unin de conjuntos. Y se puede expresar como
sigue: r ( R -- S ) = { t / t R t S }

Representamos la operacin de DIFERENCIA mediante la siguiente expresin

R -- S
donde

R
-S

Nombre de la primera relacin


Smbolo que representa la operacin
Nombre de la segunda relacin

Ejemplo 9.4 : Encontrar los autores que no son editores

AUTOR EDITOR
Las tuplas que deseamos son las siguientes

Tuplas
EDITOR

Tuplas
AUTOR

Nombre

Nacionalidad

Institucin

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Chen, P.

Norteamericana

ER Institute

Yao, L.

Norteamericana

U.N.Y.

Ceri, S.

Italiana

Politcnico de Miln

El nico elemento comn es Ceri, luego el resultado pedido es


Nombre
Date, C.J.
Ramos, I.
Saltor, F.

Nacionalidad
Norteamericana
Espaola
Espaola

- 38 -

Institucin
Relational Institute
U.P.V.
U.P.C.

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador PRODUCTO CARTESIANO


El producto cartesiano de dos relaciones es una relacin cuyo esquema estar definido sobre la unin de los atributos de
ambas relaciones, constituida por las m x m tuplas formadas concatenando cada tupla de la primera relacin con cada una
de las tuplas de la segunda.
Por tanto el nmero de atributos del producto cartesiano ser la suma del nmero de atributos de cada una de las
relaciones. Y el nmero de tuplas del producto cartesiano ser la multiplicacin del nmero de tuplas de la primera relacin
por el de la segunda.
Representamos la operacin PRODUCTO CARTESIANO mediante la siguiente expresin

RxS
donde

R
x
S

Nombre de la primera relacin


Smbolo que representa la operacin
Nombre de la segunda relacin

Ejemplo 9.5: Encontrar el producto cartesiano de socio por libro.

SOCIO x LIBRO
Las tuplas que deseamos se obtienen combinado cada una de las filas de SOCIO (2) con todas las de LIBRO (3). Por lo que
el producto cartesiano tendr 6 filas
Cdigo
1
2

Nombre

Direccin

Elena Manrique
Manuel Garca

Libro
DB Systems
Basi di Dati
SQL Standard

Villovela, 25
P. Vergara, 56

Autor
Date, C.J.
Ceri, S.
Date, C.J.

Y el resultado final es
Cdigo

Nombre

Direccin

Libro

Autor

Editorial

Elena Manrique

Villovela, 25

DB Systems

Date, C.J.

Addison

Elena Manrique

Villovela, 25

Basi di Dati

Ceri, S.

Clup

Elena Manrique

Villovela, 25

SQL Standard

Date, C.J.

Addison

Manuel Garca

P. Vergara, 56

DB Systems

Date, C.J.

Addison

Manuel Garca

P. Vergara, 56

Basi di Dati

Ceri, S.

Clup

Manuel Garca

P. Vergara, 56

SQL Standard

Date, C.J.

Addison

- 39 -

Editorial
Addison
Clup
Addison

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador de RENOMBRADO
Este operador sirve para cambiar el nombre de una relacin, de sus atributos, o las dos cosas.
Es necesario en el lgebra Relacional para mantener la restriccin de que no puede haber atributos repetidos, cosa que
puede ocurrir al combinar relaciones. La combinacin es una operacin derivada que veremos ms adelante.
Usamos renombrar para cambiar la referencia a una relacin y as poder usarla una segunda vez en una expresin sin
ambigedad.
Representamos la operacin de RENOMBRADO mediante la siguiente expresin

S (B1, B2, Bn) ( R )

S (R)

(B1, B2, Bn) ( R )

donde

R
S
B1, ., Bn

Smbolo que representa la operacin


Nombre de la relacin a renombrar
Nombre nuevo de la relacin R
Nuevos nombres de los atributos originales de R

Ejemplo 9.6: Renombrar el atributo Editorial de la relacin AUTOR_EDITORIAL como Editora

(Nombre, Nacionalidad, Editora) ( AUTOR_EDITORIAL )


Renombrar la relacin EDITORIAL como EDITORA

EDITORA ( EDITORIAL )
Renombrar la relacin LIBRO como PUBLICACION. Y el atributo Editorial de LIBRO como Editora

PUBLICACION (Libro, Autor, Editora) ( LIBRO )

- 40 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

9.2 DEFINICIN FORMAL DE LGEBRA RELACIONAL.


Las operaciones que acabamos de ver nos permiten dar una definicin completa de una expresin en el Algebra Relacional.
Una expresin en el lgebra relacional consta de una de cualquiera de las siguientes relaciones:
- Una relacin en la Base de Datos
- Una relacin constante.
Una relacin constante se escribe listando sus tuplas entre llaves ( { y } )
Una expresin general se construye a partir de sub-expresiones menores. As, si E1 y E2 son expresiones del lgebra
relacional, entonces las siguientes son todas expresiones del lgebra relacional:

E1 U E2.

E1 - E2.

E1 X E2.

p (E1), donde p es un predicado con atributos de E1.

s (E1), donde s es una lista que consta de alguno de los atributos de E1.

(E1), donde x es el nuevo nombre de la relacin E1.

9.3 OPERADORES DERIVADOS


Las operaciones fundamentales que hemos visto son suficientes para expresar cualquier consulta en lgebra relacional.
Sin embargo, si lo hacemos as algunas consultas comunes son largas de expresar. Por tanto, definimos operaciones
adicionales que no aaden ninguna potencia al lgebra, pero que simplifican consultas comunes.
Para cada nueva operacin existe una expresin equivalente usando slo operaciones fundamentales.
Los operadores fundamentales o primitivos, como los hemos llamado anteriormente, del lgebra Relacional son

CONJUNTISTAS

NO
CONJUNTISTAS

UNARIOS

BINARIOS

Interseccin

- 41 -

Combinacin
Divisin

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador INTERSECCIN
La interseccin de dos relaciones R y S es otra relacin definida sobre el mismo esquema de relacin constituida por las
tuplas que pertenezcan a ambas relaciones. Es decir, son las tuplas duplicadas que apareceran en la UNIN de relaciones
Para que se pueda realizar la interseccin de dos relaciones estn han de ser compatibles, es decir han de tener el mismo
nmero de atributos iguales y colocados en el mismo orden. Si no fueran iguales en nombre se pueden renombrar. El que
los atributos sean iguales se puede expresar tambin diciendo que tengan los mismos dominios, es decir, el i-simo
atributo de R tiene el mismo dominio que el i-simo atributo de S.
El sentido que tiene la interseccin de relaciones es el mismo que el de la interseccin de conjuntos. Y se puede expresar
como sigue: r ( RS ) = { t / t R t S }.
Como la interseccin es una operacin derivada, se puede expresar en funcin de operaciones primarias o fundamentales:
RS

=R(RS)

RS

=(RUS)[(RS)U(SR)]

Representamos la operacin de INTERSECCIN mediante la siguiente expresin

RS
donde

Nombre de la primera relacin


Smbolo que representa la operacin
Nombre de la segunda relacin

Ejemplo 9.7: Encontrar los autores que son tambin editores.

AUTOR EDITOR
Las tuplas que deseamos son las comunes a AUTOR y a EDITOR que hemos marcado en amarillo

Tuplas
EDITOR

-eTuplas
AUTOR

Nombre

Nacionalidad

Institucin

Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Norteamericana
Espaola
Italiana
Espaola

Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Chen, P.

Norteamericana

ER Institute

Yao, L.

Norteamericana

U.N.Y.

Ceri, S.

Italiana

Politcnico de Miln

Por tanto, el resultado de la interseccin ser


Nombre
Ceri, S.

Nacionalidad
Italiana

Institucin
Politcnico de Miln

- 42 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador COMBINACIN
La combinacin, de dos relaciones R y S respecto a una cierta condicin de combinacin es otra relacin constituida por
todos los pares de tuplas tr y ts concatenadas, tales que, en cada par, las correspondientes tuplas satisfacen la condicin
especificada.
La combinacin de dos relaciones R (A1, A2, ., Am) y S (B1, B2, , Bn), cuyos grados respectivos son m y n, ser una
relacin de grado m + n, cuya cardinalidad p cumple que p <= m x n . Y cuyas tuplas deben cumplir la condicin
especificada
Representamos la COMBINACIN de dos relaciones R y S, mediante la siguiente expresin

RS
(predicado)

donde

Nombre de la primera relacin

Smbolo que representa la operacin


Condicin de combinacin entre las dos relaciones
Nombre de la segunda relacin

predicado

Como operacin derivada, la combinacin se puede expresar a travs del producto cartesiano y de la seleccin.

R S =

(predicado) ( R x S )

(predicado)

- COMBINACIN
La condicin de combinacin, en el caso ms sencillo, est referida a dos atributos Ai y Bj cada uno de los cuales
pertenece a una de las dos relaciones unidos por un operador de comparacin (tetha)
Ai Bj
En el caso ms general, un par de atributos puede ir unido, sucesivamente, a otro par de atributos mediante el operador
booleano
A1 B3 A4 B8 .. Ai Bj
Si A y B son, respectivamente columnas de R y S , la expresin de una -COMBINACIN viene dada por

RS
(A B)

Donde puede ser una de las operaciones siguientes:

=, , <, <=, >, >=


- 43 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Formalmente diremos que la - COMBINACIN de dos relaciones R (A1, A2, ., Am) y S (B1, B2, , Bn), ser una
relacin con los m + n, atributos de R y S, respectivamente, es decir
( A1, A2, .. , Am ) U ( B1, B2, , Bn ) = ( A1, A2, .. , Am, B1, B2, .. , Bn )
Y cuyas tuplas sern de la forma
{ < a1, a2, .. , am, b1, b2, .. , bn > / i, j (< a1, ,am > r(R) < b1, , bn > r(S) ai bj }
Lo ms habitual es que la - COMBINACIN sea una combinacin simple por igualdad, en cuyo caso recibe el nombre
particular de EQUI-COMBINACIN.
Existe otro nombre particular de combinacin que es la COMBINACIN-NATURAL que es una combinacin por igualdad, de
uno o varios atributos comunes, en la que se han eliminado de la relacin resultante los uno de los atributos idnticos.
La COMBINACIN NATURAL ser un producto cartesiano seguido de una seleccin por igualdad y de una proyeccin

Ejemplo 9.8: Determinar los libros escritos por cada autor


AUTOR LIBRO
(AUTOR.Nombre = LIBRO.Autor)

Comenzamos realizando el producto cartesiano de las dos tablas


Nombre
Date, C.J.
Date, C.J.
Date, C.J.
Ramos, I.
Ramos, I.
Ramos, I.
Ceri, S.
Ceri, S.
Ceri, S.
Saltor, F.
Saltor, F.
Saltor, F.

Nacionalidad
Norteamericana
Norteamericana
Norteamericana
Espaola
Espaola
Espaola
Italiana
Italiana
Italiana
Espaola
Espaola
Espaola

Institucin
Relational Institute
Relational Institute
Relational Institute
U.P.V.
U.P.V.
U.P.V.
Politcnico de Miln
Politcnico de Miln
Politcnico de Miln
U.P.C.
U.P.C.
U.P.C.

Libro

Autor

DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard

Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.

Editorial
Addison
Clup
Addison
Addison
Clup
Addison
Addison
Clup
Addison
Addison
Clup
Addison

Al seleccionar las tuplas en las que hay coincidencia entre los atributos Nombre y Autor, y eliminar uno de los atributos
coincidentes en contenido, nos queda

Nombre

Nacionalidad

Date, C.J.
Date, C.J.
Ceri, S.

Norteamericana
Norteamericana
Italiana

Institucin
Relational Institute
Relational Institute
Politcnico de Miln

Libro
DB Systems
SQL Standard
Basi di Dati

Editorial
Addison
Addison
Clup

Cuando el atributo comn tiene el mismo nombre en ambas relaciones, se suele omitir la condicin de combinacin.
- 44 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador DIVISIN
La divisin de una relacin R (dividendo) por otra S (divisor) es una relacin Q (cociente) tal que, al realizarse su
combinacin con el divisor, todas las tuplas resultantes se encuentran en el dividendo.
La divisin de dos relaciones R (A1, A2, ., Am, B1, B2, .. , Bn), de grado m + n y S (B1, B2, , Bn), de grado n, y
donde los atributos B1, B2, , Bn son comunes a las dos relaciones y estn definidos sobre el mismo dominio; ser una
relacin que llamaremos Q y cuyas cabecera (esquema) y cuerpo son los siguientes atributos y tuplas, respectivamente:
cabecera los ( m + n ) n = m atributos At.R At.S = { A1, A2, ., Am }, donde At.R y At.S representan los conjuntos de
atributos de R y S respectivamente.
cuerpo

r( Q ) = { < a1, .. , am > / < b1, .. , bn > r(S) < a1, .. , am, b1, .. , bn > r(R) }

Representamos la DIVISIN de dos relaciones R y S, mediante la siguiente expresin

R:S
donde

Nombre de la primera relacin

Smbolo que representa la operacin

Nombre de la segunda relacin

Como operacin derivada, la combinacin se puede expresar a travs de proyecciones, diferencias y productos cartesianos

R : S = At.R At.S ( R ) - At.R At.S ( ( At.R At.S ( R ) x S ) - At.R At.S, At.S ( R )

Ejemplo 9.9: Encontrar a todos los autores que han publicado al menos en Addison y Rama:
AUTOR_EDITORIAL :

(Editorial = Addison v Editorial = Rama) ( EDITORIAL )

Las tablas que debemos utilizar como dividendo y divisor son las siguientes:
Nombre
Date, C.J.
Cervera, J.
Saltor, F.
Ceri, S.
Costilla, C.
Codd, E.
Cervera, J.

Nacionalidad
Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana
Espaola

Editorial
Addison
Rama
Paraninfo
Clup
Diaz de Santos
Prentice Hall
Addison

Editorial
Addison
Rama

Las columnas del cociente sern Nombre y Nacionalidad, las que no estn en el divisor. Y las nicas filas que cumplen la
condicin para ser el cociente son
Nombre

Nacionalidad
- 45 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Cervera, J.

Espaola

9.4 OPERADORES ADICIONALES DE CONSULTA


Para mejorar el poder expresivo del lgebra relacional se han introducido ciertos operadores adicionales que no pueden
considerarse como derivados ya que no es posible expresarlos en funcin de los operadores primitivos.

Operador AGRUPACIN
Para aplicar funciones de agregacin (frecuencia, suma, media, etc.), podemos agrupar tuplas en subconjuntos que posean
valores comunes de ciertos atributos.
Representamos la AGRUPACIN de una relacin R a travs de un atributo A1, realizando una operacin de agregacin
sobre un atributo A2

R AGRUPACION_POR A1, AGREGACION ( A2 )


(A1,, An)

FAg(B1), , FAg(Bm) ( R )

donde

Nombre de la relacin

AGRUPACION_POR

Expresin que representa la operacin

AGREGACION

Palabra que representa la funcin de agregacin . Pueden ser varias separadas por comas

A1,

Nombre de los atributos de agrupacin. Pueden ser varios atributos separados por comas

A2

Nombre del atributo de agregacin

Ejemplo 9.10: Determinar la media de artculos por nacionalidad


AUTOR_ARTIC AGRUPACION_POR Nacionalidad, MEDIA (Num_Art)

Sobre la tabla AUTOR_ARTIC se realizan las operaciones de agrupacin y agregacin


Nombre
Date, C.J.
Cervera, J.
Saltor F.
Ceri, S.
Costilla, C.
Codd, E.

Nacionalidad
Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana

Num_Art

Nombre
Date, C.J.
Codd, E.
Cervera, J.
Saltor F.
Costilla, C.
Ceri, S.

27
10
14
9
8
29

Nacionalidad

Num_Art

MEDIA(N_ Art)

Norteamericana
Norteamericana
Espaola
Espaola
Espaola
Italiana

27
29
10
14
8
9

28 =
(27+29) /2

Y el resultado pedido ser la proyeccin por Nacionalidad y Media del resultado anterior
Nacionalidad

MEDIA(N_Art)

Norteamericana
Espaola

28
11

- 46 -

10,6 =
(10+14+8)/3
9

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Italiana

CIERRE TRANSITIVO
Es una operacin unaria definida sobre dos atributos compatibles (comparten el mismo dominio) de una misma relacin,
que se obtiene por sucesivas operaciones de combinacin, proyeccin y unin, consistente en aadir a la relacin de origen
todas las tuplas que se deducen, sucesivamente, por transitividad hasta la saturacin; es decir, si existen las tuplas (a,b) y
(b,c) se aade (a,c).
El cierre transitivo no se puede considerar un operador derivado, ya que no se conoce el nmero de operaciones de
combinacin, proyeccin y unin necesarias, no pudindose transformar, por tanto, en una nica expresin del lgebra
relacional; nicamente con el apoyo de un lenguaje anfitrin en el que se programara el correspondiente bucle se podra
hacer la consulta.

Ejemplo 9.11: Determinar el Cierre Transitivo de TEMAS, sobre los atributos Tema_P y Tema_S
A partir de la tabla original
Tema_P
Bases de datos
Bases de datos
Diseo
Diseo
Diseo lgico

Tema_S
Fundamentos
Diseo
Diseo conceptual
Diseo lgico
Diseo relacional

Vamos aadiendo tuplas

Tema_P

Tema_S

Bases de datos
Bases de datos
Diseo
Diseo
Diseo lgico

Fundamentos
Diseo
Diseo conceptual
Diseo lgico
Diseo relacional

Bases de datos
Bases de datos
Diseo

Diseo conceptual
Diseo lgico
Diseo relacional

Bases de datos

Diseo relacional

- 47 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

9.5 OPERADORES RELACIONALES CON VALORES NULOS


Los valores nulos obligan a definir operaciones aritmticas, de comparacin, algebraicas, etc. adicionales.
El producto cartesiano no se ve afectado por la presencia de valores nulos; la seleccin solo devuelve aquellas tuplas cuya
condicin se evala como cierta eliminando aquellas otras en las que el resultado de evaluar la condicin es falso o quizs,
y la proyeccin debe eliminar tuplas duplicadas teniendo en cuenta los nulos.
Veremos en este apartado, a modo de ejemplo, operadores especiales para tratar los valores nulos.

Operador COMBINACIN EXTERNA


Entre los operadores especiales para el tratamiento de valores nulos, destaca el de combinacin externa, que impide que
desaparezcan tuplas cuando se aplica la combinacin que hemos visto en el apartado anterior y que, por contraposicin a
esta, se denomina combinacin interna.
Representamos la COMBINACIN EXTERNA de dos relaciones R y S, mediante la siguiente expresin

R
S
(predicado)

donde

Nombre de la primera relacin


Smbolo que representa la operacin combinacin externa total o simtrica

Smbolo que representa la operacin combinacin externa a la izquierda

Smbolo que representa la operacin combinacin externa a la derecha

predicado

Condicin de combinacin entre las dos relaciones


Nombre de la segunda relacin

En el Ejemplo 9.8 se combinan las tablas AUTOR y LIBRO, pero las tuplas
< Saltor, Espaola, U.P.C. > y < Remos, Espaola, U.P.V. >
de la relacin AUTOR no aparece en la relacin resultante, al no combinarse con ninguna tupla de la relacin LIBRO, es
decir, de alguna manera se pierde esta informacin.
Para evitar que las tuplas de una relacin que no casan con ninguna tupla de la otra desaparezcan en el resultado,
podemos aplicar el operador de combinacin externa que concatena esas tuplas con tuplas cuyos atributos tienen valores
nulos,

Ejemplo 9.12: Determinar los libros escritos por cada autor, incluyendo aquellos autores que no han escrito ningn
libro.
Procede entonces realizar la combinacin externa izquierda de AUTOR y LIBRO para poder conservar todas las tuplas, que
quedan sin concatenar, de la relacin a la izquierda
- 48 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

AUTOR LIBRO
(AUTOR.Nombre = LIBRO.Autor)

Comenzamos realizando el producto cartesiano de las dos tablas


Nombre
Date, C.J.
Date, C.J.
Date, C.J.
Ramos, I.
Ramos, I.
Ramos, I.
Ceri, S.
Ceri, S.
Ceri, S.
Saltor, F.
Saltor, F.
Saltor, F.

Nacionalidad
Norteamericana
Norteamericana
Norteamericana
Espaola
Espaola
Espaola
Italiana
Italiana
Italiana
Espaola
Espaola
Espaola

Institucin
Relational Institute
Relational Institute
Relational Institute
U.P.V.
U.P.V.
U.P.V.
Politcnico de Miln
Politcnico de Miln
Politcnico de Miln
U.P.C.
U.P.C.
U.P.C.

Libro

Autor

DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard
DB Systems
Basi di Dati
SQL Standard

Editorial

Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.
Date, C.J.
Ceri, S.
Date, C.J.

Addison
Clup
Addison
Addison
Clup
Addison
Addison
Clup
Addison
Addison
Clup
Addison

Seleccionamos las tuplas en las que hay coincidencia entre los atributos Nombre y Autor, y para aquellas tuplas en las
que no hay correspondencia introducimos una fila, por cada autor, con los valores de Libro a nulos.
Adems eliminaremos uno de los atributos cuyo contenido se repite Nombre o Autor.
Y el resultado final es la siguiente relacin
Nombre
Date, C.J.
Date, C.J.
Ramos, I.
Ceri, S.
Saltor, F.

Nacionalidad
Norteamericana
Norteamericana
Espaola
Italiana
Espaola

Institucin
Relational Institute
Relational Institute
U.P.V.
Politcnico de Miln
U.P.C.

Libro
DB Systems
SQL Standard
Nulo
Basi di Dati
Nulo

Editorial
Addison
Addison
Nulo
Clup
Nulo

Para el caso simtrico, esto es, cuando se desea que no se pierda ninguna tupla de la tabla que est a la derecha, ser
necesario crear tuplas nulas en la primera tabla, utilizndose el operador de combinacin externa derecha.
En nuestro caso todos los libros tienen AUTOR, por tanto, la combinacin externa a la derecha no da lugar a ninguna tupla
completada con nulos. Para que se introdujera alguna tupla de este tipo, en la tabla LIBRO tendra que haber nombres de
Autor que no estuviesen en la tabla AUTOR.

- 49 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador ES_POSIBLE
Otro tipo de operadores que tienen en cuenta los valores nulos son los denominados es_posible (maybe), los cuales
utilizan la lgica trivaluada y admiten como tuplas resultantes no solo las que cumplen el valor cierto en una comparacin,
sino tambin las que cumplen puede ser cierto.

Ejemplo 9.13: Realizar la combinacin ES_POSIBLE simtrica de R y S cuando b = c. Comparar el resultado con el de
la COMBINACIN interna con las mismas condiciones, b = c. Donde R y S tienen los siguientes
contenidos.

1
1
2
Nulo
3

5
Nulo
4
2
Nulo

5
2
Nulo
Nulo

3
4
6
5

El resultado obtenido para la Combinacin interna y para la combinacin POSIBLE, es el siguiente


RS

POSIBLE (R S)

(b = c)

(b = c)

1
Nulo

5
2

5
2

3
4

1
1
1
1
1
1
1
2
2
Nulo
Nulo
Nulo
3
3
3
3

5
5
5
Nulo
Nulo
Nulo
Nulo
4
4
2
2
2
Nulo
Nulo
Nulo
Nulo

5
Nulo
Nulo
5
2
Nulo
Nulo
Nulo
Nulo
2
Nulo
Nulo
5
2
Nulo
Nulo

3
6
5
3
4
6
5
6
5
4
6
5
3
4
6
5

El operador ES_POSIBLE se puede aplicar con cualquier otro operador donde pueda producirse una comparacin en la que
intervengan valores nulos.

- 50 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Ejemplo 9.14: Determinar las tuplas de la relacin resultado de la COMBINACIN de AUTOR y LIBRO cuya editorial sea
Addison. Y comparar el resultado con el de aplicar ES_POSIBLE a dichas tuplas.
La tuplas de la COMBINACIN pedida vienen dadas por la expresin

Editorial = Addison

AUTOR LIBRO

(AUTOR.Nombre = LIBRO.Autor)

cuyo resultado es

Nombre

Nacionalidad

Institucin

Libro

Editorial

Date, C.J.

Norteamericana

Relational Institute

DB Systems

Addison

Date, C.J.

Norteamericana

Relational Institute

SQL Standard

Addison

Por otra parte, si aplicamos el operador POSIBLE

POSIBLE

(
) Editorial = Addison

AUTOR LIBRO

(AUTOR.Nombre = LIBRO.Autor)

obtenemos el siguiente resultado, en el que tambin aparecern las tuplas de los autores que no tienen libro
Institucin

Libro

Date, C.J.

Nombre

Norteamericana

Nacionalidad

Relational Institute

DB Systems

Addison

Date, C.J.

Norteamericana

Relational Institute

SQL Standard

Addison

Ramos, I.

Espaola

U.P.V.

Nulo

Nulo

Saltor, F.

Espaola

U.P.C.

Nulo

Nulo

- 51 -

Editorial

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

9.6 OPERACIONES ADICIONALES DE MANIPULACIN


Adems de los operadores de consulta anteriores, es preciso que los lenguajes algebraicos dispongan de otros operadores a
fin de poder manipular adecuadamente la base de datos.
Utilizando el lgebra relacional tambin se puede aadir, eliminar o modificar informacin de la base de datos usando las
asignaciones adecuadamente.

Operador ASIGNACIN
A veces es conveniente escribir una expresin del lgebra relacional por partes usando la asignacin a una variable
temporal, de forma parecida a como lo haramos en un lenguaje de programacin.
La evaluacin de una asignacin no da como resultado una relacin que se presenta al usuario. Esta variable puede usarse
en subsiguientes expresiones.
As, una consulta puede escribirse como un programa secuencial que consta de una serie de asignaciones seguidas de una
expresin cuyo valor se presenta como resultado de la consulta. Para consultas es conveniente utilizar asignaciones a
variables temporales.
Representamos la ASIGNACIN de una relacin R a una relacin S mediante la siguiente expresin

donde

Nombre de la primera relacin origen de la asignacin

Smbolo que representa la operacin de asignacin

Nombre de la relacin destino de la asignacin

La asignacin tiene verdadero sentido cuando R no es una relacin simple, sino el resultado de la realizacin de una o
varias operaciones relacionales.

Ejemplo: 9.15: Asignar el producto cartesiano de dos relaciones R y S a una relacin de nombre T

TRxS

- 52 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador ELIMINACIN
La operacin de eliminacin se realiza mediante uno de los operadores ya vistos, la diferencia.
Solo podemos eliminar tuplas completas.
Representamos la ELIMINACIN en una relacin R de un conjunto de tuplas que representaremos por E, mediante la
expresin

R -- E

donde

Nombre de la relacin original

Smbolo que representa la operacin de borrado

Nombre de la relacin (consulta) con las tuplas a borrar

Ejemplo 9.16: Eliminar los libros de la editorial Addison de la tabla LIBRO


Primero determinamos el conjunto de tuplas a borrar, que vendr dado por la seleccin

Editorial = Adisson

Libro
DB Systems
Basi di Dati
SQL Standard

Autor
Date, C.J.
Ceri, S.
Date, C.J.

( LIBRO )
Editorial
Addison
Clup
Addison

A continuacin realizamos la operacin de eliminacin haciendo la diferencia adecuada y volvindola a asignar a la relacin
primitiva LIBRO

LIBRO

LIBRO --- E

Y la tabla LIBRO quedar con el siguiente contenido


Libro
Basi di Dati

Autor
Ceri, S.

- 53 -

Editorial
Clup

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador INSERCIN
Al igual que ocurre con la eliminacin, la insercin se realiza con un operador ya conocido, la unin.
Se puede hacer bien especificando la tupla que se va a insertar o escribiendo una consulta cuyo resultado sea un conjunto
de tuplas que se van a insertar.
Representamos la INSERCIN en una relacin R de un conjunto de tuplas que representaremos por I, mediante la
expresin

RUI

donde

Nombre de la relacin original

Smbolo que representa la operacin de insercin

Nombre de la relacin (consulta) con las tuplas a insertar

Ejemplo 9.17:

Insertar en la tabla LIBRO un nuevo libro de titulo Algebra Relacional, del autor Ramirez, L. y de la
editorial Alhambra

Sobre la tabla original LIBRO


Libro
DB Systems
Basi di Dati
SQL Standard

Autor
Date, C.J.
Ceri, S.
Date, C.J.

Editorial
Addison
Clup
Addison

Insertamos el nuevo libro, que vendr representado por la tupla { Algebra Relacional, Ramrez, L., Alhambra }, y
volvemos a asignar el resultado a la tabla LIBRO

LIBRO

LIBRO U { Algebra Relacional, Ramrez, L., Alhambra }

Y la tabla LIBRO quedar con el siguiente contenido


Libro
DB Systems
Basi di Dati
SQL Standard
Algebra Relacional

Autor
Date, C.J.
Ceri, S.
Date, C.J.
Ramirez, L.

- 54 -

Editorial
Addison
Clup
Addison
Alhambra

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Operador MODIFICACIN
Podemos cambiar el valor de un atributo de una tupla sin cambiar todos los valores de la tupla
Representamos la MODIFICACIN de un atributo A de una relacin R mediante una expresin Exp, mediante la siguiente
expresin

A Exp ( R )
donde

Nombre de la relacin original

Smbolo que representa la operacin de modificacin

Nombre del atributo cuyo valor se va a modificar

Exp

Expresin que va a modificar el valor del atributo

Ejemplo 9.18: En la relacin AUTOR_ARTIC, incrementar el nmero de artculos de todos los autores en 2
El contenido original de la tabla AUTOR_ARTIC es
Nombre

Nacionalidad

Date, C.J.
Cervera, J.
Saltor F.
Ceri, S.
Costilla, C.
Codd, E.

Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana

Num_Art
27
10
14
9
8
29

La operacin de modificacin que nos piden vendr dada por la expresin

Num_Art Num_Art + 2 ( AUTOR_ARTIC )


Y la tabla AUTOR_ARTIC quedar con el siguiente contenido
Nombre

Nacionalidad

Num_Art

Date, C.J.
Cervera, J.
Saltor F.
Ceri, S.
Costilla, C.
Codd, E.

Norteamericana
Espaola
Espaola
Italiana
Espaola
Norteamericana

29 = 27 + 2
12 = 10 +2
16 = 14 + 2
11 = 9 + 2
10 = 8 + 2
31 = 29 + 2

- 55 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

10. CLCULO RELACIONAL


El clculo relacional fue propuesto por Codd en 1971 como alternativa al lgebra.
En el lgebra relacional damos la secuencia de operadores que genera la respuesta a la consulta. En el clculo relacional
simplemente especificamos lo que queremos obtener.
Esta consideracin hara del algebre relacional un lenguaje procedimental y del clculo relacional un lenguaje no
procedimental, pero esto no es as, ya que estamos siempre en el mbito de lo no procedimental.
Esta polmica fue zanjada por Date (1990) proponiendo la clasificacin de lenguajes DESCRIPTIVOS para los basados en el
clculo relacional y PRESCRIPTIVOS para los basados en el lgebra relacional.
Los lenguajes de clculo relacional pueden ser de dos tipos:

orientados a tuplas, en los que una variable se interpreta como si representase las tuplas de una relacin

orientados a dominios, es los que una variable se interpreta como si representase los valores de un
dominio.

Las expresiones en lgebra relacional, clculo relacional orientado a tuplas y orientado a dominios son equivalentes.

10.1 CLCULO RELACIONAL ORIENTADO A TUPLAS


El clculo relacional de tuplas se deduce del clculo de predicados, con la siguiente interpretacin:
-

las variables se asocian a tuplas

las constantes se asocian a los valores de los dominios subyacentes a los atributos

los operadores son los de comparacin, los lgicos NOT, AND y OR, as como el existencias () y el universal ().

Una consulta en el clculo relacional orientado a tuplas obedece al siguiente esquema:


[DEFINICION DE LAS VARIABLES DE TUPLA]
OPERADOR

OBJETIVO

PREDICADO

Operador determina la accin a realizar


Objetivo especifica los atributos a recuperar (indicando las relaciones afectadas)
Predicado establece la condicin que deben verificar las tuplas, tambin se denomina criterio de seleccin.
Como ejemplo de lenguaje de clculo relacional orientado a tuplas podemos encontrar el lenguaje ALPHA que, si bien
nunca fue instrumentado, ha tenido una gran influencia en el desarrollo de otros lenguajes como el QUEL de INGRES.

- 56 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Ejemplo 10.1: Encontrar los nombres de autores y las editoriales en las que han publicado

10.2 CLCULO RELACIONAL ORIENTADO A DOMINIOS.


El clculo relacional orientado a dominios, al igual que el orientado a tuplas, est basado en el clculo de predicados de
primer orden. La diferencia es que aqu existen variables de dominio en vez de variables de tuplas.
El ejemplo ms caracterstico del clculo relacional orientado a dominios es el lenguaje QBE (Query By Example),
desarrollado en 1977.
QBE se utiliza con un editor de pantalla que hace de asistente de ayuda a la realizacin de las consultas y que es el
paradigma de interfaz de usuario. Es similar al asistente interactivo que utiliza ACCESS.
La ventana del editor tiene la siguiente estructura:
Zona para nombre de tabla

Zona para nombres de columna

Zona para operador de fila

Zona de datos

Sobre esta estructura el usuario puede realizar operaciones como las de la siguiente tabla:
TIPO
Sistema

OPERADOR
P.
U.
I.
D.
G.
ALL.
UNQ.
AO(n)
DO(n)

OPERACIN REALIZADA
Visualizacin en pantalla o en impresora
Modificacin
Insercin
Borrado
Agrupamiento de filas
Todas las filas
No repite filas duplicadas
Clasificacin ascendente
Clasificacin descendente

Funciones

SUM.
CNT.
AVG.
MAX.
MIN.

Suma
Cuenta
Promedio
Valor mximo
Valor mnimo

Comparacin

=, >, <
>=, <=, <>
IN
LIKE
BETWEEN

Comparaciones sencillas
Comparaciones combinadas
Compara con lista de valores
Compara con una mscara
Compara con un rango

Clculo

+, -, *, /

Clculo

Lgica

AND, OR, NOT

Lgica

- 57 -

U.D. 2 MODELO RELACIONAL

I.E.S. MAR DE CDIZ


CURSO 2013-14

Ejemplo 10.2: Se desea realizar al seleccin de todas las tuplas de la tabla AUTOR,.
El usuario escribe el nombre de la tabla y el sistema devolvera la estructura de la misma:
AUTOR

Nombre

Nacionalidad

Institucin

a continuacin el usuario escribira una P en la zona destinada a los operadores de fila


AUTOR

Nombre

Nacionalidad

Institucin

P.
obteniendo as la extensin de dicha tabla, como se muestra seguidamente:
Nombre

Nacionalidad

Date, C.J.
Cervera, J.
Saltor, F.
Ceri, S.

Institucin

Norteamericana
Espaola
Espaola
Italiana

Relational Institute
UC3M
U.P.C.
Politcnico Miln

Ejemplo 10.3: Combinar las tablas AUTOR y LIBRO

AUTOR

LIBRO

P.

_a

Nombre

Nacionalidad

Institucin

_a

_nacionalidad

_institucion

Libro

Autor

Editorial

_libro

_a

_editorial

_nacionalidad

_institucion

_libro

_editorial

Ejemplo 10.4: Recuperar los nombres y nacionalidades de los autores que han escrito ms de 14 artculos
AUTOR_ARTIC

Nombre

Nacionalidad

Num_art

P.

P.

>14

devolver
Nombre

Nacionalidad

Date, C.J.

Norteamericana

Codd, E.

Norteamericana

- 58 -

You might also like