Database 23ai: 機能のハイライト

Oracle Database 23aiは、データにAIを導入し、アプリケーション開発やミッション・クリティカルなワークロードをAIでシンプルに強化します。その仕組みをご覧ください。

このページでは、Oracle Database 23aiの新機能のご紹介とデモや活用例を毎週共有します。お客様はすぐに本番でお試しいただけます。このページを保存し、毎週チェックして新しい機能を確認しましょう。

Oracle Database 23ai:データを扱うときに必要なAI、開発者のためのAI、使いたいときにすぐ使えるAI機能を備えています(2:33)
Oracle Database 23aiの発表: データにAIを導入

ラリー・エリソンとホアン・ロアイザが、Oracle Database 23aiの背景にある生成AI戦略について語ります。

開発者向けOracle Database 23ai機能のハイライト

開発者を念頭に置いて構築された機能の一部をご紹介します。

AI Vector Searchは、データベース内で直接ビジネス・データを使用して生成AIパイプラインを構築可能にすることで、AIをデータに導入します。使いやすいネイティブなベクトル機能により、開発者は、リレーショナル・データベース処理と類似性検索および検索拡張生成を組み合わせた次世代のAIアプリケーションを構築できます。ビジネス・データ上で直接ベクトル検索を実行することで、データ移動の必要がなくなり、それに伴う複雑さ、コスト、複数のデータベースを管理・統合する課題も解消され、データの一貫性が確保されます。

開発者が知っておくべきその他の機能は次のとおりです。

…その他多数

  • Transparent Application Continuityは、C/C++、Java、.NET、PythonおよびNode.jsアプリケーションを、基盤となるソフトウェア、ハードウェア、通信およびストレージ・レイヤーの停止から保護します。

  • 行ロックを保持している間にトランザクションが長時間コミットまたはロールバックしない場合、他の優先度の高いトランザクションをブロックする可能性があります...

  • DBMS_SEARCHは、Oracle Textのユビキタス検索を実装します。DBMS_SEARCHを使用すると、複数の表やビューに対して単一の索引を簡単に作成できます。

  • Memoptimize Rowstore Fast Ingestに拡張機能が追加されて、パーティション化、圧縮表、直接書込みを使用した高速フラッシュ、およびインメモリ列ストアの直接移入がサポートされるようになりました。

  • Oracle Globally Distributed Databaseは、Oracle Database 23cでRaftレプリケーション機能を導入しました。これにより、ノードまたはデータセンターの停止時にデータ損失なしで、非常に高速(3秒未満)のフェイルオーバーを実現できます。

  • 今週は、開発者が優れたSQL文を記述するのに役立つ、使いやすいSQL分析レポート機能に注目します。

アプリケーションの可用性 - データベース・クライアントのダウンタイムなし

Transparent Application Continuityは、C/C++、Java、.NET、PythonおよびNode.jsアプリケーションを、基盤となるソフトウェア、ハードウェア、通信およびストレージ・レイヤーの停止から保護します。Oracle Real Application Clusters (RAC)、Active Data Guard (ADG)およびAutonomous Database (共有および専用)では、RACクラスタのノードまたはサブセットに障害が発生した場合や、メンテナンスのためにオフラインになった場合でも、Oracle Databaseに引き続きアクセスできます。

Oracle Database 23cでは、例えばセッション状態安定カーソルとも呼ばれるオープン・カーソルなど、バッチ・アプリケーションのサポートを含む多くの新しい機能強化が行われています。

自動トランザクション・ロールバック

行ロックを保持している間にトランザクションが長時間コミットまたはロールバックしない場合、他の優先度の高いトランザクションをブロックする可能性があります。この機能により、アプリケーションがトランザクションに優先順位を割り当てるため、管理者は優先順位ごとにタイムアウトを設定できます。優先順位の低いトランザクションが、設定されたタイムアウトを超えて優先順位の高いトランザクションをブロックした場合、データベースは優先順位の低いトランザクションを自動的にロールバックし、保持している行ロックを解除して、優先順位の高いトランザクションを続行できるようにします。

トランザクションの自動ロールバックは、管理者の負担を軽減すると同時に、優先順位の高いトランザクションのレイテンシ/SLAを維持するのに役立ちます。

Fast Ingestの機能拡張

Memoptimize Rowstore Fast Ingestに機能拡張が追加されて、パーティション化、圧縮された表、直接書込みを使用した高速フラッシュ、およびインメモリー列ストアの直接移入がサポートされるようになりました。これらの機能拡張により、高速収集が必要な状況で、Fast Ingest機能を簡単に組み込むことができます。その結果、Oracle Databaseで高速データ収集機能を必要とするアプリケーションのサポートが強化されました。データは、同じデータベースで収集して処理できます。これにより、特殊なロード環境が不要になるため、複雑さとデータの冗長性が軽減されます。

Globally Distributed DatabaseでのRAFTベースのレプリケーション

Oracle Globally Distributed Databaseは、Oracle Database 23cでRaftレプリケーション機能を導入しました。これにより、ノードまたはデータセンターの停止時にデータ損失なしで、非常に高速(3秒未満)のフェイルオーバーを実現できます。Raftレプリケーションは、コンセンサスベースのコミット・プロトコルを使用し、レプリケーション・ファクタを指定することで宣言的に構成されます。分散データベース内のすべてのシャードは、データのサブセットのリーダーおよびフォロワーとして機能します。これにより、すべてのシャードがアプリケーション・トラフィックを処理するアクティブ/アクティブ/アクティブ対称分散データベース・アーキテクチャが実現します。

これにより、データ損失ゼロによる可用性の向上、管理の簡素化、およびGlobally Distributed Database環境のハードウェア使用率の最適化が可能になります。

SQL分析レポート

今週は、開発者が優れたSQL文を記述するのに役立つ、使いやすいSQL分析レポート機能に注目します。SQL分析レポートでは、SQL文の一般的な問題、特にSQLのパフォーマンスが低下する可能性のある問題が報告されます。この機能はDBMS_XPLANおよびSQL Monitorで使用できます。

  • Oracle Database 19cの発表とともに導入されたブロックチェーンと不変表は、暗号化セキュリティ技術を使用して、外部のハッカーや不正な内部関係者によるデータの改ざんや削除からデータを保護します。

  • Oracle Databaseでは、既存のオブジェクト権限、システム権限および管理権限に加えてスキーマ権限もサポートされるようになりました。

  • SQLファイアウォールを使用すれば、異常を検出し、SQLインジェクション攻撃を防ぐことができます。SQLファイアウォールは、IPアドレスやOSユーザーなどのセッション・コンテキスト情報を含むすべてのSQLを検査します。

  • Oracle Database 23cに、新しいロール「DB_DEVELOPER_ROLE」が追加されました。このロールは、Oracle Databasesでのアプリケーションの設計、実装、デバッグおよびデプロイに必要なすべての権限をアプリケーション開発者に提供します。

ブロックチェーン表

ブロックチェーンと不変表は、Oracle Database 19cのリリース以降利用可能になったもので、暗号化セキュアな方法を使用して、外部のハッカーや不正または侵入を受けた内部関係者によるデータの改ざんや削除からデータを保護します。これには、(DBAであっても)更新や削除を防止する挿入のみの制限、検証を可能にする暗号化ハッシュ・チェーン、大規模なロールバックを検出するための署名付き表ダイジェスト、秘密キーを使用したエンド・ユーザーによる挿入行の署名などが含まれます。Oracle Database 23cでは、Oracle GoldenGateによる論理レプリケーションやActive Data Guardを使用したローリング・アップグレードのサポート、ブロックチェーン表を含む分散トランザクションのサポート、期限切れ行の効率的なパーティションベースの一括削除、挿入およびコミットのパフォーマンス最適化など、多くの機能強化が行われています。

このリリースでは、暗号ハッシュ連鎖に影響を与えることなく列を追加および削除する機能、フィルタリングされた行に対するユーザー固有の連鎖および表ダイジェスト、委任署名機能、データベース・カウンターサインも導入されています。また、ブロックチェーン履歴テーブルを使用するように定義されたFlashbackアーカイブを介して、非ブロックチェーン表に対する履歴変更の監査を可能にすることで、暗号化セキュアなデータ管理を通常の表への拡張も行います。

組み込みの監査証跡やジャーナリングのユース・ケースに最適なこれらの機能は、財務台帳、支払い履歴、規制遵守の追跡、法的ログ、および改ざんや削除が法的、評判、または財務上の重大な結果につながる可能性のある資産を表すあらゆるデータに使用できます。

スキーマ権限

Oracle Databaseでは、既存のオブジェクト権限、システム権限および管理権限に加えてスキーマ権限もサポートされるようになりました。この機能により、データベース・オブジェクトの認可を簡素化して、最小権限の原則をより適切に実装し、誰が何にアクセスできるかを推測する必要がないようにすることで、セキュリティを向上させます。

SQLファイアウォール

SQLファイアウォールを使用すれば、異常を検出し、SQLインジェクション攻撃を防ぐことができます。SQLファイアウォールでは、IPアドレスやOSユーザーなどのセッション・コンテキスト情報を含め、すべてのSQLが調査されます。SQLファイアウォールはデータベース・カーネルに組み込まれており、認可されていないSQLがログに記録され、ブロックされる(有効になっている場合)ため。バイパスできません。SQLおよび承認済セッション・コンテキストの許可リストを適用することで、SQLファイアウォールで多数のゼロデイ攻撃を防止し、資格証明の盗難や不正使用のリスクを軽減できます。

DB_DEVELOPER_ROLE

Oracle Database 23cには、新しいロールDB_DEVELOPER_ROLEが含まれています。このロールは、Oracle Databasesでのアプリケーションの設計、実装、デバッグおよびデプロイに必要なすべての権限をアプリケーション開発者に提供します。このロールを使用することで、管理者はアプリケーション開発に必要な権限を推測する必要がなくなります。

  • Oracle Databaseでは、ISO SQL標準に準拠したブール・データ型がサポートされるようになりました。これにより、True 値と False 値を表に格納し、SQL文ででブール式を使用できるようになります。

  • Oracle Databaseでは、UPDATEおよびDELETE文でFROM句を使用して対象表を他の表に結合できるようになりました。こうした他の表は、変更される行を制限したり、新しい値のソースになることがあります。

  • GROUP BY、GROUP BY CUBE、GROUP BY ROLLUPおよびGROUP BY GROUPING SETS句で、列の別名を使用したり、SELECTで項目の位置を使用できるようになりました。また、HAVING句でも列の別名がサポートされています。

  • Oracle DatabaseのDDLオブジェクトの作成、変更、および削除は、現在、IF EXISTSおよびIF NOT EXISTS構文修飾子をサポートしています。

  • Oracle Database 23cでは、開発者はINTERVAL値で合計および平均を簡単に計算できます。

  • INSERT、UPDATEおよびDELETE文のRETURNING INTO句は、それぞれの文の影響を受ける古い値と新しい値を報告するように拡張されています。

  • FROM句を指定せずに、SELECT式のみの問合せを実行できるようになりました。この新機能により、SQLコードの移植性と使いやすさが向上します。

  • SQLマクロを作成して、一般的なSQL式および文を、他のSQL文で使用できるパラメータ化された再利用可能な構成に分解します。

  • SQL文内のPL/SQLファンクションは、可能な場合は常にSQL式に自動的に変換(トランスパイル)されます。

  • Oracle Database SQLエンジンが、さまざまな文でVALUES句をサポートするようになりました。

  • アノテーションにより、データベース・オブジェクトに関するメタデータの保存および取得が可能になります。これは、アプリケーションがビジネス・ロジックやユーザー・インターフェースをカスタマイズするために使用できる自由形式のテキスト・フィールドです。

  • 使用用途ドメイン(SQLドメインまたはアプリケーション使用用途ドメインとも呼ばれる)は、軽量タイプの修飾子として機能し、アプリケーションが意図するデータ使用用途を一元的に文書化する高レベルのディクショナリ・オブジェクトです。

  • 多数の属性を1行に格納できるため、一部のアプリケーションのアプリケーション設計と実装が簡素化されます。

ブール・データ型

Oracle Databaseでは、ISO SQL標準に準拠したブール・データ型がサポートされるようになりました。これにより、True 値と False 値を表に格納し、SQL文ででブール式を使用できるようになります。ブール・データ型は、YesおよびNo値の格納を標準化し、Oracle Databaseへの移行を容易にします。

UPDATEおよびDELETE文の直接結合

Oracle Databaseでは、UPDATEおよびDELETE文でFROM句を使用して対象表を他の表に結合できるようになりました。こうした他の表は、変更される行を制限したり、新しい値のソースになることがあります。直接結合により、データの変更および削除を行うSQLの記述が容易になります。

GROUP BYでの列の別名

GROUP BY、GROUP BY CUBE、GROUP BY ROLLUPおよびGROUP BY GROUPING SETS句で、列の別名を使用したり、SELECTで項目の位置を使用できるようになりました。また、HAVING句でも列の別名がサポートされています。これらの新しいDatabase 23cの機能拡張により、GROUP BY句とHAVING句の記述が簡単になり、SQL問い合わせがより読みやすくなってメンテナンス性が向上し、SQLコードの移植性が向上します。

IF [NOT] EXISTS

Oracle DatabaseのDDLオブジェクトの作成、変更、および削除は、現在、IF EXISTSおよびIF NOT EXISTS構文修飾子をサポートしています。これにより、指定したオブジェクトが存在する場合、または存在しない場合にエラーを発生させるかどうかを制御できるようになり、スクリプトやアプリケーションでのエラー処理が簡素化されます。

INTERVALデータ型の集計

Oracle Database 23cでは、開発者はINTERVAL値で合計および平均を簡単に計算できます。この機能拡張により、INTERVALデータ型をSUMやAVG集計関数および分析関数に渡すことができるようになりました。

RETURNING INTO句

INSERT、UPDATEおよびDELETE文のRETURNING INTO句は、それぞれの文の影響を受ける古い値と新しい値を報告するように拡張されています。これにより、開発者はこれらのDMLタイプそれぞれに同じロジックを使用して、文の実行前後の値を取得できます。UPDATE文では古い値と新しい値の両方が有効です。INSERT文では古い値は報告されず、DELETE文では新しい値は報告されません。

SQLコマンドの実行の一部として、INSERT、UPDATEおよびDELETE文の影響を受ける古い値と新しい値を取得する機能により、開発者はこれらの値を読み取るために統一されたアプローチを使用でき、データベースで実行する必要がある作業量を減らすことができます。

FROM句なしのSELECT

FROM句を指定せずに、SELECT式のみの問合せを実行できるようになりました。この新機能により、SQLコードの移植性と使いやすさが向上します。

SQLマクロ

SQLマクロを作成して、一般的なSQL式および文を、他のSQL文で使用できるパラメータ化された再利用可能な構成に分解します。SQLマクロは、通常SELECTリストやWHERE句、GROUP BY句、HAVING句で使用されるスカラー式にすることができます。SQLマクロは、計算およびビジネス・ロジックをカプセル化するために使用することも、通常はFROM句で使用される表式にすることもできます。PL/SQL構成と比較して、SQLマクロはパフォーマンスを向上させることができます。SQLマクロは、開発者の生産性を高め、共同開発を簡素化し、コード品質を向上させます。

SQLトランスパイラ

SQL文内のPL/SQLファンクションは、可能な場合は常にSQL式に自動的に変換(トランスパイル)されます。PL/SQLファンクションをSQL文に変換すると、全体的な実行時間が短縮されます。

表値コンストラクタ

Oracle Database SQLエンジンが、さまざまな文でVALUES句をサポートするようになりました。これにより、既存の表に依存することなく、新しい構文を使用してデータ行を即座に実体化できます。Oracle Database 23cでは、SELECT文、INSERT文およびMERGE文でVALUES句がサポートされています。新しいVALUES句が導入されたことで、開発者がアドホックSQLコマンド用に記述するコードが少なくなり、少ない労力で読みやすくなりました。

使用アノテーション

アノテーションにより、データベース・オブジェクトに関するメタデータの保存および取得が可能になります。これは、アプリケーションがビジネス・ロジックやユーザー・インターフェースをカスタマイズするために使用できる自由形式のテキスト・フィールドです。アノテーションは名前と値のペア、または単に名前です。すべてのアプリケーションにわたり、同じ方法でデータベース・オブジェクトを使用し、開発を簡素化し、データ品質を向上させる上で役立ちます。

使用用途ドメイン

使用用途ドメイン(SQLドメインまたはアプリケーション使用用途ドメインとも呼ばれる)は、軽量タイプの修飾子として機能し、アプリケーションが意図するデータ使用用途を一元的に文書化する高レベルのディクショナリ・オブジェクトです。使用用途ドメインを使用すれば、データの使用用途を定義して操作を標準化することで、アプリケーション・レベルのメタデータを必要とせずに、一連のチェック制約、表示プロパティ、ソート・ルール、その他の使用プロパティをカプセル化できます。

表内の1つ以上の列に使用用途ドメインを使用しても、基礎となるデータ型は変更されないため、アプリケーションを破壊したり移植性の問題を生じることなく、既存のデータに追加できます。

Wide Tables- 最大4,096列

多数の属性を1行に格納できるため、一部のアプリケーションのアプリケーション設計と実装が簡素化されます。

データベース表またはビューで許可される列の最大数が4,096に増加しました。この機能により、従来の1,000列の制限を超え、1つの表に属性を格納できるアプリケーションを構築できるようになりました。機械学習やモノのインターネット(IoT)アプリケーション・ワークロードのストリーミングなど、一部のアプリケーションでは、1,000列を超える非正規化表の使用が必要になる場合があります。

  • Oracle Database 23cとCMAN-TDMは、暗黙的接続プーリング、複数プールDRCP、PDBごとのPRCPなど、クラス最高の接続管理および監視機能を提供します。

  • Oracle Database 23cでは、パイプライン化機能により、.NET、Java、C/C++アプリケーションは、サーバーからのレスポンスを待たずに複数のリクエストをデータベースに送信できます。

  • 多言語エンジン(MLE)モジュール・コールを使用すると、開発者は、モジュールに格納されているJavaScript関数をSQLおよびPL/SQLから呼び出すことができます。PL/SQLで記述されたコール仕様によって、JavaScriptがPL/SQLコード・ユニットにリンクされます。

  • Oracle Database 23cの新機能として、Microsoft Azure App ConfigurationまたはOracle Cloud Infrastructure Object Storageに接続文字列などのOracle構成情報を格納するクライアント機能があります。

  • 可観測性の3つの柱はメトリック、ロギング、分散トレースです。このリリースでは、強化されたロギング、新しいデバッグ(最初の障害時に診断)、新しいトレース機能が提供されます。

  • Oracle Database 23cでは、新しい自己完結型のXMLType ストレージ方法であるTransportable Binary XML(TBX)を導入しています。TBXはシャーディング、XML検索インデックス、Exadataプッシュダウン運用をサポートし、他のXMLストレージ・オプションよりも優れたパフォーマンスとスケーラビリティを提供します。

卓越したスケーラビリティを実現する接続管理

Oracle Database 23cとCMAN-TDMは、暗黙的接続プーリング、複数プールDRCP、PDBごとのPRCPなど、クラス最高の接続管理および監視機能を提供します。DRCPおよびPRCPの最新かつ最高の機能により、C、Java、Python、Node.jsおよびODP.NETアプリケーションのスケーラビリティとパワーを強化します。Oracle Database 23cの新しいV$TDM_STATS動的ビューの統計を使用して、PRCPプールの使用を効果的に監視します。

データベース・ドライバの非同期プログラミングおよびパイプライン化

Oracle Database 23cでは、パイプライン化機能により、.NET、Java、C/C++アプリケーションは、サーバーからのレスポンスを待たずに複数のリクエストをデータベースに送信できます。Oracle Databaseは、これらのリクエストを1つずつキューに入れて処理し、クライアント・アプリケーションは、リクエストが完了するまで作業を続行できます。この拡張機能により、エンド・ユーザー・エクスペリエンスの向上、データドリブンのアプリケーション応答性の向上、エンドツーエンドのスケーラビリティ、パフォーマンスのボトルネックの回避、およびサーバー側とクライアント側での効率的なリソースの使用が実現します。

クライアント・リクエストがすぐに返されるように、Oracle Databaseパイプライン処理では、.NET、JavaおよびC/C++ドライバで非同期またはリアクティブAPIが必要です。これらのメカニズムは、データベース・パイプライン処理の有無にかかわらず、Oracle Databaseに対して使用できます。

Javaの場合、Oracle Database 23cには、Java Database Connectivity(JDBC)、Universal Connection Pool(UCP)およびOracle R2DBC Driverのリアクティブ拡張機能が用意されています。また、ドライバでのJava仮想スレッド(Project Loom)や、Reactor、RxJava、Akka Streams、Vert.xなどのReactive Streamsライブラリもサポートしています。

JavaScriptストアドプロシージャ(GraalVM使用)

多言語エンジン(MLE)モジュール・コールを使用すると、開発者は、モジュールに格納されているJavaScript関数をSQLおよびPL/SQLから呼び出すことができます。PL/SQLで記述されたコール仕様によって、JavaScriptがPL/SQLコード・ユニットにリンクされます。この機能により、開発者は、PL/SQLファンクションがコールされる場所であればどこでもJavaScriptファンクションを使用できます。

マルチクラウドの構成とセキュリティの統合

Oracle Database 23cの新機能として、Microsoft Azure App ConfigurationまたはOracle Cloud Infrastructure Object Storageに接続文字列などのOracle構成情報を格納するクライアント機能があります。この新機能により、Oracle JDBC、.NET、Python、Node.jsおよびOracle Call Interfaceデータ・アクセス・ドライバを使用したアプリケーション・クラウドの構成、導入および接続が簡素化されます。情報は構成プロバイダに格納されるため、アプリケーション・コードと構成を分離できるといった利点があります。

クラウドとデータベースへのアクセスにOAuth 2.0シングル・サインオンを使用することで、より管理がしやすくなります。Oracle Database 23cクライアントは、データベース・サインオンにMicrosoft Entra ID、Azure Active Directory、またはOracle Cloud Infrastructureのアクセス・トークンを使用できます。

Javaおよび.NETアプリケーションの可観測性、OpenTelemetry、診断可能性

可観測性の3つの柱はメトリック、ロギング、分散トレースです。このリリースでは、強化されたロギング、新しいデバッグ(最初の障害時に診断)、新しいトレース機能が提供されます。JDBCとODP.NETドライバは、データベース・コールをトレースするフックも備えています。このフックは、OpenTelemetryを使用した分散トレースを実現します。

トランスポータブル・バイナリXML

Oracle Database 23cでは、新しい自己完結型のXMLType ストレージ方法であるTransportable Binary XML(TBX)を導入しています。TBXはシャーディング、XML検索インデックス、Exadataプッシュダウン運用をサポートし、他のXMLストレージ・オプションよりも優れたパフォーマンスとスケーラビリティを提供します。

シャーディングやExadataなど、より多くのデータベース・アーキテクチャをサポートし、異なるサーバー、コンテナ、PDB間でXMLデータを容易に移行および交換する機能により、TBXは、アプリケーションがより多くのプラットフォームとアーキテクチャで、この新しいXMLストレージ・フォーマットを最大限に活用できるようにします。

次のいずれかの方法で、異なる形式の既存のXMLTypeストレージをTBX形式に移行できます。

Insert-as selectもしくはcreate-as-select

オンライン再定義

Oracle Data Pump

  • JSONデータ型は、OSONと呼ばれるOracleで最適化されたバイナリJSON形式です。この形式は、リリース21c以降のデータベースとデータベース・クライアントで、問い合わせとDMLのパフォーマンスを高速化するように設計されています...

  • Oracle Database 23cで導入されたイノベーションであるJSON Relational Duality(JSONリレーショナル二面性)は、リレーショナル・モデルとドキュメント・データ・モデルを統合して、両方の長所を提供します...。

  • Oracle Databaseは、JSONでのスキーマ・フレキシブルなデータの格納と処理をサポートしています。Oracle Database 23cでは、Oracle DatabaseでJSONデータの構造と値を検証するJSONスキーマがサポートされるようになりました...

  • PL/SQL JSONコンストラクタは、対応するPL/SQL集計タイプのインスタンスを受け入れ、集計型データが移入されたJSONオブジェクトまたは配列型を返すように拡張されました。

  • Oracle Database API for MongoDBを使用することで、開発者は、Oracleのマルチモデル機能および自動運転データベースにアクセスしながら、MongoDBのツールおよびドライバをOracle Databaseに接続して引き続き使用できます...

JSONバイナリ・データ型

JSONデータ型は、OSONと呼ばれるOracleで最適化されたバイナリJSON形式です。この形式は、リリース21c以降のデータベースとデータベース・クライアントで、問い合わせとDMLのパフォーマンスを高速化するように設計されています。

JSON Relational Duality(JSONリレーショナル二面性)ビュー

Oracle Database 23cで導入されたイノベーションであるJSON Relational Duality(JSONリレーショナル二面性)は、リレーショナル・モデルとドキュメント・データ・モデルを統合して、両方の長所を提供します。開発者は、リレーショナルとJSONパラダイムのどちらからでも、信頼できる唯一の情報源(SSOT)にアクセスしてアプリケーションを簡単に構築でき、両方のモデルの長所を生かすことができます。データは一つのみ保管され、どちらのアプローチでもアクセス、書き込み、変更が可能です。開発者はACID準拠のトランザクションと同時実行性制御を利用できるため、複雑なオブジェクト・リレーショナル・マッピングやデータ不整合の問題との間でトレードオフを行う必要がなくなります。

JSONスキーマ

Oracle Databaseは、JSONでのスキーマ・フレキシブルなデータの格納と処理をサポートしています。Oracle Database 23cでは、Oracle DatabaseでJSONデータの構造と値を検証するJSONスキーマがサポートされるようになりました。SQL演算子IS JSONがJSONスキーマを受け入れるように拡張され、JSONを検証し、表、ビュー、型などのデータベース・オブジェクトをJSONスキーマ・ドキュメントとして記述するためのさまざまなPL/SQLファンクションが追加されました。

デフォルトでは、JSONデータはスキーマレスであり、柔軟性が提供されます。ただし、業界標準のJSONスキーマ検証により、JSONデータに特定の構造と型を指定することもできます。

JSONスキーマへの貢献
オラクルは、JSONドキュメントに注釈を付けて検証できるJSONベースの宣言言語を標準化するオープン・ソースの取り組みであるJSONスキーマに積極的に貢献しています。現在、JSONスキーマはRFC(Request for Comments)です。

集計タイプに対するPL/SQL JSONコンストラクタのサポート

PL/SQL JSONコンストラクタは、対応するPL/SQL集計タイプのインスタンスを受け入れ、集計型データが移入されたJSONオブジェクトまたは配列型を返すように拡張されました。

PL/SQL JSON_VALUE演算子も拡張され、RETURNING句では、演算子が返すインスタンスの型を定義する型名を受け入れることができます。JSONコンストラクタによる集計データ型のサポートにより、PL/SQLアプリケーションとJSONをサポートする言語間のデータ交換が合理化されます。

MongoDB互換API

Oracle Database API for MongoDBを使用することで、開発者は、Oracleのマルチモデル機能および自動運転データベースにアクセスしながら、MongoDBのツールおよびドライバをOracle Databaseに接続して引き続き使用できます。お客様は、Oracle Cloud Infrastructure(OCI)上でMongoDBワークロードを実行できます。多くの場合、接続文字列を変更する以外に既存のMongoDBアプリケーションにはほとんど(またはまったく)変更を加える必要はありません。

Oracle Database API for MongoDBは、標準のOracle REST Data Servicesに含まれています。Oracle Autonomous Databaseの一部として事前構成され、完全に管理されています。

オペレーショナル・プロパティ・グラフ

Oracle Databaseは、プロパティ・グラフ・データ構造とグラフ・クエリに対するネイティブなサポートを提供しています。トランザクション・データ、JSON、空間、その他のデータ・タイプと組み合わせてグラフを作成する柔軟性をお求めの場合は、オラクルにお任せください。開発者は現在、既存のSQL開発ツールやフレームワークを使用して、SQLでグラフ・アプリケーションを簡単に構築することができます。

  • 2023年を終えるにあたり、1年を通して紹介してきたOracle Database 23cの新機能をまとめます...

  • Oracle Database 23cでは、オーケストレーションの自動化、ソースおよびターゲットの互換性の診断と修正、統合的なユーザー・エクスペリエンスにより、Oracle Advanced Queuing(AQ)からTransactional Event Queues(TxEventQ)への移行を簡素化するオンライン移行ツールを導入しています...

  • Oracle Database 23cは、Apache KafkaアプリケーションとOracle Databaseとのより高度な互換性を提供します...

  • ロックフリー予約は、更新の多い行の更新をブロックされることなく、同時トランザクションの進行を可能にします。ロックフリー予約は、行をロックする代わりに行に保持されます...

  • オラクルは、新しいObservability Exporter for Oracle Databaseにより、クラウドネイティブとKubernetesのサポートを拡大し続けています...

  • Oracle Database 23cに導入されたSagaフレームワークは、データベースで非同期Sagaアプリケーションを構築するための統合的なフレームワークを提供します...

AQからTxEventQへのオンライン移行ツール

Oracle Database 23cでは、オーケストレーションの自動化、ソースおよびターゲットの互換性の診断と修正、統合的なユーザー・エクスペリエンスにより、Oracle Advanced Queuing(AQ)からTransactional Event Queues(TxEventQ)への移行を簡素化するオンライン移行ツールを導入しています。短期間の移行シナリオも長期間の移行シナリオも可能で、AQのダウンタイムの有無にかかわらず実行できるため、運用が中断されません。

より高いスループット・キューに興味があり、Kafka Java ClientとConfluentのようなREST APIを使用してKafkaと互換性のある既存のAQのお客様は、簡単にAQからTxEventQに移行することができます。TxEventQは、スケーラビリティ、パフォーマンス、キーベースのパーティショニング、ネイティブなJSONペイロードのサポートを提供し、これによりJava、JavaScript、PL/SQL、Pythonなど、複数の言語でのイベントドリブンなマイクロサービス・アプリケーションの記述が容易になります。

Kafka API

Oracle Database 23cは、Apache KafkaアプリケーションとOracle Databaseとのより高度な互換性を提供します。この新機能により、Kafka JavaアプリケーションからTransactional Event Queues(TxEventQ)への移行が簡単になります。Kafka Java APIは、Oracle Databaseサーバーに接続し、メッセージング・プラットフォームとしてTxEventQを使用できるようになりました。

開発者は、JDBC Thinドライバを使用して、Kafkaを使用する既存のJavaアプリケーションをOracle Databaseに簡単に移行できます。また、Oracle Database 23cのクライアント側ライブラリ機能により、Kafkaアプリケーションは、KafkaクラスタではなくOracle Databaseに接続し、TxEventQのメッセージング・プラットフォームを透過的に使用できます。

ロックフリー列値の予約

ロックフリー予約は、更新の多い行の更新をブロックされることなく、同時トランザクションの進行を可能にします。ロックフリー予約は、行をロックする代わりに行に保持されます。これは、更新が成功するかを検証し、トランザクションのコミット時まで更新を延期します。ロックフリー予約は、ユーザー・エクスペリエンスとトランザクションの同時実行性を向上させます。

Grafanaの可観測性

オラクルは、Oracle Database向けの新しいObservability Exporterでクラウド・ネイティブとKubernetesのサポートを継続しています。Observability Exporterを使用すれば、業界標準のPrometheus形式でデータベースとアプリケーションのメトリックを簡単にエクスポートでき、Grafanaダッシュボードを簡単に作成してOracle Databasesとアプリケーションのパフォーマンスを監視できます。

Oracle Database 23cのSaga API

Oracle Database 23cに導入されたSagaフレームワークは、データベースで非同期Sagaアプリケーションを構築するための統合的なフレームワークを提供します。Sagaは、最新の高パフォーマンスのマイクロサービス・アプリケーション開発を簡単かつ信頼性の高いものにします。

Sagaは複数のデータベースにまたがるビジネス・トランザクションで、一連の独立したローカル・トランザクションとして実行されます。Sagasは同期分散トランザクションに見られるグローバルトランザクション期間ロックを回避し、グローバル・アプリケーションの状態を維持するための一貫性要件を簡素化します。Sagaフレームワークは、Oracle Database 23cにあるロックフリー予約可能カラムと統合して自動Saga報酬を提供し、アプリケーション開発を簡素化します。

SagaフレームワークはMicroProfile LRA仕様をエミュレートします。