『Oracle Database開発ガイド』のこのリリースでの変更点
23cの新機能
『Oracle Database開発ガイド』の、Oracle Databaseリリース23cの新機能を次に示します。
注釈
注釈を使用すると、データベース・オブジェクトに関するメタデータを格納および取得できます。これらは、名前と値のペアまたは単なる名前です。これらは、アプリケーションがビジネス・ロジックまたはユーザー・インタフェースをカスタマイズするために使用できる自由形式テキスト・フィールドです。
注釈を使用すると、すべてのアプリケーションで同じ方法でデータベース・オブジェクトを使用できます。これにより、開発が簡素化され、データ品質が向上します。
「アプリケーション使用状況の注釈」を参照してください。
フラッシュバック時間移動の機能拡張
フラッシュバック時間移動では、トランザクションの変更を自動的に追跡し、表にアーカイブできます。フラッシュバック・タイム・トラベルは、表の行に対して加えられた変更のアーカイブを作成し、変更内容を履歴表に格納します。また、表のスキーマの展開の履歴も維持されます。表およびそのスキーマに対するトランザクション変更の履歴を保持することにより、フラッシュバック・タイム・トラベルを使用すると、表に対してフラッシュバック問合せAS OF
およびVERSIONS
)などの操作を実行して、トランザクション時間中に加えた変更の履歴を表示できます。
「フラッシュバック・タイム・トラベルの使用」を参照してください。
IF [NOT] EXISTS構文のサポート
DDLオブジェクトの作成、変更および削除では、IF EXISTS
およびIF NOT EXISTS
構文修飾子がサポートされるようになりました。これにより、特定のオブジェクトが存在する場合や存在しない場合にエラーが発生するかどうかを制御できます。
IF [NOT] EXISTS
構文を使用すると、スクリプトおよびアプリケーションでのエラー処理を簡略化できます。
「IF EXISTSおよびIF NOT EXISTSの使用」を参照してください。
データベース常駐接続プールの暗黙的接続プール
この機能により、アプリケーションが明示的に接続を閉じない場合でも、アプリケーションの起動およびデータベース操作の終了時に、実行時にアプリケーション接続との間でデータベース常駐接続プーリング(DRCP)サーバーを自動的に割り当てることができます。
この機能により、アプリケーション接続プーリングを使用しないアプリケーションのデータベース・リソースのスケーラビリティおよび効率的な使用が可能になります。
「暗黙的接続プーリング」を参照してください。
ロックフリー予約
ロックフリー予約は、大量に更新された行の更新をブロックすることなく、同時トランザクションを続行できます。ロックフリー予約は、ロックするかわりに行に保持されます。ロックフリー予約は、更新が成功するかどうかを検証し、トランザクションのコミット時間まで更新を延期します。
ロックフリー予約は、エンド・ユーザーのエンド・ユーザー・エクスペリエンスとトランザクションの同時実行性を向上させます。
「ロックフリー予約」を参照してください。
マルチリンガル・エンジンJavaScriptモジュールおよび環境
マルチリンガル・エンジン(MLE)モジュールおよび環境では、JavaScriptコードを保持してデータベースで管理できます。コール仕様は、PL/SQL関数をコールできるすべての場所で、MLEモジュールからJavaScript関数をコールする手段を提供します。
Oracle Databaseにスキーマ・オブジェクトとしてJavaScriptモジュールおよび環境を導入すると、開発者は、クライアント側のJavaScript開発で使用される確立された既知のワークフローに従うことができます。複雑なプロジェクトは、チーム・メンバーが独立して作業できるように、より小さく管理しやすい部分に分割できます。
「JavaScriptの概要」を参照してください。
DRCPの複数の名前付きプール
データベース常駐接続プーリング(DRCP)で複数の名前付きプールがサポートされるようになりました。DBMS_CONNECTION_POOL.ADD_POOL()
プロシージャとDBMS_CONNECTION_POOL.REMOVE_POOL()
プロシージャがDBMS_CONNECTION_POOL
パッケージに追加されました。Oracle Net接続文字列構文が拡張され、接続ごとにプール名を指定できるようになりました。既存のプロシージャを使用して、名前付きプールを起動、停止、構成できます。
複数のプールを用意することで、DRCPプールの使用状況をより詳細に制御できます。これは、一部のアプリケーションが単一プールの使用を支配する状況を防ぐのに役立ちます。
「複数プールDRCPの使用」を参照してください。
ODBCでのSQL BOOLEANデータ型のサポート
ODBCでは、新しいSQL BOOLEANデータ型がサポートされるようになりました。SQL BOOLEANデータ型を使用すると、アプリケーションはより明確に状態を表すことができます。
「データ型の実装(上級)」を参照してください。
JSONスキーマを使用した事前チェック可能な制約
チェック制約はデータベースの外部でチェックできます。このためには、PRECHECK
キーワードを使用してチェック制約をマークします。事前チェック可能なチェック制約から、JSONスキーマ・ドキュメントを作成できます。これは、外部のJSONスキーマ・バリデータを使用して、データベースの外部でデータの妥当性をチェックできることを意味します。
JSONスキーマは、有効なデータを定義するルール(チェック制約に対応するルール)を記述できます。これにより、ユーザーはデータベースをビジネス・ルールの中央リポジトリとして使用できます。
JSONスキーマを使用すると、データベースに送信する前にデータをチェック(たとえば、アプリケーション・コードを使用して)できるため、無効なデータを早期に検出できます。これにより、より回復力のあるアプリケーションが提供され、潜在的なシステム・ダウンタイムと「不良」データのクリーン・アップの必要性が減少します。
「PRECHECKを使用したCHECK制約の事前検証」を参照してください。
データベース・セッション状態のリセット
セッション状態のリセット機能は、リクエストの終了時にアプリケーションによって設定されたセッション状態をクリアします。RESET_STATE
データベース・サービス属性はダーティ・セッションをクリーン・アップして、アプリケーションがこれらのセッションの状態を確認できないようにします。この機能は、すべてのデータベース・サービスを使用してデータベースに接続するアプリケーションに適用されます。
RESET_STATE
機能を使用すると、データベース開発者がセッション状態を手動でクリーン・アップする必要がないように、各リクエストの終了時にセッション状態をクリーン・アップできます。この機能を使用すると、以前のセッションからのデータ・リークがないことを確認できます。
「アプリケーションの状態のリークを防止するためのデータベース・セッション状態のリセット」を参照してください。
Oracle Sagaフレームワークを使用したSaga API
Oracle Saga APIがデータベースに実装され、Oracle Databaseで構築されたマイクロサービスのトランザクション・セマンティクスを実装するためのフレームワークを提供します。オーケストレータSagaフレームワークは、マイクロサービス全体でアトミック・データの一貫性を維持する方法を提供します。
Sagaは同時実行され、各参加者データベースでローカル・トランザクションを実行し、分散ACIDトランザクションよりも効率が高くなるため、アプリケーション・コードが簡素化され、開発者の生産性が向上します。
「Sagaを使用したアプリケーションの開発」を参照してください。
DRCPの接続ドレインの停止
DBMS_CONNECTION_POOL.STOP_POOL()
の新しいオプションのDRAINTIME
引数を使用すると、指定された接続ドレイン時間後にアクティブなDRCPプールを閉じるか、接続がアイドル状態になるのを待たずにすぐに閉じることができます。この機能により、DBAはDRCPの使用と構成をより適切に制御できます。
「DRCPの接続ドレインの停止」を参照してください。
表のDDL変更通知
表でDDL変更が発生したときにアプリケーションに通知されるようになりました。
表メタデータを認識する必要があるアプリケーションを、DDL変更を継続的にポーリングせずに通知できるようになりました。
「表のDDL変更通知」を参照してください。
使用状況ドメイン
使用状況ドメインは、スキーマに属するディクショナリ・オブジェクトであり、クレジット・カード番号や電子メール・アドレスなど、共通値のオプション・プロパティおよび制約のセットをカプセル化します。使用状況ドメインを定義した後、そのドメインに関連付ける表の列を定義して、ドメインのオプションのプロパティおよび制約を明示的にそれらの列に適用できます。
「アプリケーション使用状況ドメイン」を参照してください。
サポート対象外機能
Oracle Databaseリリース23cの『Oracle Database開発ガイド』でサポート対象外になった機能を次に示します。
Oracle OLAPのサポート終了
分析ワークスペース、OLAP DMLプログラミング言語およびOLAP Java APIは、Oracle Database 23cではサポートされなくなりました。
高度な分析機能が必要な新しいアプリケーションの場合、予測およびwhat-if分析のために分析ビュー(Oracle Databaseの機能)またはOracle Essbaseを検討することをお薦めします。Oracle分析ビューは、あらゆるOracle Databaseエディションの機能です。アプリケーションでディメンション問合せおよびレポート・アプリケーションにOLAPを使用する場合は、Oracle分析ビューをOLAPの代替として検討することをお薦めします。分析ビューは、既存のデータベース表およびビューに格納されているデータの分析問合せを迅速に効率的に作成する方法を提供します。Oracle分析ビューを使用すると、"キューブ・ビルド/更新"プロセスを必要とせずに、ディメンション問合せモデルおよびサポート・メタデータを取得できます。キューブ・ビルド/更新プロセスを省くことで、スケーラビリティ制約(モデルの複雑さとデータ量)が緩和され、データ準備パイプラインが簡素化され、データ待機時間が短縮または省かれます。
非推奨の機能
この項では、『Database開発者ガイド』のOracle Databaseリリース23cバージョン23.3で非推奨になった機能をリストします。
新しいアプリケーションでは、非推奨となった機能と値を使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。
従来の監査初期化パラメータの非推奨
Oracle Database 23での従来の監査ポリシーの作成および変更のサポートが終了したことに伴い、従来の監査パラメータは非推奨です。従来の監査ポリシーはアップグレード後に使用可能ですが、それらのポリシーに関連付けられた初期化パラメータは非推奨です。これらの非推奨のパラメータには、次のものが含まれます。
AUDIT_TRAIL
AUDIT_SYS_OPERATIONS
AUDIT_FILE_DEST
AUDIT_SYSLOG_LEVEL
Oracleでは、これらの従来の監査パラメータは将来のデータベース・リリースで削除できるため、早急に統合監査に移行することをお薦めします。