Database 23c

Oracle Database 23c fournit la base de données convergée la plus complète et la plus simple pour les développeurs qui cherchent à créer de nouvelles applications de microservices, de graphes, de documents et de données relationnelles.

Chaque semaine, nous présenterons une nouvelle fonctionnalité d'Oracle Database 23c avec des exemples afin que vous puissiez vous lancer rapidement. Enregistrez cette page et revenez chaque semaine pour voir les nouvelles fonctionnalités mises en avant.

Fonctionnalités mises en avant

Joyeuses fêtes !

Pour clôturer 2023, voici un récapitulatif des nouvelles fonctionnalités d'Oracle Database 23c que nous avons mises en avant tout au long de l'année. Si vous n'avez pas encore essayé notre nouvelle version d'Oracle Database, en particulier si vous êtes développeur, consultez les différentes options ici ou sur oracle.com/fr/database/free.

Tables blockchain

La blockchain et les tables immuables, disponibles depuis la sortie d'Oracle Database 19c, utilisent des méthodes de chiffrement sécurisées pour protéger les données contre les altérations ou les suppressions par des pirates externes et des personnes malveillantes ou compromises. Cela inclut les restrictions d'insertion uniquement qui empêchent les mises à jour ou les suppressions (même par les administrateurs de base de données), les chaînes de hachage cryptographiques pour permettre la vérification, les synthèses de table signées pour détecter les rétractactions à grande échelle et la signature par l'utilisateur final des lignes insérées à l'aide de leurs clés privées. Oracle Database 23c apporte de nombreuses améliorations, notamment la prise en charge de la réplication logique via Oracle GoldenGate et des mises à niveau non simultanées à l'aide d'Active Data Guard, la prise en charge des transactions distribuées impliquant des tables de blockchain, une suppression en masse efficace reposant sur des partitions pour les lignes expirées et des optimisations des performances pour les insertions/validations.

Cette version offre également la possibilité d'ajouter ou de supprimer des colonnes sans affecter le chaînage de hachage cryptographique, les chaînes spécifiques à l'utilisateur et les synthèses de table pour les lignes filtrées, la capacité de signature déléguée et la contresignature de base de données. Elle étend également la gestion des données protégées par chiffrement aux tables standard en permettant un audit des modifications historiques apportées à une table sans blockchain via l'archive Flashback définie pour utiliser une table d'historique de blockchain.

Idéales pour les cas d'utilisation de piste d'audit ou de journalisation intégrés, ces fonctionnalités peuvent être utilisées pour les livres financiers, l'historique des paiements, le suivi de la conformité réglementée, les journaux légaux et toutes les données représentant des actifs pour lesquels la falsification ou la suppression peut entraîner des conséquences juridiques, financières ou de réputation importantes.



Type de données booléennes

Oracle Database prend désormais en charge le type de données booléen conforme à la norme ISO SQL. Vous pouvez ainsi stocker des valeurs True et False dans des tables et utiliser des expressions booléennes dans des instructions SQL. Le type de données booléen standardise le stockage des valeurs « oui » et « non » et facilite la migration vers Oracle Database.



Programmation asynchrone des pilotes de base de données et pipelining

Avec Oracle Database 23c, la fonctionnalité de pipelining permet aux applications .NET, Java et C/C++ d'envoyer plusieurs requêtes à la base de données sans attendre la réponse du serveur. Oracle Database met en file d'attente et traite ces demandes une par une, ce qui permet aux applications client de continuer à travailler jusqu'à la notification de la fin des requêtes. Ces améliorations offrent une meilleure expérience à l'utilisateur final, une meilleure réactivité des applications basées sur les données, une évolutivité de bout en bout, l'évitement des goulets d'étranglement des performances et une utilisation efficace des ressources côté serveur et côté client.

Pour que la requête du client soit renvoyée immédiatement, Oracle Database Pipelining nécessite une API asynchrone ou réactive dans les pilotes .NET, Java et C/C++. Ces mécanismes peuvent être utilisés sur Oracle Database, avec ou sans Database Pipelining.

Pour Java, Oracle Database 23c fournit les extensions réactives dans JDBC (Java Database Connectivity), UCP (Universal Connection Pool) et le pilote Oracle R2DBC. Il prend également en charge les threads virtuels Java dans le pilote du Project Loom ainsi que les bibliothèques Reactive Streams, telles que Reactor, RxJava, Akka Streams, Vert.x, etc.



DB_DEVELOPER_ROLE

Oracle Database 23c inclut le nouveau rôle DB_DEVELOPER_ROLE, qui fournit à un développeur d'applications tous les privilèges nécessaires pour concevoir, implémenter, déboguer et déployer des applications sur des bases de données Oracle. Grâce à ce rôle, les administrateurs n'ont plus à deviner les privilèges nécessaires pour le développement d'applications.





Jointures directes pour les instructions UPDATE et DELETE

Oracle Database vous permet désormais de joindre la table cible dans les instructions UPDATE et DELETE à d'autres tables à l'aide de la clause FROM. Ces autres tables peuvent limiter les lignes modifiées ou être la source de nouvelles valeurs. Les jointures directes facilitent l'écriture de code SQL pour modifier et supprimer des données.



Améliorations de Fast Ingest

Nous avons ajouté des améliorations à Memoptimized Rowstore Fast Ingest avec la prise en charge du partitionnement, des tables compressées, du vidage rapide à l'aide d'écritures directes et de la prise en charge directe de la population de magasins de colonnes en mémoire. Grâce à ces améliorations, la fonctionnalité d'inclusion rapide est plus facile à intégrer dans les situations où l'ingestion rapide de données est requise. Oracle Database fournit désormais une meilleure prise en charge des applications nécessitant des fonctionnalités d'ingestion rapide des données. Les données peuvent toutes être ingérées, puis traitées dans la même base de données. Cela réduit le besoin d'environnements de chargement spéciaux et réduit ainsi la complexité et la redondance des données.



Observabilité de Grafana

Oracle continue d'étendre sa prise en charge native du cloud et de Kubernetes avec notre nouvel outil Observability Exporter pour Oracle Database. Il permet aux clients d'exporter facilement des indicateurs de base de données et d'application au format standardisé Prometheus, et de créer facilement des tableaux de bord Grafana pour surveiller les performances de leurs bases de données et applications Oracle.



Alias de colonne GROUP BY

Vous pouvez désormais utiliser un alias de colonne ou une position d'élément SELECT dans les clauses GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP et GROUP BY GROUPING SETS. En outre, la clause HAVING prend en charge les alias de colonne. Ces nouvelles améliorations apportées par Database 23c facilitent l'écriture des clauses GROUP BY et HAVING, ce qui rend les requêtes SQL beaucoup plus lisibles et maintenables tout en offrant une meilleure portabilité du code SQL.



IF [NOT] EXISTS

La création, la modification et la suppression d'objets DDL dans Oracle Database prennent désormais en charge les modificateurs de syntaxe IF EXISTS et IF NOT EXISTS. Cela vous permet de contrôler la nécessité de signaler une erreur si un objet donné existe ou n'existe pas, ce qui simplifie la gestion des erreurs dans les scripts et par les applications.



Groupements de types de données INTERVAL

Oracle Database 23c permet aux développeurs de calculer plus facilement les totaux et les moyennes sur des valeurs INTERVAL. Grâce à cette amélioration, vous pouvez désormais transmettre les types de données INTERVAL aux fonctions d'agrégation et d'analyse SUM et AVG.



Procédures stockées JavaScript

Les appels de module de moteur multilingue (MLE) permettent aux développeurs d'appeler des fonctions JavaScript stockées dans des modules à partir de SQL et PL/SQL. Appelez les spécifications écrites dans le lien PL/SQL JavaScript vers les unités de code PL/SQL. Cette fonctionnalité permet aux développeurs d'utiliser les fonctions JavaScript partout où les fonctions PL/SQL sont appelées.



Type de données binaire JSON

Le type de données JSON est un format JSON binaire optimisé par Oracle appelé OSON. Il est conçu pour des performances d'interrogation et de DML plus rapides dans la base de données et dans les clients de base de données à partir de la version 21c et les versions supérieures.



Vues avec la dualité relationnelle JSON

La dualité relationnelle JSON, une innovation introduite dans Oracle Database 23c, unifie les modèles de données relationnelles et documentaires pour fournir le meilleur de ces deux approches. Les développeurs peuvent créer des applications dans des paradigmes relationnels ou JSON avec une source unique d'informations fiables et tirer parti des atouts des deux modèles. Les données sont stockées une seule fois, mais sont accessibles, écrites et modifiées selon l'une ou l'autre approche. Les développeurs bénéficient de transactions et de contrôles de simultanéité ACID, ce qui signifie qu'ils n'ont plus à faire de compromis entre des correspondances objet-relationnel complexes ou des problèmes d'incohérence de données.



JSON Schema

Oracle Database prend en charge le format JSON pour stocker et traiter des données dans des schémas flexibles. Avec Oracle Database 23c, Oracle Database prend désormais en charge JSON Schema pour valider la structure et les valeurs des données JSON. L'opérateur SQL IS JSON a été amélioré pour accepter un schéma JSON et diverses fonctions PL/SQL ont été ajoutées pour valider les données JSON et pour décrire des objets de base de données tels que des tables, des vues et des types en tant que documents de schéma JSON.

Par défaut, les données JSON sont sans schéma, ce qui offre de la flexibilité. Cependant, vous pouvez vous assurer que les données JSON ont une structure particulière, ce qui peut être fait via la validation avec le standard JSON Schema.

Contribuer à JSON Schema
Oracle contribue activement au schéma JSON, un projet open source visant à standardiser un langage déclaratif basé sur JSON qui vous permet d'annoter et de valider des documents JSON. Son statut est actuellement en « Attente de commentaires » (RFC).



API Kafka

Oracle Database 23c offre une compatibilité encore plus précise pour les applications Apache Kafka avec Oracle Database. Cette nouvelle fonctionnalité facilite la migration des applications Java Kafka vers les files d'attente d'événements transactionnels (TxEventQ). Les API Java Kafka peuvent désormais se connecter au serveur Oracle Database et utiliser TxEventQ comme plateforme de messagerie.

Les développeurs peuvent facilement migrer une application Java existante qui utilise Kafka vers Oracle Database à l'aide du pilote JDBC. De plus, avec la fonctionnalité de bibliothèque côté client d'Oracle Database 23c, les applications Kafka peuvent désormais se connecter à Oracle Database au lieu d'un cluster Kafka et utiliser simplement la plateforme de messagerie de TxEventQ.



Réservations de valeur de colonne sans verrouillage

Les réservations sans verrouillage permettent de poursuivre les transactions simultanées sans être bloquées lors des mises à jour de lignes fortement actualisées. Les réservations sans verrouillage sont conservées sur les lignes au lieu d'être verrouillées. Elles vérifient si les mises à jour peuvent aboutir et diffèrent les mises à jour jusqu'à l'heure de validation de la transaction. Les réservations sans verrouillage améliorent l'expérience utilisateur et la simultanéité dans les transactions.



API compatible avec MongoDB

Avec l'API d'Oracle Database pour MongoDB, les développeurs peuvent continuer à utiliser les outils et pilotes de MongoDB connectés à Oracle Database tout en ayant accès aux fonctionnalités multimodèles et à la base de données à pilotage automatique d'Oracle. Les clients peuvent exécuter leurs workloads MongoDB sur Oracle Cloud Infrastructure (OCI). Souvent, les applications MongoDB existantes nécessitent peu de modifications, voire aucune. Il vous suffit de modifier la chaîne de connexion.

L'API Oracle Database pour MongoDB fait partie d'Oracle REST Data Services standard. Elle est préconfigurée et entièrement gérée dans le cadre d'Oracle Autonomous Database.



Graphes de propriétés opérationnelles

Oracle Database offre une prise en charge native des structures de données de graphe de propriétés et des requêtes de graphe. Si vous recherchez de la flexibilité pour créer des graphes avec les données transactionnelles, JSON, Spatial et d'autres types de données, nous avons ce qu'il vous faut. Les développeurs peuvent désormais créer facilement des applications de graphes à l'aide du langage SQL, grâce à des outils et des structures de développement SQL existants.



Prise en charge du constructeur PL/SQL JSON pour les types d'agrégat

Le constructeur PL/SQL JSON a été amélioré pour accepter une instance d'un type d'agrégation PL/SQL correspondant, renvoyant un objet JSON ou un type de tableau rempli avec les données de type d'agrégation.

L'opérateur PL/SQL JSON_VALUE est amélioré afin que sa clause de renvoi puisse accepter un nom de type qui définit le type de l'instance que l'opérateur doit renvoyer. La prise en charge des constructeurs JSON pour les types de données agrégées rationalise l'échange de données entre les applications PL/SQL et les langages prenant en charge JSON.



Clause RETURNING INTO

La clause RETURNING INTO pour les instructions INSERT, UPDATE et DELETE a été améliorée pour signaler les anciennes et les nouvelles valeurs affectées par l'instruction correspondante. Cela permet aux développeurs d'utiliser la même logique pour chacun de ces types DML afin d'obtenir des valeurs avant et après l'exécution de l'instruction. Les anciennes et les nouvelles valeurs ne sont valides que pour les instructions UPDATE. Les instructions INSERT ne retournent pas d'anciennes valeurs et les instructions DELETE ne retournent pas de nouvelles valeurs.

La possibilité d'obtenir les anciennes et les nouvelles valeurs affectées par les instructions INSERT, UPDATE et DELETE dans le cadre de l'exécution de la commande SQL offre aux développeurs une approche uniforme pour la lecture de ces valeurs et réduit la quantité de travail que la base de données doit effectuer.



Privilèges de schéma

Oracle Database prend désormais en charge les privilèges de schéma en plus des privilèges d'objet, de système et d'administration existants. Cette fonctionnalité améliore la sécurité en simplifiant l'autorisation pour les objets de base de données afin de mieux implémenter le principe du moindre privilège et de déterminer avec précision les accès.



SELECT sans la clause FROM

Vous pouvez désormais exécuter des requêtes uniquement avec l'expression SELECT sans la clause FROM. Cette nouvelle fonctionnalité améliore la portabilité du code SQL et sa facilité d'utilisation pour les développeurs.



Macros SQL

Créez des macros SQL pour intégrer les expressions et instructions SQL courantes dans des structures paramétrées réutilisables pouvant être utilisées dans d'autres instructions SQL. Les macros SQL peuvent être des expressions scalaires généralement utilisées dans les listes SELECT, ainsi que dans les clauses WHERE, GROUP BY et HAVING. Les macros SQL peuvent également être utilisées pour encapsuler des calculs et une logique métier, ou peuvent être des expressions de table, généralement utilisées dans une clause FROM. Par rapport aux structures PL/SQL, les macros SQL peuvent améliorer les performances. Les macros SQL augmentent la productivité des développeurs, simplifient le développement collaboratif et améliorent la qualité du code.



Rapport d'analyse SQL

Cette semaine, nous mettons l'accent sur SQL Analysis Report, une fonctionnalité facile à utiliser qui aide les développeurs à écrire de meilleures instructions SQL. Le rapport d'analyse SQL signale les problèmes courants liés aux instructions SQL, en particulier ceux qui peuvent entraîner des performances SQL médiocres. Il est disponible dans DBMS_XPLAN et SQL Monitor.



SQL Firewall

Utilisez SQL Firewall pour détecter les anomalies et empêcher les injections SQL. SQL Firewall examine toutes les instructions SQL, y compris les informations de contexte de session telles que l'adresse IP et l'utilisateur du système d'exploitation. Intégré dans le noyau de base de données, SQL Firewall écrit des journaux et (s'il est activé) bloque les instructions SQL non autorisées, pour éviter les contournements. En appliquant une liste d'autorisation de contextes de session SQL et approuvés, SQL Firewall peut empêcher de nombreuses attaques zero-day et réduire le risque de vol de données d'identifications.



Constructeur de valeur de table

Le moteur SQL Oracle Database prend désormais en charge une clause VALUES pour de nombreux types d'instruction. Cela vous permet de matérialiser des lignes de données à la volée en les spécifiant à l'aide de la nouvelle syntaxe sans dépendre des tables existantes. Oracle Database 23c prend en charge la clause VALUES pour les instructions SELECT, INSERT et MERGE. L'introduction de la nouvelle clause VALUES permet aux développeurs d'écrire moins de code pour les commandes SQL ponctuelles, ce qui permet une meilleure lisibilité avec moins d'effort.



Annotations d'utilisation

Les annotations permettent de stocker et d'extraire des métadonnées sur les objets de base de données. Il s'agit de champs de texte de forme libre que les applications peuvent utiliser pour personnaliser la logique métier ou les interfaces utilisateur. Les annotations sont des paires nom-valeur ou simplement un nom. Ils vous aident à utiliser les objets de base de données de la même manière dans toutes les applications, ce qui simplifie le développement et améliore la qualité des données.



Domaines d'utilisation

Les domaines d'utilisation (parfois appelés domaines SQL ou domaines d'utilisation d'application) sont des objets de dictionnaire de haut niveau qui agissent en tant que modificateurs de type légers et documentent de manière centralisée l'utilisation prévue des données pour les applications. Les domaines d'utilisation peuvent être utilisés pour définir l'utilisation des données et standardiser les opérations afin d'encapsuler un ensemble de contraintes de vérification, de propriétés d'affichage, de règles de tri et d'autres propriétés d'utilisation, sans nécessiter de métadonnées au niveau de l'application.

Les domaines d'utilisation d'une ou de plusieurs colonnes d'une table ne modifient pas le type de données sous-jacent et peuvent donc également être ajoutés aux données existantes sans interrompre les applications ou engendrer des problèmes de portabilité.