Está en la página 1de 30

BASE DE DATOS

lgebra Relacional
Principios

Lenguajes relacionales
Introduccin

Un modelo de datos es un conjunto de mtodos y reglas que


indican cmo se han de representar y manipular los datos.
La manipulacin de los datos (recuperacin, insercin,
modificacin y eliminacin) se realiza a travs del lenguaje de
manipulacin de datos.
Podemos clasificarlos en dos grupos segn la forma de interrogar
a la base de datos:

Procedimentales, donde el usuario especifica qu datos quiere y cmo


obtenerlos manipulando las relaciones mediante operadores
algebraicos relacionales. El lenguaje tipo es el lgebra relacional.

No procedimentales, donde el usuario especifica qu datos quiere,


pero no cmo obtenerlos. El lenguaje tipo es el clculo relacional,
tanto el orientado a tuplas como el orientado a dominios.

Los lenguajes relacionales son lenguajes formales (tericomatemticos) y se basan en el carcter conjuntista de una
relacin.
El lgebra relacional es un lenguaje procedimental para la
manipulacin de relaciones
En esta se especifica paso por paso la respuesta a una
consulta de los datos contenidos en una relacin.
El clculo relacional es un lenguaje aprocedimental
En el clculo relacional una consulta se resuelve en un solo
paso.
El Algebra Relacional fue desarrollada en 1970 y el clculo
relacional en 1971 por Codd.

El lgebra y el clculo relacional proveen una forma terica de


manipular una base de datos relacional.
Codd demostr que el lgebra relacional y el clculo
relacional son lgicamente equivalentes.
El lgebra relacional es importante por que contribuy a
establecer un vocabulario comn que encontramos en los
lenguajes de bases de datos comerciales, tales como
SELECT, PROJECT, etc
El clculo relacional es importante porque est basado en
lgica de predicados (con ello es ms fcil determinar la
veracidad de una oracin).

Varios lenguajes relacionales comerciales estn basados


en ste.

Lenguajes relacionales
lgebra relacional

Se basa en el lgebra de la teora de conjuntos


donde los operandos son tablas o relaciones.
Manipula relaciones produciendo nuevas
relaciones.
Cualquier operacin da como resultado una tabla
o relacin con la que se puede operar de nuevo.
Consiste en operaciones que algunas de ellas
son tomadas de la matemtica, otras del
lenguaje relacional y otras de lenguajes de
programacin comunes.

Lenguajes relacionales
Clasificacin de las operaciones relacionales:

Operaciones bsicas

Unarias: operan con una sola tabla.

Binarias o de conjunto: Operan con dos tablas.

Seleccin
Proyeccin
Unin
Diferencia
Producto cartesiano

Operaciones derivadas o adicionales : realizan en su

proceso llamadas a las operaciones bsicas.

Interseccin
Cociente o divisin
Join o reunin

Las de origen matemtico


son:

Unin

Interseccin

Diferencia de
conjuntos
Producto Cartesiano

La del lenguaje de
programacin es:

Asignacin

Las de lenguaje relacional


son:

Proyeccin

Seleccin

Divisin o cociente

Join

Algebra Relacional
Operadores del algebra se pueden clasificar
Segn la pertenencia a la
teora de conjuntos

Segn la posibilidad de
descomponerlos

Segn la cantidad de
argumentos

Tradicionales

Primitivos

Unarios

Especiales

Derivados

Binarios

CARRERA DE

INGENIERA
INFORMTICA
Y DE SISTEMAS

Algebra Relacional (Bsica)


Segn la pertenencia a la
teora de conjuntos

Segn la posibilidad de
descomponerlos

Tradicionales

Primitivos

Segn la cantidad de
argumentos
Unarios

1.

Unin

1.

Unin

1.Seleccin

2.

Interseccin

2.

Diferencia

2.Proyeccin

3.

Diferencia

3.

Producto Cartesiano

4.

Producto Cartesiano

4.

Seleccin

1.Unin

5.

Proyeccin

2.Diferencia

Especiales
1.

Seleccin

2.

Proyeccin

3.

Join

CARRERA DE

Derivados
1.

Interseccin

2.

Join

3.

Divisin

Binarios

3.Producto
Cartesiano
4.Interseccin
5.Join

INGENIE

.A

4R Divisin

6.Divisin

Algebra Relacional
Todos los operadores satisfacen la
propiedad de clausura:
Todo operador del lgebra toma como argumento/s
esquemas de relaciones y devuelve tambin
esquema de relacin
Ninguna expresin del algebra
puede generar tuplas repetidas

un

Generar expresiones
encadenadas o anidadas

10

Secuencias de operaciones y operador


Es frecuente necesitar raeplnicaor mvarbiorsaopre: radores
tras otro

Anidar expresiones

Aplicar los operadores de a uno y


crear resultados intermedios

Nombrar las relaciones intermedias


Temp

Expresin

uno

Secuencias de operaciones: Asignacin


No slo permite darle nombre a una relacin sino tambin cambiar
el nombre de sus atributos
R2 (nom_nuevo1, nom_nuevo2)

R1

Donde:
R1 tiene atributos nombre1 y nombre 2
nombre1 y nom_nuevo1 estn definidos sobre el mismo dominio
idem para nombre2 y nom_nuevo2

Algebra Relacional
Operador renombrar
No slo permite renombrar el nombre de la relacin sino tambin
el nombre de sus atributos
S(B1,B2, , Bn) (R)
Renombra la relacin R y sus atributos

S (R) o

Renombra nicamente la relacin

(B1,B2, , Bn) (R)

Renombra slo los atributos

Donde:

R es el nombre de la relacin original

S es el nuevo nombre de la relacin

B1, B2, , Bn son los nuevos nombres de los atributos. Si los atributos de R
son (A1 ,A2, , An) en ese orden, entonces cada Ai se renombra como Bi

NOTA: En el caso que no necesiten ser renombrados todos los atributos, lo mismo se los debe

13

mencionar a todos, y se colocan los mismos nombres, es decir, los viejos.

Algebra Relacional
Operador
Seleccin

Funcin

Notacin

Genera otra relacin cuyo


<condicion de seleccin> (R)
esquema es el mismo de R y,
en cuanto a la extensin,
posee todas las tuplas de R
que satisfacen la condicin de
seleccin

14

Operador seleccin
Comentarios:
La <condicin de seleccin> es una expresin booleana que puede utilizar los
operadores de comparacin {<,>,=,,,}. Estos operadores se aplican a
atributos cuyos dominios son valores ordenados (numricos, fechas, cadenas de
caracteres). Un ejemplo de dominio no ordenado es COLOR={rojo, verde,
amarillo}.
Las clusulas pueden conectarse con operadores
booleanos

El
operador
seleccin
es
conmutativo:
<cond1> (<cond2> (R)) = <cond2> (<cond1> (R))
Siempre es posible reemplazar una cascada de selecciones en una sola:

<cond1> (<cond2> (R)) = <cond1> and <cond2> (R)

Operador
Proyeccin

Funcin
Genera otro esquema de
relacin que contiene
solamente los atributos de R
especificados en la lista de
atributos

Notacin
<lista de atributos> R

Comentarios:
La cantidad de tuplas de la relacin resultante ser menor o igual a
la cantidad de tuplas de la relacin R.
El operador de proyeccin no es conmutativo.

Algunas consideraciones importantes:


Relaciones Unin Compatibles o Compatibles con la Unin

Dos relaciones, R(A1, A2, , An) y S(B1, B2, , Bn), sern unin
compatibles si tienen el mismo tipo de tuplas. Es decir, si ambas
tienen grado n y si dom(Ai)=dom(Bi) para 1 i n.
Calificacin de Atributos

Los atributos de una relacin R(A1, A2, , An) pueden ser calificados
colocando el nombre de la relacin, luego un punto y por ltimo el
nombre del atributo, por ejemplo,R.A2.

Operador
Unin *

Funcin
Genera un esquema de relacin que
posee el mismo conjunto de
atributos de R1 y R2, e incluye las
tuplas que pertenecen a R1 o a R2 o
a ambas

Notacin
R 1 U R2

Comentarios:
La cantidad de tuplas de la relacin resultante ser menor o igual a
la cantidad de tuplas de la relacin R1 + la cantidad de tuplas de R2.
El operador union es conmutativo.
* Los argumentos deben ser Unin Compatibles

Operador
Interseccin*

Funcin
Genera un esquema de relacin que
posee el mismo conjunto de
atributos de R1 y R2, e incluye las
tuplas que pertenecen a R1 y a R2

Comentarios:
El operador interseccin es conmutativo.

* Los argumentos deben ser Unin Compatibles

Notacin
R 1 R2

Operador
Diferencia *

Funcin
Genera un esquema de relacin que
posee el mismo conjunto de
atributos de R1 y R2, e incluye las
tuplas que pertenecen a R1 y no
pertenencen a R2

Comentarios:
El operador diferencia no es conmutativo.

* Los argumentos deben ser Unin Compatibles

Notacin
R1 - R2

Operador
Producto
Cartesiano

Comentarios:

Funcin

Notacin

Genera un esquema de
R 1 x R2
relacin que posee la unin
de atributos de R1 y R2, y
como tuplas todas las
combinaciones posibles de las
tuplas de R1 y R2

El operador producto cartesiano es conmutativo.

Algebra Relacional
Operador
Join

Comentarios:

Funcin
Genera un esquema de relacin
que posee la unin de atributos de
R1 y R2, (n+m), y como tuplas
todas las combinaciones posibles
de R1 y R2 que satisfacen la
condicin de reunin

Notacin
R1

<cond. de reunin>

R2

Donde:
R1(A 1,A 2, , An)
R2(B1,B2, , Bm)

La condicin de reunin es de la forma <cond> y <cond> y y <cond>.


Donde cada <cond> tiene la forma Ai Bj. Ai y Bj pertenecen al mismo dominio
y es un operador de comparacin {=,<,>,,,}. Un join con una condicin
general como sta, se denomina Join.
En particular, cuando la condicin de reunin utiliza el operador de
comparacin =, el join es llamado equijoin.
22

Algebra Relacional

23

Algebra Relacional
Operador
Natural Join

Comentarios:

Funcin
Es equivalente a un equijoin
con ciertas diferencias:
La condicin de reunin es
implcita, y es la igualdad
sobre los atributos con
idnticos nombres en ambas
relaciones (R1y R2). Adems
los atributos coincidentes son
mostrados slo una vez en la
relacin resultante.

El operador Natural Join es conmutativo.


R1 y R2 deben tener uno o ms atributos en comn.

Notacin
R1 * R2

Operador
Division

Funcin
Genera una relacin que
posee como atributos, los de
R1 que no estn en R2
(digamos Z). Y en cuanto a
las tuplas, todos aquellos
valores Z que estn
combinados en R1 con todos
los valores presentes en R2.

Comentarios:
El operador Divisin no es conmutativo.

Notacin
R 1 R2
Donde:
Si Z son atributos de
R1 y S los de R2,
entonces S Z

Algunos operadores presentados corresponden a extensiones del algebra


bsica, ellos son:
1.Join Externo Izquierdo
2.Join Externo Derecho
3.Join Externo Completo
Fundamentalmente en esta instancia trabajaremos con el conjunto de
operadores bsicos.
El standard SQL2 posee, entre otros, este tipo de operadores, y en ese
contexto trabajaremos con ellos.

26

Prioridades de operaciones

Tienen prioridad las operaciones unarias sobre


las binarias
Las expresiones del lgebra se evalan de
izquierda a derecha
Se pueden utilizar parntesis para alterar el
orden implcito de las expresiones

También podría gustarte