Sei sulla pagina 1di 4

PRINCIPIOS DE ALGEBRA RELACIONAL

1. Se escribe la consulta en un editor de SQL y se ejecuta.


2. El sistema verifica la sintaxis, basndose en el diccionario de datos o CATALOGO.
3. Si la consulta est bien escrita, se traduce a varias opciones de consultas equivalentes en lgebra
relacional.
4. El optimizador de consultas evala el costo de cada expresin de algebra relacional equivalente y
determina la opcin que tiene menos costo. Esto lo hace utilizando las ESTADSTICAS de las
tablas.
5. La expresin de menor costo se conoce como el PLAN DE EVALUACIN DE CONSULTAS
OPTIMIZADO. Este plan se entrega al motor de evaluacin de consultas para que proceda a
realizar la consulta, extrayendo los datos de la base de datos.
6. Se presentan los resultados en pantalla.
LGEBRA RELACIONAL
Es un conjunto de operaciones que se realizan sobre tablas relacionales y se obtienen como resultado
otras tablas, al igual que en SQL. Hay varias operaciones.
OPERACIONES UNITARIAS. Se aplican sobre una sola tabla dando como resultado otra tabla.
1. Seleccin. Se aplica sobre una tabla con una condicin y el resultado es otra tabla con las filas que
cumplen con la condicin. Ejemplo:
=Seleccin
Se tiene la tabla Clientes con atributos codigoCli, nombreCli, ciudadCli
CLIENTES
codigoCli nombreCli ciudadCli
1 Pez
Quito
2 Arellano
Ibarra
3 Mrquez
Quito
Se quiere desplegar los datos de los clientes que vivan en
4 Zapata
Ambato
Quito. La consulta en algebra relacional ser:
ciudadCli=Quito(CLIENTES)
y el resultado es:
1 Pez
3 Mrquez

Quito
Quito

OTRO EJEMPLO:
Desplegar los clientes que vivan en Ibarra y su cdigoCli sea menor que 4. La consulta en Algebra
Relacional:
ciudadCli=Ibarra codigoCli<4(CLIENTES)
y el resultado:
2 Arellano

Ibarra

OPERACIN PROYECCIN ()
La proyeccin despliega una o ms columnas desde una tabla. Ejemplo: se quiere desplegar el cdigoCli y
el nombreCli desde la tabla Clientes.
La consulta en Algebra Relacional ser:
codigoCli, nombreCli(CLIENTES)
y el resultado:
codigoCli

nombreCli

1
2
3
4

Pez
Arellano
Mrquez
Zapata

CONSULTAS COMBINADAS.
Se pueden combinar varias operaciones en una sola consulta. Por ejemplo. Se quiere desplegar los
nombres de los clientes que vivien en Ambato. La consulta ser:
nombreCli(ciudadCli=Ibarra (CLIENTES))
y el resultado:

OPERACIONES BINARIAS
Se realizan sobre dos tablas y como resultado da otra tabla.
PRODUCTO CARTESIANO (X)
El producto cartesiano de dos tablas es una tabla que resulta de combinar cada fila de la primera tabla con
todas las filas de la segunda. Si en la base de datos se tiene tambin la tabla FACTURAS:

nroFact
1
2
3
4
5

FACTURAS
codigoCli valorFact fechaFact
1
10
12/01/2013
4
40
12/01/2013
2
10
13/01/2013
3
20
14/01/2013
1
30
14/01/2013

codigoCli
1
2
3
4

CLIENTES
nombreCli
Pez
Arellano
Mrquez
Zapata

C.codigoCli
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3

nombreCli
Pez
Pez
Pez
Pez
Pez
Arellano
Arellano
Arellano
Arellano
Arellano
Mrquez
Mrquez
Mrquez
Mrquez
Mrquez

ciudadCli
Quito
Ibarra
Quito
Ambato

CLIENTES X FACTURAS
ciudadCli nroFact F.codigoCli valorFact fechaFact
Quito
1
1
10 12/01/2013
Quito
2
4
40 12/01/2013
Quito
3
2
10 13/01/2013
Quito
4
3
20 14/01/2013
Quito
5
1
30 14/01/2013
Ibarra
1
1
10 12/01/2013
Ibarra
2
4
40 12/01/2013
Ibarra
3
2
10 13/01/2013
Ibarra
4
3
20 14/01/2013
Ibarra
5
1
30 14/01/2013
Quito
1
1
10 12/01/2013
Quito
2
4
40 12/01/2013
Quito
3
2
10 13/01/2013
Quito
4
3
20 14/01/2013
Quito
5
1
30 14/01/2013

4
4
4
4
4

Zapata
Zapata
Zapata
Zapata
Zapata

Ambato
Ambato
Ambato
Ambato
Ambato

1
2
3
4
5

1
4
2
3
1

10
40
10
20
30

12/01/2013
12/01/2013
13/01/2013
14/01/2013
14/01/2013

Aqu en el producto cartesiano, hay algunas filas que no son vlidas, porque tienen contradicciones.
Ejemplo:
12/01/201
1 Pez
Quito
2
4
40
3
En esta fila, el codigoCli por un lado es 1 y por otro lado es 4, lo cual es una contradiccin. Estas filas no
son vlidas, por lo que se debe eliminar. Por esta razn, al producto cartesiano siempre se le agrega una
operacin de seleccin para eliminar las filas no vlidas.
La operacin completa en lgebra relacional queda:
c.codigoCli=f.codigoCli (CLIENTES X FACTURAS), dando como resultado la siguiente tabla:
C.codigoCl
i
nombreCli ciudadCli

nroFact

F.codigoCli valorFact

1 Pez

Quito

10

1 Pez

Quito

30

2 Arellano

Ibarra

10

3 Mrquez

Quito

20

4 Zapata

Ambato

40

fechaFact
12/01/201
3
14/01/201
3
13/01/201
3
14/01/201
3
12/01/201
3

Esta operacin equivale a la siguiente operacin en SQL:


Select * from CLIENTES c inner join FACTURAS f
on c.codigoCli=f.codigoCli.
OPERACIN PRODUCTO NATURAL |X|
Es una operacin binaria que realiza al mismo tiempo el producto cartesiano y la seleccin de filas vlidas.
Es decir,
CLIENTES |X|FACTURAS= c.codigoCli=f.codigoCli (CLIENTES X FACTURAS)
EJERCICIO. Se tiene la BD FACTURACION con los siguientes valores en las tablas:

codigoCli
1
2
3
4

nroFact
1
2
3
4

CLIENTES
nombreCli
Pez
Arellano
Mrquez
Zapata

ciudadCli
Quito
Ibarra
Quito
Ambato

FACTURAS
codigoCli valorFact fechaFact
1
48
12/01/2013
4
3,2
12/01/2013
2
5,2
13/01/2013
3
0,4
14/01/2013

codigoPro
d
1
2
3
4

nroFact
1
1
2
3
3
4
5

26,4

14/01/2013

PRODUCTOS
nombrePro cantidadStoc precioUnitActu
d
k
al
arroz
100
2,5
azcar
30
1,8
tomates
200
0,4
huevos
100
0,1

DETALLES
codigoProd
cantidad precioUnitario
1
20
2,2
3
10
0,4
2
2
1,6
2
3
1,6
4
5
0,08
1
4
2,2
1
8
2,2

Realizar las siguientes consultas en Algebra relacional:


1. Desplegar los nombres de los clientes que compraron tomates el 12 de enero del 2013.
nombreCli ( fechaFact=12-01-13 ( nombreProd=Tomates(((CLIENTES|X|FACTURAS) |X|
DETALLES) |X|PRODUCTOS)))
Representado la consulta como rbol:
nombreCli

fechaFact=12-01-13

nombreProd=Tomates
|X|
PRODUCTOS

|X|

DETALLES

|X|

CLIENTES

FACTURAS

Potrebbero piacerti anche