Академический Документы
Профессиональный Документы
Культура Документы
2 MODELO RELACIONAL
PARTE I ESTTICA
3. RESTRICCIONES
3.1 RESTRICCIONES INHERENTES
3.2 RESTRICCIONES SEMNTICAS
-1-
PARTE II DINMICA
10 EL CLCULO RELACIONAL
10.1 CLCULO RELACIONAL ORIENTADO A TUPLAS
10.2 CLCULO RELACIONAL ORIENTADO A DOMINIOS
-2-
-3-
(IBM)
los primeros sistemas comerciales no aparecen hasta finales de la dcada de los 70, entre ellos destacamos:
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-
POSTRELACIONAL
RELACIONAL
PRE
RELACIONAL
1970 .......
Desarrollos tericos
1973-78
1978
QBE
1979
Oracle
1980
Ingres
1981
SQL/DS
IBM
1982
DB2
IBM
1986
SQL/ANS
1987
SQL/ISO
1989
1989
1990
1990
1992
SQL 92 (SQL-2)
1995
Manifiesto 3
1998
SQL-3
1999
2003
SQL-2003
2006
SQL-2006
2008
SQL-2008
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-
Atributo 2
Atributo n
XXX
XXX
XXX
tupla 1
XXX
XXX
..
XXX
tupla 2
..
XXX
XXX
..
XXX
tupla 3
TABLA
FICHERO
Tupla
Atributo
Grado
Cardinalidad
Fila
Columna
N de columnas
N de filas
Registro
Campo
N de campos
N de registros
-7-
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-
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?.
un NOMBRE de relacin R
un conjunto de n ATRIBUTOS { A }
-9-
R( A1 : D1, A2 : D2 , ... , An : Dn )
Al conjunto de pares ( A : D ) se le suele llamar CABECERA DE RELACIN.
i
A partir de aqu definimos una RELACIN o Estado de Relacin r( R ) como un conjunto de m elementos denominados
tuplas { t }.
j
( < 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:
CUESTIONES A RESOLVER
2.6. Todas las relaciones tienen nombre?
- 10 -
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 -
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 -
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.
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
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?.
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 -
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
- 15 -
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
EJEMPLO_2
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:
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 -
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
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 -
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
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 -
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
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 -
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.
Algunos lenguajes anfitriones tratan objetos que denominan nulos pero con diferente significado al de las
marcas.
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 -
El tratamiento de valores nulos exige definir, de manera especfica para dichos valores :
-
Operaciones de comparacin.
Operaciones aritmticas.
Operaciones algebraicas.
Funciones de agregacin.
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
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 -
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.
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:
-
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 -
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.
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 -
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
& 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
- 26 -
NOT
C
A
F
I
F
A
C
I
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
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:
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.
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.
- 27 -
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.
nn para las conectivas unarias, por lo que en la L2V es 4, para L3V es 27, y
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 -
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.
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 -
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 -
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 -
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
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 -
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
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
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
Ejemplo 9.1: Elegir las tuplas de la relacin AUTOR en las que la nacionalidad es espaola
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.
Nacionalidad
Date, C.J.
Ceri, S.
Norteamericana
Italiana
- 35 -
Institucin
Relational Institute
Politcnico de Miln
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
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.
Nacionalidad
Norteamericana
Espaola
Italiana
Espaola
Norteamericana
Espaola
Italiana
- 36 -
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
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
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.
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 }
R -- S
donde
R
-S
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
Nacionalidad
Norteamericana
Espaola
Espaola
- 38 -
Institucin
Relational Institute
U.P.V.
U.P.C.
RxS
donde
R
x
S
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
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 (R)
donde
R
S
B1, ., Bn
EDITORA ( EDITORIAL )
Renombrar la relacin LIBRO como PUBLICACION. Y el atributo Editorial de LIBRO como Editora
- 40 -
E1 U E2.
E1 - E2.
E1 X E2.
s (E1), donde s es una lista que consta de alguno de los atributos de E1.
CONJUNTISTAS
NO
CONJUNTISTAS
UNARIOS
BINARIOS
Interseccin
- 41 -
Combinacin
Divisin
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)]
RS
donde
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
Nacionalidad
Italiana
Institucin
Politcnico de Miln
- 42 -
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
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)
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
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 -
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) }
R:S
donde
Como operacin derivada, la combinacin se puede expresar a travs de proyecciones, diferencias y productos cartesianos
Ejemplo 9.9: Encontrar a todos los autores que han publicado al menos en Addison y Rama:
AUTOR_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 -
Cervera, J.
Espaola
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
FAg(B1), , FAg(Bm) ( R )
donde
Nombre de la relacin
AGRUPACION_POR
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
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
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
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 -
R
S
(predicado)
donde
predicado
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 -
AUTOR LIBRO
(AUTOR.Nombre = LIBRO.Autor)
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 -
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
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 -
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
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
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
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 -
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
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
Autor
Ceri, S.
- 53 -
Editorial
Clup
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
Ejemplo 9.17:
Insertar en la tabla LIBRO un nuevo libro de titulo Algebra Relacional, del autor Ramirez, L. y de la
editorial Alhambra
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
Autor
Date, C.J.
Ceri, S.
Date, C.J.
Ramirez, L.
- 54 -
Editorial
Addison
Clup
Addison
Alhambra
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
Exp
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
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 -
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.
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 ().
OBJETIVO
PREDICADO
- 56 -
Ejemplo 10.1: Encontrar los nombres de autores y las editoriales en las que han publicado
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
Lgica
- 57 -
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
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
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 -