Database 23c

Oracle Database 23c oferă cea mai completă și simplă bază de date convergentă pentru dezvoltatorii care doresc să creeze aplicații noi pentru microservicii, grafice, documente și aplicații relaționale.

În fiecare săptămână, vom împărtăși o nouă funcţionalitate din Oracle Database 23c cu exemple, pentru a vă iniția cât mai rapid. Salvați această pagină și reveniți în fiecare săptămână pentru a vedea noile funcţionalități evidențiate.

Evidenţiere funcționalități

Sărbători fericite!

Pe măsură ce încheiem anul 2023, iată o recapitulare a noilor funcționalități din Oracle Database 23c pe care le-am evidențiat pe parcursul anului. Dacă nu ați avut încă ocazia să încercați cea mai recentă versiune Oracle Database – mai ales ca dezvoltator – verificați diferitele opțiuni aici sau la oracle.com/database/free.

Tabele blockchain

Tabelele blockchain și imuabile, disponibile de la lansarea Oracle Database 19c, utilizează metode cripto-securizate pentru a susține protejarea datelor împotriva modificării sau ștergerii de către hackeri externi și persoane corupte sau compromise din interior. Acestea includ restricții de inserare (insert-only) care împiedică actualizarea sau stergerea (chiar și de către DBA), lanțuri hash criptografice pentru a permite verificarea, digesturi de tabele semnate pentru a detecta orice derulare la scară largă și semnarea de către utilizatorul final a rândurilor inserate cu ajutorul cheilor lor private. Oracle Database 23c introduce multe îmbunătăţiri, inclusiv suport pentru replicarea logică, din Oracle GoldenGate, şi upgradări fără întrerupere, cu ajutorul Active Data Guard, suport pentru tranzacţiile distribuite care implică tabele blockchain, plasare în masă eficientă pe partiţii pentru rândurile expirate şi optimizări de performanţă pentru inserări/confirmări.

Această versiune introduce, de asemenea, posibilitatea de a adăuga/scoate coloane fără a afecta lanțurile hash criptografice, lanțuri specifice utilizatorului și digesturi de tabel pentru rândurile filtrate, capacitatea de semnare delegată și contrasemnarea bazei de date. Totodată, extinde gestionarea cripto-securizată a datelor la tabelele obișnuite, permițând auditarea modificărilor istorice la un tabel care nu folosește tehnologia blockchain prin intermediul arhivei Flashback definită pentru a utiliza und tabel istoric blockchain.

Fiind excelente pentru cazurile de utilizare a traseului de audit integrat sau a jurnalului, aceste capacități pot fi utilizate pentru registre financiare, istoricul plăților, urmărirea conformității reglementate, jurnale juridice și orice date care reprezintă resurse în cazul în care manipularea sau ștergerea acestora ar putea avea consecințe semnificative din punct de vedere juridic, reputațional sau financiar.



Tip de date boolean

Începând de acum, Oracle Database acceptă tipul de date boolean, conform standardului ISO SQL. Acest lucru vă permite să stocați valori True (adevărate) și False (false) în tabele și să utilizați expresii booleene în instrucțiuni SQL. Tipul de date boolean standardizează spaţiul de stocare pentru valorile Yes şi No şi facilitează migrarea la Oracle Database.



Programarea asincronă a driverului de bază de date și pipelining

Cu Oracle Database 23c, funcționalitatea Pipelining permite aplicațiilor .NET, Java și C/C++ să trimită mai multe cereri către baza de date fără a aștepta răspunsul de la server. Oracle Database plasează aceste cereri în coadă și le procesează una câte una, permițând aplicațiilor client să continue să lucreze până la notificarea finalizării cererilor. Aceste îmbunătățiri oferă o experiență mai plăcută pentru utilizatori, o mai bună capacitate de reacție a aplicațiilor bazate pe date, o scalabilitate de la un capăt la altul, evitarea blocajelor de performanță și o utilizare eficientă a resurselor pe partea serverului și a clientului.

Pentru ca solicitarea clientului să fie returnată imediat, Oracle Database Pipelining necesită o API asincronă sau reactivă în driverele .NET, Java și C/C++. Aceste mecanisme pot fi utilizate pentru Oracle Database, cu sau fără Database Pipelining.

Pentru Java, Oracle Database 23c oferă extensiile reactive în Java Database Connectivity (JDBC), Universal Connection Pool (UCP) și Oracle R2DBC Driver. De asemenea, este compatibil cu firele virtuale Java din driver (Project Loom), precum și cu bibliotecile Reactive Streams, cum ar fi Reactor, RxJava, Akka Streams, Vert.x și altele.



DB_DEVELOPER_ROLE

Oracle Database 23c include noul rol DB_DEVELOPER_ROLE, care oferă unui dezvoltator de aplicaţii toate privilegiile necesare pentru a proiecta, implementa și remedia aplicaţii în bazele de date Oracle. Prin utilizarea acestui rol, administratorii nu vor mai fi nevoiți să ghicească ce privilegii pot fi necesare pentru dezvoltarea aplicației.





Join-uri directe pentru instrucţiunile UPDATE şi DELETE

Oracle Database vă permite acum să efectuați join între tabelul țintă în instrucţiunile UPDATE și DELETE și alte tabele utilizând clauza FROM. Aceste alte tabele pot limita rândurile modificate sau pot fi sursa de valori noi. Join-urile directe facilitează scrierea SQL pentru modificarea şi ştergerea datelor.



Îmbunătăţiri Fast Ingest

Am adăugat îmbunătățiri la Memoptimized Rowstore Fast Ingest cu suport pentru partiționare, tabele comprimate, „fast flush” folosind scrieri directe și suport pentru popularea directă a depozitului de coloane în memorie. Aceste îmbunătățiri facilitează încorporarea funcției Fast Ingest în mai multe situații în care este necesar un consum de date rapid. Acum, Oracle Database oferă un suport mai bun pentru aplicațiile care necesită capacități rapide de consum de date. Datele pot fi consumate și apoi procesate, în aceeași bază de date. Acest lucru reduce necesitatea unor medii de încărcare speciale și, prin urmare, reduce complexitatea și redundanța datelor.



Observabilitatea Grafana

Oracle continuă să își extindă suportul nativ în cloud și Kubernetes cu noul Observability Exporter pentru Oracle Database, care permite clienților să exporte cu ușurință metricele bazelor de date și ale aplicațiilor în formatul Prometheus, standard în domeniu, și să creeze fără probleme dashboard-uri Grafana pentru a monitoriza performanța bazelor de date și a aplicațiilor lor Oracle.



Alias de coloană GROUP BY

Acum puteți utiliza aliasul de coloană sau poziția elementului SELECT în clauzele GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP și GROUP BY GROUPING SETS. În plus, clauza HAVING acceptă aliasuri de coloane. Aceste îmbunătățiri noi ale bazei de date 23c facilitează scrierea clauzelor GROUP BY și HAVING, ceea ce face ca interogările SQL să fie mult mai ușor de citit și de întreținut, oferind în același timp o mai bună portabilitate a codului SQL.



IF [NOT] EXISTS

Crearea, modificarea şi ştergerea obiectelor DDL în Oracle Database acceptă acum modificatorii de sintaxă IF EXISTS şi IF NOT EXISTS. Acest lucru vă permite să controlaţi dacă o eroare trebuie să fie generată în cazul în care un anumit obiect există sau nu există, simplificând gestionarea erorilor în script-uri și în aplicații.



Agregări de tipuri de date INTERVAL

Oracle Database 23c permite dezvoltatorilor să calculeze mai ușor totalurile și mediile pe valori INTERVAL. Datorită acestei îmbunătățiri, acum puteți trece tipurile de date INTERVAL la funcțiile de agregare și analiză SUM și AVG.



Proceduri stocate JavaScript

Apelurile de module ale motorului multilingv (MLE) permit dezvoltatorilor să invoce funcții JavaScript stocate în module din SQL și PL/SQL. Specificațiile apelurilor scrise în PL/SQL leagă JavaScript de unitățile de cod PL/SQL. Această caracteristică permite dezvoltatorilor să utilizeze funcționalitățile JavaScript oriunde sunt apelate funcționalitățile PL/SQL.



Tipul de date binare JSON

Tipul de date JSON este un format binar JSON optimizat pentru Oracle, denumit OSON. Este conceput pentru o performanță mai rapidă a interogărilor și DML în baza de date și în clienții bazei de date de la versiunea 21c încoace.



Vizualizare JSON Relational Duality

JSON Relational Duality, o inovație în Oracle Database 23c, unește modelele de date relaționale și de documente pentru a oferi ce este mai bun din ambele lumi. Dezvoltatorii pot crea aplicații fie în paradigme relaționale, fie în paradigme JSON, cu o sursă de informaţii unică, și pot beneficia de punctele forte ale ambelor modele. Datele sunt stocate o singură dată, dar pot fi accesate, scrise şi modificate cu ambele abordări. Dezvoltatorii beneficiază de tranzacții conforme cu ACID și controale de concurență, ceea ce înseamnă că nu mai trebuie să facă compromisuri între mapări complexe obiect-relaționale sau probleme de inconsistență a datelor.



JSON Schema

Oracle Database suportă JSON pentru a stoca și procesa date flexibile din punct de vedere al schemei. Odată cu Oracle Database 23c, Oracle Database suportă JSON Schema pentru a valida structura și valorile datelor JSON. Operatorul SQL IS JSON a fost îmbunătățit astfel încât să accepte o schemă JSON. În plus, diverse funcții PL/SQL au fost adăugate pentru a valida JSON și pentru a descrie obiecte ale bazei de date, cum ar fi tabelele, vizualizările și tipurile sub formă de documente JSON Schema.

În mod prestabilit, datele JSON sunt lipsite de schemă, oferind flexibilitate. Cu toate acestea, probabil că doriți să vă asigurați că datele JSON au o anumită structură și o anumită tipizare, ceea ce se poate face prin intermediul validării JSON Schema standard din industrie.

Contribuție la JSON Schema
Oracle contribuie în mod activ la JSON Schema, un efort open source de standardizare a unui limbaj declarativ bazat pe JSON care vă permite să adnotați și să validați documente JSON. În prezent, se află în faza Request for Comments (RFC).



API-uri Kafka

Oracle Database 23c oferă o compatibilitate și mai rafinată pentru aplicațiile Apache Kafka cu Oracle Database. Această nouă caracteristică permite o migrare ușoară a aplicațiilor Kafka Java către cozile de evenimente tranzacționale (TxEventQ). Acum, API-urile Java Kafka se pot conecta la serverul Oracle Database și pot utiliza TxEventQ ca platformă de mesagerie.

Dezvoltatorii au posibilitatea de a migra cu ușurință o aplicație Java existentă care utilizează Kafka către Oracle Database folosind driverul subțire JDBC. Iar cu funcţionalitatea de bibliotecă de pe calculatorul client din Oracle Database 23c, aplicaţiile Kafka se pot conecta acum la Oracle Database în locul unui cluster Kafka şi pot utiliza platforma de mesagerie TxEventQ într-un mod transparent.



Rezervări de valori de coloane fără blocare

Rezervele fără blocare permit tranzacțiilor concurente să continue fără a fi blocate la actualizările rândurilor des actualizate. Rezervările fără blocare sunt păstrate pe rânduri în loc să fie blocate. Verifică dacă actualizările pot fi efectuate cu succes și amână actualizările până la momentul confirmării tranzacției. Rezervările fără blocare îmbunătățesc experiența utilizatorului și concurența în cadrul tranzacțiilor.



API compatibil cu MongoDB

Folosind Oracle Database API pentru MongoDB, dezvoltatorii pot continua să utilizeze instrumentele și driverele MongoDB conectate la o bază de date Oracle, obținând în același timp acces la capacitățile multimodel ale Oracle și la baza de date autonomă. Clienții pot rula sarcini de lucru MongoDB pe Oracle Cloud Infrastructure (OCI). Adesea, aplicațiile MongoDB existente necesită doar câteva modificări sau chiar niciuna – trebuie doar să modificați șirul de conectare.

API-ul Oracle Database pentru MongoDB face parte din Oracle REST Data Services standard. Acesta este preconfigurat și complet gestionat ca parte a Oracle Autonomous Database.



Grafice de proprietăţi operaţionale

Oracle Database oferă suport nativ pentru structurile de date grafice de proprietăți și pentru interogările grafice. Dacă vă doriți flexibilitatea de a construi grafice împreună cu date tranzacționale, JSON, spațiale și alte tipuri de date, avem tot ce vă trebuie. Acum, dezvoltatorii pot construi cu ușurință aplicații grafice cu SQL, utilizând instrumentele și cadrele de dezvoltare SQL existente.



Suport pentru constructorul PL/SQL JSON pentru tipurile de agregate

Constructorul PL/SQL JSON a fost îmbunătățit pentru a accepta o instanță a unui tip de agregat PL/SQL corespunzător, returnând un obiect JSON sau un tip de matrice JSON completat cu datele tipului de agregat.

Operatorul PL/SQL JSON_VALUE este îmbunătățit astfel încât clauza sa de returnare să poată accepta un nume de tip care definește tipul instanței pe care operatorul trebuie să o returneze. Suportul constructorului JSON pentru tipurile de date agregate simplifică schimbul de date între aplicațiile PL/SQL și limbajele care acceptă JSON.



Clauza RETURNING INTO

Clauza RETURNING INTO pentru instrucțiunile INSERT, UPDATE și DELETE a fost îmbunătățită pentru a raporta valorile vechi și noi afectate de instrucțiunea respectivă. Acest lucru permite dezvoltatorilor să aplice aceeași logică pentru fiecare dintre aceste tipuri DML pentru a obține valori înainte și după executarea declarației. Valorile vechi și noi sunt valabile numai pentru instrucțiunile UPDATE. Instrucțiunile INSERT nu raportează valorile vechi, iar instrucțiunile DELETE nu raportează valorile noi.

Capacitatea de a obține valori vechi și noi afectate de instrucțiunile INSERT, UPDATE și DELETE ca parte a execuției comenzii SQL oferă dezvoltatorilor o abordare uniformă a citirii acestor valori și reduce volumul de muncă pe care trebuie să-l efectueze baza de date.



Privilegii de schemă

Începând de acum, Oracle Database acceptă privilegii de schemă, pe lângă privilegiile de obiect, de sistem și administrative care există deja. Această funcție îmbunătățește securitatea prin simplificarea autorizării obiectelor bazei de date pentru a implementa mai bine principiul privilegiului minim și pentru a evita confuzia cu privire la cine ar trebui să aibă acces la ce.



SELECT fără clauza FROM

Acum puteţi efectua interogări SELECT strict pentru expresii fără o clauză FROM. Această nouă funcţionalitate îmbunătățește portabilitatea codului SQL și ușurința de utilizare pentru dezvoltatori.



Macrocomenzile SQL

Creați macrocomenzi SQL pentru a transforma expresiile și declarațiile SQL obișnuite în constructe reutilizabile, parametrizate, care pot fi utilizate în alte declarații SQL. Macrocomenzile SQL pot fi expresii scalare care sunt utilizate de obicei în listele SELECT, precum şi clauzele WHERE, GROUP BY şi HAVING. De asemenea, macrocomenzile SQL pot fi utilizate pentru a încapsula calculele şi logica de activitate sau pot fi expresii ale tabelelor, de obicei utilizate într-o clauză FROM. Comparativ cu constructele PL/SQL, macrocomenzile SQL pot îmbunătăți performanța. Macrocomenzile SQL cresc productivitatea dezvoltatorilor, simplifică dezvoltarea interactivă și îmbunătățesc calitatea codului.



SQL Analysis Report

Săptămâna aceasta ne îndreptăm atenția asupra SQL Analysis Report, o funcție ușor de utilizat care sprijină dezvoltatorii în scrierea declarațiilor SQL. SQL Analysis Report raportează problemele comune ale instrucțiunilor SQL, în special cele care pot duce la performanțe SQL slabe. Este disponibil în DBMS_XPLAN și SQL Monitor.



SQL Firewall

Utilizați SQL Firewall pentru a detecta anomaliile și a preveni atacurile prin injecție SQL. SQL Firewall examinează întregul SQL, inclusiv informațiile din contextul sesiunii, cum ar fi adresa IP și utilizatorul sistemului de operare. Integrat în nucleul bazei de date, SQL Firewall înregistrează și (dacă este activat) blochează SQL neautorizat, asigurându-se că nu poate fi ocolit. Prin aplicarea unei liste de SQL autorizate și a contextelor de sesiune aprobate, SQL Firewall poate preveni multe atacuri de tip „zero-day” și reduce riscul de furt sau abuz de credențiale.



Constructor de valori de tabel

Acum, motorul Oracle Database SQL acceptă o clauză VALUES pentru multe tipuri de instrucțiuni. Acest lucru vă permite să materializați rânduri de date din mers, specificându-le cu ajutorul noii sintaxe, fără să depindeți de tabelele existente. Oracle Database 23c acceptă clauza VALUES pentru instrucțiunile SELECT, INSERT și MERGE. Introducerea noii clauze VALUES permite dezvoltatorilor să scrie mai puțin cod în cazul comenzilor SQL ad-hoc, ceea ce duce la o mai bună lizibilitate cu mai puțin efort.



Adnotări de utilizare

Adnotările vă permit să stocați și să preluați metadate despre obiectele bazei de date. Acestea sunt câmpuri de text în format liber pe care le pot utiliza aplicaţiile pentru personalizarea logicii de business sau a interfeţelor. Adnotările pot fi perechi nume-valoare sau pur și simplu un nume. Acestea vă ajută să folosiți obiectele bazei de date în același mod în toate aplicațiile, simplificând dezvoltarea și îmbunătățind calitatea datelor.



Usage Domains

Usage Domains (denumite uneori SQL Domains sau Application Usage Domains) sunt obiecte de dicționar de nivel înalt care acționează ca modificatori de tip ușori și documentează în mod centralizat utilizarea intenționată a datelor pentru aplicații. Usage Domains pot fi folosite pentru a defini utilizarea datelor și pentru a standardiza operațiunile în vederea încapsulării unui set de constrângeri de verificare, a proprietăților de afișare, a regulilor de ordonare și a altor proprietăți de utilizare, fără a fi nevoie de metadate la nivel de aplicație.

Usage Domains pentru una sau mai multe coloane dintr-un tabel nu modifică tipul de date de bază și, prin urmare, pot fi adăugate și la datele existente fără a întrerupe aplicațiile sau a crea probleme de portabilitate.