Database 23c

Oracle Database 23c offre il database convergente più completo e semplice per gli sviluppatori che desiderano creare nuove applicazioni relazionali, di microservizi, grafici e documenti.

Ogni settimana, condivideremo una nuova funzione di Oracle Database 23c con esempi che ti consentiranno di essere operativo rapidamente. Salva questa pagina e controlla ogni settimana per visualizzare le nuove funzioni evidenziate.

Funzionalità in evidenza

Buone feste!

Per concludere questo 2023, ecco un riepilogo delle nuove funzionalità di Oracle Database 23c che abbiamo evidenziato durante tutto l'anno. Se non hai ancora avuto la possibilità di provare la nostra ultima release di Oracle Database, soprattutto se sei uno sviluppatore, dai un'occhiata alle diverse opzioni qui o all'indirizzo oracle.com/database/free.

Tabelle blockchain

Le tabelle blockchain e quelle immutabili, disponibili a partire dal rilascio di Oracle Database 19c, utilizzano metodi sicuri per le crittografia per proteggere i dati da manomissioni o eliminazioni da hacker esterni e da insider non autorizzati o compromessi. Sono incluse limitazioni di solo inserimento che impediscono aggiornamenti o eliminazioni (anche da parte dei DBA), concatenamento hash crittografico per consentire la verifica, digest di tabella firmati per rilevare eventuali rollback su larga scala e la firma da parte dell'utente finale delle righe inserite utilizzando le relative chiavi private. Oracle Database 23c introduce molti miglioramenti, tra cui il supporto per la replica logica tramite Oracle GoldenGate e gli aggiornamenti in sequenza utilizzando Active Data Guard, il supporto per le transazioni distribuite che coinvolgono tabelle blockchain, l'eliminazione in blocco efficiente basata su partizione per le righe scadute e le ottimizzazioni delle prestazioni per inserimenti/commit.

In questa release viene inoltre introdotta la possibilità di aggiungere/eliminare colonne senza influire sul concatenamento hash crittografico, chain specifiche dell'utente e digest di tabella per le righe filtrate, nonché la capacità di delegare le firme e la controfirma del database. Inoltre, espande la gestione dei dati protetti da crittografia alle tabelle regolari, abilitando un controllo delle modifiche cronologiche a una tabella non-blockchain tramite l'archivio Flashback definito per utilizzare una tabella di cronologia blockchain.

Ideali per audit trail integrato o casi d'uso delle scritture contabili, è possibile utilizzare queste funzionalità per libri contabili finanziari, cronologia dei pagamenti, tracciamento regolamentato della conformità, registri legali ed eventuali dati che rappresentano gli asset in cui manomissioni o eliminazioni possono causare significative conseguenze legali, finanziarie o inerenti la reputazione.



Tipo di dati booleani

Oracle Database ora supporta il tipo di dati booleano conforme allo standard ISO SQL. Ciò consente di memorizzare i valori True e False nelle tabelle e di utilizzare espressioni booleane nei comandi SQL. Il tipo di dati booleano standardizza la memorizzazione dei valori Sì e No e semplifica la migrazione a Oracle Database.



Programmazione e pipeline asincrone dei driver di database

Con Oracle Database 23c, la funzione Pipelining consente alle applicazioni .NET, Java e C/C++ di inviare più richieste al database senza attendere la risposta dal server. Oracle Database raccoglie ed elabora le richieste una per una, consentendo alle applicazioni client di continuare a lavorare fino alla notifica del completamento delle richieste. Questi miglioramenti offrono un'esperienza utente migliore, una migliore reattività delle applicazioni basata sui dati, una scalabilità end-to-end, la prevenzione dei colli di bottiglia e un utilizzo efficiente delle risorse lato server e client.

Affinché la richiesta del client venga restituita immediatamente, Oracle Database Pipelining ha bisogno di un'API asincrona o reattiva nei driver .NET, Java e C/C++. Questi meccanismi possono essere utilizzati in Oracle Database, con o senza Database Pipelining.

Per Java, Oracle Database 23c fornisce le estensioni reattive in Java Database Connectivity (JDBC), Universal Connection Pool (UCP) e l'Oracle R2DBC Driver. Supporta anche i thread virtuali Java nel driver (Project Loom) e le librerie Reactive Streams, come Reactor, RxJava, Akka Streams, Vert.x e altre ancora.



DB_DEVELOPER_ROLE

Oracle Database 23c include il nuovo ruolo DB_DEVELOPER_ROLE, che fornisce a uno sviluppatore di applicazioni tutti i privilegi necessari per progettare, implementare, eseguire il debug e distribuire le applicazioni sui database Oracle. Utilizzando questo ruolo, gli amministratori non devono più indovinare quali privilegi possono essere necessari per lo sviluppo delle applicazioni.





Join diretti per comandi UPDATE e DELETE

Oracle Database ora consente di unire la tabella di destinazione nei comandi UPDATE e DELETE ad altre tabelle utilizzando la clausola FROM. Queste altre tabelle possono limitare le righe modificate o essere l'origine di nuovi valori. I join diretti semplificano la scrittura di SQL per modificare ed eliminare i dati.



Miglioramenti a Fast Ingest

Abbiamo migliorato Memoptimized Rowstore Fast Ingest con supporto per il partizionamento, tabelle compresse, flush rapido tramite scritture dirette e supporto diretto del column store in memoria. Questi miglioramenti semplificano l'integrazione della funzione Fast Ingest in più situazioni in cui è richiesta l'inserimento rapido dei dati. Ora Oracle Database offre un supporto migliore per le applicazioni che richiedono funzionalità di inserimento rapido dei dati. I dati possono essere inseriti ed elaborati nello stesso database. Ciò riduce il bisogno di ambienti di caricamento speciali e riduce la complessità e la ridondanza dei dati.



Grafana observability

Oracle continua a espandere il supporto cloud native e Kubernetes con il nuovo Observability Exporter per Oracle Database, che consente ai clienti di esportare facilmente le metriche di database e applicazioni in formato Prometheus standard e di creare facilmente dashboard Grafana per monitorare le performance dei propri database e delle proprie applicazioni Oracle.



Alias di colonna GROUP BY

Ora puoi utilizzare l'alias di colonna o "SELECT" per individuare la posizione dell'elemento nelle clausole GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP e GROUP BY GROUP SETS. Inoltre, la clausola HAVING supporta gli alias di colonna. Questi nuovi miglioramenti di Database 23c semplificano la scrittura delle clausole GROUP BY e HAVING, rendendo le query SQL molto più leggibili e gestibili e fornendo al contempo una migliore portabilità del codice SQL.



SE [NON] ESISTE

La creazione, la modifica e l'eliminazione di oggetti DDL in Oracle Database ora supportano i modificatori di sintassi IF EXISTS e IF NOT EXISTS. Ciò consente di controllare se un errore deve essere generato quando un determinato oggetto esiste o non esiste, semplificando la gestione degli errori negli script e nelle applicazioni.



Aggregazioni dei tipi di dati INTERVAL

Oracle Database 23c aiuta gli sviluppatori a calcolare i totali e le medie rispetto ai valori INTERVAL. Con questo miglioramento, ora puoi passare i tipi di dati INTERVAL alle funzioni di aggregazione e analitica SUM e AVG.



Procedure archiviate JavaScript

Le chiamate dei moduli del motore multilingue (MLE) consentono agli sviluppatori di richiamare le funzioni JavaScript memorizzate nei moduli da SQL e PL/SQL. Specifiche di chiamata scritte nel collegamento PL/SQL JavaScript alle unità di codice PL/SQL. Questa funzione consente agli sviluppatori di utilizzare funzioni JavaScript ovunque vengano chiamate funzioni PL/SQL.



Tipo di dati binari JSON

Il tipo di dati JSON è un formato JSON binario ottimizzato per Oracle denominato OSON. È progettato per garantire performance DML e di query più rapide nel database e nei client del database dalla release 21c in poi.



Visualizzazioni di JSON Relational Duality

JSON Relational Duality, un'innovazione introdotta in Oracle Database 23c, unifica i modelli di dati relazionali e dei documenti per offrire il meglio di entrambi i mondi. Gli sviluppatori possono creare applicazioni in paradigmi relazionali o JSON con una singola fonte di dati affidabili e trarre vantaggio dai punti di forza di entrambi i modelli. I dati vengono conservati una volta, ma possono essere consultati, scritti e modificati con entrambi gli approcci. Gli sviluppatori beneficiano di transazioni conformi ad ACID e di controlli di concorrenza, il che significa che non devono più accettare compromessi tra complesse mappature relazionali a oggetti o problemi di incoerenza dei dati.



JSON Schema

Oracle Database supporta JSON per memorizzare ed elaborare dati schema-flexible. Con Oracle Database 23c, Oracle Database ora permette a JSON Schema di convalidare la struttura e i valori dei dati JSON. L'operatore SQL IS JSON è stato migliorato per accettare uno schema JSON, e sono state aggiunte varie funzioni PL/SQL per convalidare JSON e descrivere oggetti di database come tabelle, visualizzazioni e tipi come documenti JSON Schema.

I dati JSON sono, di default, senza schema, fornendo così flessibilità. Tuttavia, potresti voler assicurarti che i dati JSON abbiano una struttura e una digitazione particolari, cosa che puoi fare tramite la convalida del JSON Schema standard del settore.

Contribuisci al JSON Schema
Oracle contribuisce attivamente al JSON Schema, uno sforzo open source volto a standardizzare un linguaggio dichiarativo basato su JSON che ti permette di annotare e convalidare i documenti JSON. Attualmente è in fase "Richiesta di Commenti" (RFC, request for comments).



API Kafka

Oracle Database 23c offre una compatibilità ancora più precisa per le applicazioni Apache Kafka con Oracle Database. Questa nuova funzione semplifica la migrazione delle applicazioni Java Kafka alle code degli eventi transazionali (TxEventQ). Le API Java Kafka ora possono connettersi al server Oracle Database e utilizzare TxEventQ come piattaforma di messaggistica.

Gli sviluppatori possono eseguire facilmente la migrazione di un'applicazione Java esistente che utilizza Kafka in Oracle Database tramite il thin driver JDBC. Inoltre, con la funzione di libreria lato client di Oracle Database 23c, le applicazioni Kafka ora possono connettersi a Oracle Database anziché a un cluster Kafka e utilizzare in modo trasparente la piattaforma di messaggistica di TxEventQ.



Prenotazioni valori colonna senza blocco

Le prenotazioni senza blocco consentono di continuare le transazioni concorrenti senza essere bloccati dalle righe con aggiornamento sostanziali. Le prenotazioni senza blocco vengono tenute nelle righe invece di bloccarle. Verifica se gli aggiornamenti possono avere esito positivo e proteggere gli aggiornamenti fino a quando non viene eseguito il commit della transazione. Le prenotazioni senza blocco migliorano l'esperienza utente e la concorrenza nelle transazioni.



API compatibile con MongoDB

Con Oracle Database API for MongoDB, gli sviluppatori possono continuare a utilizzare gli strumenti e i driver di MongoDB connessi a un Oracle Database e allo stesso tempo avere accesso alle funzionalità multi-modello e al database self-driving di Oracle. I clienti possono eseguire carichi di lavoro MongoDB su Oracle Cloud Infrastructure (OCI). Spesso non è necessaria alcuna modifica (o ne sono necessarie ben poche) alle applicazioni MongoDB esistenti: è sufficiente modificare la stringa di connessione.

Oracle Database API for MongoDB fa parte di Oracle REST Data Services standard. È preconfigurato e completamente gestito come parte di Oracle Autonomous Database.



Grafici delle proprietà operative

Oracle Database offre supporto nativo per le strutture di dati del grafico delle proprietà e le query del grafico. Se stai cercando la flessibilità di creare grafici insieme a dati transazionali, JSON, spaziali e altri tipi di dati, abbiamo ciò che fa per te. Gli sviluppatori ora possono creare facilmente applicazioni grafiche con SQL utilizzando gli strumenti e i framework di sviluppo SQL esistenti.



Supporto del costruttore JSON PL/SQL per i tipi aggregati

Il costruttore JSON PL/SQL è stato migliorato per accettare un'istanza da un tipo di aggregazione PL/SQL corrispondente, restituendo un oggetto JSON o un tipo di array popolato con i dati del tipo di aggregazione.

L'operatore JSON_VALUE PL/SQL è stato migliorato affinché la clausola di ritorno possa accettare un nome tipo che definisce il tipo di istanza che l'operatore deve restituire. Il supporto del costruttore JSON per i tipi di dati aggregati semplifica l'interscambio di dati tra le applicazioni PL/SQL e i linguaggi che supportano JSON.



Clausola RETURNING INTO

La clausola RETURNING INTO per i comandi INSERT, UPDATE e DELETE è stata migliorata per riportare i valori vecchi e nuovi interessati dal rispettivo comando. Ciò permette agli sviluppatori di utilizzare la stessa logica per ciascuno di questi tipi DML per ottenere I valori prima e dopo l'esecuzione del comando. I valori vecchi e nuovi sono validi solo per i comandi UPDATE. I comandi INSERT non riportano i valori precedenti e i comandi DELETE non riportano i valori nuovi.

La possibilità di ottenere valori vecchi e nuovi interessati dai comandi INSERT, UPDATE e DELETE come parte dell'esecuzione del comando SQL offre agli sviluppatori un approccio uniforme alla lettura di questi valori e riduce la quantità di lavoro che il database deve effettuare.



Privilegi di schema

Oracle Database ora supporta i privilegi di schema oltre ai privilegi di oggetti, sistema e amministrativi esistenti. Questa funzione migliora la sicurezza semplificando l'autorizzazione per gli oggetti di database per implementare meglio il principio del privilegio minimo ed evitare incertezze su chi dovrebbe avere accesso a cosa.



SELECT senza clausola FROM

Ora è possibile eseguire query di sola espressione SELECT senza una clausola FROM. Questa nuova funzione migliora la portabilità del codice SQL e la facilità d'uso per gli sviluppatori.



Macro SQL

Creare macro SQL per evidenziare espressioni e comandi SQL comuni in costrutti riutilizzabili e con parametri che possono essere utilizzati in altri comandi SQL. Le macro SQL possono essere espressioni scalari utilizzate in genere nelle liste SELECT nonché nelle clausole WHERE, GROUP BY e HAVING. Le macro SQL possono essere utilizzate anche per incapsulare calcoli e logica di business oppure possono essere espressioni di tabella, in genere utilizzate in una clausola FROM. Rispetto ai costrutti PL/SQL, le macro SQL possono migliorare le prestazioni. Le macro SQL aumentano la produttività degli sviluppatori, semplificano lo sviluppo collaborativo e migliorano la qualità del codice.



SQL Analysis Report

Questa settimana stiamo puntando i riflettori su SQL Analysis Report, una funzione facile da usare che aiuta gli sviluppatori a scrivere comandi SQL migliori. SQL Analysis Report segnala problemi comuni nei comandi SQL, in particolare quelli che possono portare a performance SQL scadenti. È disponibile in DBMS_XPLAN e SQL Monitor.



SQL Firewall

Utilizza SQL Firewall per rilevare anomalie e prevenire gli attacchi SQL injection. SQL Firewall esamina tutti gli SQL, incluse le informazioni contestuali sulla sessione, come l'indirizzo IP e l'utente del sistema operativo. Incorporato nel kernel del database, SQL Firewall registra e (se abilitato) blocca l'SQL non autorizzato, garantendo di non essere aggirato. Applicando una lista di inclusione di SQL e contesti di sessioni approvate, SQL Firewall può prevenire molti attacchi zero-day e ridurre il rischio di furto o abuso di credenziali.



Table Value Constructor

Il motore Oracle Database SQL ora supporta una clausola VALUES per molti tipi di comandi. Questo ti permette di materializzare righe di dati in tempo reale specificandole usando la nuova sintassi e senza fare affidamento su tabelle esistenti. Oracle Database 23c supporta la clausola VALUES per i comandi SELECT, INSERT e MERGE. L'introduzione della nuova clausola VALUES permette agli sviluppatori di scrivere meno codice per i comandi SQL ad hoc, portando così a una migliore leggibilità che richiede meno sforzo.



Annotazioni sull'utilizzo

Le annotazioni consentono di memorizzare e recuperare i metadati sugli oggetti di database. Si tratta di campi di testo in formato libero che le applicazioni possono utilizzare per personalizzare la logica di business o le interfacce utente. Le annotazioni sono coppie nome-valore o semplicemente un nome. Ti aiutano a utilizzare gli oggetti di database allo stesso modo in tutte le applicazioni, semplificando lo sviluppo e migliorando la qualità dei dati.



Usage Domains

Gli Usage Domains (a volte denominati domini SQL o domini di utilizzo delle applicazioni) sono dictionary object di livello elevato che fungono da piccole modifiche e documentano centralmente l'uso dei dati previsto per le applicazioni. Gli Usage Domains possono essere utilizzati per definire l'uso dei dati e standardizzare le operazioni per incapsulare un set di regole di controllo, visualizzare le proprietà, ordinare le regole e altre proprietà di utilizzo, senza avere bisogno di metadati a livello di applicazione.

Gli Usage Domains per una o più colonne di una tabella non modificano il tipo di dati alla base e possono pertanto essere aggiunti anche ai dati esistenti senza interrompere le applicazioni o causare problemi di portabilità.