Está en la página 1de 15

Mdulo 5.

lgebra Relacional

Jorge Ivn Bedoya Restrepo

Mdulo 5. Algebra Relacional


Introduccin
Para los usuarios finales de una base de datos, el principal inters, con respecto
a las consultas que se hagan sobre la base de datos es que dichas consultas
respondan rpido y que entreguen la informacin solicitada. No importa dichas
consultas cmo se hagan en el motor de la base de datos.
Pero desde el punto de vista de un profesional en sistemas, es muy importante
conocer dichas consultas cmo se estn llevando a cabo dentro del motor de la
base de datos. Esto con el fin de poder darle respuestas concretas a un usuario
acerca del rendimiento de las consultas que se estn haciendo sobre una base
de datos. No tiene presentacin que un profesional en sistemas, ante el
requerimiento de un usuario de encontrar la causa del bajo tiempo de respuesta
de una consulta, no sepa dar los argumentos del por qu dicho tiempo de
respuesta es tan bajo y, por ende, tampoco tendr muchos criterios para
optimizar dicha consulta.
En otras palabras, como se dijo en el mdulo 1. de este libro, el lenguaje SQL
es no procedimental, es decir, al escribir una instruccin de consulta, no interesa
saber cmo se va a llevar a cabo la consulta, slo interesa expresar los datos
que se quieren consultar.
El objetivo del lgebra relacional es entender cmo se ejecutan las instrucciones
SQL. Es decir, si se quiere entender cmo se ejecuta una instruccin SQL de
consulta, se debe entender lgebra relacional. Ac radica la importancia del
tema del lgebra relacional.

Qu es lgebra Relacional?
lgebra Relacional es un lenguaje de consulta procedimental, es decir, sus
instrucciones describen los datos que se van a consultar y la manera como
dichos datos se van a traer de la base de datos.
As como SQL es un lenguaje, el lgebra relacional tambin. Por lo tanto ambos
se componen de instrucciones. Lo que sucede es que las instrucciones en
lgebra relacional se conocen como operaciones. Adems, la escritura de
dichas operaciones tiene que respetar una sintaxis y una semntica, como en
cualquier lenguaje de programacin.
La forma como cualquier operacin del lgebra relacional funciona se puede ver
resumida en la siguiente grfica. Como se puede observar, hay operaciones del
lgebra relacional que reciben como parmetros de entrada los datos de una
tabla (Tabla1) y hay otras operaciones que reciben los datos de dos tablas
1

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

(Tabla1 y Tabla 2). Pero independiente de la operacin que sea, el resultado


siempre ser otra tabla (Tabla3).

Esta grfica, que parece trivial, cobrar especial importancia cuando se est
aprendiendo a escribir operaciones de consulta en lgebra relacional.

Tipos de Operaciones del lgebra Relacional


Existen dos formas de categorizar las operaciones del lgebra relacional:

De acuerdo al nmero de tablas que recibe


o Operaciones Unarias (U): Reciben una sola tabla.
o Operaciones Binarias (B): Reciben dos tablas.

De acuerdo a su posible implementacin con otras operaciones.


o Operaciones Bsicas (o Primarias): Operaciones que NO se
pueden implementar con base en otras operaciones, son las
primitivas.
o Operaciones Secundarias: Son operaciones que se pueden
implementar con base en las operaciones bsicas.

Operaciones del lgebra Relacional


A continuacin se hace un listado de las ocho principales operaciones que
componen el lgebra relacional.
Operaciones Bsicas (o Primarias):

Seleccin
Proyeccin
Renombramiento
Unin
Diferencia
Producto Cartesiano

Operaciones Secundarias:

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Interseccin
Reunin Natural

Operacin Seleccin

Tipo: Unaria
Sintaxis:
condicin a cumplir (Tabla)

Descripcin: Operacin que selecciona tuplas completas de una tabla y


que cumplan con una condicin dada.
Ejemplo:
Supongamos la siguiente tabla:
Carro = { placa, marca, modelo, capacidad }
Hacer la siguiente consulta en lgebra relacional: listar los datos de los
carros cuyo modelo sea igual a 2001.
Solucin:
modelo = 2001 (Carro)
El resultado de la anterior consulta me muestra la placa, marca, modelo y
capacidad de todos los carros modelo 2001. Recuerde que la seleccin
trae tuplas completas, es decir, con todos sus atributos. Dicho de otra
manera, la tabla3 de la anterior consulta tiene cuatro atributos (o
columnas).

Ejemplo: Listar los datos de los carros cuya capacidad sea menor a 5 y
que sea de marca Renault.
Solucin:
(marca = Renault AND capacidad < 5) (Carro)

Ejemplo: Listar los datos de los carros cuya marca es Mazda o cuyo
modelo es 2003.
(marca = Mazda OR modelo = 2003) (Carro)

Operacin Proyeccin

Tipo: Unaria
Sintaxis:
3

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

atributo1, atributo2,.,atributo N (Tabla)

Descripcin: Operacin que selecciona valores de atributos especficos


de una tabla.
Ejemplo: Listar la placa y marca de todos los carros.
placa, marca (Carro)
La operacin anterior da como resultado una tabla3 con dos atributos:
placa y marca. Esa es la diferencia con la seleccin. La proyeccin
selecciona atributos especficos que se necesitan imprimir.

Sugerencia: Siempre que se vaya a escribir una operacin del lgebra relacional
se debe respetar la sintaxis de la misma.

Ejemplo: Listar la placa y modelo de los carros que sean de marca


Chevrolet.
En esta consulta surge una primera dificultad y es que se est pidiendo
imprimir ciertos atributos pero condicionado a algo. Y como se puede ver,
la proyeccin no permite poner condiciones. Por lo tanto, hay que
empezar a combinar operaciones.
Para escribir la solucin de esta consulta, hay dos posibilidades:
Posibilidad 1: marca = Chevrolet ( placa, modelo (Carro))
Posibilidad 2: placa, marca ( marca = Chevrolet (Carro))
Se debe recalcar que ambas posibilidades estn bien sintcticamente
hablando pero hay una que hace lo que se pide y la otra no.
Por qu ambas estn bien sintcticamente?
Como en toda operacin aritmtica, primero se hace lo que hay en
parntesis y luego el resto. Es decir, en la posibilidad 1, primero se hace
la proyeccin dando como resultado una tabla3 y luego se hace la
seleccin
sobre ese resultado anterior. Como se puede ver,
individualmente, no se est violando la sintaxis de la proyeccin ni de la
seleccin.

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Lo mismo sucede con la posibilidad 2, est bien escrita sintcticamente.


Como se dijo anteriormente, a pesar de que ambas estn bien
sintcticamente, solo una de las dos funciona para lo que se pide.
Analicemos la posibilidad 1.primero se hace la proyeccin que es lo que
est dentro del parntesis. Esto genera una tabla con la placa y marca de
todos los carros (Tabla 3). Y luego se hace una seleccin a esta tabla
resultante donde en la condicin se pregunta por la marca y como se
puede observar la marca no es un atributo que forma parte de la Tabla3
generada en la proyeccin. Luego ac se genera un error. (Es como si se
hiciera un SELECT donde en el WHERE se invoca un campo que no
existe en la tabla que est en el FROM).
En cambio la posibilidad 2, primero se seleccionan tuplas completas de
los carros marca Chevrolet y luego a dichas tuplas se les imprime su
placa y su marca. Lo cual es correcto y hace lo que se est pidiendo.
Por lo tanto, la solucin a la consulta propuesta es la posibilidad 2.
Este resultado ensea que, teniendo el siguiente SELECT,.
SELECT ca.placa, ca.marca
FROM carro
WHERE ca.marca = Chevrolet
.. primero se ejecuta el WHERE y luego se hace lo de la clusula
SELECT. Es una muestra de que el lgebra relacional permite entender
cmo se ejecuta una instruccin SELECT.
Operacin Renombramiento

Tipo: Unaria
Sintaxis:
Nombre Nuevo Tabla (Tabla)

Descripcin: Operacin que renombra, a nivel lgico, una tabla. Es decir,


algunas veces es necesario renombrar a una tabla para poder escribir
una operacin del lgebra relacional.
El ejemplo de la utilizacin de esta operacin se ver con ms detalle
cuando se explique la operacin de producto cartesiano.

Operacin Unin

Tipo: Binaria
5

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Sintaxis:
Tabla1 U Tabla2

Descripcin: Esta operacin rene o junta las tuplas de Tabla1 con las de
Tabla2 en un mismo resultado.

Ejemplo: Para hacer un ejemplo de unin, por ser una operacin binaria,
se necesitan dos tablas. Por lo tanto, a la tabla que se viene trabajando
(Carro) se va a adicionar la siguiente tabla:
Bus = { placa, marca, color }. Se supone color como univalorado.
Se desea listar los datos de los automviles en general (carros y buses).
Lo que se pide, se ajusta perfectamente a lo que hace la operacin de
Unin. Se necesita poner los datos de los carros y de los buses en un
solo resultado. Por lo tanto, se puede pensar que la solucin es la
siguiente:
Carro U Bus
Analizando el posible resultado de dicha unin, y teniendo en cuenta que
el resultado de la operacin es otra tabla (Tabla3), dicho resultado tendra
la siguiente apariencia:

Como se puede observar, la Tabla3 resultante tendra una caracterstica


que no es vlida en el modelo relacional: una tabla no puede tener en
ciertas tuplas cuatro atributos y en otras tuplas tres atributos.
Por lo tanto, para hacer la unin de dos tablas, se TIENE que cumplir la
condicin de que ambas tablas tengan la misma aridad, es decir, la
misma cantidad de atributos.

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Para poder solucionar el problema y hacer que ambas tablas cumplan con
la condicin, supongamos la tabla CARRO sin el campo capacidad. Es
decir, ambas tablas tendran tres atributos.
Al hacer la unin entre CARRO y BUS, el resultado (Tabla3) quedara con
el siguiente aspecto:

Se soluciona el problema de que ya TODA la Tabla3 quedara con tres


atributos. Pero si se analiza bien, hay otra situacin que no puede pasar
en una tabla del modelo relacional. El tercer atributo de la tabla CARRO
es el modelo, el cual es de tipo entero. Y el tercer atributo de la tabla BUS
es el color, el cual es de tipo string. Es decir, en la Tabla3 hay ciertas
tuplas donde el tercer atributo es entero y otras tuplas donde ese mismo
atributo es string. Eso no es posible en el modelo relacional.
Por lo tanto, para hacer la unin de dos tablas se tiene que cumplir una
segunda condicin: los atributos correspondientes en las dos tablas
deben ser del mismo tipo.
Importante: Para poder hacer Tabla1 U Tabla2, se tienen que cumplir dos
condiciones: Tabla1 y Tabla2 tienen que ser de la misma aridad y los
atributos correspondientes de Tabla1 con los de Tabla2 tienen que ser del
mismo tipo de dato.
Es as, entonces, que cuando se va a hacer la unin de dos tablas, se
proyectan los campos en comn de ambas tablas. Por lo tanto, para listar
los datos de todos los automviles se hara lo siguiente:
placa, marca (Carro) U placa, marca (Bus)
Lo anterior es lo mismo que placa, marca (Carro U Bus)?

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Operacin Diferencia

Tipo: Binaria
Sintaxis:
Tabla1 - Tabla2

Descripcin: Lista las tuplas que estn en Tabla1 y NO ESTN en


Tabla2.
Ejemplo: Para el ejemplo de la diferencia supongamos las siguientes dos
tablas:
Todos_Los_Estudiantes = { cdula, nombre, direccin, edad }
Estudiantes_Becados = { cdula, nombre, edad, raza, telfono }
Se supone que en la primera tabla estn absolutamente todos los
estudiantes, becados y no becados. Y en la segunda solamente estn los
datos de los estudiantes que estn becados.
Listar los datos de los estudiantes que no estn becados.
Para resolver esta consulta se puede utilizar la operacin diferencia. De
tal manera que se escribira:
Todos_Los_Estudiantes

Estudiantes_Becados

Si se analiza bien el resultado de la anterior operacin, todas las tuplas


que
estn
en
Todos_Los_Estudiantes
y
NO
estn
en
Estudiantes_Becados, no dara como resultado lo que se est pidiendo.
De hecho:
Todos_Los_Estudiantes-Estudiantes_Becados = Todos_Los_Estudiantes
lo cual no es lo que se est pidiendo. Es decir, cuando en una diferencia,
las dos tablas no cumplen con las dos condiciones que se tienen que
cumplir en la unin, la consulta funciona pero no da el resultado
esperado.
Por lo tanto, mientras en la unin las dos condiciones expuestas se
TIENEN que cumplir para que la consulte funcione, en la diferencia las
dos condiciones se DEBEN cumplir para lograr el resultado esperado.
De tal manera que para hacer la diferencia entre dos tablas, se procede,
como en la unin, a proyectar los atributos comunes. Entonces, la
solucin a la anterior consulta es la siguiente:

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

cedula, nombre, edad (Todos_Los_Estudiantes) cedula, nombre, edad (Estudiantes_Becados)


Operacin Producto Cartesiano

Tipo: Binaria
Sintaxis:
Tabla1 X Tabla2

Descripcin: Concatena cada una de las tuplas de Tabla1 con cada una
de las tuplas de Tabla2, una a una. Para entender mejor esta operacin,
suponga la siguiente situacin expresada:
Tabla1: Tiene 10 tuplas y 8 atributos.
Tabla2: Tiene 7 tuplas y 9 atributos.
Entonces,
Tabla1 X Tabla2 tiene 70 tuplas y cada tupla tendr 17 atributos.

Ejemplo: Suponga las siguientes dos tablas:


Avin = { matrcula, marca, No.horasvuelo, cdigo-aerolinea }
Cdigo-aerolnea referencia a Aerolinea (cdigo)
Aerolnea = { cdigo, nombre, aofundacin }
Y los datos de ambas tablas son los siguientes:

Matrcula
HK7800
HK8000
HK2300
HK7400

Cdigo
10
20
30

Tabla Avin
Marca
No.horasvuelo
Boeing
Airbus
Concorde
Boeing

520
410
215
500

Tabla Aerolnea
Nombre
Avianca
Copa
Satena

Cdigo-aerolnea
10
10
20
30

AoFundacin
1950
1966
1945

Entonces el resultado de Avin X Aerolnea es el siguiente:


9

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Avin X Aerolnea
Matrcula

Marca

HK7800
HK7800
HK7800
HK8000
HK8000
HK8000
HK2300
HK2300
HK2300
HK7400
HK7400
HK7400

Boeing
Boeing
Boeing
Airbus
Airbus
Airbus
Concorde
Concorde
Concorde
Boeing
Boeing
Boeing

No.HorasV

520
520
520
410
410
410
215
215
215
500
500
500

Cdigo-A

10
10
10
10
10
10
20
20
20
30
30
30

Cdigo

10
20
30
10
20
30
10
20
30
10
20
30

Nombre

Avianca
Copa
Satena
Avianca
Copa
Satena
Avianca
Copa
Satena
Avianca
Copa
Satena

AoFund.

1950
1966
1945
1950
1966
1945
1950
1966
1945
1950
1966
1945

A cualquier par de tablas se les puede hacer un producto cartesiano. Lo


que sucede es que hay ocasiones en las cuales el resultado no tiene
sentido.

Ejemplo: Listar la matrcula y marca de cada avin junto con el nombre de


la aerolnea a la cual pertenecen.
Para solucionar esto en SQL, se sabe que se ejecuta la siguiente
instruccin:
SELECT av.matricula, av.marca, ae.nombre
FROM Avion av INNER JOIN Aerolnea ae
ON av.codigo-aerolinea = ae.codigo
Si se analiza el producto cartesiano entre Avin y Aerolnea, el resultado
son 12 tuplas, de las cuales 8 son tuplas espurias y 4 son tuplas
verdaderas. Cules son las 8 tuplas espurias y cules son las 4
verdaderas?
Entonces, para hacer la anterior consulta en lgebra relacional, la
operacin es la siguiente:
matricula, marca, nombre ( cdigo-aerolinea = codigo(Avin X Aerolnea))
Primero se hace el producto cartesiano, el cual da como resultado 12
tuplas. Luego se hace la seleccin, la cual selecciona las 4 tuplas reales y
de estas 4 tuplas se proyectan los atributos a imprimir.
Como conclusin a este ejemplo, se puede afirmar que todo INNER JOIN
es hecho a travs de un producto cartesiano.
10

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Ejemplo: Listar el nmero de horas de vuelo del avin que MS horas de


vuelo tiene.
Hacer esto en SQL es muy sencillo:
SELECT max(No.horasvuelo)
FROM Avin
La explicacin siguiente muestra cmo se llevara a cabo esta instruccin
en lgebra relacional.
Para uno saber cul es el mximo nmero de horas de vuelo, se deben
comparar TODOS los nmeros de horas de vuelo. Eso est disponible en
la tabla AVION, pero cada No.horasvuelo est en una tupla distinta, lo
cual se constituye en un problema ya que no se tiene una operacin que
compare valores de un mismo campo en tuplas distintas.
El problema se solucionara si tuviramos el par de valores a comparar
del atributo No.horasvuelo en la misma tupla. Como se logra esto?
Si se hace un producto cartesiano entre la tabla Avin consigo misma,
cada tupla tendra dos No.horasvuelo y se tendra todas las parejas que
habra que comparar. El producto cartesiano mencionado se muestra a
continuacin.

Avin X Avin
Matricula

HK7800
HK7800
HK7800
HK7800
HK8000
HK8000
HK8000
HK8000
HK2300
HK2300
HK2300
HK2300
HK7400
HK7400
HK7400
HK7400

Marca

Boeing
Boeing
Boeing
Boeing
Airbus
Airbus
Airbus
Airbus
Concorde
Concorde
Concorde
Concorde
Boeing
Boeing
Boeing
Boeing

No.HorasV

CodigoA

Matricula

520
520
520
520
410
410
410
410
215
215
215
215
500
500
500
500

10
10
10
10
10
10
10
10
20
20
20
20
30
30
30
30

HK7800
HK8000
HK2300
HK7400
HK7800
HK8000
HK2300
HK7400
HK7800
HK8000
HK2300
HK7400
HK7800
HK8000
HK2300
HK7400

Marca

Boeing
Airbus
Concorde
Boeing
Boeing
Airbus
Concorde
Boeing
Boeing
Airbus
Concorde
Boeing
Boeing
Airbus
Concorde
Boeing

No.HorasV

CodigoA

520
410
215
500
520
410
215
500
520
410
215
500
520
410
215
500

10
10
20
30
10
10
20
30
10
10
20
30
10
10
20
30

Lo que sigue es empezar a comparar cada par de valores del campo


No.horasvuelo que hay en cada tupla. Pero surge un nuevo problema: en
Avin X Avin, en cada tupla hay dos atributos llamados No.horasvuelo,
por lo tanto, si necesitamos comparar ese par de valores hay que
diferenciar, de alguna manera, los nombres de los atributos.
11

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Es ah donde entra a funcionar la operacin de renombramiento. Si al


hacer la operacin de Avin X Avin, se renombra alguna de las dos
tablas (Avin de la izquierda del producto o Avin de la derecha del
producto), ya habra alguna manera de identificar los dos atributos
No.horasvuelo.
Por lo tanto, con la explicacin dada hasta el momento, tenemos la
siguiente expresin del lgebra:
Avin X Av (Avin)
lo cual da como resultado la tabla anterior.
El mecanismo para lograr la consulta requerida es la siguiente:

Entonces,
A = No.horasvuelo (Avin)
C = Avion.No.horasvuelo < Av.No.horasvuelo (Avin X Av (Avin))
B = Avion.No.horasvuelo (C)
Las tuplas seleccionadas en C se muestran resaltadas en amarillo.

Avin X Avin
Matricula

HK7800
HK7800
HK7800
HK7800

Marca

Boeing
Boeing
Boeing
Boeing

No.HorasV

CodigoA

Matricula

520
520
520
520

10
10
10
10

HK7800
HK8000
HK2300
HK7400

12

Marca

Boeing
Airbus
Concorde
Boeing

No.HorasV

CodigoA

520
410
215
500

10
10
20
30

Mdulo 5. lgebra Relacional

HK8000
HK8000
HK8000
HK8000
HK2300
HK2300
HK2300
HK2300
HK7400
HK7400
HK7400
HK7400

Airbus
Airbus
Airbus
Airbus
Concorde
Concorde
Concorde
Concorde
Boeing
Boeing
Boeing
Boeing

Jorge Ivn Bedoya Restrepo

410
410
410
410
215
215
215
215
500
500
500
500

10
10
10
10
20
20
20
20
30
30
30
30

HK7800
HK8000
HK2300
HK7400
HK7800
HK8000
HK2300
HK7400
HK7800
HK8000
HK2300
HK7400

Boeing
Airbus
Concorde
Boeing
Boeing
Airbus
Concorde
Boeing
Boeing
Airbus
Concorde
Boeing

520
410
215
500
520
410
215
500
520
410
215
500

10
10
20
30
10
10
20
30
10
10
20
30

Y al hacer B, es decir, al proyectar los valores de No.horasvuelo de la


izquierda de dichas tuplas, obtenemos B.
Por lo tanto, la solucin a la consulta es A B.
Qu pasa si lo que se necesita es listar el nmero de horas de vuelo del
avin que MENOS horas de vuelo tiene?
Operacin Interseccin

Tipo: Binaria
Sintaxis:
Tabla1 n Tabla2

Descripcin: Selecciona las tuplas de Tabla1 que tambin estn en


Tabla2. En otras palabras, selecciona las tuplas comunes en las dos
tablas.
Por qu esta operacin es secundaria? Porque, segn la teora de
conjuntos, A n B = A (A B). Es decir, la interseccin se podra
implementar con la operacin diferencia.

Ejemplo: Supongamos las siguientes dos tablas:


Profesor = { cedula, nombre, edad }
Estudiante = { cedula, nombre, direccin, telfono }
Se desea listar los datos de los estudiantes que a la vez son profesores.
La operacin interseccin suple est necesidad porque se necesitan los
datos que estn a la vez en las dos tablas. Por lo tanto, la aparente
solucin es
Estudiante n Profesor
13

Mdulo 5. lgebra Relacional

Jorge Ivn Bedoya Restrepo

Si aplicamos exactamente la definicin de interseccin, las tuplas que


estn en Estudiante y a la vez estn en Profesor, nos da como resultado
un conjunto vaco, es decir, no trae ninguna tupla, lo cual no es el
resultado esperado. Ninguna tupla de Estudiante est tambin en
profesor ya que las tuplas de Estudiante tienen 4 atributos y las de
Profesor tienen 3 atributos.
Es as que se llega a la misma conclusin a la que se lleg en la
operacin diferencia. Para que la operacin interseccin de un resultado
coherente, se DEBEN cumplir las mismas dos condiciones de la unin y
la diferencia.
Por lo tanto, la solucin a la consulta es la siguiente:
cedula, nombre (Estudiante) n cedula, nombre (Profesor)
Operacin Reunin Natural

Tipo: Binaria
Sintaxis:
Tabla1

Tabla2

Descripcin: La Reunin natural hace automticamente las siguientes dos


operaciones y en dicho orden:
o Tabla1 X Tabla2
o Selecciona de dicho producto cartesiano las tuplas donde la clave
fornea de Tabla1 es igual a la clave primaria de Tabla2.
Es decir, la reunin natural implementa automticamente el INNER JOIN.

Ejemplo: Rehacer la misma consulta expresada en la operacin producto


cartesiano pero a travs de una reunin natural. La consulta deca: Listar
la matrcula y marca de cada avin junto con el nombre de la aerolnea a
la cual pertenecen.
La forma de hacer la consulta con el producto cartesiano es la siguiente:
(ya estaba expresada en apartados anteriores)
matricula, marca, nombre ( cdigo-aerolinea = codigo(Avin X Aerolnea))
La manera de hacer la misma consulta pero a travs de una reunin
natural es la siguiente:

14

Mdulo 5. lgebra Relacional

matricula, marca, nombre (Avin

Jorge Ivn Bedoya Restrepo

Aerolnea)

Como se puede observar, el operador


automticamente hace el
producto cartesiano entre Avin y Aerolnea y luego hace la seleccin de
las tuplas donde el cdigo de aerolnea en Avin sea igual al cdigo de
aerolnea en Aerolnea.
Conclusin: Sabiendo expresar una consulta en lgebra relacional, se tiene una
visin muy clara de cmo ejecuta dicha consulta el motor de la base de datos y,
por lo tanto, se tiene un criterio mucho ms amplio para decidir si hay una
manera de optimizar dicha consulta.
Ah radica la importancia del lgebra relacional.

15

También podría gustarte