A continuación vamos a detallar algunas de las mejoras y nuevas funcionalidades incluidas en Oracle 20c. Sobre algunas de ellas escribiré un artículo específico, pero por lo pronto vamos a ver rápidamente lo que la nueva versión nos trae.
Funcionalidades de Oracle Graph
Como ya fuera anunciado (ver mi artículo "
Machine Learning, Spatial y Graph ya no requieren licencias adicionales") Oracle incluye sin costo adicional la funcionalidad de Graph en todas sus ediciones. Oracle Database 20c simplifica la instalación, configuración e implementación de Graph con la introducción de Graph Server y Client Kit, los cuales facilitan a los desarrolladores de aplicaciones comenzar a desarrollar utilizando Graph.
JSON
Oracle Database 20c introduce un tipo de datos JSON nativo, llamado JSON, optimizado para el procesamiento de consultas y DML, haciendo que sea más rápido procesar documentos JSON. A partir de 20c, este es el mejor tipo para almacenar documentos JSON grandes en vez de usar "VARCHAR" o "CLOB", evitando conversiones de juegos de caracteres y utilizando menos espacio de almacenamiento.
Puede usar el nuevo tipo de datos "JSON" tanto en SQL como en PL/SQL, pasando datos JSON de SQL a PL/SQL y de regreso a SQL (estático y dinámico). PL/SQL ahora admite la vinculación directa de datos JSON desde interfaces del lado del cliente como Oracle Call Interface (OCI) y Java Database Connectivity (JDBC). JSON puede ser un tipo diferenciador en la resolución de sobrecarga de procedimientos y funciones.
Se puede usar la nueva función SQL "JSON_TRANSFORM" para actualizar partes de un documento JSON. Se debe especificar qué partes modificar, las modificaciones y cualquier valor nuevo. "JSON_TRANSFORM" facilita que una aplicación modifique un documento JSON, sin tener que analizarlo y reconstruirlo. En la mayoría de los casos, también evita un viaje de ida y vuelta entre el servidor y el cliente para todo el documento.
Ahora puede expresar consultas SQL / JSON más complejas y expresar algunas consultas de manera más simple:
- La nueva función SQL "JSON_SCALAR" acepta una instancia escalar de un tipo de datos SQL y devuelve un valor JSON escalar como una instancia del tipo de datos JSON.
- Los nuevos métodos de elementos de lenguaje de ruta JSON admiten "JSON_SCALAR": float (), double (), binary (), ymInterval () y dsInterval ().
- La sintaxis de lenguaje por Path o por Notación de Puntos en JSON admite nuevos métodos de elementos agregados: avg (), count (), minNumber (), maxNumber (), minString (), maxString (), sum ().
Funciones de Agregación y Analíticas
Existen nuevas funciones analíticas y estadísticas agregadas están disponibles en SQL:
- "CHECKSUM" calcula la suma de verificación de los valores de entrada o expresión.
- Funciones "KURTOSIS_POP" y "KURTOSIS_SAMP".
- Funciones "SKEWNESS_POP" y "SKEWNESS_SAMP" son medidas de asimetría en los datos. Cuando la asimetría es positiva, esto significa que los datos están sesgados a la derecha. Cuando la asimetría es negativa, esto significa que los datos se distribuyen a la izquierda.
Todas estas nuevas funciones agregadas admiten las palabras clave "ALL", "DISTINCT" y "UNIQUE", permitiendo escribir código más eficiente y beneficiarse de un procesamiento más rápido en la base de datos.
Las funciones analíticas de ventanas ahora admiten las opciones "EXCLUDE" del estándar de SQL: 2011. La compatibilidad con el estándar ANSI completo permite una migración más fácil de las aplicaciones que se desarrollaron contra otros sistemas de bases de datos que cumplen con el estándar.
Macros SQL
Puede crear Macros SQL (SQM) para factorizar expresiones y declaraciones SQL comunes en construcciones parametrizadas reutilizables que se pueden usar en otras declaraciones SQL. Las macros SQL pueden ser expresiones escalares, típicamente utilizadas en listas SELECT, WHERE, GROUP BY y HAVING, para encapsular cálculos y lógica de negocios o pueden ser expresiones de tabla, típicamente usadas en una cláusula FROM.
Las macros SQL aumentan la productividad del desarrollador, simplifican el desarrollo colaborativo y mejoran la calidad del código.
Mejoras a operadores de conjuntos SQL (SET)
Los operadores de conjuntos SQL ahora admiten todas las palabras clave según lo definido en ANSI SQL. El nuevo operador "EXCEPT [ALL]" es funcionalmente equivalente a "MINUS [ALL]". Los operadores "MINUS" e "INTERSECT" ahora admiten la palabra clave "ALL".
El pleno cumplimiento de ANSI proporciona una mayor compatibilidad con otros proveedores de bases de datos y hace que la migración a Oracle Database sea más fácil que antes.
Mejoras a In-Memory
La función Automatic In-Memory (AIM) se ha mejorado significativamente. Oracle Database 20c agrega una nueva opción "HIGH" al parámetro de inicialización "INMEMORY_AUTOMATIC_LEVEL". Con esta configuración, todos los objetos que no tienen una configuración IN-MEMORY preexistente se configuran automáticamente en "INMEMORY MEMCOMPRESS AUTO" de forma predeterminada. AIM luego administra automáticamente los objetos poblados en el almacén de columnas en memoria (IM) utilizando el seguimiento de acceso y las estadísticas de columna. Este es un gran cambio en el comportamiento y aborda una de las preguntas más frecuentes que los clientes han tenido, que es "¿Cómo determino qué objetos llenar en el almacén de columnas de mensajería instantánea?"
Otra mejora significativa es que las tablas externas particionadas o híbrida, la cláusula INMEMORY es compatible tanto a nivel de tabla como de partición. Para las tablas híbridas, el atributo INMEMORY a nivel de tabla se aplica a todas las particiones, ya sean internas o externas. Esta mejora amplía significativamente el soporte para tablas externas en memoria.
Tablas Blockchain
La tabla Blockchain es un nuevo tipo de tabla especializada que proporciona una opción de persistencia altamente resistente a la manipulación directamente en la base de datos Oracle. Permite operaciones de solo inserción, sin actualizaciones y otras modificaciones permitidas, y restringe las eliminaciones.
Para aumentar aún más la resistencia a la manipulación, las filas se encadenan almacenando el hash de la fila anterior en la fila actual, lo que permite a los usuarios verificar cualquier modificación. Los usuarios también pueden firmar opcionalmente el contenido de las filas con firmas basadas en PKI que aprovechan los certificados X.509, y se puede verificar la integridad de la firma y los datos, asegurando así el no repudio