Vous êtes sur la page 1sur 8

lgebra relacional

1 Dinmica del Modelo Relacional a travs de los lenguajes relacionales......................................................................................................................................................................................2 1.1 lgebra relacional..................................................................................................................................................................................................................................................................3

Mnica Crespo Arjona

lgebra relacional

1 Dinmica del Modelo Relacional a travs de los lenguajes relacionales


La componente dinmica del Modelo Relacional permite la transformacin entre estados de la BD. Las operaciones sobre la BD alteran las relaciones en el tiempo se puede decir que son cambios en el estado de la BD (transiciones).

O(BDi) = BDj * la BD cambia de estado, se dinamiza Para obrar esos cambios, es necesario intervenir a travs de un lenguaje de manipulacin de datos. Los lenguajes relacionales son usados por los SGBD relacionales para manejar las relaciones. Los lenguajes relacionales son de especificacin. Codd pretende dar respuesta a la especificacin de consultas sobre una BD relacional. E.F.Codd, extiende el modelo relacional bsico dotndolo de comportamiento dinmico mediante los 2 lenguajes tericos de referencia: lgebra relacional (1971) y Clculo relacional (alternativa al lgebra). - Algebraicos o procedimentales: los cambios se describen mediante las operaciones sobre la BD lgebra relacional - Predicativos o no-procedimentales o declarativo: slo es necesario indicar el resultado a obtener, expresado mediante predicados de 1er orden, sin especificar cmo alcanzarlo clculo relacional lgebra relacional. Lo componen un conjunto de operaciones extradas del lgebra de Conjuntos, que toman como entrada 1 o 2 relaciones y producen como resultado una nueva relacin sin modificar las originales. Tanto los operandos como los resultados son relaciones, por lo que la salida de una operacin puede ser la entrada de otra operacin. Los operadores se aplican a una extensin de relacin, no a un esquema de relacin. Los operadores definidos permitirn expresar la componente de seleccin de las operaciones del LMD. Clculo relacional es una aplicacin del clculo de predicados, basado en la lgica de primer orden. Pueden ser de 2 tipos: Orientados a tuplas: se definen variables que hacen referencia a tuplas de la relacin. Las constantes son valores de los dominios sobre los que se definen los atributos. Una consulta simple en clculo de tuplas tiene la forma: {t|COND(t)} Ej.: {t|EMPLEADO(t) and SALARIO>50000} Orientados a dominios: se definen variables que representan valores de un dominio. Ambos lenguajes son equivalentes: para cada expresin del lgebra, se puede encontrar una expresin equivalente en el clculo, y viceversa. El lgebra relacional (o el clculo relacional) se usan para medir la potencia de los lenguajes relacionales. Si un lenguaje permite obtener cualquier relacin que se pueda derivar mediante el lgebra relacional, se dice que es relacionalmente completo. La mayora de los lenguajes relacionales son relacionalmente completos, pero tienen ms potencia que el lgebra o el clculo porque se les han aadido operadores especiales.

Mnica Crespo Arjona

lgebra relacional

1.1 lgebra relacional


CLASIFICACIN DE LOS OPERADORES. Se pueden dividir en: Operadores primitivos ~ bsicos: Aquellos operadores esenciales que no pueden obtenerse a partir de otros Diferencia (convierten al lgebra relacional en un lenguaje completo). Son operacionalmente completos, permiten expresar cualquier consulta a una BDR. Operadores derivados: pueden obtenerse aplicando varios de los primitivos. Tambin pueden clasificarse segn el n de operandos: Unarios: el operador tiene 1 nica relacin como operando. Seleccin y Proyeccin. Binarios: el operador tiene 2 relaciones como operandos. OPERADORES UNARIOS SELECCIN: Escogemos las tuplas que cumplan una condicin o predicado de seleccin. Se escogen filas. Las mismas columnas. Notacin: predicado (relacin) Libros escritos por Dumas SELECT * FROM Libros WHERE (autor=Dumas);
PROYECCIN: Subconjunto del esquema de relacin, seleccionando nicamente valores no repetidos en todas las tuplas para esos atributos.

Notacin: atrib1, atrib2 (relacin) Se escogen columnas SELECT titulo, autor FROM Libros;

Si la proyeccin fuera por autor cuntas tuplas tendra la nueva relacin?3, pero en SQL hay que poner distinct.
Mnica Crespo Arjona 3

lgebra relacional

OPERACIONES DE CONJUNTOS Para poder aplicar los operadores de conjuntos Unin, Interseccin y Diferencia, las relaciones deben ser compatibles. Dos relaciones son compatibles si tienen el mismo nmero de atributos y estos estn definidos en el mismo dominio =>mismo esquema de relacin En general, el esquema de relacin de 2 relaciones no coincide pero puede aplicarse la operacin de proyeccin para igualar estos esquemas. Forma de ordenar el resultado Las sentencias SELECT individuales no pueden tener el ORDER BY, pero SI se puede ordenar el resultado de todas ellas. Cmo? Slo 1 clusula ORDER BY y al final de la ltima. Cada SELECT individual si podra tener subconsultas, HAVING,.. UNION. Todas las tuplas sin repeticin de ambas relaciones (compatibles), eliminndose todas las tuplas repetidas. El esquema de relacin no se modifica. Ingenieros o Jefes (SELECT * FROM Ingenieros) union (SELECT * FROM Jefes);
Si el sistema no ofrece union se usara OR si hubiese clusula en el WHERE de ambas selecciones. Ver CEF 6-31 Cardinalidad: depende; Grado= Grado de cualquier operando. Igual para la interseccin. UNION ALL: se recuperan tambin las duplicidades, si las hay.

Q1 2009 TAI PI

Solucin:

Mnica Crespo Arjona

lgebra relacional DIFERENCIA. Tuplas que aparecen en la primera y no en la otra (compatibles).

SQLBase y otros sistemas relacionales no ofrecen el operador minus. Se puede usar except. No es lo mismo a b que b - a Ingenieros que no son jefes. (SELECT * FROM Ingenieros) minus (SELECT * FROM Jefes); SELECT * FROM Ingenieros WHERE E# NOT IN (SELECT E# FROM Jefes);
PRODUCTO CARTESIANO. Tuplas de ambas en todas las combinaciones.

SQL_89: SELECT comidas.*, Vinos.* FROM Comidas, Vinos; SQL_92: SELECT * FROM Comidas CROSS JOIN Vinos; Cardinalidad= Cardinalidad Clientes* Cardinalidad Pelculas; Consume muchos recursos y el tiempo de respuesta es mayor. Grado= Grado Clientes + Grado Pelculas Se necesita para la navegacin entre <>s relaciones. En el from se ponen varias tablas.

Mnica Crespo Arjona

lgebra relacional

OPERADORES DERIVADOS INTERSECCIN. Todas las tuplas que estn en ambas (compatibles). SQLBase y otros sistemas relacionales no ofrecen el operador intersect. (SELECT * FROM Aventuras) intersect (SELECT * FROM Novelas); SELECT * FROM Aventuras WHERE Signat IN (SELECT Signat FROM Novelas);
DIVISIN. Conjunto de tuplas de la primera (R1) que contienen a la segunda (R2) y sin sta ltima.

Solo podemos dividir cuando los atributos del divisor son un subconjunto de los del dividendo. Es til para un tipo especial de consultas.
Dividendo Divisor

Construye una relacin con los valores de los atributos de la 1 relacin (dividendo) que concuerdan con cada uno de las tuplas de la 2 relacin (divisor)
A B A a a a b b c c B x z y y z x y a1 a1 a2 a3 b1 b2 b1 b2 B A B A

b1 b2

a1

x z

Mnica Crespo Arjona

lgebra relacional COMBINACIN (JOIN). Tuplas del producto cartesiano que cumplen una condicin. La condicin lleva operadores de comparacin (=, >, <..)

SELECT * FROM Clientes C, Pelculas P WHERE C.Edad>=P.Calificacion; SELECT * FROM Clientes C INNER JOIN Pelculas P ON (C.Edad>=P.Calificacion)
Cardinalidad < Cardinalidad Clientes* Cardinalidad Pelculas; Grado= Grado Clientes + Grado Pelculas COMBINACIN DE EQUIVALENCIA ~ equijoin. Caso particular del operador combinacin donde la comparacin es de igualdad.

SELECT E.DNI FROM Empleados AS E, Coches AS C WHERE E.DNI=C.Dueo; SELECT E.DNI FROM Empleados E INNER JOIN Coches C ON (E.DNI=C.Dueo) Una tabla tiene PK y la otra FK WHERE T1.PK=T2.FK Permite completar lo que una tabla no tiene con otra tabla de forma coherente=>navegabilidad La combinacin es un producto cartesiano seguido de una restriccin. La combinacin equijoin es un producto cartesiano seguido de una restriccin por igualdad y de proyeccin (columna comn).
A a1 a2 a3 a3 B b1 b1 b3 b4 INNER JOIN B b1 b2 b3 b1 C c1 c2 c3 c2 A a1 a1 a2 a2 a3 B b1 b1 b1 b1 b3 C c1 c2 c1 c2 c3

NATURAL es una especializacin del INNER. Ej. SELECT E.DNI FROM Empleados NATURAL JOIN Coches

Se comparan todas las columnas que tengan el mismo nombre en ambas tablas.

Mnica Crespo Arjona

lgebra relacional Q3 2009 TAI PI

Solucin: Nota: Se coloca en el centro la tabla que contiene las claves ajenas (tabla economica) con respecto a las tablas que contienen las claves primarias referenciadas.
AGRUPACIN. Formacin de grupos segn un conjunto de atributos al cual se le aplica una funcin de agregacin.

Funciones de agrupacin (agregacin) definidas en SQL92: Count(), Sum(), Avg(), Min() y Max()

Mnica Crespo Arjona

Vous aimerez peut-être aussi