Ir al contenido principal

Entradas

Mostrando entradas de septiembre 19, 2013

Inner vs Outer Join

Cuando Equijoins y Nonequijoins son desarrollados, filas de la Tabla Source y Target son emparejadas utilizando una condición Join formuladas con un operador de igualdad o desigualdad respectivamente. Estas son referidas como Inner Joins . Un Outer Join es desarrollado cuando filas, que no son recuperadas mediante un inner join, son recuperadas. Para ejemplificar un Outer Join necesitamos una relación de tablas como Master-Detail o Parent-Child. En el esquema HR de ejemplo hay varios pares de tablas con tal relación. Una de ellas es DEPARTMENTS y EMPLOYEES. La tabla DEPARTMENTS almacena una lista de departamentos con DEPARTMENT_NAME y DEPARTMENT_ID. Cada fila de EMPLOYEES tiene una columna llamada DEPARTMENT_ID restringida a ser un valor existente en la tabla DEPARTMENT o NULL. Esto conduce a uno de los tres escenarios. El cuarto escenario puede aparecer si la restricción entre las dos tablas fuese removida. 1.        Una fila en EMPLOYEE tiene un valor en DEPARTMENT_ID que c

Outer Joins

Equijoins une filas entre dos tablas basadas en una igualdad de los datos almacenados en una columna de cada tabla. Nonequijoins encuentra filas entre dos tablas basada en una expresión de desigualdad. Filas de la tabla Target que no coinciden con ninguna fila de la tabla Source y viceversa usualmente no son requeridas. Cuando estas son requeridas. Un Outer Join puede ser utilizado. Varias variantes de Outer Join pueden ser utilizados dependiendo si las filas a encontrar son de la tabla Source o Target. ·          Left Outer Join ·          Right Outer Join ·          Full Outer Join

Self Join

Almacenar datos en una sola tabla relacional es llevada a cabo mediante la asignación de dos columnas por fila. Una columna almacena un identificador del registro padre y las segunda almacena el identificador del registro. Asociar las filas en una relación jerárquica requiere un Join a la misma tabla. Este tipo de Join es una técnica llamada Self Join. Suponga que existe la necesidad de almacenar un árbol familiar en una tabla relacional. Hay varios enfoques que uno puede tomar. Una opción es usar una tabla llamada FAMILY con columnas llamadas ID, NAME, MOTHER_ID y FATHER_ID donde cada fila almacena una persona con un ID único y los ID para sus padres. Cuando dos tablas son unidas, cada fila de la tabla Source es sometida a la condición Join con las filas de la tabla Target. Si la condición es evaluada a Verdadero, entonces las filas son unidas, donde las filas de ambas tablas son devueltas. Cuando las columnas de un Join es originado de una sola tabla, un Self Join es req