“Recupero de Información a través de operaciones con...

27
“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

Transcript of “Recupero de Información a través de operaciones con...

Page 1: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

“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

Page 2: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 2

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.

Page 3: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 3

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.

Page 4: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 4

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.

Page 5: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 5

Figura 1

De la unión surgen las siguientes observaciones

A) es el mismo conjunto que . Es decir

B) A y B son subconjuntos de . 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 , es decir

C) Si 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

Page 6: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 6

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.

Page 7: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 7

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.

Page 8: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 8

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.

Page 9: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 9

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

Page 10: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 10

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

Page 11: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 11

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

Page 12: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 12

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:

Page 13: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 13

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.

Page 14: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 14

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.

Page 15: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 15

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):

Page 16: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 16

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.

Page 17: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 17

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)

Page 18: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 18

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.

Page 19: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 19

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) :

Page 20: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 20

R1 - R2 R2 – R1

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).

Page 21: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 21

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)

Page 22: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 22

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:

Page 23: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 23

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):

Page 24: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 24

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 EMPLEADOS_PROD;

• R := 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);

Page 25: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 25

• B := EMPLEADOS_ADM(edificiodesp, númerodesp);

• R := A – B.

Page 26: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 26

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.

Page 27: “Recupero de Información a través de operaciones con ...ing.unne.edu.ar/imate/jornadasint/pub/t6.pdf · operaciones con conjuntos ... se inician en el mismo, como por ejemplo,

Recupero de Información a través de operaciones con conjuntos

María Wanda Sabadini Página: 27

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