IBM DB2 Express-C 9.7.2 es la última versión gratuita de DB2 y ofrece mejoras en rendimiento, desarrollo de aplicaciones, almacenamiento y seguridad. Algunas mejoras notables incluyen un concentrador de sentencias que mejora el rendimiento de SQL dinámico, soporte ampliado para procedimientos almacenados y funciones definidas por el usuario, y un modelo de seguridad mejorado con roles administrativos separados.
2. DB2 EXPRESS-C 9.7.2 IBM® DB2® Express-C 9.7.2 ha sido recientemente mejorada con una serie de características importantes y mejoras que antes solo eran disponibles en las versiones pagadas de DB2 para Linux®, UNIX®, y Windows®. DB2 Express-C 9.7.2 es la edición para la comunidad y gratuita de DB2. Uno la puede utilizar en un sistema en producción, embeberla y distribuirla en su aplicativo o simplemente utilizarla para desarrollo. DB2 Express-C 9.7.2 puede ser instalada en servidores de cualquier tamaño, sin embargo, solo se utilizará dos cores y 2GB de memoria. Mas aún, no hay límite en el tamaño de la base de datos. El juego robusto de funciones ofrecidas por el DB2 Express-C 9.7.2es mucho mas favorable que el de otras ediciones para la comunidad de otros vendedores de bases de datos.
3. MEJORÍAS EN BLOQUEO Con la nueva semántica CurrentlyCommitted (CC) del aislamiento Cursor Stability (CS), actualizadores (operaciones UPDATE) no más bloquean a lectores (operaciones SELECT). Lectores pueden leer ahora el valor que está actualmente comitido (committed) antes de haber realizado una operación UPDATE. Esta mejoría ayuda con concurrencia y reduce el bloqueo mutuo. Por ejemplo, asuma que tiene la tabla T1 con el siguiente contenido: TABLA 1 Ahora, asuma que una aplicación AppA ejecuta la siguiente sentencia, pero no hace un commit:
4. update T1 set lastname = 'Smith' wherefirstname = 'Raul' Luego, asuma que la aplicación AppB ejecuta esta sentencia: selectlastname f rom T1 wherefirstname = 'Raul' with CS Con versiones anteriores a la 9.7 de DB2, esta sentencia ejecutada por AppB se hubiera colgado porque estaría esperando que el candado exclusivo que lo tiene la sentencia update de la aplicación AppA (el actualizador) sea soltado. Cuando uno habilita este nuevo comportamiento CS (que es el de default para nuevas bases de datos creadas con DB2 9.7), la sentencia de AppB retorna el valor actualmente comitido (committed), en vez de esperar. En este ejemplo, el valor que se retorna seria Chong porque la actualización de AppA aún no ha sido comitida.
5. MEJORÍAS DE PERFORMANCE DB2 9.7 introduce la característica concentrador de sentencias (statementconcentrator), que mejora el performance de programas que usan SQL dinámico y que son desarrolladas en lenguajes como Ruby y PHP. El concentrador de sentencias busca a las sentencias SQL que se ven exactamente igual, excepto por el valor del parámetro. Luego, como su nombre sugiere, concentra todos esas sentencias parecidas en una sola sentencia. Por ejemplo, con el concentrador de sentencias, las siguientes sentencias: SELECT name FROM employee WHERE empid = 10 SELECT name FROM employee WHERE empid = 20 SELECT name FROM employee WHERE empid = 30 se concentraría en lo siguiente: SELECTnameFROMemployeeWHEREempid = ?
6. El signo de interrogación (?) representa un marcador del parámetro. Para este ejemplo en particular, DB2 proveería los valores de 10, 20, y 30 durante el runtime. Esta característica ofrece mejorías importantes de performance sobre versiones anteriores de DB2. Sin el concentrador de sentencias, DB2 pensaría que cada sentencia en el ejemplo anterior, es única, y compilaría y ejecutaría cada sentencia de manera separada. Sin embargo, el plan de acceso para todas las sentencias es posiblemente el mismo, así que esto significaría un desperdicio de recursos para calcular el mismo plan repetidamente. Con el concentrador de sentencias, DB2 9.7 ahora compila la sentencia solo una vez para obtener el plan de acceso para la sentencia, y luego lo reusa. Otra mejoría de performance es relacionada con el almacenamiento de objetos largos (LOBs). Uno ahora puede guardar LOBs con las filas de datos siempre y cuando estos LOBs son mas pequeños que un tamaño especificado. Esto mejora el performance porque estos LOBs ahora pueden ser accesados a través del bufferpool.
7.
8. Con respecto a procedimientos de almacenamiento SQL PL y UDFs, uno puede especificar un parámetro de default y asignar valores en base a nombres. Además, nuevos tipos de datos como Boolean, cursor, row, y array son ahora soportados.
11. Hay muchas nuevas funciones para manipular fechas, strings, y otros tipos de datos.
12. DB2 ahora soporta Create Global TemporaryTables (CGTTs), que son tablas temporales con data que esta disponible solamente durante la sesión. La diferencia entre CGTTs y Declared Global TemporaryTables (DGTTs) es que en el caso de CGTTs, la definición de la tabla persiste en el diccionario o catálogo de DB2. De esta manera, cuando una CGTT se crea, se puede reusar por cualquier otra sesión sin tener que crearla de nuevo. Las filas, sin embargo, son independientes por sesión.
13.
14. MEJORAS EN SEGURIDAD En versiones anteriores de DB2, el administrador del sistema (systemadministrator) tenía acceso prácticamente a todo. Con DB2 9.7, el modelo de seguridad ha sido mejorado para permitir una separación de tareas. Esto minimiza el riesgo de exponer datos y ayuda a organizaciones a cumplir con los requerimientos de seguridad de algunos gobiernos. Hay varios nuevos niveles de autoridades administrativas. Dos de estos nuevos niveles son DATAACCESS y ACCESSCTRL, que puede utilizar para dar a usuarios acceso a datos o garantizar acceso a datos, respectivamente. Esto significa que un administrador de seguridad puede revocar estos niveles de autoridad a un administrador de sistemas o a un administrador de base de datos (DBA), que esencialmente dejaría a ese usuario sin acceso a ningun dato. El refresco 9.7.2 de DB2 también incluye mejorías en cuanto auditoría que permite el replay de actividades de base de datos pasadas. Por ejemplo, si tiene que analizar como un determinado pedido que ocurrió unos años atrás afectó algunas tablas, ahora puede usar la información de auditoría para obtener lo que necesita para este análisis.
15. MEJORÍAS DE MANEJO DB2 ahora provee con la capacidad de mover tablas a una tabla de espacio diferente aun cuando la tabla esta en línea (online). Esto significa que aún cuando usuarios están accesando una tabla, uno puede cambiar el almacenamiento donde esta tabla reside. Este es otro ejemplo más de como DB2 busca siempre el llegar a tener disponibilidad 24x7 para sus datos. Si un DBA detecta que el almacenamiento en una de las tablas de espacio se está llenando rápidamente, el o ella puede usar el procedimiento de almacenamiento ADMIN_MOVE_TABLE que se incluye con DB2 9.7 para mover la tabla a otra tabla de espacio que este mas vacía. Usuarios no se impactarían en absoluto; ellos podrían SELECT, INSERT, UPDATE, y DELETE como lo hacen usualmente. Para implementar esta función, DB2 create una copia "sombra" de la tabla y se mantiene al tanto de los cambios en la tabla original. Los cambios luego se aplican a la copia sombra.
16. Otras mejoras en el área de manejo son relacionadas al transporte de esquemas de la base de datos. Uno puede pensar en un esquema SQL en DB2 como una forma de agrupar diferentes objetos de la base, como tablas, vistas, índices, etc. Por ejemplo, asuma que la tabla RFCHONG.T1 y la vista RFCHONG.V1 usan el mismo esquema RFCHONG. Algunas veces uno quiere transportar todos los objetos de un esquema a otra base de datos. Un método de hacerlo, que solo aplica a tablas, es usando la utilidad db2move. Con el refresco 9.7.2 de DB2, uno ahora puede usar el comando RESTORE con la opción TRANSPORT para copiar tablas de espacio y esquemas SQL como un conjunto desde un backup hacia otra base de datos activa.
17. MEJORAS DE INSTALACIÓN Ahora uno puede utilizar el comando de validación de una copia de DB2 llamado db2val, para rápidamente verificar que la instalación y configuración de DB2 Express-C es correcta.
18. EXTENSOR ESPACIAL DE DB2 Aún cuando DB2 ha tenido capacidades espaciales desde hace casi 10 años, no muchos usuarios saben de ello. Por tal motivo, aun cuando la funcionalidad no es nueva con el refresco 9.7.2 de DB2, es valioso hacerle saber que puede tomar ventaja del extensor espacial de DB2 que es gratuito para todas las ediciones de DB2, incluyendo DB2 Express-C. El extensor espacial le permite trabajar con datos espaciales y geodeticos usando SQL. Por ejemplo, esta característica le permite responder preguntas como "Cual es la tienda más cercana para clientes que viven en Toronto y que gastaron mas de $3000 con nosotros el año pasado?" Hasta uno puede utilizar el extensor espacial de DB2 para aplicaciones médicas. Por ejemplo, le puede ayudar a responder la pregunta "Cuáles son las huellas o características de células malignas en un análisis MRI del cerebro?"
19. CONCLUSIÓN Se resaltó algunos de las mejoras mas notables que se han introducido al DB2 Express-C desde la versión 9.7 hasta el refresco mas reciente, el 9.7.2. Esta última versión de la edición gratuita para la comunidad de IBM DB2 incluye nuevas características relacionadas a performance, desarrollo de aplicaciones, almacenamiento, seguridad, y más! que anteriormente solo eran disponibles en las versiones pagadas de DB2.