Recupero de Información a través de

Anuncio
“Recupero de Información a través de
operaciones con conjuntos”
Posgrado: Metodología de la Investigación
Profesora: Viviana Yaccuzzi Polisena
Alumna: María Wanda Sabadini
Universidad Nacional del Nordeste
Facultad de Ingeniería
Recupero de Información a través de operaciones con conjuntos
Indice
Introducción
Desarrollo
Información
Bases de datos relacionales
Operaciones del Algebra Relacional
Conclusión
Bibliografía
Introducción
Cotidianamente interactuamos con bases de datos. No sólo al analizar, diseñar o programar
sistemas sino también al extraer dinero del banco, realizar una compra en un negocio o en el
supermercado o, por ejemplo, al realizar búsquedas en Internet.
Las bases de datos pueden llegar a ser grandes repositorios (ver 1 del Glosario) de datos, pero
el problema está en como transformar esos datos con los que contamos, para que resulten de
utilidad al momento de tomar decisiones. Es decir, que esos datos puedan transformarse en
información que será un elemento de gran utilidad para quien las reciba.
Para la construcción y operatoria de las bases de datos, tanto en los libros especializados
como en las Facultades se utilizan sentencias de un lenguaje de consultas.
Pero de ¿donde provienen esas sentencias?
¿Podemos abstraernos y relacionar los conceptos de bases de datos con los conjuntos que
hemos dado en Matemáticas?
¿Podemos previo al uso de las sentencias de los lenguajes de consultas resolverlas mediante
conjuntos?
Recuperar información, y no sólo datos, es un tema candente al momento de operar con un
Sistema de Información. Es por ello, que el presente trabajo estará enfocado en explicar el
recupero de información existente en una base de datos relacional combinando este concepto
con las operaciones de conjuntos y en responder las preguntas antes citadas.
Desarrollo
Una base de datos relacional consiste en una colección de relaciones, donde cada relación
tiene un único nombre y estructura. El lenguaje de consultas permitirá recuperar sus datos a
través de sentencias.
La estructura básica de una expresión del lenguaje consiste en tres cláusulas: select, from y
where.
María Wanda Sabadini
Página: 2
Recupero de Información a través de operaciones con conjuntos
La cláusula select corresponde a la operación proyección del algebra relacional. Es usada para
listar los atributos deseados en el resultado de una consulta.
La clásula from corresponde a la operación del producto cartesiano del álgebra relacional. Lista
las relaciones que se pueden evaluar a través de la expresión.
La cláusula where corresponde a un predicado que cumplirá la función de condición.
Una consulta típica tiene la siguiente forma:
select A1, A2, . . .,An
from r1, r2, . . . , rm
where P
Pero para quien no está muy familiarizado con este lenguaje o incluso para explicar a quienes
se inician en el mismo, como por ejemplo, alumnos de Escuelas Secundarias Técnicas con
orientación informática, sería útil explicárselos desde una visión que no sea sólo de informática,
es por ello que me he planteado los siguientes interrogantes que serán las HIPOTESIS del
presente trabajo.
¿De donde provienen las sentencias de los lenguajes de consulta de bases de datos?
¿Se podría abstraer las sentencias a las operaciones básicas de conjuntos?
¿Cómo se relacionan con el álgebra relacional?
Estos interrogantes serán respondidos a través de una investigación bibliográfica.
Los temas a tratar serán:

Teoría de conjuntos

Información

Bases de datos relacionales

Operaciones para consultas a una base de datos.
María Wanda Sabadini
Página: 3
Recupero de Información a través de operaciones con conjuntos
Teoría de Conjuntos
Un conjunto puede ser finito o infinito. Conjuntos finitos son aquellos que constan de
elementos, que al contarlos el proceso puede acabar, por el contrario constituyen conjuntos
infinitos.
Daremos algunas definiciones:

Igualdad de conjuntos
Un conjunto A es igual al conjunto B, si ambos tienen los mismos elementos, es decir, si cada
elemento que pertenece a A, también pertenece al conjunto B. Y cada elemento que pertenece
al conjunto B, también pertenece al conjunto A.
Ejemplos de igualdad de conjuntos:
A={1,2,3,4} B={3,2,1,4}. Son iguales aunque los elementos tengan distinto orden
C={5,6,5,7} D= {5,7,6,7}. Son iguales aunque tengan distintos elementos repetidos, pero cada
elemento de A pertenece a B y cada elemento de B, pertenece a A.

Conjunto vacío
Es un conjunto que carece de elementos.

Subconjuntos
Esto se da cuando todos los elementos de un conjunto A pertenecen al conjunto B. es decir,
cuando el conjunto A está incluido en B.

Conjuntos disyuntos
Se da cuando dos conjuntos A y B no tienen elementos comunes, es decir, ningún elemento de
A está en B y si ningún elemento de B está en A.

Operaciones fundamentales con conjuntos
Las operaciones fundamentales con conjuntos son: unión, intersección y diferencia de
conjuntos.
Unión
La unión de dos conjuntos A y B, es el conjunto de todos los elementos que pertenecen a A o a
B o a ambos. En el diagrama de Venn de la figura 1 podemos ver el resultado de la operación
A
B.
María Wanda Sabadini
Página: 4
Recupero de Información a través de operaciones con conjuntos
Figura 1
De la unión surgen las siguientes observaciones
A)
es el mismo conjunto que
B) A y B son subconjuntos de
. Es decir
. Es decir
y
Intersección de conjuntos
La intersección de conjuntos es otro conjunto que contiene los elementos que son comunes a
ambos conjuntos. En el diagrama de Venn en la figura 2 Podemos observarlo
Figura 2
De la intersección de conjuntos surgen las siguientes observaciones:
A)
B) Cada uno de los conjuntos A y B contienen al subconjunto
C) Si
, es decir
no tienen elementos comunes entonces
Diferencia
La diferencia de los conjuntos A y B (A – B), es el conjunto de elementos que pertenecen a A,
pero no a B. En el diagrama de Venn de la figura 3
Figura 3
María Wanda Sabadini
Página: 5
Recupero de Información a través de operaciones con conjuntos
de la diferencia de conjuntos surgen las siguientes observaciones:
A) A – B es subconjunto de A, es decir
B) Los conjuntos (A – B) y (B – A) son disjuntos. Es decir, su intersección es vacía.
María Wanda Sabadini
Página: 6
Recupero de Información a través de operaciones con conjuntos
Información
Lo primero que tenemos que diferenciar son los siguientes conceptos: dato e información. Dato
es un hecho que puede registrarse, e información son datos procesados para aportar un
conocimiento útil.
Y un Sistema de Información?
La palabra sistema se utiliza en muchos ámbitos distintos: hablamos de sistemas eléctricos,
sistemas de seguridad, sistemas monetarios e inclusive del sistema solar. La Real Academia
Española nos da la siguiente definición: ―un conjunto de cosas que ordenadamente
relacionadas entre sí contribuyen a un determinado objetivo‖.
Y a partir de esta definición podemos distinguir sus elementos principales:

los componentes del sistema

las relaciones entre estos componentes, que van a determinar la estructura del
sistema

el objetivo del sistema
Cuanto más grande y complejo es un sistema, más importante es la comunicación de
información entre sus componentes, para que puedan coordinarse a fin de cumplir con sus
objetivos. Disponer de la información adecuada permite tomar las decisiones apropiadas para
cada situación.
Y aquí viene el gran dilema, que es información? Es lo mismo que los datos? No. Como lo
expresado anteriormente, debemos diferenciarlos. Los datos son los registros de hechos,
acontecimientos, transacciones, mientras que información son los datos procesados de tal
forma que son útiles o significativos para quien va a recibir esa información. Es decir, esa
información va a promover una acción, va a permitir tomar una decisión mejor, siendo la
decisión el paso previo a una acción.
Y esta información, que va a permitir que quien la recibe tome la mejor decisión tiene ciertas
propiedades que la caracterizan, y que son las siguientes:

es relevante para el propósito de la decisión o el problema considerado. Si
queremos decidir si vendemos o no acciones de una empresa, es irrelevante la
información de la clasificación de la liga italiana de fútbol, por muy exacta y
completa que sea.

es lo suficientemente precisa, es decir, exacta o con niveles de precisión mayor
con respecto a la realidad, para que podamos confiar en ella.

es lo suficientemente completa para el problema. En la realidad, es raro poder
contar con toda la información relevante para la decisión, pero lo importante es
que la información sobre los elementos clave sea completa.

se comunica a la persona adecuada para la decisión.

se comunica a tiempo para que pueda ser útil

llega al nivel de detalle más adecuado

es comprensible para el receptor. La información que llega escrita en una
terminología desconocida es poco útil.
María Wanda Sabadini
Página: 7
Recupero de Información a través de operaciones con conjuntos
Una vez que tenemos los datos almacenados en una base de datos, es necesario poder
procesarlos y recuperarlos para poder obtener información y que esta información contenga las
características antes mencionadas.
¿Pero como recuperamos información de una base de datos?
Ya sea a través de un lenguaje de programación de alto nivel o bien del administrador de la
base de datos, realizaremos consultas para poder recuperarla. Pero antes de entrar más en
detalle pasaremos al siguiente tema.
María Wanda Sabadini
Página: 8
Recupero de Información a través de operaciones con conjuntos
Bases de datos
Las aplicaciones informáticas de los años sesenta acostumbraban a darse totalmente por lotes
(batch) y estaban pensadas para una tarea muy específica relacionada con muy pocas
entidades tipo.
Cada aplicación (una o varias cadenas de programas) utilizaba ficheros de movimientos para
actualizar (creando una copia nueva) y/o para consultar uno o dos ficheros maestros o,
excepcionalmente, más de dos. Cada programa trataba como máximo un fichero maestro, que
solía estar sobre cinta magnética y, en consecuencia, se trabajaba con acceso secuencial.
Cada vez que se le quería añadir una aplicación que requería el uso de algunos de los datos
que ya existían y de otros nuevos, se diseñaba un fichero nuevo con todos los datos necesarios
(algo que provocaba redundancia) para evitar que los programas tuviesen que leer muchos
ficheros.
A medida que se fueron introduciendo las líneas de comunicación, los terminales y los discos,
se fueron escribiendo programas que permitían a varios usuarios consultar los mismos ficheros
on-line y de forma simultánea. Más adelante fue surgiendo la necesidad de hacer las
actualizaciones también on-line.
A medida que se integraban las aplicaciones, se tuvieron que interrelacionar sus ficheros y fue
necesario eliminar la redundancia. El nuevo conjunto de ficheros se debía diseñar de modo que
estuviesen interrelacionados; al mismo tiempo, las informaciones redundantes (como por
ejemplo, el nombre y la dirección de los clientes o el nombre y el precio de los productos), que
figuraban
en los ficheros de más de una de las aplicaciones, debían estar ahora en un solo lugar.
El acceso on-line y la utilización eficiente de las interrelaciones exigían estructuras
físicas que diesen un acceso rápido, como por ejemplo los índices, las multilistas, las técnicas
de hashing, etc.
Estos conjuntos de ficheros interrelacionados, con estructuras complejas y compartidos por
varios procesos de forma simultánea (unos on-line y otros por lotes), recibieron al principio el
nombre de Data Banks, y después, a inicios de los años setenta, el de Data Bases. Aquí los
denominamos bases de datos (BD).
El software de gestión de ficheros era demasiado elemental para dar satisfacción a todas estas
necesidades. Por ejemplo, el tratamiento de las interrelaciones no estaba previsto, no era
posible que varios usuarios actualizaran datos simultáneamente, etc. La utilización de estos
conjuntos de ficheros por parte de los programas de aplicación era excesivamente compleja, de
modo que, especialmente durante la segunda mitad de los años setenta, fue saliendo al
mercado software más sofisticado: los Data Base Management Systems, que aquí
denominamos Sistemas de Gestión de Bases de Datos (SGBD).
En otras palabras, una base de datos es un conjunto estructurado de datos que representa
entidades y sus interrelaciones. La representación será única e integrada, a pesar de que debe
permitir utilizaciones varias y simultáneas.
Los ficheros tradicionales y las BD
María Wanda Sabadini
Página: 9
Recupero de Información a través de operaciones con conjuntos
Aunque de forma muy simplificada, podríamos enumerar las principales diferencias entre los
ficheros tradicionales y las BD tal y como se indica a continuación:
1) Entidades tipos:
• Ficheros: tienen registros de una sola entidad tipo.
• Bases de Datos: tienen datos de varias entidades tipo.
2) Interrelaciones:
• Ficheros: el sistema no interrelaciona ficheros.
• Bases de Datos: el sistema tiene previstas herramientas para interrelacionar entidades.
3) Redundancia:
• Ficheros: se crean ficheros a la medida de cada aplicación, con todos los datos
necesarios aunque algunos sean redundantes respecto de otros ficheros.
• Bases de Datos : todas las aplicaciones trabajan con la misma BD y la integración de
los datos es básica, de modo que se evita la redundancia.
4) Usuarios
• Ficheros: sirven para un solo usuario o una sola aplicación. Dan una sola visión del
mundo real.
• Bases de Datos : es compartida por muchos usuarios de distintos tipos. Ofrece varias
visiones del mundo real.
Con todo lo que hemos dicho hasta ahora, podríamos definir el término Bases de Datos; una
base de datos de un Sistema de Información es la representación integrada de los conjuntos de
entidades instancia correspondientes a las diferentes entidades tipo del Sistema de Información
y de sus interrelaciones.
Las bases de datos se han convertido en una parte esencial en nuestros tiempos. Muchas de
las actividades que realizamos tienen algún tipo de interacción con ellas, por ejemplo, si
extraemos dinero de los cajeros, si vamos a comprar algún artículo en un supermercado, o si
accedemos a un buscador de Internet.
Resumiendo, ¿que es una base de datos? Es un conjunto de datos relacionados.
Y ¿los datos? Son hechos que pueden registrarse, por ejemplo, la fecha de nacimiento de una
persona, el saldo disponible de una cuenta de banco, los datos personales del cliente de una
farmacia, o por ejemplo, el estado de cuenta del contribuyente de la Municipalidad de
Resistencia.
Una base de datos tiene las siguientes propiedades implícitas:

Representa algún aspecto del mundo real

Es una colección coherente de datos que tienen algún significado

Se diseña y construye para un propósito en especial.
Un Sistema Administrador de Bases de Datos (o su sigla en inglés DBMS, de Data Bases
Management System) es una colección de programas que permite a quienes lo usan crear y
María Wanda Sabadini
Página: 10
Recupero de Información a través de operaciones con conjuntos
mantener una base de datos. Es un software que permite la definición, construcción y
manipulación de los datos para ser usados por las aplicaciones informáticas.
En este trabajo trataremos las bases de datos relacionales.
Este modelo usa los conceptos de relaciones matemáticas. Representa la base de datos como
un conjunto de relaciones, donde cada relación es una tabla con un conjunto de valores y
donde cada fila de la tabla representa una colección de valores de datos relacionados.
Por ejemplo, la tabla a la que llamaremos EMPLEADOS (figura 3), en donde registraremos los
datos de los empleados de una empresa, cada fila de la tabla representará una colección de
datos relacionados referentes a un empleado en particular.
Figura 3
El nombre de la tabla y los nombres de las columnas se utilizan para ayudar a interpretar el
significado de los valores en cada fila. En la figura 3 mostramos los datos de los empleados de
la empresa, es por eso conveniente llamar a la tabla EMPLEADOS y en cada columna
colocamos los nombres de los datos que queremos guardar.
Por convención, utilizaremos las mayúsculas para indicar el nombre de las tablas.
Todos los valores de una columna son del mismo tipo de datos. El tipo de datos describe el tipo
de valores que pueden aparecer en la columna (llamdo también el dominio), por ejemplo, en la
columna DNI aparecerán números, en la columna Nombre aparecerán cadenas de caracteres y
así en cada una de ellas.
El dominio es un conjunto de valores atómicos. Por atómico queremos expresar que cada valor
es indivisible.
El dominio para la columna DNI podría ser el conjunto de numéros de documentos, de hasta 8
dígitos.
El tipo de datos o formato se especifica también para cada dominio.
En el modelo relacional, cada tabla puede expresarse por un esquema de relación. Este
esquema que llamaremos R, se denota como R (A1, A2, . . ., An), donde R es el nombre de la
relación y entre paréntesis se coloca la lista de atributos que componen la relación. El grado de
la relación es el número de atributos que la componen.
Siguiendo el ejemplo, la relación EMPLEADO, se expresaría EMPLEADO (DNI, Nombre,
Apellido, Dirección, Fecha de nacimiento) y sería de grado 5.
Una relación se define como un conjunto de tuplas, donde cada tupla corresponde a una fila, y
para la relación EMPLEADO serían los datos de un empleado en particular. Matemáticamente,
los elementos de un conjunto no tienen un orden entre ellos, y las tuplas en una relación
tampoco. Sin embargo, en un archivo, los registros físicamente se almacenan en disco, por lo
María Wanda Sabadini
Página: 11
Recupero de Información a través de operaciones con conjuntos
que existirá un orden entre los mismos. Este orden indica el primero, el segundo, el enésimo,
hasta el último de los registros en el archivo. De forma similar, cuando mostramos una relación
como una tabla, las filas se mostrarán en un cierto orden.
Veamos la siguiente notación:

Un esquema de relación R de grado n se expresa de la forma R (A1, A2, . . ., An).

Una tupla en una relación r (R) se expresa de la forma t = <v1, v2, . . ., vn>, donde vi
es el valor correspondiente al atributo Ai.
Modelo Relacional
El modelo relacional es un modelo de datos y, como tal, tiene en cuenta los tres aspectos
siguientes de los datos:
1) La estructura, que debe permitir representar la información que nos interesa del mundo real.
2) La manipulación, a la que da apoyo mediante las operaciones de actualización y consulta de
los datos.
3) La integridad, que es facilitada mediante el establecimiento de reglas de integridad; es decir,
condiciones que los datos deben cumplir.
El principal objetivo del modelo de datos relacional es facilitar que la base de datos sea
percibida o vista por el usuario como una estructura lógica que consiste en un conjunto de
relaciones y no como una estructura física de implementación.
Esto ayuda a conseguir un alto grado de independencia de los datos.
El modelo relacional proporciona una estructura de los datos que consiste en un conjunto de
relaciones con objeto de representar la información que nos interesa del mundo real.
La estructura de los datos del modelo relacional se basa, pues, en el concepto de relación.
Un dominio D es un conjunto de valores atómicos. Por lo que respecta al modelo relacional,
atómico significa indivisible; es decir, que por muy complejo o largo que sea un valor atómico,
no tiene una estructuración interna para un SGBD relacional.
Los dominios pueden ser de dos tipos:
1) Dominios predefinidos, que corresponde a los tipos de datos que normalmente proporcionan
los lenguajes de bases de datos, como por ejemplo los enteros, las cadenas de caracteres, los
reales, etc.
2) Dominios definidos por el usuario, que pueden ser más específicos. Toda definición de un
dominio debe constar, como mínimo, del nombre del dominio y de la descripción de los valores
que forman parte de éste.
La obtención de los datos que responden a una consulta puede requerir el análisis y la
extracción de datos de una o más de las relaciones que mantiene la base de datos.
Según la forma como se especifican las consultas, podemos clasificar los lenguajes
relacionales en dos tipos:
María Wanda Sabadini
Página: 12
Recupero de Información a través de operaciones con conjuntos
1) Lenguajes basados en el álgebra relacional. El álgebra relacional se inspira en la teoría de
conjuntos. Si queremos especificar una consulta, es necesario seguir uno o más pasos que
sirven para ir construyendo, mediante operaciones del álgebra relacional, una nueva relación
que contenga los datos que responden a la consulta a partir de las relaciones almacenadas.
Los lenguajes basados en el álgebra relacional son lenguajes procedimentales, ya que los
pasos que forman la consulta describen un procedimiento.
2) Lenguajes basados en el cálculo relacional. El cálculo relacional tiene su fundamento teórico
en el cálculo de predicados de la lógica matemática. Proporciona una notación que permite
formular la definición de la relación donde están los datos que responden la consulta en
términos de las relaciones almacenadas. Esta definición no describe un procedimiento; por lo
tanto, se dice que los lenguajes basados en el cálculo relacional son lenguajes declarativos (no
procedimentales).
El lenguaje SQL, en las sentencias de consulta, combina construcciones del álgebra relacional
y del cálculo relacional con un predominio de las construcciones del cálculo. Este predominio
determina que SQL sea un lenguaje declarativo.
El estudio del álgebra relacional presenta un interés especial, pues ayuda a entender qué
servicios de consulta debe proporcionar un lenguaje relacional, facilita la comprensión de
algunas de las construcciones del lenguaje SQL y también sirve de base para el tratamiento de
las consultas que efectúan los SGBD (Sistemas Administradores de Bases de datos)
internamente.
Este último tema queda fuera del ámbito del presente curso, pero es necesario para estudios
más avanzados sobre bases de datos
Una vez visto los conceptos principales para las bases de datos, vamos a hablar de las
operaciones básicas del álgebra relacional.
María Wanda Sabadini
Página: 13
Recupero de Información a través de operaciones con conjuntos
Operaciones del Algebra Relacional
El álgebra relacional se inspira en la teoría de conjuntos para especificar consultas en una base
de datos relacional.
Para especificar una consulta en álgebra relacional, es preciso definir uno o más pasos que
sirven para ir construyendo, mediante operaciones de álgebra relacional, una nueva relación
que contenga los datos que responden a la consulta a partir de las relaciones almacenadas.
Los lenguajes basados en el álgebra relacional son procedimentales, dado que los pasos que
forman la consulta describen un procedimiento.
La visión que presentaremos es la de un lenguaje teórico y, por lo tanto, incluiremos sólo sus
operaciones fundamentales, y no las construcciones que se podrían añadir a un lenguaje
comercial para facilitar cuestiones como por ejemplo el orden de presentación del resultado, el
cálculo de datos agregados, etc.
Una característica destacable de todas las operaciones del álgebra relacional es que tanto los
operandos como el resultado son relaciones. Esta propiedad se denomina cierre relacional.
Las operaciones del álgebra relacional han sido clasificadas según distintos criterios; de todos
ellos indicamos los tres siguientes:
1) Según se pueden expresar o no en términos de otras operaciones.
a) Operaciones primitivas: son aquellas operaciones a partir de las cuales podemos
definir el resto. Estas operaciones son la unión, la diferencia, el producto cartesiano, la
selección y la proyección.
b) Operaciones no primitivas: el resto de las operaciones del álgebra relacional que
no son estrictamente necesarias, porque se pueden expresar en términos de las primitivas; sin
embargo, las operaciones no primitivas permiten formular algunas consultas de forma más
cómoda. Existen distintas versiones del álgebra relacional, según las operaciones no primitivas
que se incluyen.
2) Según el número de relaciones que tienen como operandos:
a) Operaciones binarias: son las que tienen dos relaciones como operandos. Son
binarias todas las operaciones, excepto la selección y la proyección.
b) Operaciones unarias: son las que tienen una sola relación como operando. La
selección y la proyección son unarias.
3) Según se parecen o no a las operaciones de la teoría de conjuntos:
a) Operaciones conjuntistas: son las que se parecen a las de la teoría de
conjuntos. Se trata de la unión, la intersección, la diferencia y el producto cartesiano.
b) Operaciones específicamente relacionales: son el resto de las operaciones; es
decir, la selección, la proyección y la combinación.
** EJEMPLO: Supongamos que tenemos una base de datos relacional con las cuatro
relaciones siguientes:
1) La relación EDIFICIOS_EMP, que contiene datos de distintos edificios de los que una
empresa dispone para desarrollar sus actividades.
María Wanda Sabadini
Página: 14
Recupero de Información a través de operaciones con conjuntos
2) La relación DESPACHOS, que contiene datos de cada uno de los despachos que hay en los
edificios anteriores.
3) La relación EMPLEADOS_ADM, que contiene los datos de los empleados de la empresa
que llevan a cabo tareas administrativas.
4) La relación EMPLEADOS_PROD, que almacena los datos de los empleados de la empresa
que se ocupan de tareas de producción.
A continuación describimos los esquemas de las relaciones anteriores y sus extensiones en un
momento determinado:
Esquema y extensión de EDIFICIOS_EMP (figura 4):
Figura 4
Esquema y extensión de DESPACHOS (figura 5)
Figura 5
Esquema y extensión de EMPLEADOS_ADM (figura 6):
Figura 6
Esquema y extensión de EMPLEADOS_PROD (figura 7):
María Wanda Sabadini
Página: 15
Recupero de Información a través de operaciones con conjuntos
Figura 7
Se considera que los valores nulos de los atributos edificiodesp y númerodesp de las relaciones
EMPLEADOS_PROD y EMPLEADOS_ADM indican que el empleado correspondiente no tiene
despacho. Estas operaciones permiten a quien las usa obtener respuesta. Esta respuesta
consiste en otra relación, que puede estar formada por una o más relaciones.
Las operaciones del algebra relacional se dividen en dos grupos. Un grupo que incluye las
operaciones basadas en la teoría de conjuntos (y esto es aplicable, porque cada relación se
define como un conjunto de tuplas). Estas operciones son Unión, Intersección, Diferencia y
Producto cartesiano. El otro grupo consiste en operaciones desarrolladas específicamente para
las bases de datos relacionales y son: Select, Project y Join, que veremos a continuación.
La operación SELECT
Se utiliza para seleccionar un subconjunto de tuplas de una relación que satisfagan una
condición. Podemos considerarla como el filtro que muestra sólo aquellas tuplas que cumplen
la condición.
Por ejemplo, para seleccionar las tuplas de EMPLEADOS que trabajan en el departamento 4,
o, aquellos que tienen un salario mayor a $2.000, podríamos utilizar la operación SELECT de la
siguiente forma
dpto=4
(EMPLEADOS)
salario>2000 (EMPLEADOS)
Se denota generalmente por
<condición de selección>(R)
donde el símbolo
(sigma) es usado como operador SELECT, y la condición es una
operación booleana sobre los atributos de la relación R.
María Wanda Sabadini
Página: 16
Recupero de Información a través de operaciones con conjuntos
Y el resultado de esta operación tiene los mismos atributos de R.
Podemos colocar como condición de esta operación, cláusulas que estén conectadas por
operadores booleanos, como ser AND, OR y NOT.
Por ejemplo, para seleccionar los empleados que trabajen en el departamento 4 y cuyo salario
sea mayor a $2.000, la operación SELECT sería como sigue
(dpto=4) AND (salario>2000) (EMPLEADOS)
Al evaluarse la condición, las tuplas que la cumplan serán devueltas.
Las condiciones booleanas serán evaluadas de la siguiente forma:
• (cond1 AND cond2) es verdadero si ambas (cond1) y (cond2) son verdaderas, caso
contrario es falso.
• (cond1 OR cond2) es verdadera si (cond1) o (cond2) o ambas son verdaderas, caso
contrario es falsa.
• (NOT cond) es verdadera cuando cond es falso. Caso contrario es falso.
El operador SELECT es unario, es decir que puede aplicarse a una sola relación y el resultado
de la operación devolverá una relación que tendrá el mismo grado que la relación R. El número
de tuplas devuelta será igual o menor que el número de tuplas de R.
También es conmutativa:
<cond1>(
<cond2>(R)) =
<cond2>(
<cond1>(R))
La operación PROJECT
Si pensamos en una relación como en una tabla, la operación SELECT, selecciona algunas
filas y descarta otras. La operación PROJECT, selecciona columnas de la tabla y descarta
otras.
Por ejemplo, para listar los nombres y apellidos de los empleados, utilizaríamos la operación
PROJECT de la siguiente forma:
nombre, apellido
(EMPLEADO)
La forma de esta operación es
<lista de atributos>(R)
María Wanda Sabadini
Página: 17
Recupero de Información a través de operaciones con conjuntos
Donde
es el símbolo que se usa para representar la operación PROJECT.
La operación JOIN
Esta operación se utiliza para combinar tuplas de dos relaciones en una. Esta operación es
muy importante para cualquier base de datos relacional porque permite procesar relaciones
entre tablas.
Por ejemplo, si en una relación tengo los datos de los empleados y en otra relación tengo los
registros de inasistencia al trabajo, podría obtener a través de la combinación de ambas
relaciones, cuales son los empleados que más faltaron, o cuales faltaron en una determinada
época del año.
La notación sería la siguiente R (A1, A2, . . ., An) y S(B1, B2, . . ., Bm):
R<condición del join>S
El resultado de JOIN es una relación con n + m atributos Q (A1, A2, . . ., An, B1, B2, . . ., Bm)
en ese orden. Q va a tener una tupla para cada combinación de tuplas—una de R y la otra de
S— siempre que se satisfaga la condición del join. Esta operación es diferente del producto
cartesiano, y la principal diferencia consiste en que la operación JOIN sólo combina las tuplas
que satisfacen la condición del JOIN, mientras que con el PRODUCTO CARTESIANO, todas
las combinaciones de tuplas son incluídas en el resultado.
Operaciones basadas en conjuntos
Unión
Se denota por R U S, siendo el resultado de esta operación una relación que incluye todas las
tuplas que están en R o en S o en ambas. Las duplicadas se eliminan.
Intersección
Se denota por R ∩ S, siendo el resultado de esta operación todas las tuplas que están en R y
en S.
Diferencia
Se denota por R – S: todas las tuplas que están en R pero que no están en S.
Veamos un ejemplo.
Tenemos las relaciones R1 que tiene los datos de estudiantes de Medicina, y la relación R2
que son instructores de natación.
Gráficamente, en la figura 8 tenemos una tabla por cada relación con sus atributos.
María Wanda Sabadini
Página: 18
Recupero de Información a través de operaciones con conjuntos
R1 (ESTUDIANTES)
R2 (INSTRUCTORES
Nombre
Apellido
Nombre
Apellidos
Susana
Gomez
Juan
Spinelli
Ramón
Hernandez
Ricardo
Downie
Juan
Estevanez
Susana
Gomez
Bárbara
Gimenez
Francisco
Espinola
Anita
Foresta
Ramón
Hernandez
Ernesto
Gutierrez
Yolanda
Martinez
Figura 8
Si utilizaramos la operación Unión entre R1 y R2 (figura 9 ), tendríamos :
R1 U R2
Nombre
Apellido
Susana
Gomez
Ramón
Hernandez
Juan
Estevanez
Bárbara
Gimenez
Figura 9
Con la operación Intersección entre R1 y R2 (figura 10), tendríamos:
R1 ∩ R2
Nombre
Apellido
Susana
Gomez
Ramón
Fernandez
Figura 10
Con la operación Diferencia (figura 11) :
María Wanda Sabadini
Página: 19
Recupero de Información a través de operaciones con conjuntos
R2 – R1
R1 - R2
Nombre
Apellido
Nombre
Apellidos
Juan
Estevanez
Juan
Spinelli
Bárbara
Gimenez
Ricardo
Downie
Anita
Foresta
Francisco
Espinola
Ernesto
Gutierrez
Yolanda
Martinez
Figura 11
Las operaciones UNION, INTERSECCION,
DIFERENCIA Y DIVISIÓN son operaciones
binarias, es decir, se pueden aplicar a dos conjuntos. Cuando estas operaciones son
adaptadas a las bases de datos relacionales, las dos relaciones sobre las que se quieren
aplicar estas operaciones deben ser unión compatibles, es decir, tienen que tener el mismo
grado (deben tener la misma cantidad de atributos y el i-ésimo atributo de la primer relación y el
i-ésimo atributo de la segunda relación deben tener el mismo dominio, no necesariamente el
mismo nombre).
Utilizando los esquemas mencionados en ** EJEMPLO (página 13), mostraremos como
podemos utilizar las operaciones de conjuntos y el álgebra relacional para resolver consultas:
La unión de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD proporciona una nueva
relación que contiene tanto a los empleados de administración como los empleados de
producción; se indicaría así: EMPLEADOS_ADM U
EMPLEADOS_PROD.
Sólo tiene sentido aplicar la unión a relaciones que tengan tuplas similares.
Por
ejemplo,
se
puede
hacer
la
unión
de
las
relaciones
EMPLEADOS_ADM
y
EMPLEADOS_PROD porque sus tuplas se parecen. En cambio, no se podrá hacer la unión de
las relaciones EMPLEADOS_ADM y DESPACHOS porque en las tablas, las tuplas respectivas
son de tipo diferente.
Más concretamente, para poder aplicar la unión a dos relaciones, es preciso que las dos
relaciones sean compatibles. Decimos que dos relaciones T y S son relaciones compatibles si:
Tienen el mismo grado.
• Se puede establecer una biyección entre los atributos de T y los atributos de S que hace
corresponder a cada atributo Ai de T un atributo Aj de S, de modo que se cumple que
dominio(Ai) = dominio(Aj).
María Wanda Sabadini
Página: 20
Recupero de Información a través de operaciones con conjuntos
Ejemplo de relaciones compatibles
Las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD tienen grado 5. Podemos
establecer la siguiente biyección entre sus atributos:
• A DNI de EMPLEADOS_ADM le corresponde DNIemp de EMPLEADOS_PROD.
• A nombre de EMPLEADOS_ADM le corresponde nombreemp de EMPLEADOS_PROD.
• A apellido de EMPLEADOS_ADM le corresponde apellidoemp de EMPLEADOS_PROD.
• A edificiodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.
• A númerodesp de EMPLEADOS_ADM le corresponde edificiodesp de EMPLEADOS_PROD.
Además, supondremos que los dominios de sus atributos se han declarado de forma que se
cumple que el dominio de cada atributo de EMPLEADOS_ADM sea el mismo que el dominio de
su atributo correspondiente en EMPLEADOS_PROD.
Por todos estos factores, podemos llegar a la conclusión de que EMPLEADOS_ADM y
EMPLEADOS_PROD son relaciones compatibles.
A continuación, pasaremos a definir los atributos y la extensión de la relación resultante de una
unión.
Los atributos del esquema de la relación resultante de T U
S coinciden con los atributos del
esquema de la relación T.
La extensión de la relación resultante de T U
S es el conjunto de tuplas que pertenecen a la
xtensión de T, a la extensión de S o a la extensión de ambas relaciones.
Ejemplo de unión
Si queremos obtener una relación R que tenga a todos los empleados de la empresa del
ejemplo anterior, llevaremos a cabo la unión de las relaciones EMPLEADOS_ADM y
EMPLEADOS_PROD de la forma siguiente:
R := EMPLEADOS_ADM U EMPLEADOS_PROD.
Entonces la relación R resultante será la reflejada en la tabla siguiente (figura 12)
María Wanda Sabadini
Página: 21
Recupero de Información a través de operaciones con conjuntos
Figura 12
El hecho de que los atributos de la relación resultante coincidan con los atributos de la relación
que figura en primer lugar en la unión es una convención; teóricamente, también habría sido
posible convenir que coincidiesen con los de la relación que figura en segundo lugar.
La intersección de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD obtiene una
nueva relación que incluye a los empleados que son al mismo tiempo de administración y de
producción: se indicaría como EMPLEADOS_ADM
EMPLEADOS_PROD.
La intersección, como la unión, sólo se puede aplicar a relaciones que tengan tuplas similares.
Para poder hacer la intersección de dos relaciones, es preciso, pues, que las relaciones sean
compatibles.
A continuación definiremos los atributos y la extensión de la relación resultante de una
intersección.
Los atributos del esquema de la relación resultante de T
S coinciden con los atributos del
esquema de la relación T.
La extensión de la relación resultante de T
S es el conjunto de tuplas que pertenecen a la
extensión de ambas relaciones.
Ejemplo de intersección
Si queremos obtener una relación R que incluya a todos los empleados de la empresa del
ejemplo que trabajan tanto en administración como en producción, realizaremos la intersección
de las relaciones EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:
R : = EMPLEADOS_ADM
EMPLEADOS_PROD (figura 13).
Figura 13
Si queremos obtener una relación R con todos los empleados de la empresa del ejemplo que
trabajan en administración, pero no en producción, haremos la diferencia de las relaciones
EMPLEADOS_ADM y EMPLEADOS_PROD de la forma siguiente:
María Wanda Sabadini
Página: 22
Recupero de Información a través de operaciones con conjuntos
R := EMPLEADOS_ADM – EMPLEADOS_PROD
Entonces la relación R resultante será (figura 14):
Figura 14
El producto cartesiano es una operación que, a partir de dos relaciones, obtiene una nueva
relación formada por todas las tuplas que resultan de concatenar tuplas de la primera relación
con tuplas de la segunda.
El producto cartesiano es una operación binaria. Siendo T y S dos relaciones que cumplen que
sus esquemas no tienen ningún nombre de atributo común, el producto cartesiano de T y S se
indica como T * S.
Si calculamos el producto cartesiano de EDIFICIOS_EMP y DESPACHOS, obtendremos una
nueva relación que contiene todas las concatenaciones posibles de tuplas de EDIFICIOS_EMP
con tuplas de DESPACHOS.
Si se quiere calcular el producto cartesiano de dos relaciones que tienen algún nombre de
atributo común, sólo hace falta redenominar previamente los atributos adecuados de una de las
dos relaciones.
El producto cartesiano de las relaciones DESPACHOS y EDIFICIOS_EMP del ejemplo se
puede hacer como se indica (es necesario redenominar atributos previamente):
EDIFICIOS(nombreedificio, supmediadesp) := EDICIOS_EMP(edificio, supmediadesp).
R := EDIFICIOS * DESPACHOS.
Entonces, la relación R resultante será (figura 15):
María Wanda Sabadini
Página: 23
Recupero de Información a través de operaciones con conjuntos
Figura 15
Para obtener el nombre y el apellido de los empleados, tanto de administración como de
producción, es necesario hacer una unión de EMPLEADOS_ADM y EMPLEADOS_PROD, y
después hacer una proyección sobre los atributos nombre y apellido. La operación se puede
expresar de las formas siguientes:
a) Se puede utilizar una sola expresión:
R := (EMPLEADOS_ADM U
EMPLEADOS_PROD) [nombre, apellido].
b) O bien podemos expresarlo en dos pasos:
• EMPS := EMPLEADOS_ADM U
• R :=
EMPLEADOS_PROD;
EMPS(nombre, apellido)
En los casos en que una consulta requiere efectuar muchas operaciones, resulta más sencilla
la segunda alternativa, porque evita expresiones complejas
Otros ejemplos de consultas formuladas con secuencias de operaciones
Veamos algunos ejemplos de consultas en la base de datos formuladas con secuencias de
operaciones del álgebra relacional.
1) Para obtener el nombre del edificio y el número de los despachos situados en edificios en los
que la superficie media de estos despachos es mayor que 12, podemos utilizar la siguiente
secuencia de operaciones:
• A := EDIFICIOS_EMP(supmediadesp > 12);
• B := DESPACHOS * A;
• R :=
B(edificio, número)
2) Supongamos ahora que se desea obtener el nombre y el apellido de todos los empleados
(tanto de administración como de producción) que están asignados al despacho 120 del edificio
Marina. En este caso, podemos utilizar la siguiente secuencia:
• A := EMPLEADOS_ADM U
EMPLEADOS_PROD;
• B := A(edificiodesp = Marina y númerodesp = 120);
• R := B(nombre, apellido).
3) Si queremos consultar el nombre del edificio y el número de los despachos que ningún
empleado de administración tiene asignado, podemos utilizar esta secuencia:
• A := DESPACHOS (dificio, número);
María Wanda Sabadini
Página: 24
Recupero de Información a través de operaciones con conjuntos
• B := EMPLEADOS_ADM(edificiodesp, númerodesp);
• R := A – B.
María Wanda Sabadini
Página: 25
Recupero de Información a través de operaciones con conjuntos
Conclusión
El álgebra relacional proporciona un conjunto de operaciones para manipular relaciones. Estas
operaciones se pueden clasificar de la forma siguiente:
a) Operaciones conjuntistas: unión, intersección, diferencia y producto cartesiano.
b) Operaciones específicamente relacionales: selección, proyección y combinación.
Y estas operaciones del álgebra relacional pueden formar secuencias que permiten resolver
consultas complejas en una base de datos.
Partiendo de conceptos básicos en matemáticas como ser la teoría de conjuntos podemos
resolver problemas tan complejos como el recupero de información de una base de datos, con
sólo abstraer e imaginar cada una de nuestras tablas como conjuntos y aplicarles operaciones
de álgebra relacional, siendo mucho más sencillo la interpretación de las sentencias de los
lenguajes de consulta a bases de datos.
Es una forma muy sencilla de explicar como obtener información de una base de datos,
relacionando conceptos y disciplinas.
El recupero de información de una base de datos no es sólo un problema del campo
informático, sino, porque haciendo uso del modelo de la transdiciplinaridad los grandes
problemas
son
transversales,
transnacionales,
múltiples,
multidimensionales,
transdisciplinarios.
Esta forma de tratar el recupero de la información pretende mostrar que podemos reformular
nuestra forma de conocimiento, evolucionando, para poder resolver los problemas no sólo
desde el punto de vista de una disciplina, sino abriendo todas las disciplinas para ver que
tienen en común, entrelazándolas y generando nuevas formas de organizar y producir
conocimiento.
María Wanda Sabadini
Página: 26
Recupero de Información a través de operaciones con conjuntos
Bibliografía

Análisis y diseño detallado de Aplicaciones informáticas de Gestión – Mario G. Piattini.
José A. Calvo-Manzano. Joaquín Cervera. Luis Fernández.Enero de 2000. Publicado
por Alfaomega Grupo Editor.

Database System Concepts, Fourth Edition. Silberschatz−Korth−Sudarshan. Foxit
Software Company – 2004.

Fundamentals of Database Systems - ElMasri Navathe –. Copyright 2001 Versaware
Inc. and its licensors

Segunda Clase: Qués es investigar? Profesora Viviana Polisena. Posgrado en
Metodología de la Investigación Científica. Universidad Nacional del Nordeste. Facultad
de Ingeniería.

Teoría de conjuntos y temas afines – Seymour Lipschutz, Ph. D – McGraw Hill
María Wanda Sabadini
Página: 27
Descargar