Database 23c

Oracle Database 23c ofrece la base de datos convergente más completa y sencilla para desarrolladores que desean crear nuevos microservicios, gráficos, documentos y aplicaciones relacionales.

Cada semana, compartiremos una nueva función de Oracle Database 23c con ejemplos para que puedas ponerte en marcha rápidamente. Guarda esta página y consúltala semanalmente para descubrir las nuevas funciones destacadas.

Funciones destacadas

¡Felices fiestas!

Dado que estamos ya a punto de cerrar 2023, incluimos aquí un resumen de las nuevas funciones de Oracle Database 23c que destacamos a lo largo del año. Si aún no has tenido la oportunidad de probar nuestra última versión de Oracle Database, especialmente si trabajas como desarrollador, consulta las diferentes opciones disponibles aquí o en oracle.com/database/free.

Tablas de Blockchain

Blockchain y las tablas inmutables, disponibles desde el lanzamiento de Oracle Database 19c, utilizan métodos cripto-seguros para proteger los datos de la manipulación o supresión por parte de hackers y de agentes internos no autorizados o comprometidos. Incluye restricciones de sólo inserción que impiden actualizaciones o supresiones (incluso por parte de administradores de bases de datos), cadenas hash criptográficas para activar la verificación, resúmenes de tablas firmadas para detectar cualquier retroceso a gran escala y la firma de usuarios finales de filas introducidas utilizando sus claves privadas. Oracle Database 23c presenta muchas mejoras, como la compatibilidad con la replicación lógica a través de Oracle GoldenGate y actualizaciones continuas mediante Active Data Guard, la compatibilidad con transacciones distribuidas que implican tablas de blockchain, eliminación masiva eficiente basada en particiones para filas caducadas y optimizaciones de desempeño para inserciones/confirmaciones.

Esta versión también presenta la posibilidad de añadir/eliminar columnas sin afectar al encadenamiento de hash criptográfico, cadenas específicas de usuario y resúmenes de tablas para filas filtradas, capacidad de firma delegada y autenticación de bases de datos. También amplía la gestión de datos criptoprotegidos a las tablas normales al permitir una auditoría de los cambios históricos en una tabla que no sea de blockchain mediante un archivo Flashback definido para utilizar una tabla histórica de blockchain.

Ideal para casos de registros de auditoría o diarios integrados, estas funciones se pueden utilizar para libros mayores, historial de pagos, seguimiento del cumplimiento de normativas, registros legales y cualquier dato que represente activos cuya manipulación o eliminación pueda acarrear importantes consecuencias legales, financieras o para la reputación.



Tipo de dato booleano

Oracle Database ahora admite el tipo de dato booleano compatible con el estándar ISO SQL. Esto permite almacenar los valores TRUE y FALSE en tablas y utilizar expresiones booleanas en sentencias SQL. El tipo de dato booleano estandariza el almacenamiento de los valores YES y NO y facilita la migración a Oracle Database.



Programación y canalización asíncronas del controlador de base de datos

Con Oracle Database 23c, la función Pipelining (canalización) permite a las aplicaciones .NET, Java y C/C++ enviar varias solicitudes a la base de datos sin esperar la respuesta del servidor. Oracle Database pone en cola y procesa esas solicitudes una por una, lo que permite que las aplicaciones cliente sigan funcionando hasta que se notifique la finalización de las solicitudes. Estas mejoras proporcionan una mejor experiencia de usuario final, una mayor capacidad de respuesta de las aplicaciones basadas en datos, escalabilidad integral, evitar cuellos de botella de desempeño y un uso eficiente de los recursos en el servidor y el cliente.

Para que la solicitud del cliente se devuelva inmediatamente, Oracle Database Pipelining requiere una API asíncrona o reactiva en los controladores .NET, Java y C/C++. Estos mecanismos se pueden utilizar en Oracle Database, con o sin pipeline de base de datos.

Para Java, Oracle Database 23c proporciona las extensiones reactivas en Java Database Connectivity (JDBC), Universal Connection Pool (UCP) y Oracle R2DBC Driver. También es compatible con los threads virtuales Java en el controlador (Project Loom), así como las bibliotecas de flujos reactivos, como Reactor, RxJava, Akka Streams, Vert.x, etc.



DB_DEVELOPER_ROLE

Oracle Database 23c incluye el nuevo rol DB_DEVELOPER_ROLE, que proporciona a un desarrollador de aplicaciones todos los privilegios necesarios para diseñar, implantar, depurar y desplegar aplicaciones en bases de datos Oracle. Al utilizar este rol, los administradores ya no tienen que adivinar qué privilegios podrían ser necesarios para el desarrollo de aplicaciones.





Uniones directas para las sentencias UPDATE y DELETE

Oracle Database permite unir la tabla de destino en sentencias UPDATE y DELETE a otras tablas utilizando la cláusula FROM. Estas otras tablas pueden limitar las filas que se modifican o ser la fuente de nuevos valores. Las uniones directas facilitan la escritura de SQL para modificar y eliminar datos.



Mejoras de ingesta rápida

Hemos añadido mejoras a Memoptimized Rowstore Fast Ingest con soporte para particiones, tablas comprimidas, vaciado rápido mediante escrituras directas y compatibilidad con la población directa de almacenes de columnas en memoria. Estas mejoras hacen que la función de ingesta rápida sea más fácil de incorporar en más situaciones en las que se requiere una ingesta rápida de datos. Ahora Oracle Database ofrece un mejor soporte para aplicaciones que requieren capacidades de ingesta rápida de datos. Los datos se pueden ingerir y, a continuación, procesar todos en la misma base de datos. Esto reduce la necesidad de entornos de carga especiales y, por lo tanto, reduce la complejidad y la redundancia de datos.



Observabilidad de Grafana

Oracle sigue ampliando su soporte nativo de la nube y Kubernetes con nuestro nuevo Observability Exporter for Oracle Database, que permite a los clientes exportar fácilmente métricas de bases de datos y aplicaciones en el formato Prometheus estándar del sector, y crear fácilmente paneles de control de Grafana para supervisar el rendimiento de sus bases de datos y aplicaciones de Oracle.



Alias de columna GROUP BY

Ahora puedes utilizar el alias de columna o la posición del elemento SELECT en las cláusulas GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP y GROUP BY GROUPING SETS. Además, la cláusula HAVING admite alias de columna. Estas nuevas mejoras de Database 23c facilitan la escritura de cláusulas GROUP BY y HAVING, lo que hace que las consultas SQL sean mucho más legibles y mantenibles, al tiempo que proporciona una mejor portabilidad de código SQL.



IF [NOT] EXISTS

La creación, modificación y eliminación de objetos DDL en Oracle Database ahora admite los modificadores de sintaxis IF EXISTS e IF NOT EXISTS. Permite controlar si debe producirse un error si un objeto determinado existe o no, simplificando la gestión de errores en scripts y aplicaciones.



Agregaciones de tipos de datos INTERVAL

Oracle Database 23c facilita a los desarrolladores el cálculo de totales y medias sobre los valores INTERVAL. Con esta mejora, ahora puede transferir tipos de datos INTERVAL a las funciones de agregación y análisis SUM y AVG.



Procedimientos almacenados de JavaScript

Las llamadas al módulo del motor multilingüe (MLE) permiten a los desarrolladores llamar a funciones JavaScript almacenadas en módulos desde SQL y PL/SQL. Las especificaciones de llamada escritas en el enlace PL/SQL JavaScript a las unidades de código PL/SQL. Esta función permite a los desarrolladores utilizar funciones JavaScript en cualquier lugar en el que se invoquen funciones PL/SQL.



Tipo de dato binario JSON

El tipo de dato JSON es un formato JSON binario optimizado para Oracle denominado OSON. Está diseñado para agilizar el desempeño de consultas y DML en la base de datos y en los clientes de base de datos a partir de la versión 21c y posteriores.



Vistas de dualidad relacional de JSON

La dualidad relacional de JSON, una innovación introducida en Oracle Database 23c, unifica los modelos de datos relacionales y documentales para ofrecer lo mejor de ambos mundos. Los desarrolladores pueden crear aplicaciones en paradigmas relacionales o JSON con una única fuente de datos y disfrutar de las ventajas de ambos modelos. Los datos se almacenan una vez, pero se puede acceder a ellos, escribirlos y modificarlos con cualquiera de los métodos. Los desarrolladores se benefician de transacciones y controles de simultaneidad compatibles con ACID, lo que significa que ya no tienen que hacer concesiones entre asignaciones relacionales de objetos complejos o problemas de incoherencia de datos.



Esquema JSON

Oracle Database soporta JSON para almacenar y procesar datos flexibles para el esquema. Con Oracle Database 23c, Oracle Database ahora soporta el esquema JSON para validar la estructura y los valores de los datos JSON. Se ha mejorado el operador SQL IS JSON para que acepte un esquema JSON, y se han añadido varias funciones PL/SQL para validar JSON y describir objetos de base de datos como tablas, vistas y tipos como documentos de esquema JSON.

De forma predeterminada, los datos JSON no tienen esquema, lo que proporciona flexibilidad. Sin embargo, puede que desees asegurarte de que los datos JSON tienen una estructura y un tipo particulares, que se pueden realizar mediante la validación de esquema JSON estándar del sector.

Contribuir a esquema JSON
Oracle contribuye activamente al esquema JSON, un esfuerzo de código abierto para estandarizar un lenguaje declarativo basado en JSON que permite anotar y validar documentos JSON. Actualmente se encuentra en Solicitud de comentarios (RFC).



API de Kafka

Oracle Database 23c proporciona compatibilidad aún más refinada para aplicaciones Apache Kafka con Oracle Database. Esta nueva función facilita la migración de aplicaciones Java de Kafka a Transactional Event Queues (TxEventQ). Las API de Java de Kafka ahora pueden conectarse al servidor de Oracle Database y utilizar TxEventQ como plataforma de mensajería.

Los desarrolladores pueden migrar fácilmente una aplicación Java existente que utilice Kafka para Oracle Database por medio del controlador JDBC Thin. Además, con la función de biblioteca de cliente de Oracle Database 23c, las aplicaciones de Kafka ahora pueden conectarse a Oracle Database en lugar de a un clúster de Kafka y utilizar la plataforma de mensajes de TxEventQ de forma transparente.



Reservas de valores de columna sin bloqueo

Las reservas sin bloqueo permiten que las transacciones concurrentes procedan sin ser bloqueadas en las actualizaciones de filas con mucha actualización. Las reservas sin bloqueo se mantienen en las filas en lugar de bloquearlas. Verifica si las actualizaciones se pueden realizar correctamente y aplaza las actualizaciones hasta el momento de confirmar la transacción. Las reservas sin bloqueo mejoran la experiencia del usuario y la simultaneidad en las transacciones.



API compatible con MongoDB

Con la Oracle Database API for MongoDB, los desarrolladores pueden seguir utilizando las herramientas y los controladores de MongoDB conectados a Oracle Database al tiempo que obtienen acceso a las capacidades multimodelo y la base de datos de autogestión de Oracle. Los clientes pueden ejecutar cargas de trabajo de MongoDB en Oracle Cloud Infrastructure (OCI). A menudo, se necesitan pocos o ningún cambio en las aplicaciones MongoDB existentes; simplemente se debe cambiar la cadena de conexión.

Oracle Database API for MongoDB forma parte de la edición estándar de Oracle REST Data Services. Está preconfigurado y totalmente gestionado como parte de Oracle Autonomous Database.



Gráficos de propiedades operativas

Oracle Database ofrece soporte nativo para estructuras de datos de gráficos de propiedades y consultas de gráficos. Si buscas flexibilidad para crear gráficos junto con datos transaccionales, JSON, Spatial y otros tipos de datos, te lo explicamos. Ahora, los desarrolladores pueden desarrollar aplicaciones gráficas con SQL utilizando las herramientas y marcos de desarrollo de SQL existentes.



Soporte del constructor JSON PL/SQL para tipos agregados

El constructor JSON PL/SQL se ha mejorado para aceptar una instancia de un tipo de agregado PL/SQL correspondiente, devolviendo un tipo de objeto JSON o matriz relleno con los datos del tipo agregado.

El operador JSON_VALUE PL/SQL se ha mejorado para que su cláusula de devolución pueda aceptar un nombre de tipo que defina el tipo de la instancia que el operador debe devolver. El soporte del constructor JSON para tipos de datos agregados optimiza el intercambio de datos entre aplicaciones PL/SQL y lenguajes que admiten JSON.



Cláusula RETURNING INTO

La cláusula RETURNING INTO para las sentencias INSERT, UPDATE y DELETE se ha mejorado para informar de los valores antiguos y nuevos afectados por la sentencia respectiva. Esto permite a los desarrolladores utilizar la misma lógica para cada uno de estos tipos de DML a fin de obtener valores antes y después de la ejecución de la sentencia. Los valores antiguos y nuevos solo son válidos para sentencias UPDATE. Las sentencias INSERT no informan valores antiguos y las sentencias DELETE no informan nuevos valores.

La capacidad de obtener valores antiguos y nuevos afectados por las sentencias INSERT, UPDATE y DELETE como parte de la ejecución del comando SQL ofrece a los desarrolladores un enfoque uniforme para leer estos valores y reduce la cantidad de trabajo que debe realizar la base de datos.



Privilegios de esquema

Además de los privilegios de objeto, sistema y administración actuales, Oracle Database ahora admite privilegios de esquema. Esta función mejora la seguridad al simplificar la autorización para objetos de base de datos de cara a mejorar la aplicación del principio de mínimo privilegio y establecer con claridad quién debería tener acceso a cada cosa.



SELECT sin cláusula FROM

Ahora puedes ejecutar expresiones solo de consulta SELECT sin cláusula FROM. Esta nueva función mejora la portabilidad de código SQL y facilita su uso para los desarrolladores.



Macros SQL

Crea macros SQL para transformar expresiones y sentencias SQL comunes en construcciones reutilizables y con parámetros que se puedan aplicar en otras sentencias SQL. Las macros SQL pueden ser expresiones escalares que se suelen utilizar en listas SELECT, así como cláusulas WHERE, GROUP BY y HAVING. Las macros SQL también se pueden utilizar para resumir cálculos y lógica de negocio o pueden ser expresiones de tabla, normalmente utilizadas en una cláusula FROM. En comparación con las construcciones PL/SQL, las macros SQL pueden mejorar el rendimiento. Las macros SQL aumentan la productividad de los desarrolladores, simplifican el desarrollo colaborativo y mejoran la calidad del código.



SQL Analysis Report

Esta semana estamos poniendo el foco en SQL Analysis Report, una función fácil de usar que ayuda a los desarrolladores a escribir mejores sentencias SQL. SQL Analysis Report notifica problemas comunes en sentencias SQL, especialmente aquellos que pueden provocar un rendimiento SQL deficiente. Está disponible en DBMS_XPLAN y en SQL Monitor.



Firewall SQL

Utiliza el firewall SQL para detectar anomalías y evitar ataques de inyección SQL. SQL Firewall examina todo SQL, incluida la información de contexto de la sesión, como la dirección IP y el usuario del sistema operativo. Incorporado en el núcleo de la base de datos, los logs de SQL Firewall y (si está activado) bloquean SQL no autorizado, lo que garantiza que no se puede omitir. Al aplicar una lista de permitidos de contextos de sesión aprobados y SQL, SQL Firewall puede evitar muchos ataques de día cero y reducir el riesgo de robo o abuso de credenciales.



Table Value Constructor

El motor SQL de Oracle Database ahora admite una cláusula VALUES para muchos tipos de sentencias. Esto permite materializar filas de datos sobre la marcha especificándolas mediante la nueva sintaxis sin depender de las tablas existentes. Oracle Database 23c admite la cláusula VALUES para las sentencias SELECT, INSERT y MERGE. La introducción de la nueva cláusula VALUES permite a los desarrolladores escribir menos código para comandos SQL ad hoc, lo que lleva a una mejor legibilidad con menos esfuerzo.



Anotaciones de uso

Las Anotaciones permiten almacenar y recuperar metadatos sobre los objetos de la base de datos. Son campos de texto libre que las aplicaciones pueden utilizar para personalizar la lógica empresarial o las interfaces de usuario. Las Anotaciones son pares nombre-valor o simplemente un nombre. Ayudan a utilizar los objetos de la base de datos de la misma forma en todas las aplicaciones, lo que simplifica el desarrollo y mejora la calidad de los datos.



Dominios de uso

Los dominios de uso (a veces denominados dominios SQL o dominios de uso de aplicaciones) son objetos de diccionario de alto nivel que actúan como modificadores de tipo ligero y documentan de forma centralizada el uso de datos previsto para las aplicaciones. Los dominios de uso se pueden utilizar para definir el uso de datos y estandarizar las operaciones para encapsular un juego de restricciones de control, propiedades de visualización, reglas de ordenación y otras propiedades de uso, sin necesidad de metadatos a nivel de aplicación.

Los dominios de uso de una o más columnas de una tabla no modifican el tipo de dato subyacente y, por lo tanto, también se pueden agregar a los datos existentes sin interrumpir las aplicaciones ni crear problemas de portabilidad.