Logo Studenta

ÁlgebraRelacional

¡Estudia con miles de materiales!

Vista previa del material en texto

16/10/2012 
1 
Lenguajes Relacionales 
Operaciones del AR - Notación 
Ejemplos sobre un Caso de Estudio 
Álgebra Relacional (AR) 
Lenguajes Relacionales 
 Si bien el lenguaje estándar para manipular datos en una base 
relacional es el SQL, cada SGBD particular (p.e. MySQL, Oracle, 
SQLServer , etc.) implementa extensiones propias del mismo que 
hay que tener en cuenta a la hora de la implementación. El AR y 
los CR (cálculos relacionales) son lenguajes abstractos para 
expresar operaciones (lo mismo que el MER para el diseño de 
estructuras de datos). 
 Pueden ser procedimentales, como el AR (que es la base del 
SQL), cuando requieren expresar cómo realizar una operación 
para obtener un resultado, o no procedimentales, como el CRT y 
el CRD (que es la base del QBE - Query By Example), cuando sólo 
requieren expresar qué resultado se pretende (se especifica el 
conjunto de tuplas a obtener por comprensión). 
IBBDD 2 Álgebra Relacional 
Operaciones 
IBBDD Álgebra Relacional 3 
 El AR, el CRT y el CRD son lenguajes relacionales porque sus 
expresiones relacionan elementos (tuplas) de uno o más conjuntos 
(tablas) para obtener como resultado un conjunto (tabla) nuevo. 
 En el AR se pueden anidar expresiones tal como se pueden anidar 
expresiones aritméticas. 
 Los cálculos relacionales se basan en la Lógica de Primer Orden o 
Cálculo de Predicados. 
 Un predicado es una función booleana con argumentos; cuando se 
asigna valores a los argumentos el predicado se convierte en una 
proposición, que puede resultar verdadera o falsa. 
 Pueden conectarse predicados para formar predicados compuestos 
mediante los conectores lógicos  (and),  (or) y  (not). 
Operaciones del AR 
IBBDD Álgebra Relacional 4 
Operación Notación Función 
Selección p (T) Produce una tabla que contiene únicamente 
aquellas tuplas de T que satisfacen el predicado 
p. 
Proyección a1, … an (T) Produce una tabla que tiene un subconjunto de 
atributos de T eliminando tuplas duplicadas. 
Unión T1  T2 Produce una tabla que contiene todas las tuplas 
de T1 o T2, eliminando tuplas duplicadas. T1 y 
T2 deben ser compatibles (sus esquemas deben 
ser equivalentes en la cantidad, posición y 
dominio de los atributos, aunque sus nombres 
sí pueden ser distintos). 
Operaciones del AR 
IBBDD Álgebra Relacional 5 
Operación Notación Función 
Diferencia T1 – T2 Produce una tabla que contiene todas las tuplas 
de T1 que no se encuentran en T2. T1 y T2 deben 
ser compatibles. 
Intersección T1  T2 Produce una tabla que contiene todas las tuplas 
que se encuentran tanto en T1 como en T2. T1 y 
T2 deben ser compatibles. 
Producto 
cartesiano 
T1  T2 Produce una tabla concatenando cada tupla de T1 
con todas las tuplas de T2. 
Combinación 
natural 
T1 || T2 Produce una tabla concatenando tuplas de ambas 
tablas que tengan valores iguales en atributos con 
igual nombre (equicombinación). Se elimina uno 
de los ejemplares de cada atributo común. 
Operaciones del AR 
IBBDD Álgebra Relacional 6 
Operación Notación Función 
Combinación 
theta 
T1 || T2 Produce una tabla que contiene las tuplas de la 
combinación natural de T1 y T2 que cumplen el 
predicado . 
Combinación 
externa 
izquierda 
T1 | T2 Produce una tabla concatenando a cada tupla de 
T1 la tupla de T2 que tenga valores iguales para 
atributos comunes, y si no hay ninguna 
completa los atributos de T2 con valores nulos. 
División T1  T2 Produce una tabla con los atributos de T1 que 
no están en T2 cuyas tuplas se corresponden 
con TODAS las tuplas de T2. 
Renombrado T (Table) Renombra la tabla Table a T. 
16/10/2012 
2 
Operaciones del AR 
IBBDD Álgebra Relacional 7 
División: T1  T2  A(T1) – A((T2  A(T1)) – T1) 
 donde A es la lista de atributos de T1 que no están en T2 
Ejemplo: 
A B 
a1 b2 
a2 b1 
a1 b1 
a3 b2 
a1 b3 
B 
b1 
b3 
A 
a1 
T1 T2 T1 T2 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Ejemplos 
Operaciones Unarias 
Obtención de tuplas de una única tabla, con algunos o todos los 
atributos de la misma tabla (filtrado de tuplas o de atributos) 
IBBDD Álgebra Relacional 9 
Operaciones Unarias 
IBBDD Álgebra Relacional 10 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Selección o filtro de tuplas: productos con existencia actual 
menor o igual a la mínima 
 
existAct  existMin (Producto) 
Operaciones Unarias 
IBBDD Álgebra Relacional 11 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Proyección o filtro de atributos: codProd y desc de Producto 
 
codProd, desc (Producto) 
 
Operaciones Unarias 
IBBDD Álgebra Relacional 12 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Proyección y selección: codProd y desc de productos con 
existencia actual menor o igual a la mínima 
 
codProd, desc (existAct  existMin (Producto)) 
16/10/2012 
3 
Operaciones de Combinación de 
Tablas 
Obtención de tuplas de más de una tabla (o de copias de tablas), con 
atributos de todas las tablas 
IBBDD Álgebra Relacional 13 
Operaciones de Combinación 
IBBDD Álgebra Relacional 14 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Combinación de tablas: pares de codProd y la descripción de 
productos distintos que tengan la misma descripción y que no 
aparezcan invertidos 
p1.codProd, p2.codProd, p1.desc p1.desc=p2.desc  p1.codProd<p2.codProd 
(p1 (Producto)  p2 (Producto)) 
Operaciones de Combinación 
IBBDD Álgebra Relacional 15 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Equicombinación de tablas: nroFac, fecha de factura, 
codProd, desc y cant de productos vendidos en septiembre de 
2011 
nroFac, fecha, codProd, desc, cant (Factura||1/9/11  fecha  30/9/11 
VentaProd || Producto) 
Operaciones con Subconsulta de 
Tablas 
Obtención de tuplas con atributos de una o más tablas a partir de las 
tablas de las que se obtiene resultados y de una o más tablas 
adicionales 
IBBDD Álgebra Relacional 16 
Operaciones con Subconsultas 
IBBDD Álgebra Relacional 17 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
Subconsulta de tablas: código y descripción de productos que 
no se hayan vendido en septiembre de 2011 
 codProd, desc (Producto) – codProd, desc (Producto 
||VentaProd ||1/9/11  fecha  30/9/11 Factura) 
Operaciones con Subconsultas 
IBBDD Álgebra Relacional 18 
Factura(nroFac(pk), fecha, fPago, dto) 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
VentaProd((nroFac(fk), codProd(fk))(pk), cant, pvu) 
 Subconsulta de tablas: código y descripción de productos que se hayan 
vendido todos los días de septiembre de 2011 que hubo ventas 
 CRT 
{(p.codProd, p.desc) | Producto(p)  ( (f.fecha)) (Factura(f)  1/9/11  
f.fecha  30/9/11  ( v)(Venta(v)  v.codProd=p.codProd  
v.codFac=f.codFac)) } 
 AR 
 codProd, desc, fecha (Producto || VentaProd ||1/9/11  fecha  30/9/11 Factura)  
fecha (VentaProd ||1/9/11  fecha  30/9/11 Factura) 
16/10/2012 
4 
Actualización de Tablas en AR 
IBBDD Álgebra Relacional 19 
Producto(codProd(pk), desc, existAct, existMin, pVAct) 
 Incorporar el producto (1235, “pendorchos de 9 mm”, 10, 50): 
Producto  Producto  {(1235, “pendorchos de 9 
mm”, 10, 50)} 
Eliminar el producto 893: 
 Producto  Producto – codProd=893(Producto)Aumentar el 1% el precio de venta actual de todos los 
productos: 
pVAct  pVAct * 1,01(Producto)

Continuar navegando

Materiales relacionados

85 pag.
ManualAlgebra

Centro Educativo El Troncal

User badge image

Gisell Gomez

89 pag.
6-CRyAR-EDAT-121

User badge image

Materiales Generales