Database 23c

Oracle Database 23c biedt de compleetste en eenvoudigste geconvergeerde database voor ontwikkelaars die nieuwe apps voor microservices, grafieken, documenten en relaties willen bouwen.

We tonen elke week een nieuwe functie van Oracle Database 23c met voorbeelden, zodat u snel aan de slag kunt. Bewaar deze pagina en kijk elke week of er nieuwe uitgelichte functies te zien zijn.

Uitgelichte functie

Fijne feestdagen!

Nu we 2023 afsluiten, volgt hier een samenvatting van de nieuwe functies in Oracle Database 23c die we het hele jaar hebben belicht. Als u nog geen kans had om onze nieuwste Oracle Database release uit te proberen, vooral als u een ontwikkelaar bent, bekijk dan de verschillende opties hier of op oracle.com/database/free.

Blockchain-tabellen

Blockchain en onveranderbare tabellen, beschikbaar sinds de release van Oracle Database 19c, gebruiken encryptie om data te beschermen tegen externe hackers en malafide of gestoorde insiders die data willen manipuleren of wissen. Dit omvat alleen-invoegen-beperkingen, die updates of verwijdering verhinderen (zelfs door DBA's), cryptografische hashketens om verificatie te realiseren, ondertekende tabeloverzichten om grote rollbacks te detecteren en ondertekening door eindgebruikers via hun privésleutels nadat ze rijen hebben toegevoegd. Oracle Database 23c introduceert veel verbeteringen, waaronder ondersteuning voor logische replicatie via Oracle GoldenGate en lopende upgrades met Active Data Guard, ondersteuning voor gedistribueerde transacties met blockchain-tabellen, efficiënte partitie-gebaseerde massale verwijdering van vervallen rijen en prestatieverbetering bij het invoegen/vastleggen.

Deze uitgave introduceert ook de mogelijkheid om kolommen te plaatsen/verwijderen zonder invloed op cryptografische hashketens, gebruikersspecifieke ketens en tabeloverzichten voor gefilterde rijen, functie voor gedelegeerde ondertekening en ondertekening van de database-teller. Ook wordt de encryptie van het databeheer uitgebreid naar reguliere tabellen door een audit van historische wijzigingen in een niet-blockchain-tabel te activeren via het Flashback-archief, gedefinieerd om een blockchain-historietabel te gebruiken.

Deze functies zijn ideaal voor ingebouwde audit-trails of het journaliseren, en kunnen dienen voor financiële grootboeken, betalingshistorie, gereguleerde compliance-tracering, juridische logs en data die activa vertegenwoordigen, waarbij manipulatie of verwijdering grote juridische of financiële gevolgen, dan wel reputatieschade kan veroorzaken.



Booleaans datatype

Oracle Database ondersteunt nu het Booleaanse datatype conform de ISO SQL-standaard. Hierdoor kunt u True/False-waarden in tabellen opslaan en Booleaanse uitdrukkingen gebruiken in SQL-opdrachten. Het Booleaanse datatype standaardiseert de opslag van Yes/No-waarden en vergemakkelijkt de migratie naar Oracle Database.



Asynchrone programmering en pipelining van database-driver

Met Oracle Database 23c kunnen .NET-, Java- en C/C++-applicaties dankzij de pipelining-functie meerdere aanvragen naar de database sturen zonder de respons van de server af te wachten. Deze aanvragen worden in Oracle Database beurtelings in de wachtrij gezet en verwerkt, zodat de client-applicaties blijven werken totdat gemeld wordt dat de aanvragen zijn voltooid. Deze verbeteringen bieden een betere eindgebruikerservaring, een sterkere datagestuurde respons van applicaties en een algehele schaalbaarheid; ze nemen functionele knelpunten weg en maken efficiënt gebruik van resources aan de kant van de server en de client.

Oracle Database Pipelining vereist een asynchrone of reactieve API in .NET of Java en C/C++-drivers om de client-aanvraag direct te retourneren. Deze mechanismen kunnen worden gebruikt bij Oracle Database, met of zonder Database Pipelining.

Oracle Database 23c biedt voor Java de Reactive Extensions in Java Database Connectivity (JDBC), Universal Connection Pool (UCP) en de Oracle R2DBC Driver. Het ondersteunt ook de Java virtuele threads in de driver (Project Loom) en de Reactive Streams bibliotheken, zoals Reactor, RxJava, Akka Streams, Vert.x etc.



DB_DEVELOPER_ROLE

Oracle Database 23c bevat de nieuwe rol DB_DEVELOPER_ROLE, die een applicatie-ontwikkelaar alle benodigde rechten geeft om applicaties te ontwerpen, implementeren, debuggen en uit te rollen in Oracle databases. Met deze rol hoeven beheerders niet meer te raden welke rechten nodig zijn om applicaties te ontwikkelen.





Directe joins voor UPDATE- en DELETE-opdrachten

In Oracle Database kunt u de doeltabel in UPDATE- en DELETE-opdrachten voortaan aan andere tabellen koppelen door de FROM-clausule te gebruiken. Deze andere tabellen kunnen de gewijzigde rijen beperken of de bron van nieuwe waarden zijn. Met directe joins kunt u eenvoudiger SQL schrijven om data te veranderen en wijzigen.



Fast Ingest, verbeteringen

We hebben verbeteringen toegevoegd aan Memoptimized Rowstore Fast Ingest met ondersteuning voor partitionering, gecomprimeerde tabellen, fast flush met directe schrijfbewerkingen en directe ondersteuning voor kolomopslag. Dankzij deze verbeteringen is de Fast Ingest functie eenvoudiger te gebruiken als een snelle data-invoer vereist is. Oracle Database biedt nu meer ondersteuning aan applicaties die mogelijkheden voor een snelle data-invoer nodig hebben. Data kunnen worden opgenomen en daarna alle in dezelfde database worden verwerkt. Hierdoor is er minder behoefte aan speciale laadomgevingen, waardoor de complexiteit en data-redundantie afnemen.



Grafana, waarneembaarheid

Oracle blijft zijn cloud-native en Kubernetes ondersteuning uitbreiden met onze nieuwe Observability Exporter voor Oracle Database, waarmee klanten eenvoudig database- en app-metrics in de standaard Prometheus indeling kunnen exporteren en gemakkelijk Grafana dashboards kunnen maken om de prestaties van hun Oracle databases en apps te monitoren.



GROUP BY kolom-alias

U kunt nu kolom-alias of SELECT itempositie gebruiken in de clausules GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP en GROUP BY GROUPING SETS. De HAVING clausule ondersteunt bovendien ook kolom-aliassen. Deze nieuwe Database 23c verbeteringen maken het gemakkelijker om GROUP BY en HAVING clausules te schrijven, waardoor SQL-query's veel beter te lezen en bij te houden zijn en wat ook de SQL-code beter overdraagbaar maakt.



IF [NOT] EXISTS

Het maken, wijzigen en verwijderen van DDL-objecten in Oracle Database ondersteunt nu de syntax-modifiers IF EXISTS en IF NOT EXISTS. Hiermee kunt u bepalen of er een fout moet worden aangemaakt als een bepaald object wel/niet bestaat, wat de afhandeling van fouten in scripts en applicaties vereenvoudigt.



INTERVAL datatype, aggregaties

Met Oracle Database 23c kunnen ontwikkelaars eenvoudiger totalen en gemiddelden van INTERVAL waarden berekenen. Door deze verbetering kunt u INTERVAL datatypen voortaan doorgeven aan de aggregatie- en analysefuncties SUM en AVG.



JavaScript opgeslagen procedures

Met MLE-module-oproepen (meertalige engine) kunnen ontwikkelaars vanuit SQL en PL/SQL JavaScript-functies oproepen die in modules zijn opgeslagen. Oproepspecificaties zijn geschreven in de PL/SQL-koppeling JavaScript naar PL/SQL-code-eenheden Met deze functie kunnen ontwikkelaars JavaScript-functies overal gebruiken waar PL/SQL-functies worden opgeroepen.



JSON binair datatype

Het JSON-datatype is een voor Oracle geoptimaliseerde binaire JSON-indeling, genaamd OSON. Ontworpen voor snellere query- en DML-prestaties in de database en database-clients vanaf release 21c en hoger.



JSON relationele dualiteitsweergave

JSON Relational Duality, een innovatie die is geïntroduceerd in Oracle Database 23c, combineert relationele modellen en document-datamodellen om het beste van twee werelden te bieden. Ontwikkelaars kunnen applicaties bouwen met relationele of JSON-paradigma's met één centrale databron en de pluspunten van beide modellen benutten. Data worden eenmaal bewaard, maar kunnen via beide methoden worden benaderd, geschreven en aangepast. Ontwikkelaars profiteren van ACID-compatibele transacties en concurrency-controles, wat betekent dat ze geen compromissen meer hoeven sluiten tussen complexe objectgerelateerde toewijzingen en problematische inconsistenties in de data.



JSON Schema

Oracle Database ondersteunt JSON voor het opslaan en verwerken van schema-flexibele data. Met Oracle Database 23c biedt Oracle Database voortaan ondersteuning voor JSON Schema om de structuur en waarden van JSON-data te valideren. De SQL operator IS JSON is verbeterd om JSON Schema te accepteren en er zijn diverse PL/SQL-functies toegevoegd om JSON te valideren en database-objecten zoals tabellen, weergaven en typen als JSON Schema documenten te beschrijven.

JSON-data zijn standaard schemaloos en bieden flexibiliteit. Mogelijk wilt u er echter voor zorgen dat JSON-data een bepaalde structuur hebben en typering, wat kan worden gedaan via de gebruikelijke JSON Schema validatie.

Bijdragen aan JSON Schema
Oracle draagt actief bij aan JSON Schema, een opensource initiatief voor het standaardiseren van een JSON-gebaseerde declaratieve taal, waarmee u JSON-documenten annoteert en valideert. Het is momenteel in Request for Comments (RFC).



Kafka-API's

Oracle Database 23c biedt een nog sterkere compatibiliteit voor Apache Kafka-applicaties met Oracle Database. Met deze nieuwe functie kunt u Kafka Java-applicaties eenvoudig naar Transactional Event Queues (TxEventQ) laten migreren. Kafka Java-API's kunnen nu verbinding maken met de Oracle Database server en TxEventQ als berichtenplatform gebruiken.

Ontwikkelaars kunnen een bestaande Java-applicatie die Kafka gebruikt eenvoudig naar Oracle Database verplaatsen via de JDBC Thin Driver. En dankzij de bibliotheek-functie aan de clientzijde van Oracle Database 23c maken Kafka-applicaties voortaan verbinding met Oracle Database (niet met een Kafka-cluster) en kunnen ze het TxEventQ-berichtenplatform op transparante wijze te gebruiken.



Reserveringen zonder vergrendeling voor kolomwaarden

Met ontgrendelde reserveringen kunnen gelijktijdige transacties doorgaan zonder te worden geblokkeerd vanwege updates van intensief bijgewerkte rijen. Ontgrendelde reserveringen worden op de rijen gezet in plaats van ze te vergrendelen. Het systeem verifieert of updates kunnen lukken en stelt updates uit zo lang de transactie nog moet plaatsvinden. Ontgrendelde reserveringen verbeteren de gebruikerservaring en laten transacties gelijktijdig plaatsvinden.



MongoDB-compatibele API

Met de Oracle Database API for MongoDB kunnen ontwikkelaars MongoDB's tools en drivers die zijn verbonden met een Oracle Database blijven gebruiken en tegelijkertijd toegang krijgen tot Oracle's multimodel-opties en zelfsturende database. Klanten kunnen MongoDB-workloads draaien op Oracle Cloud Infrastructure (OCI). Vaak zijn er weinig of geen veranderingen vereist aan bestaande MongoDB-applicaties - u hoeft alleen de verbindingsstring te wijzigen.

De Oracle Database API for MongoDB hoort bij de standaard Oracle REST Data Services. Voorgeconfigureerd en volledig beheerd als onderdeel van Oracle Autonomous Database.



Operationele eigenschappen, grafieken

Oracle Database biedt native ondersteuning aan datastructuren voor eigenschapsgrafieken en aan grafiek-zoekvragen. Als u flexibiliteit wenst om grafieken te maken in combinatie met transactiedata, JSON, Spatial en andere datatypes, bent u bij ons aan het goede adres. Ontwikkelaars kunnen nu eenvoudig grafiekapplicaties met SQL bouwen middels bestaande SQL-ontwikkelprogramma's en frameworks.



PL/SQL JSON constructor, ondersteuning voor aggregatie-typen

De PL/SQL JSON constructor is verbeterd en accepteert een instance van een bijbehorend PL/SQL aggregatie-type, waardoor een JSON-object of array-type ontstaat, dat is gevuld met de geaggregeerde data.

De PL/SQL JSON_VALUE operator is verbeterd, zodat de terugkerende clausule een typenaam kan krijgen, die het type instance definieert dat de operator moet retourneren. De ondersteuning van JSON constructor voor geaggregeerde datatypen stroomlijnt het dataverkeer tussen PL/SQL-applicaties en de talen die JSON ondersteunen.



RETURNING INTO clausule

De RETURNING INTO clausule voor INSERT, UPDATE en DELETE statements is verbeterd om oude en nieuwe waarden te rapporteren die door het betreffende statement worden beïnvloed. Zo kunnen ontwikkelaars dezelfde logica gebruiken voor elk van deze DML-typen om waarden vóór en na uitvoering van het statement te krijgen. Oude en nieuwe waarden zijn alleen geldig voor UPDATE statements. INSERT statements rapporteren geen oude waarden en DELETE statements rapporteren geen nieuwe waarden.

De mogelijkheid om oude en nieuwe waarden te krijgen die worden beïnvloed door INSERT, UPDATE en DELETE statements bij de uitvoering van de SQL-opdracht, biedt ontwikkelaars een uniforme benadering voor het lezen van deze waarden en vermindert de werkdruk op de database.



Schemarechten

Oracle Database ondersteunt voortaan schemarechten in aanvulling op bestaande object-, systeem- en beheerrechten. Deze functie versterkt de beveiliging door de autorisatie voor database-objecten te vereenvoudigen, waardoor het principe van de minste rechten beter kan worden gevolgd en niemand hoeft te raden wie waartoe toegang heeft.



SELECT zonder FROM-clausule

U kunt nu zoekvragen voor alleen SELECT-uitdrukkingen zonder FROM-clausule uitvoeren. Deze nieuwe functie verbetert de overdraagbaarheid van SQL-code en het gebruiksgemak voor ontwikkelaars.



SQL-macro's

Maak SQL-macro's om gebruikelijke SQL-uitdrukkingen en opdrachten om te zetten in herbruikbare, geparametriseerde elementen, die in andere SQL-opdrachten kunnen worden gebruikt. SQL-macro's kunnen scalaire uitdrukkingen zijn, die doorgaans worden gebruikt in SELECT-lijsten, maar ook in WHERE-, GROUP BY- en HAVING-clausules. SQL-macro's kunnen ook dienen om berekeningen en bedrijfsprogrammatuur in te sluiten of het kunnen tabeluitdrukkingen zijn, die doorgaans in een FROM-clausule worden gebruikt. In vergelijking met PL/SQL-constructies kunnen SQL-macro's de prestaties verhogen. SQL-macro's maken ontwikkelaars productiever, vergemakkelijken de samenwerkingsontwikkeling en verhogen de codekwaliteit.



SQL-analyserapport

Deze week belichten we SQL Analysis Report, een gebruiksvriendelijke functie waarmee ontwikkelaars betere SQL-statements schrijven. SQL Analysis Report meldt gebruikelijke problemen met SQL-statements, met name fouten die eventueel slechte SQL-prestaties veroorzaken. Beschikbaar in DBMS_XPLAN en SQL Monitor.



SQL Firewall

Gebruik SQL Firewall om afwijkingen te detecteren en SQL injectie-aanvallen te voorkomen. SQL Firewall onderzoekt alle SQL, inclusief de sessie-contexten, zoals IP-adres en OS-gebruiker. SQL Firewall is ingebed in de database-kernel en logt en blokkeert (na inschakeling) ongeautoriseerde SQL, zodat die niet kan worden omzeild. Door een lijst met toegestane SQL en goedgekeurde sessie-contexten aan te houden, kan SQL Firewall veel zero-day-aanvallen voorkomen en het risico van identiteitsfraude verminderen.



Table Value Constructor

De Oracle Database SQL-engine ondersteunt nu een VALUES clausule voor allerlei statements. Hierdoor kunt u meteen datarijen maken door ze met de nieuwe syntaxis op te geven zonder afhankelijk te zijn van bestaande tabellen. Oracle Database 23c ondersteunt de VALUES clausule voor SELECT, INSERT en MERGE statements. Door introductie van de nieuwe VALUES clausule hoeven ontwikkelaars minder code voor ad-hoc SQL-opdrachten te schrijven, wat de leesbaarheid moeiteloos verbetert.



Aantekeningen bij gebruik

Via deze aantekeningen kunt u metadata over database-objecten opslaan en ophalen. Dit zijn vrije tekstvelden die in applicaties kunnen dienen om bedrijfsprogrammatuur of gebruikersinterfaces aan te passen. Aantekeningen zijn naam-waarde-paren of gewoon namen. Ze helpen u database-objecten in alle applicaties op dezelfde manier te gebruiken, de ontwikkeling te vereenvoudigen en de datakwaliteit te verhogen.



Gebruiksdomeinen

Gebruiksdomeinen (SQL-domeinen of Application Usage Domains) zijn woordenboek-objecten op hoog niveau, die fungeren als lichte type-modificator en het beoogde datagebruik voor applicaties centraal documenteren. Gebruiksdomeinen dienen om het datagebruik te definiëren en bewerkingen te standaardiseren om een set controlebeperkingen, weergave-eigenschappen, sorteerregels en andere gebruikseigenschappen in te kapselen, zonder dat metadata op applicatieniveau zijn vereist.

Gebruiksdomeinen voor één of meer kolommen in een tabel wijzigen het onderliggende datatype niet en kunnen daarom ook worden toegevoegd aan bestaande data zonder applicaties te schaden of de overdraagbaarheid te verstoren.