DBMS - Uniones
Entendemos los beneficios de tomar un producto cartesiano de dos relaciones, lo que nos da todas las tuplas posibles que están emparejadas. Pero puede que no sea factible para nosotros en ciertos casos tomar un producto cartesiano en el que encontramos relaciones enormes con miles de tuplas que tienen un número considerable de atributos.
Joines una combinación de un producto cartesiano seguido de un proceso de selección. Una operación de unión empareja dos tuplas de relaciones diferentes, si y solo si se cumple una condición de unión determinada.
Describiremos brevemente varios tipos de combinación en las siguientes secciones.
Theta (θ) Únete
Theta join combina tuplas de diferentes relaciones siempre que satisfagan la condición theta. La condición de unión se indica con el símboloθ.
Notación
R1 ⋈θ R2
R1 y R2 son relaciones que tienen atributos (A1, A2, .., An) y (B1, B2, .., Bn) tales que los atributos no tienen nada en común, es decir R1 ∩ R2 = Φ.
Theta join puede usar todo tipo de operadores de comparación.
Estudiante | ||
---|---|---|
SID | Nombre | Estándar |
101 | Alex | 10 |
102 | Maria | 11 |
Asignaturas | |
---|---|
Clase | Tema |
10 | Matemáticas |
10 | Inglés |
11 | Música |
11 | Deportes |
Student_Detail -
STUDENT ⋈Student.Std = Subject.Class SUBJECT
Student_detail | ||||
---|---|---|---|---|
SID | Nombre | Estándar | Clase | Tema |
101 | Alex | 10 | 10 | Matemáticas |
101 | Alex | 10 | 10 | Inglés |
102 | Maria | 11 | 11 | Música |
102 | Maria | 11 | 11 | Deportes |
Equijoin
Cuando Theta join usa solo equalityoperador de comparación, se dice que es equijoin. El ejemplo anterior corresponde a equijoin.
Unión natural ( ⋈ )
La unión natural no utiliza ningún operador de comparación. No se concatena como lo hace un producto cartesiano. Podemos realizar una unión natural solo si existe al menos un atributo común entre dos relaciones. Además, los atributos deben tener el mismo nombre y dominio.
La unión natural actúa sobre los atributos coincidentes donde los valores de los atributos en ambas relaciones son iguales.
Cursos | ||
---|---|---|
CID | Curso | Departamento |
CS01 | Base de datos | CS |
ME01 | Mecánica | YO |
EE01 | Electrónica | EE |
Capacho | |
---|---|
Departamento | Cabeza |
CS | Alex |
YO | maya |
EE | Mira |
Cursos ⋈ HoD | |||
---|---|---|---|
Departamento | CID | Curso | Cabeza |
CS | CS01 | Base de datos | Alex |
YO | ME01 | Mecánica | maya |
EE | EE01 | Electrónica | Mira |
Uniones externas
Theta Join, Equijoin y Natural Join se denominan uniones internas. Una combinación interna incluye solo aquellas tuplas con atributos coincidentes y el resto se descarta en la relación resultante. Por lo tanto, necesitamos usar combinaciones externas para incluir todas las tuplas de las relaciones de participación en la relación resultante. Hay tres tipos de combinaciones externas: combinación externa izquierda, combinación externa derecha y combinación externa completa.
Unión exterior izquierda (R S)
Todas las tuplas de la relación izquierda, R, se incluyen en la relación resultante. Si hay tuplas en R sin ninguna tupla coincidente en la relación Derecha S, entonces los atributos S de la relación resultante se hacen NULOS.
Izquierda | |
---|---|
UN | segundo |
100 | Base de datos |
101 | Mecánica |
102 | Electrónica |
Correcto | |
---|---|
UN | segundo |
100 | Alex |
102 | maya |
104 | Mira |
Cursos HoD | |||
---|---|---|---|
UN | segundo | C | re |
100 | Base de datos | 100 | Alex |
101 | Mecánica | --- | --- |
102 | Electrónica | 102 | maya |
Unión exterior derecha: (R S)
Todas las tuplas de la relación Derecha, S, se incluyen en la relación resultante. Si hay tuplas en S sin ninguna tupla coincidente en R, entonces los atributos R de la relación resultante se hacen NULL.
Cursos HoD | |||
---|---|---|---|
UN | segundo | C | re |
100 | Base de datos | 100 | Alex |
102 | Electrónica | 102 | maya |
--- | --- | 104 | Mira |
Unión externa completa: (R S)
Todas las tuplas de ambas relaciones de participación se incluyen en la relación resultante. Si no hay tuplas coincidentes para ambas relaciones, sus respectivos atributos no coincidentes se convierten en NULL.
Cursos HoD | |||
---|---|---|---|
UN | segundo | C | re |
100 | Base de datos | 100 | Alex |
101 | Mecánica | --- | --- |
102 | Electrónica | 102 | maya |
--- | --- | 104 | Mira |