Resumen de características de pureQuery Runtime

pureQuery Runtime se puede utilizar con aplicaciones Java™. pureQuery Runtime también se puede utilizar con DB2 ODBC/CLI y con aplicaciones Microsoft .NET.

Características para aplicaciones de la API de Java pureQuery

pureQuery Runtime proporciona características de la API además de características de optimización de clientes.

Para aplicaciones que utilizan la API de pureQuery, InfoSphere Optim pureQuery Runtime ofrece estas características:

Una API única que puede utilizar para ejecutar sentencias SQL en bases de datos, en colecciones en memoria y en objetos de iterador

La plataforma Java proporciona multitud de estructuras de datos y API para procesar colecciones en memoria, así como datos externos de distintos orígenes. Cada una de estas características es perfectamente adecuada para resolver un tipo específico de problema. pureQuery también tiene un conjunto de interfaces exclusivas para recuperar y modificar los datos dentro de las colecciones. Por ejemplo, pureQuery proporciona una API para matrices, listas, mapas e iteradores de Java. Cada API consulta y, en algunos casos, actualiza los datos de la colección.

De forma similar, la API JDBC proporciona un medio para utilizar SQL para acceder a objetos relacionales y otros objetos externos de DataSource JDBC. Sin embargo, pureQuery permite que una aplicación acceda a todos estos orígenes de datos, de forma individual o en combinación, con un único lenguaje de consulta conocido.

Un modelo de programación simple para el acceso a datos
pureQuery se ejecuta como una capa fina en la parte superior de JDBC y simplifica las consultas, las actualizaciones, las llamadas a procedimientos almacenados y otras tareas asociadas con el acceso a bases de datos de pureQuery. pureQuery se ejecuta en Java 2 Platform, Standard Edition 5.0 (J2SE 5.0) y en Java Platform, Standard Edition 6 (Java SE 6).
Correlación automática de datos SQL para devolver tipos sin apenas intervención del desarrollador
pureQuery proporciona correlación automática entre los resultados de la consulta SQL y los objetos devueltos para muchos patrones de objetos Java. Para correlaciones complejas entre los resultados de la consulta y los objetos Java, existe una interfaz de salida que se puede conectar permite correlaciones personalizadas.

Puede crear y anotar beans que devuelven los resultados de consultas SQL que contienen uniones de tabla. Los resultados de la consulta se devuelven como un conjunto de beans que contienen instancias de otros beans. La jerarquía de estos beans refleja las relaciones de uno a uno o de uno a muchos de los resultados de la consulta. Por ejemplo, una consulta contiene una unión entre una tabla de empleados y una tabla de departamentos. La consulta devuelve los empleados que están asignados a diferentes departamentos. Los resultados se devuelven como un conjunto de beans de departamentos, donde cada instancia del bean de departamento representa un departamento. Cada bean de departamento contiene una lista de beans de empleados. Cada instancia de un bean de empleado contiene información de empleado.

Soporte al desarrollo de aplicaciones SQL que utilizan métodos anotados y métodos incorporados
Los métodos anotados están soportados para que pueda definir sus propios métodos en interfaces personalizadas. Se pueden crear métodos con definiciones anotadas con sentencias SQL. Se pueden desarrollar aplicaciones conformes al patrón DAO (Data Access Object) creando objetos de acceso a datos con métodos anotados.

Los métodos incorporados están soportados para poder sacar provecho de los métodos definidos en la interfaz Data suministrada por IBM. Los métodos incorporados son útiles para las aplicaciones que necesitan que se construyan sentencias SQL durante el tiempo de ejecución de la aplicación. Con los métodos incorporados, las sentencias SQL se pasan como parámetros en invocaciones de método, lo que es similar al enfoque de JDBC.

Se proporciona soporte para la gestión de sentencias SQL que se ejecutan estáticamente. Puede anotar el código para agrupar las sentencias SQL que se utilizan en una interfaz. Puede controlar el proceso de enlace para los grupos. Puede controlar las opciones de enlace que utiliza el programa de utilidad pureQuery StaticBinder y controlar los nombres que se generan para los paquetes que contienen las sentencias SQL.

Soporte para SQL dinámico y estático en tiempo de ejecución
El código de pureQuery puede utilizar SQL dinámico con un controlador JDBC estándar tanto para el SQL incluido como el SQL ad hoc no conocido hasta el tiempo de ejecución.
El código de pureQuery también puede utilizar SQL estático cuando el código utilice el estilo de programación de método anotado y bases de datos de DB2. El SQL estático tiene tres ventajas:
Evitar la caché de sentencia dinámica
La utilización de SQL estático reduce la contienda por la memoria caché de sentencias dinámicas de DB2, con lo que mejora el rendimiento de aplicaciones que utilizan SQL dinámico.
Coherencia de las vías de acceso del acceso
El SQL estático hace que los tiempos de respuesta sean mas predecibles y estables debido al bloqueo de las vías de acceso antes de que se ejecuten las aplicaciones. Por el contrario, las vías de acceso para el SQL dinámico se calculan en tiempo de ejecución.
Potencial para un rendimiento mejorado de sus aplicaciones
El SQL estático puede mejorar el rendimiento de sus aplicaciones.
  • Los planes de acceso se determinan antes del tiempo de ejecución, y no es necesario preparar las sentencias de SQL en el tiempo de ejecución.
  • No es necesario preparar ni describir cada sentencia, y por lo tanto hay menos tráfico de redes entre las aplicaciones de clientes y los servidores de bases de datos.
  • El SQL estático aplica estrictamente tipos de datos para parámetros o variables de host utilizados en predicados. Esta aplicación estricta garantiza que los datos de entrada coinciden con los tipos de destino de la base de datos.
Seguridad más estricta
Puede otorgar a los usuarios el privilegio EXECUTE en un paquete de DB2, en lugar de otorgar privilegios de usuario sobre objetos de bases de datos.
Facilitar la revisión de los paquetes
Dado que puede crear varias versiones de cada paquete de DB2, puede volver a enlazar paquetes sin riesgo de perder las vías de acceso anteriores y mejores.
Soporte para conexiones JDBC de tipo 2 cuando se ejecutan aplicaciones pureQuery en z/OS
Dado que el controlador JDBC de tipo 2 es una combinación de Java y código nativo, las conexiones de tipo 2 tienen generalmente un mejor rendimiento que las conexiones de tipo 4.
Soporte para plataformas e infraestructuras para el desarrollo de la aplicación de acceso de datos
pureQuery Runtime admite las siguientes plataformas e infraestructuras:
  • Java
  • Java Persistence API (JPA)
  • Spring
  • Hibernate
  • iBatis

Características para aplicaciones Java habilitadas con optimización de clientes pureQuery

Las aplicaciones que no utilizan la API de pureQuery pueden sacar provecho de la optimización del cliente, que es diferente de otras tecnologías que soportan la ejecución de SQL estáticamente en una base de datos DB2:
  • La optimización de clientes de pureQuery no utiliza un preprocesador, a diferencia del lenguaje de programación COBOL, que utiliza un preprocesador para el SQL incorporado.
  • La optimización de cliente de pureQuery no utiliza un traductor ni un personalizador, a diferencia de SQLJ.
  • No es necesario codificar sentencias de SQL en la fuente de una aplicación.

En lugar de necesitar estos componentes o cambios en el código, la optimización del cliente cambia la forma en que un controlador JDBC interactúa con una aplicación. La optimización de cliente de pureQuery ofrece estas características:

Almacenamiento seguro de los datos de pureQuery
Se puede almacenar la información de configuración de pureQuery, los datos de pureQueryXML que incluyen datos de SQL utilizados por pureQuery Runtime, y los datos SQL capturados en una ubicación segura y a los que accede pureQuery Runtime cuando resulte necesario. pureQuery Runtime se puede configurar para recuperar los datos de pureQuery de las ubicaciones seguras. pureQuery Runtime puede almacenar en una ubicación segura los datos de SQL capturados desde aplicaciones con pureQuery habilitado que utilizan la optimización de clientes de pureQuery.
Soporte para registro especial de DB2
Cuando se capturan sentencias SQL desde una aplicación, la optimización de clientes de pureQuery realiza un seguimiento de información de registros especiales de DB2 que utilizan las sentencias SQL. La optimización de cliente de pureQuery registra los valores de los registros especiales de los registros especiales que se utilizan normalmente y que pueden afectar al comportamiento de la sentencia SQL. En algunos casos, cuando se emite dos veces la misma sentencia SQL, el comportamiento puede diferir si el valor de un registro especial se cambia entre la primera y la segunda vez que se ejecuta.

El programa de utilidad pureQuery Configure option -optionsFileForBind puede generar un archivo de opciones StaticBinder que contiene opciones de enlace en función de la información de registro especial que se registra con las sentencias SQL capturadas. El archivo de opciones contiene también información y avisos sobre los conjuntos de sentencias, las sentencias SQL y la información de registro especial en el archivo pureQueryXML.

La información del archivo le ayuda a especificar un conjunto de opciones de enlace para que, cuando la sentencia SQL se ejecute estáticamente, el comportamiento de la sentencia sea similar a cuando se emite desde la aplicación y se ejecuta dinámicamente. Con el programa de utilidad StaticBinder de pureQuery, las opciones de enlace se especifican al vincular los paquetes de DB2 que contienen las sentencias SQL.

Archivos pureQueryXML fáciles de gestionar
Las características siguientes ayudan a gestionar sentencias SQL y conjuntos de sentencias en un archivo pureQueryXML:
  • El programa de utilidad Configure puede agrupar sentencias SQL según el texto que contienen, como nombres de tabla o columna, o según el uso de registro especial.
  • El programa de utilidad Configure puede suprimir sentencias SQL de un archivo pureQueryXML si la aplicación no ha emitido la sentencia durante un número de días especificado. pureQuery Runtime puede realizar un seguimiento cuando se ha emitido una sentencia SQL desde una aplicación y actualizar dicha información en el archivo pureQueryXML.
  • El programa de utilidad Configure puede definir el estado de un conjunto de sentencias antes o después de procesar los archivos pureQueryXML. El estado de la sentencia controla si el programa de utilidad Configure intenta modificar la sentencia.
  • El programa de utilidad Configure puede cambiar los nombres de ubicación de la base de datos y los nombres de esquema para sentencias SQL en archivos QueryXML.
  • El programa de utilidad StaticBinder puede manejar sentencias SQL en un archivo pureQueryXML cuando el proceso de enlace devuelva un error para la sentencia. El programa de utilidad puede marcar la sentencia como no válida o eliminarla del archivo. Si una sentencia se marca como no válida, permanece en el archivo pero no se procesa como una sentencia vinculable. Puede utilizar el programa de utilidad Configure para que la sentencia sea válida y vinculable o para eliminar una sentencia no válida.
  • Los programas de utilidad Configure, Merge y StaticBinder puede ejecutar la validación de esquemas XML en los archivos pureQueryXML de entrada.
  • El programa de utilidad ManageRepository puede generar un informe que indique las diferencias entre dos archivos pureQueryXML. Puede ver fácilmente los cambios que se han realizado en un archivo pureQueryXML actualizado compartiéndolo con el archivo original.

Características para aplicaciones ODBC/CLI y aplicaciones .NET

Call level interface (CLI) es una interfaz de programación de aplicaciones C y C++ para acceso a base de datos relacionales. CLI utiliza las llamadas a funciones para pasar sentencias SQL dinámicas como argumentos. Las aplicaciones .NET incluyen aplicaciones que están escritas en cualquier lenguaje basado en .NET, como C# y VB.NET.

Después de habilitar la optimización de cliente de pureQuery para un CLI o una aplicación .NET que se conecta con una base de datos DB2 o una base de datos Informix, puede controlar las sentencias SQL que emite la aplicación. Por ejemplo, si la aplicación se conecta con una base de datos DB2, se puede configurar la aplicación para ejecutar sentencias SQL estáticamente contra la base de datos. Se pueden controlar las sentencias SQL que están autorizadas a ejecutarse contra la base de datos.

Entre las ventajas de la optimización de clientes de pureQuery se incluye:
  • Ejecutar sentencias SQL de forma estática contra bases de datos DB2.
  • Diagnosticar problemas en las sentencias SQL con recursos que permiten realizar un rastreo y retroceder hasta el código fuente de la aplicación.
  • Sustituir las sentencias SQL de bajo rendimiento por sentencias optimizadas.
  • Reducir el riesgo de ataques de inyección de SQL ejecutando un conjunto restringido de sentencias SQL.

Para aplicaciones de CLI, puede ejecutar sentencias SQL y validar sentencias SQL con el mandato db2cli de DB2. Especifique que las sentencias SQL estén preparadas, pero que no se ejecuten para validación. Puede capturar las sentencias SQL que se ejecutan o validan en un archivo pureQueryXML.

Para obtener más información sobre cómo desarrollar aplicaciones de DB2 con .NET, consulte Desarrollo de la aplicación ADO.NET.

Para obtener más información sobre cómo desarrollar aplicaciones de DB2 con CLI, consulte Introducción a interfaz a nivel de llamada de DB2 y ODBC.


Feedback