『Oracle Database SQL言語リファレンス』のこのリリースでの変更点
内容は次のとおりです。
Oracle Databaseリリース23aiの変更点
新機能
リリース23aiの新機能は次のとおりです。
ベクトル・ユーティリティAPI
ベクトル・ユーティリティAPIは、ベクトル索引で使用する埋込みの生成に備えて、テキストをピース(チャンク)に処理するSQLファンクションVECTOR_CHUNKSを提供します。APIは、チャンクのサイズおよびチャンクの分割ルールで構成できます。
                        
ファーストクラスのデータベース・オブジェクトとしてのONNX形式モデルのサポート
オープン・ニューラル・ネットワーク交換(ONNX)は、機械学習モデルを表すオープン・フォーマットです。システム間のモデルの交換に対応しており、スコアリング/推論にモデルを使用できるONNXランタイム環境でサポートされています。
機械学習技術の分類、回帰、クラスタリングおよび埋込みのために、ONNX形式のモデルをOracle Databaseにインポートできます。
モデルは、スキーマ内でファーストクラスのMINING MODELオブジェクトとしてインポートされます。推論は、PREDICTION、CLUSTERおよびVECTOR_EMBEDDINGを含むOMLスコアリング演算子のファミリを使用して実行できます。
                        
ベクトル・データ型
この機能には、データベース内のベクトル類似性検索を可能にする組込みのVECTORデータ型が用意されています。 
                        
組込みのVECTORデータ型を使用すると、ビジネス・データを別のベクトル・データベースに移動するのではなく、データベース内でAIを利用したベクトル類似性検索を実行できます。データの移動を回避することで、複雑さを軽減し、セキュリティを向上させ、現在のデータを検索できます。また、シンプルで直感的なSQLとコンバージド・データベース(JSON、グラフ、テキスト、空間、リレーショナルおよびベクトル)の能力を活かして、高度なビジネス・データ検索をAIベクトル類似性検索と組み合せることで、Oracle AI Vector Searchでさらに強力な検索を実行することもできます。
                        
JSON型でのベクトル・データ型のサポート
この機能により、新しいベクトル・データ型が含まれるように、標準のJSONスカラー型が拡張されます。すべてのOracle JSON構造体で完全にサポートされており、ベクトル・スカラーJSON値はJSON配列の数値との間で変換できます。
JSON型データへのベクトル値の埋込みは、SQL値とJSON値の間の相互運用性のために重要です。たとえば、VECTOR列を含む表をJSONデータに公開すると、データ型情報が失われることなく、開発者は次世代のAIアプリケーションを作成できます。
                        
ベクトル索引
SQLでのブール・データ型のサポート
Oracle Databaseは、ISO SQL標準に準拠したBOOLEANデータ型をサポートするようになりました。 
                        
BOOLEANデータ型を使用すると、表内にTRUEおよびFALSE値を格納して、SQL文でブール式を使用できます。
                        
Oracle Databaseのグラフのネイティブ表現
Oracle Databaseでは、プロパティ・グラフのデータ構造およびグラフ問合せがネイティブでサポートされるようになりました。
プロパティ・グラフは、データ要素の直接的または間接的な依存関係を検出し、これらの関係からインサイトを抽出する直感的な方法を提供します。Oracle Databaseのエンタープライズ・グレードの管理性、セキュリティ機能およびパフォーマンス機能は、プロパティ・グラフに拡張されています。開発者は、既存のツール、言語および開発フレームワークを使用して、グラフ・アプリケーションを簡単に構築できます。グラフは、トランザクション・データ、JSON、Spatialなどのデータ型と組み合せて使用できます。
ISO/IEC SQLプロパティ・グラフ問合せ(SQL/PGQ)標準のサポート
ISO SQL標準は、プロパティ・グラフ問合せおよびSQLでのプロパティ・グラフの作成を包括的にサポートするように拡張されています。Oracleは、この標準をサポートする最初の商用ソフトウェア製品の1つです。
開発者は、既存のSQL開発ツールとフレームワークを使用して、SQLでグラフ・アプリケーションを簡単に構築できます。ISO SQL標準のサポートにより、コードの移植性が向上し、アプリケーションのロックインのリスクが軽減されます。
UPDATE文およびDELETE文の直接結合
UPDATE文およびDELETE文のターゲット表を、FROM句を使用して他の表に結合します。これらの他の表は、変更する行を制限したり、新しい値のソースにすることができます。直接結合を使用すると、データを変更および削除するSQLを簡単に記述できます。
                        
マルチリンガル・エンジン・モジュール・コール
マルチリンガル・エンジン(MLE)モジュール・コールを使用すると、SQLおよびPL/SQLからモジュールに格納されているJavaScriptファンクションを起動できます。PL/SQLで記述されたコール仕様によって、JavaScriptがPL/SQLコード・ユニットにリンクされます。
UPDATE文のDEFAULT ON NULL
以前は挿入操作についてのみ可能でしたが、更新操作についても列をDEFAULT ON NULLとして定義できます。更新操作で値をNULLに更新しようとすると、DEFAULT ON NULLとして指定された列は、自動的に特定のデフォルト値に更新されます。
                        
GROUP BY列の別名または位置
GROUP BY、GROUP BY CUBE、GROUP BY ROLLUPおよびGROUP BY GROUPING SETS句で列の別名またはSELECTの項目の位置を使用できるようになりました。また、HAVING句で列の別名がサポートされています。これらの機能強化により、GROUP BYおよびHAVING句を簡単に記述できます。これにより、SQL問合せがはるかに読みやすく、メンテナンスしやすくなると同時に、SQLコードの移植性が向上します。
                        
FROM句なしのSELECT
FROM句がない、SELECT式のみの問合せを実行できるようになりました。この新機能により、SQLコードの移植性と使いやすさが向上します。
                        
SQL UPDATE RETURN句の機能強化
INSERT、UPDATEおよびDELETE文のRETURNING INTO句が、それぞれの文の影響を受けた古い値と新しい値を報告するように機能強化されました。これにより、開発者はこれらのDMLタイプのそれぞれに同じロジックを使用して、文の実行前後の値を取得できます。古い値と新しい値は、UPDATE文についてのみ有効です。INSERT文では古い値は報告されず、DELETE文では新しい値は報告されません。
                        
データ・ユースケース・ドメイン
データ・ユース・ケース・ドメインは、スキーマに属するディクショナリ・オブジェクトであり、クレジット・カード番号や電子メール・アドレスなど、共通値のオプション・プロパティおよび制約のセットをカプセル化します。データ・ユース・ケース・ドメインを定義した後、そのドメインに関連付ける表の列を定義して、ドメインのオプションのプロパティおよび制約を明示的にそれらの列に適用できます。
データ・ユース・ケース・ドメインを使用すると、データを一元的に使用する方法を定義できます。これにより、アプリケーション全体で一貫した方法で値を処理し、データ品質を向上させることが容易になります。
DBMSブロックチェーンのバージョン
ブロックチェーン表の行バージョン機能を使用すると、ユーザー定義列のセットに対応するブロックチェーン表内に保持されている行の複数の履歴バージョンを保持できます。ブロックチェーン表の上部にあるビューbctable_last$を使用すると、最新バージョンの行のみを表示できます。この機能により、アプリケーションで改ざんされにくいブロックチェーン表を使用するときに行バージョニングを保証できます。
                        
DATE、TIMESTAMPおよびINTERVAL型のCEIL FLOOR
DATE、TIMESTAMPおよびINTERVALの値をCEILおよびFLOOR関数に渡すことができるようになりました。これらの関数には、丸め単位を指定するオプションの2番目の引数が含まれています。INTERVAL値をROUNDおよびTRUNC関数に渡すこともできます。
                        
これらの関数を使用すると、指定した単位の日付と時間の値の上限と下限を簡単に検索できます。
IF [NOT] EXISTS構文のサポート
DDLオブジェクトの作成、変更および削除では、IF EXISTSおよびIF NOT EXISTS構文修飾子がサポートされるようになりました。これにより、特定のオブジェクトが存在する場合や存在しない場合にエラーが発生するかどうかを制御できます。
                        
スキーマ注釈
注釈を使用すると、すべてのアプリケーションで同じ方法でデータベース・オブジェクトを使用できます。これにより、開発が簡素化され、データ品質が向上します。注釈を使用すると、データベース・オブジェクトに関するメタデータを格納および取得できます。これらは、名前と値のペアまたは単なる名前です。これらは、アプリケーションがビジネス・ロジックまたはユーザー・インタフェースをカスタマイズするために使用できる自由形式テキスト・フィールドです。
JSONリレーショナル二面性ビュー
JSONリレーショナル二面性ビューは、リレーショナル・データに対する完全に更新可能なJSONビューです。データは非常に効率的な正規化された形式でリレーショナル表に格納されますが、JSONドキュメントの形式でアプリケーションからアクセスできます。