UNION
El operador
UNION permite combinar los resultados de varias instrucciones
SELECT en un único conjunto de resultados. Todos los conjuntos de resultados combinados mediante
UNION deben tener la misma estructura.
"Deben tener el mismo número de columnas y las columnas del conjunto de resultados deben tener tipos de datos compatibles".Por ejemplo,
Table1 y
Table2 tienen la misma estructura de dos columnas.
En esta consulta se crea un operador
UNION entre las tablas:
SELECT * FROM Table1 UNION SELECT * FROM Table2
El conjunto de resultados es el siguiente:
Los nombres de columna del conjunto de resultados de
UNION son los mismos que los nombres de columna del conjunto de resultados de la primera instrucción
SELECT de
UNION. Los nombres de columna del conjunto de resultados de las demás instrucciones
SELECT se omiten.
De forma predeterminada, el operador
UNION quita las filas duplicadas del conjunto de resultados.
Si se usa ALL,
se incluyen todas las filas en los resultados y no se quitan los duplicados.
ROLLUP
El operador ROLLUP resulta útil para generar informes que contienen subtotales y totales. El operador ROLLUP genera un conjunto de resultados similar a los generados por el operador CUBE.
A continuación se muestran las diferencias entre
CUBE y
ROLLUP:
- CUBE genera un conjunto de resultados que muestra agregados para todas las combinaciones de valores de las columnas seleccionadas.
- ROLLUP genera un conjunto de resultados que muestra agregados para una jerarquía de valores de las columnas seleccionadas.
Para cada valor de las columnas situadas a la derecha de la cláusula
GROUP BY, la operación
ROLLUP no informa de todas las posibles combinaciones de valores de las columnas situadas a la izquierda. Por ejemplo,
ROLLUP no informa de todas las posibles combinaciones de valores de Item para cada valor de Color.
El conjunto de resultados de una operación
ROLLUP tiene una funcionalidad parecida a la que devuelve
COMPUTE BY. Sin embargo,
ROLLUP tiene estas ventajas:
- ROLLUP devuelve un único conjunto de resultados, mientras que COMPUTE BY devuelve múltiples conjuntos de resultados que aumentan la complejidad del código de la aplicación.
A diferencia de COMPUTE BY, ROLLUP se puede utilizar en un cursor de servidor.
En ocasiones, el optimizador de consultas puede generar planes de ejecución más eficaces para ROLLUP que para COMPUTE BY.
Se puede obtener un plan
ROLLUP único de las siguientes formas:
- Utilice la palabra clave ROLLUP:
SELECT a, b, c, SUM(x) FROM v53 GROUP BY ROLLUP(a, b, c) SELECT a, b, c, SUM(x) FROM v53GROUP BY a, b, c WITH ROLLUPUtilice cualquier otra sintaxis de varias agrupaciones para especificar una operación ROLLUP o parte de ella, con dos o más agrupaciones. SQL Server analiza las agrupaciones para ver si están cubiertas por una sola operación ROLLUP, es decir, si forman una cadena de conjuntos continentes.
SELECT a, b, c, SUM(x) FROM v53GROUP BY GROUPING SETS ((), (a), (a, b, c))- Un cubo de una sola dimensión es una operación ROLLUP:
SELECT a, SUM(x) FROM v53GROUP BY a WITH CUBEAgregar primero y a continuación ROLLUP
En
SQL Server, un operador
ROLLUP se implementa siempre como un operador independiente, además de un
GROUP BY ordinario. Esto no es estrictamente necesario.
Considere el ejemplo de código siguiente:
SELECT MAX(x) z1, COUNT(x) z2 FROM v53 GROUP BY a, b WITH ROLLUPEsta consulta se procesa en dos pasos. Observe que un
max de varios
max de agregación base es un
max, y un
sum de varios
count de agregación base es un
count:
'base aggregation': compute y1 = max(x), y2 = count(x)Rollup: compute z1 = max(y1), z2 = sum(y2)La ventaja de dividir siempre la agregación base es que se puede hacer coincidir con una vista indizada, paralelizarse o forzarse a realizar una combinación.
METADATA
El componente final del
data warehouse es el de la
metadata. De muchas maneras la
metadata se sitúa en una dimensión diferente al de otros datos del
data warehouse, debido a que su contenido no es tomado directamente desde el ambiente operacional.
La metadata juega un rol especial y muy importante en el data warehouse y es usada como:
- Un directorio para ayudar al analista a ubicar los contenidos del data warehouse.
Una guía para el mapping de datos de cómo se transforma, del ambiente operacional al de data warehouse.
Una guía de los algoritmos usados para la esquematización entre el detalle de datos actual, con los datos ligeramente resumidos y éstos, con los datos completamente resumidos, etc.
La
metadata juega un papel mucho más importante en un ambiente
data warehousing que en un operacional clásico.
La
metadata contiene (al menos):
Otro paso necesario es crear la
metadata. La
metadata (es decir, datos acerca de datos) describe los contenidos del
data warehouse. La
metadata consiste de definiciones de los elementos de datos en el depósito, sistema(s) del (os) elemento(s) fuente. Como la data, se integra y transforma antes de ser almacenada en información similar.
Aspectos de Datawarehouse - MetadataOtro aspecto de la arquitectura de
data warehouse es crear soporte a la
metadata.
Metadata es la información sobre los datos que se alimenta, se transforma y existe en el
data warehouse.
Metadata es un concepto genérico, pero cada implementación de la
metadata usa técnicas y métodos específicos.
El modelo de datos del
data warehouse (es decir, los elementos de datos y sus relaciones).
Un registro de cuando los nuevos elementos de datos se agregan al
data warehouse y cuando los elementos de datos antiguos se eliminan o se resumen.
Los niveles de sumarización, el método de sumarización y las tablas de registros de su
data warehouse.
Algunas implementaciones de la
metadata también incluyen definiciones de la(s) vista(s) presentada(s) a los usuarios del
data warehouse. Típicamente, se definen vistas múltiples para favorecer las preferencias variadas de diversos grupos de usuarios. En otras implementaciones, estas descripciones se almacenan en un Catálogo de Información.
Los esquemas y subesquemas para bases de datos operacionales, forman una fuente óptima de entrada cuando se crea la
metadata. Hacer uso de la documentación existente, especialmente cuando está disponible en forma electrónica, puede acelerar el proceso de definición de la
metadata del ambiente
data warehousing.
La
metadata sirve, en un sentido, como el corazón del ambiente
data warehousing. Crear definiciones de
metadata completa y efectiva puede ser un proceso que consuma tiempo, pero lo mejor de las definiciones y si usted usa herramientas de gestión de software integrado, son los esfuerzos que darán como resultado el mantenimiento del
data warehouse.