domingo, 2 de noviembre de 2008

Instrucciones SQL

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 ROLLUP

  • Utilice 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 CUBE



Agregar 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 ROLLUP

Esta 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):
  • La estructura de los datos

  • Los algoritmos usados para la esquematización

  • El mapping desde el ambiente operacional al data warehouse
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 - Metadata

Otro 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.

No hay comentarios: