¿Cómo obtener datos de otra base de datos en Oracle?

Atributos Calculados y de Resumen

Valoración: 4.02 (9857 votos)

En el mundo de la gestión de datos, realizar cálculos repetitivos puede consumir mucho tiempo y ser propenso a errores. Afortunadamente, las plataformas modernas de bases de datos y aplicaciones empresariales ofrecen funcionalidades avanzadas para automatizar estas tareas. Dos de estas características clave son los atributos calculados y los atributos de resumen.

Estos tipos de atributos están diseñados para liberar a los usuarios de la necesidad de realizar cálculos manualmente, permitiéndoles centrarse en su trabajo principal. Los administradores de sistemas pueden definir campos fácilmente para que contengan el valor de muchos cálculos comunes sin necesidad de involucrar a un desarrollador. Los desarrolladores, a su vez, pueden aprovechar las capacidades de la plataforma para realizar estos cálculos en lugar de implementarlos en su propio código.

¿Qué es /*+ en Oracle?
Cuando se añade + (/*+ */ o --+), se envía una indicación a una sugerencia del optimizador , que es una instrucción que este podría o no respetar. En Oracle, no se recibe ninguna indicación (error/advertencia) si se ignora la sugerencia.
Índice de Contenido

Elementos y Características Comunes

Los atributos calculados y de resumen comparten varias características importantes:

  • Son de solo lectura. Sus valores son determinados por el sistema a través de una fórmula, no pueden ser editados directamente por el usuario.
  • No son específicos del usuario. El cálculo se realiza utilizando una cuenta de usuario del sistema. Esto significa que los valores pueden basarse en registros para los que el usuario actual podría no tener privilegios de visualización, como atributos con seguridad a nivel de campo habilitada.

Todos los atributos que heredan de AttributeMetadata tienen una propiedad SourceType que puede contener valores como:

ValorDescripción
nullNo es un tipo de atributo válido para ser calculado o de resumen.
0Atributo simple. No está definido como calculado o de resumen.
1Atributo calculado.
2Atributo de resumen.

Estos atributos se basan en tipos de atributos existentes como Boolean, DateTime, Decimal, Integer, Money, Picklist y String. Cada uno de estos tipos admite propiedades específicas para cálculos y resúmenes:

  • FormulaDefinition: Contiene la definición (a menudo en XAML) de la fórmula utilizada. Solo se puede cambiar a través del editor de fórmulas de la aplicación.
  • SourceTypeMask: Un valor de máscara de bits de solo lectura que describe los tipos de fuentes utilizadas en la fórmula o si la fórmula no es válida. Los valores pueden indicar si el atributo se refiere a un atributo simple, relacionado, lógico, otro calculado, otro de resumen, o si es inválido.

Atributos Calculados

Los atributos calculados se calculan en tiempo real cada vez que se recuperan. Esto significa que su valor está siempre actualizado al momento de ser consultado.

Pueden componerse utilizando diferentes tipos de datos. Por ejemplo, un atributo calculado de tipo Integer puede referenciar valores de atributos Decimal o Currency. Esto permite una gran flexibilidad en la definición de fórmulas.

Los valores de los atributos calculados están disponibles en la pipeline de plug-ins de recuperación. La post-imagen (post-image) de una actualización o creación de registro de entidad contiene el valor del atributo calculado en la etapa 40.

Limitaciones de los Atributos Calculados

Aunque muy útiles, los atributos calculados tienen algunas limitaciones:

  • No se pueden usar valores que referencien una entidad relacionada, otro atributo calculado o un valor lógico en la misma entidad para ordenar datos devueltos por una consulta. La ordenación será ignorada, aunque no generará un error. La ordenación solo funciona normalmente si el atributo calculado referencia solo valores simples en el mismo registro.
  • Solo se pueden usar atributos de una entidad principal inmediata (padre directo) en un atributo calculado.
  • Las consultas guardadas, gráficos y visualizaciones pueden tener un máximo de 10 atributos calculados únicos.
  • Los atributos calculados pueden referenciar otros atributos calculados en su fórmula, pero no pueden referenciarse a sí mismos (evitando bucles infinitos).
  • Los atributos calculados no tienen valores cuando un usuario está trabajando sin conexión (offline).
  • Las propiedades de metadatos MaxValue y MinValue no se pueden establecer en atributos calculados.
  • No se puede referenciar una entidad relacionada a través de una relación N:N (muchos a muchos).
  • No se pueden usar relaciones 1:N (uno a muchos) con las entidades ActivityPointer o ActivityParty.

Atributos de Resumen

A diferencia de los calculados, los atributos de resumen (también conocidos como atributos 'rollup' en inglés) persisten en la base de datos. Esto significa que su valor se almacena físicamente.

Debido a que persisten, pueden usarse para filtrar u ordenar datos, al igual que los atributos regulares. Cualquier proceso o plug-in utilizará el valor calculado más recientemente.

¿Cuáles son los atributos en Oracle?
Los atributos son los elementos de datos que se utilizan en la minería de datos . En los modelos predictivos, son los predictores que afectan a un resultado determinado. En los modelos descriptivos, son los elementos de información que se analizan para agrupaciones o asociaciones naturales.

Los valores de los atributos de resumen se calculan de forma asíncrona mediante trabajos del sistema programados. Los administradores configuran cuándo se ejecuta un trabajo o lo pausan. Por defecto, cada atributo de resumen se actualiza cada hora.

Proceso de Cálculo Asíncrono

Cuando se crea o actualiza un atributo de resumen, se programa un trabajo del sistema llamado 'Mass Calculate Rollup Fields' para que se ejecute en 12 horas. Este retraso inicial tiene como objetivo realizar esta operación intensiva en recursos durante un tiempo que afecte menos a los usuarios. Una vez que el trabajo inicial se completa, la próxima vez que se programa para ejecutarse es 10 años en el futuro (esto es para el trabajo *inicial* masivo; las actualizaciones *horarias* se manejan por separado o por otros mecanismos).

Si hay un problema con el cálculo, se informa a través del trabajo del sistema. Los administradores pueden localizar estos trabajos en la configuración del sistema para encontrar errores relacionados con los campos de resumen.

Como desarrollador en un entorno de desarrollo, si no quieres esperar 12 horas para el cálculo inicial masivo, puedes posponer el trabajo 'Mass Calculate Rollup Fields' a una hora más cercana. También puedes forzar la creación de un nuevo trabajo masivo exportando e importando una solución que contenga el atributo de resumen.

Cada atributo de resumen para una entidad incluye dos atributos de soporte adicionales:

  • <SchemaName del Atributo>_Date (DateTime): Indica cuándo se calculó el resumen por última vez.
  • <SchemaName del Atributo>_State (Integer): Indica el estado del cálculo del resumen.

Valores de Estado del Resumen

El estado del cálculo de un campo de resumen está disponible en el atributo de soporte <SchemaName del Atributo>_State y en la propiedad FieldState de la respuesta CalculateRollupFieldResponse. Los valores posibles incluyen:

  • 0: NotCalculated (Valor aún no calculado)
  • 1: Calculated (Valor calculado correctamente)
  • 2: OverflowError (Error de desbordamiento)
  • 3: OtherError (Otro error interno)
  • 4: RetryLimitExceeded (Límite de reintentos excedido)
  • 5: HierarchicalRecursionLimitReached (Límite de profundidad jerárquica alcanzado)
  • 6: LoopDetected (Bucle detectado en la jerarquía)

Calcular un Valor de Resumen Inmediatamente

Los atributos de resumen admiten un mensaje CalculateRollupField que los desarrolladores pueden usar para calcular el valor de un atributo de resumen bajo demanda. Esta es una operación síncrona que solo calcula el valor para el atributo especificado en el registro dado. Si ese valor afecta a otros campos de resumen, esos otros campos no reflejarán el cambio inmediatamente hasta que se ejecuten sus trabajos asíncronos programados regularmente.

Limitaciones de los Atributos de Resumen

Los atributos de resumen también tienen restricciones:

  • No se pueden usar como evento de flujo de trabajo o condición de espera. Estos atributos no desencadenan eventos al actualizarse.
  • Los atributos ModifiedBy y ModifiedOn de la entidad no se actualizan cuando se actualiza el atributo de resumen.
  • Se pueden definir un máximo de 100 atributos de resumen en una organización. Cada entidad puede tener un máximo de 10 atributos de resumen.
  • La fórmula de un atributo de resumen no puede referenciar a otro atributo de resumen.
  • La fórmula de un atributo de resumen no puede referenciar atributos calculados complejos. Solo se pueden usar atributos calculados que referencien atributos simples en el mismo registro.
  • La fórmula de un atributo de resumen no puede incluir registros en relaciones de muchos a muchos (N:N). Solo puede incluir registros en relaciones de uno a muchos (1:N).
  • Las fórmulas de atributos de resumen no pueden usar relaciones 1:N con las entidades ActivityPointer o ActivityParty.

Comparativa: Calculados vs. Resumen

Aquí se resumen las diferencias clave entre ambos tipos de atributos:

CaracterísticaAtributo CalculadoAtributo de Resumen
CálculoEn tiempo real (al recuperarse)Asíncrono (por trabajos del sistema)
PersistenciaNo se almacena en base de datosSe almacena en base de datos
Uso en Filtrado/OrdenaciónLimitado (solo si referencian campos simples en el mismo registro)Sí (como atributos regulares)
ActualizaciónSiempre actualBasado en la última ejecución del trabajo
Referencia a RelacionadosSí (solo padre inmediato)Sí (solo 1:N)
Referencia a Otros Calculados/ResumenPuede referenciar calculados simples y resúmenesNo puede referenciar resúmenes ni calculados complejos
Impacto en RendimientoPuede afectar el tiempo de recuperación de registrosPuede consumir recursos del sistema en segundo plano

Preguntas Frecuentes

Abordemos algunas dudas comunes sobre estos atributos:

¿Puedo ordenar una lista de registros por un atributo calculado?

Sí, pero solo si la fórmula del atributo calculado se basa únicamente en atributos simples dentro del mismo registro. Si la fórmula involucra atributos de entidades relacionadas u otros atributos calculados/lógicos, la ordenación por este campo será ignorada.

¿Cómo calcular el total en Oracle?
SUMA ( [ DISTINCT | ALL ] Expresión ) Los calificadores DISTINCT y ALL eliminan o conservan los duplicados. Se asume ALL si no se especifica ALL ni DISTINCT. Por ejemplo, si una columna contiene los valores 1, 1, 1, 1 y 2, SUM(col) devuelve un valor mayor que SUM(DISTINCT col).

¿Con qué frecuencia se actualizan los atributos de resumen?

Por defecto, se actualizan cada hora mediante trabajos del sistema programados. El trabajo inicial 'Mass Calculate Rollup Fields' se programa con un gran retraso, pero las actualizaciones periódicas son más frecuentes.

¿Puedo forzar la actualización de un atributo de resumen inmediatamente?

Sí, los desarrolladores pueden usar el mensaje CalculateRollupField para actualizar un atributo de resumen específico en un registro específico bajo demanda. Sin embargo, esto solo actualiza ese atributo y no desencadena una cascada de actualizaciones en otros resúmenes que puedan depender de él.

¿Es mejor usar un atributo calculado o uno de resumen?

Depende de tus necesidades. Si necesitas un valor siempre actualizado y no necesitas filtrar u ordenar por él, un atributo calculado es adecuado. Si necesitas filtrar/ordenar por el valor y no requieres actualización en tiempo real (una actualización horaria es suficiente), un atributo de resumen es la opción correcta.

¿Hay un límite en cuántos atributos calculados o de resumen puedo tener?

Sí, hay límites. Una organización puede tener un máximo de 100 atributos de resumen en total, con un máximo de 10 atributos de resumen por entidad. Para los atributos calculados, las vistas, gráficos y visualizaciones tienen un límite de 10 atributos calculados únicos.

Conclusión

Los atributos calculados y de resumen son herramientas poderosas que simplifican la gestión de datos y mejoran la eficiencia al automatizar cálculos. Comprender sus diferencias, cómo funcionan y sus limitaciones es crucial para utilizarlos de manera efectiva en el diseño y la personalización de soluciones de datos. Al aprovechar estas capacidades, puedes crear sistemas más inteligentes y liberar tanto a los usuarios como a los desarrolladores de tareas manuales repetitivas.

Si quieres conocer otros artículos parecidos a Atributos Calculados y de Resumen puedes visitar la categoría Bases de datos.

Ivan

Soy un entusiasta de la tecnología con especialización en bases de datos, particularmente en MySQL. A través de mis tutoriales detallados, busco desmitificar los conceptos complejos y proporcionar soluciones prácticas a los desafíos cotidianos relacionados con la gestión de datos

Aprende mas sobre MySQL

Subir