Tema+7.+Dinámica+relacional;++Álgebra+relacional.

=Tema7. =

=Dinámica relacional. =


 * **__ Introducción: __**

= = El modelo relacional, como modelo de datos, comprende una parte estática (estructura y restricciones), la cual lleva asociada una dinámica. Es ésta la que nos permite la transformación entre estados de la Base de Datos, mediante el uso de operadores sobre el estado original, para así obtener un estado resultante. = = Dicho conjunto está comprendido por los siguientes operadores: = = = =
 * Inserción de tuplas.
 * Borrado de tuplas.
 * Modificación tuplas.
 * Consulta.

= = La dinámica del modelo relacional actúa sobre conjuntos de tuplas, y se expresa mediante lenguajes de manipulación relacionales, que asocian una sintaxis concreta a las operaciones. Por lo tanto, los lenguajes relacionales también operan sobre conjuntos de tuplas. = =

= = Los lenguajes relacionales quedan divididos en dos tipos: = = = = Conocidos mediante el término //álgebra relacional//. = = = = Conocidos como cálculo relacional, pueden ser orientados a dominios, u orientados a tuplas. = =
 * ** Algebráicos: ** las operaciones se aplican sobre operandos (relacionales), es decir, sobre tablas, y el resultado es otra relación.
 * ** Predicativos: ** los cambios de estado son especificados mediante predicados que definen el estado deseado, sin indicar las operaciones necesarias para llegar al mismo.

=Álgebra relacional. =


 * **__ Introducción: __**

El álgebra relacional es un lenguaje de consulta procedimental. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.

Consta de un conjunto de operaciones que toman como entrada una (**unitaria**) o dos relaciones (**binaria**) y producen como resultado una nueva relación. Las operaciones fundamentales del álgebra relacional son **selección**, **proyección**, **unión**, **diferencia** **de** **conjuntos**, **producto** **cartesiano** y **renombramiento**. Además de las operaciones fundamentales hay otras operaciones, por ejemplo, intersección de **conjuntos**, **reunión** **natural**, **división** y **asignación**.

Es preciso conocer estas operaciones porque nos permiten saber qué servicios de consulta debe proporcionar un lenguaje relacional.


 * **__ Operadores fundamentales de conjuntos: __**

Son **selección, unión, proyección**, **diferencia** y **producto** **cartesiano**. Los operadores unión, diferencia y producto cartesiano son operadores binarios, mientras que los operadores selección y proyección son unitarios.

Dos tablas son **compatibles respecto a la unión** solo si sus cabeceras son idénticas, lo cual significa que:
 * Tienen el mismo conjunto de **atributos** (misma cabecera).
 * Tienen el mismo **dominio** (mismo tipo de datos).

La selección sobre una relación R1 mediante una cualificación Q es una nueva relación R2, cuyo esquema es igual a R1, y cuya extensión está formada por todas aquellas tuplas de R1 que satisfacen la cualificación Q. La cualificación Q es una expresión lógica.
 * ** Operador SELECCIÓN (o restricción): **

Se utiliza la letra griega sigma minúscula (σ) para denotar la selección. El predicado aparece como subíndice de σ. La relación del argumento se da entre paréntesis a continuación de σ.

SELECT Q(R1)


 * Es la misma operación que restricción. **

La unión de dos relaciones compatibles R1 y R2 es una nueva relación R3, también compatible, cuyo esquema es igual al esquema de R1 y R2, y cuya extensión está formada por la agrupación, sin repetición, de las tuplas de R1 y R2.
 * ** Operador UNIÓN: **

Denotado, por el símbolo ∪.

R1 UNION R2

Extrae de una relación los atributos especificados, creando una nueva tabla con dichos atributos especificados.
 * ** Operador PROYECCIÓN: **

La proyección se denota por la letra griega mayúscula pi (Π). Se crea una lista de los atributos que se desea que aparezcan en el resultado como subíndice de Π. La relación de argumentos se escribe a continuación entre paréntesis.

La proyección se denota por la letra griega mayúscula pi (Π).

R{ A1, ..., An}

La diferencia de dos relaciones compatibles R1 y R2 es una nueva relación R3, también compatible, cuyo esquema es igual al esquema de R1 y R2, y cuya extensión está formada por aquellas tuplas de la relación R1 que no se encuentren en la relación R2.
 * ** Operador DIFERENCIA: **

Denotado por el símbolo -

R1 MINUS R2


 * ** Operador RENOMBRAMIENTO: **

Permite renombrar una relación para facilitar la interacción con otras.

Operador denotado por la letra griega rho minúscula (ρ).

ρ s (R)

Dos tablas son **compatibles respecto al producto**, si y solo si, sus cabeceras son **disjuntas** (es decir, no tienen nombres de atributos en común).

El producto cartesiano de dos relaciones R1 y R2 es una nueva relación R3, cuyo esquema es igual a la concatenación de los esquemas de R1 y R2, y cuya extensión está formada por el conjunto de las tuplas que se obtiene de concatenar cada una de las tuplas de R1 con todas y cada una de las tuplas de R2.
 * ** PRODUCTO CARTESIANO: **

Denotado por un aspa (x).

R1 PRODUCT R2


 * **__ Operaciones relacionales especiales (o avanzados): __**

Son **intersección, restricción, reunión y división.**

La intersección de dos relaciones compatibles R1 y R2 es una nueva relación R3, también compatible, cuyo esquema es igual al esquema de R1 y R2, y cuya extensión está formada por el conjunto de tuplas que son comunes a R1 y R2.
 * ** Operador INTERSECCIÓN: **

Denotado por (∩).

R1 INTERSECT R2

La selección sobre una relación R1 mediante una cualificación Q es una nueva relación R2, cuyo esquema es igual a R1, y cuya extensión está formada por todas aquellas tuplas de R1 que satisfacen la cualificación Q. La cualificación Q es una expresión lógica. Extrae las tuplas que satisfagan una combinación especificada.
 * ** Operador RESTRICCIÓN: **

R WHERE 

Dada dos relaciones, R1 y R2, la reunión devolverá una nueva tabla cuya cabecera será la unión de las cabeceras de R1 y R2, y cuyas tuplas serán aquellas que satisfagan una determinada condición o cualificación, denominada Q.
 * ** Operador REUNIÓN: **

Se denota por el símbolo de la «reunión».

Se denomina **equireunión** a la operación en la que la cualificación Q es una expresión que contiene el operador de comparación “**=**”.

R1 JOIN R2 (R1.XXX "=" R2.YYY)

No se puede realizar división de tablas R1 de más de dos atributos y de tablas R2 de más de un atributo. Por lo que puede ser necesaria una proyección previa. Esta operación genera una relación R3, con un solo atributo. Las tuplas son aquellas de R1 que están relacionadas con R2.
 * ** Operador DIVISIÓN: **

Denotada por el símbolo ÷.

R1 DIVIDE BY R2 PENDIENTE