miércoles, 9 de noviembre de 2016

Álgebra relacional
Es el conjunto de operaciones encargadas de la manipulación de operaciones encargadas de la manipulación de datos agrupados(relaciones).
Estas operaciones describen la manipulación de datos. Son en sí, una representación intermedia de una consulta a una base de datos.
Al aplicarse una operación a una tabla, tengo como resultado otra tabla.
Operadores
De comparación(=,<,>,>=,<=,<>).
Conjunción.( ^ )
Disyunción.( v )
Negación.

Operaciones Unitarias:

  • Seleccionar
  • Proyectar
  • Eliminar duplicados  
Seleccionar(σ)
Selecciona el valor de ciertas tuplas.
σcondición(R)={t R: condición (t)escierto}
Selecciona filas completas.
Por ejemplo, los “materiales que sean de acero”.









Proyectar (π) 
Se encarga de seleccionar el valor de ciertos atributos de todas las tuplas que estan en una relación.
Seleccionar las columnas completas.













Proyectar (π) en SQL
Composición de Seleccionar y Proyectar(σ,π)

Eliminar duplicados(δ)
Eliminar tuplas duplicadas en una relación.

Operaciones Binarias:

Producto cartesiano:
Operación binaria en donde se va a poder obtener una nueva tabla con los atributos de las dos tablas anteriores:

Ejemplo:
A={s,t,u}
B={x,y,z}
AxB={s,t,u}x{x,y,z}
{(s,x),(s,y),(s,z),(t,x),(t,y),(t,z),(u,x),(u,y),(u,z)}
La cardinalidad es |A x B|=|A||B|
Producto Cartesiano en SQL: SELECT * FROM R1, R2

Operaciones de Conjuntos:
Se trabajan sobre dos o más relaciones que sean compatibles.
Que los campos deben tener características comunes.
Unión: Esta operación retorna un conjunto de tuplas que estén en una o ambas relaciones que se asocian.

IntersecciónEntrega la cantidad de tuplas que están en las dos relaciones.

Diferencia(-): Cantidad de tuplas que se encuentran en la primera relación pero no en la segunda, es importante diferenciar que no es lo mismo A - B, que B - A.

Join: Es equivalente a seleccionar las combinaciones completas del productos cartesiano. Algunos autores indican poner la condición de igualdad.

Join en SQL: SELECT * FROM R1, R2 WHERE R1.k = R2.K
Join en MYSQL: SELECT * FROM R1 JOIN R2 USING (k)
Join en MSSQL: SELECT * FROM R1 INER JOIN R2 ON R1.k = R2.K

LEFT JOIN/ RIGHT JOIN
JOIN elimina algunos datos.
Los que no están en las dos tablas
LEFT JOIN reemplaza los eliminados por valores nulos en la tabla de la izquierda.
RIGHT JOIN reemplaza los eliminados por valores nulos en la tabla de la derecha.

Referencias:

No hay comentarios.:

Publicar un comentario