Oracleの主力製品であるデータベースは、Oracle Database 18cから年次リリースとなった。2023年4月には、開発者向けにOracle Database 23cの無料版の提供が始まっている。現状Oracleでは、5年間のPremier Supportの提供を受けられるLong Termサポートのバージョンを3年おきに提供している。19cの次なるLong Termサポートバージョンが、今回の「Oracle Database 23c」だ。その特長は、JSON、リレーショナルの両メリット活かすというもの。2023年後半にはActive-Active構成で使えるグローバルスケールのフルマネージド・データベースサービスも登場するという。
「App Simple」を実現するJSON Relational Duality

オラクル・コーポレーションデータ&インメモリーテクノロジー担当 シニア・バイスプレジデント
ターシャンカ・ラヒリ氏
Oracle Database 23cのコンセプトは、昨年のOracle CloudWorldで明らかにされたように「App Simple」だ。これはあらゆる開発者にとって簡単に利用できるようにすることで、そのための機能の1つがJSON Relational Duality(JSONとリレーショナルの二面性)だ。
「これは23cの最も重要な機能の1つです」と言うのは、オラクル・コーポレーションデータ&インメモリーテクノロジー担当 シニア・バイスプレジデントのターシャンカ・ラヒリ氏だ。
この機能を使うことで、JSONのドキュメント・モデルとリレーショナル・モデルのデータを統合化して利用できる。これにはどのようなメリットがあるのか。たとえば、大学など学生が講義のスケジュールを管理するアプリケーションの開発をするとする。この場合、全ての学生が受講するコースのリストがある。個々の講義には時間、教室、講師の情報がある。このアプリケーションをリレーショナル・データベースで構築すると、学生、講師、コース、そして学生とコースをマッピングしたものという、4つの正規化した表にデータを格納することになる。
ここで開発者はオブジェクトの読み書きをするのに「4つのSQLのクエリを書かずに、1回の操作でそれをやりたいと考えるでしょう」とラヒリ氏。このとき、学生のスケジュールをJSONドキュメントとして保存することで、この問題を解決できる。「JSONで保存すればGET/PUTのAPI処理で行えます」と言う。
OracleではJSONドキュメントに以前から対応しており、ドキュメントネイティブAPIのSimple Document Access APIをサポートして、MongoDB互換APIも提供している。さらにドキュメントのために標準SQLの拡張も行っており、これにはパラレルSQLも含まれている。その上でドキュメント間の完全な一貫性も担保される。
とはいえ、JSONドキュメントでデータを格納すると新たな問題も発生する。その1つがデータの重複だ。たとえば学生のスケジュールのところに時間、教室のデータがあり、講師のスケジュールにも同様に時間と教室のデータが格納される。複数の学生がいれば、その分だけデータは重複することとなる。データの格納を考えると、こういった重複は効率が悪い。コストもかかり、さらに最も問題なのがデータの一貫性を保つのが難しいことだ。
「アプリケーションが複雑になれば、こういった問題もさらに複雑になります」とラヒリ氏。新しいユースケースが追加されればさらに重複が増えることになると指摘する。

この記事は参考になりましたか?
- この記事の著者
-
谷川 耕一(タニカワ コウイチ)
EnterpriseZine/DB Online チーフキュレーターかつてAI、エキスパートシステムが流行っていたころに、開発エンジニアとしてIT業界に。その後UNIXの専門雑誌の編集者を経て、外資系ソフトウェアベンダーの製品マーケティング、広告、広報などの業務を経験。現在はフリーランスのITジャーナリスト...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア