Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DBWT-4] 開発: JSONドキュメントのサポートとMongoDB APIによるモダンアプリの開発

[DBWT-4] 開発: JSONドキュメントのサポートとMongoDB APIによるモダンアプリの開発

2023年4月12日 (水)開催、Oracle Database World Tokyo [DBWT] セッション4の資料です。

昨今のアプリケーションデータの保存と管理には、ドキュメントデータベースとJSONが使われ始めています。このセッションでは、Oracle DatabaseでのJSONデータの保存と処理がいかに簡単か、またMongoDB互換APIの使用方法、SQLとドキュメントAPIを併用してさまざまなJSONユースケースを解決する方法について紹介します。

oracle4engineer
PRO

April 19, 2023
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Oracle Database World
    Tokyo
    JSONドキュメントのサポート
    とMongoDB APIによるモダンアプリの開発
    田中 隆三郎
    ⽇本オラクル株式会社
    事業戦略統括 事業開発本部
    担当ディレクター
    辻井 由佳
    ⽇本オラクル株式会社
    テクノロジーコンサルティング事業本部
    プロフェッショナルサービス本部 第三デジタルインテグレーション部
    プリンシパルコンサルタント
    2023年4⽉12⽇

    View Slide

  2. Copyright © 2023, Oracle and/or its affiliates
    2
    SQLのパワーとJSONの スキーマの柔軟性の融合

    View Slide

  3. Copyright © 2023, Oracle and/or its affiliates
    3
    コンバージド・データベース
    アーキテクチャ
    単⼀⽬的データベース
    OLTP
    OLAP
    グラフ
    空間
    ドキュメント
    ML
    検索
    データタイプやワークロードごとに
    複数のセキュリティモデル、⾔語、スキル、ライセンス等
    どのようなデータタイプやワークロードにも対応
    Oracle Converged Database

    View Slide

  4. Copyright © 2023, Oracle and/or its affiliates
    4
    • スキーマの柔軟性
    • 事前のスキーマ設計が少なくて済む
    • アプリケーション・コントロールの進化
    • アプリケーションでの容易な活⽤
    • ネストされた構造体
    • アプリケーション内でオブジェクトへのマッピング
    • 結合(JOIN)を伴わない読み書きが可能
    • 共通フォーマット
    • ほとんどのプログラミング⾔語でサポート
    • ⾼い可読性
    • アプリ、サーバー、データベースの各階層での データ交換をシンプルに
    {
    "name" : "Thomas Anderson",
    "job" : "Programmer",
    "addresses" : [
    {
    "street" : "123 Main",
    "city" : "Santa Cruz",
    "zip" : 95041
    }
    ]
    }
    JSONを使⽤する理由

    View Slide

  5. Copyright © 2023, Oracle and/or its affiliates
    5
    {
    "movie_id" : 1652,
    "title" : "Iron Man 2",
    "date" : "2010-05-07",
    "cast" : [
    "Robert Downey Jr.",
    "Larry Ellison",
    ..
    ] }
    class Movie {
    int movie_id;
    String title;
    LocalTime date;
    List cast;
    Movie() {
    ...
    }
    スキーマの柔軟性
    • 事前のスキーマ設計の必要なし
    • アプリケーション内でスキーマを制御
    • シンプルなデータモデル
    少ないインピーダンス・ミスマッチ
    • アプリケーション内でオブジェクトへの
    マッピング
    • ネストされた構造体をサポート
    • 結合(JOIN)を伴わない読み書きが
    可能
    データ交換
    • 階層をまたいで統⼀された表現
    • ⾼い可読性
    • REST、JSONは汎⽤性が⾼い
    JSONで保存する理由

    View Slide

  6. Copyright © 2023, Oracle and/or its affiliates
    6
    • 低レイテンシでスケーラブルなJSONのストレージ
    • MongoDB APIまたはSQL
    • データベース管理不要
    • Always-Free サービス
    • Autonomous Databaseの全機能
    マネージドのクラウド・サービスとしての
    コンバージド・データベース
    Autonomous JSON Database

    View Slide

  7. Copyright © 2023, Oracle and/or its affiliates
    7
    Autonomous JSON Database
    弾力的なコンピュートと ストレージ
    伸縮するコンピュートと
    ストレージ
    $
    ⾼可⽤性
    24
    7
    ⼀桁のレイテンシ
    読み書き
    低価格
    Always Free Tier

    View Slide

  8. Copyright © 2023, Oracle and/or its affiliates
    8
    • JSONに対して直接SQLを実⾏
    • 分析
    • レポーティング
    • キャッシュ
    • 索引付け、全⽂検索
    • デフォルトのセキュリティ (Secure by default)
    NoSQLを超えるドキュメント・ストア
    SQL
    REST
    Autonomous JSON Database

    View Slide

  9. Copyright © 2023, Oracle and/or its affiliates
    9
    JSONコレクション

    View Slide

  10. Copyright © 2023, Oracle and/or its affiliates
    10
    • 関連する複数の「フラット」表
    • 表は⾏を含む
    • スキーマは表を含む
    • ⾏は構造化されている(SQLの「S」)
    • データへのアクセスはSQLを使⽤
    • 関連するエンティティが結合されている select e.id, e.name
    from employee e
    where e.job = 'Programmer'
    SQLでアクセス
    正規化された表
    id name job
    123 Anderson Programmer
    345 Smith Agent
    リレーショナルモデル

    View Slide

  11. Copyright © 2023, Oracle and/or its affiliates
    11
    ドキュメントはJSONの値
    • 柔軟な構造
    • ⼀意のキー(_id)を持つ
    コレクションはドキュメントを含む
    • 挿⼊、取得、更新、フィルタをサポート
    データベースはコレクションを含む
    プログラムからデータへのアクセス-
    SQLは不要
    MongoDB Javaの例
    MongoClient mongoClient = MongoClients.create(connString);
    MongoDatabase database = mongoClient.getDatabase("admin");
    MongoCollection coll = database.createCollection("employees");
    Document po = Document.parse(json);
    coll.insertOne(po);
    Bson filter = eq("job", "Programmer");
    MongoCursor cursor = coll.find(filter).cursor();
    Document doc = cursor.next();
    JSONコレクション

    View Slide

  12. Copyright © 2023, Oracle and/or its affiliates
    12
    データベース => スキーマ
    データベース「admin」に作成されたコレ
    クションは「ADMIN」スキーマに含まれる
    MongoDB Javaの例
    MongoClient mongoClient = MongoClients.create(connString);
    MongoDatabase database = mongoClient.getDatabase("admin");
    MongoCollection coll = database.createCollection("employees");
    Document po = Document.parse(json);
    coll.insertOne(po);
    Bson filter = eq("job", "Programmer");
    MongoCursor cursor = coll.find(filter).cursor();
    Document doc = cursor.next();
    JSONコレクション

    View Slide

  13. Copyright © 2023, Oracle and/or its affiliates
    13
    MongoDB Javaの例
    MongoClient mongoClient = MongoClients.create(connString);
    MongoDatabase database = mongoClient.getDatabase("admin");
    MongoCollection coll = database.createCollection("employees");
    Document po = Document.parse(json);
    coll.insertOne(po);
    Bson filter = eq("job", "Programmer");
    MongoCursor cursor = coll.find(filter).cursor();
    Document doc = cursor.next();
    コレクション => テーブル
    コレクションは、1つのJSON列を持つ
    テーブルを抽象化・表現したもの
    CREATE TABLE employee
    (
    ID VARCHAR2,
    DATA JSON
    )
    JSONコレクション

    View Slide

  14. Copyright © 2023, Oracle and/or its affiliates
    14
    ドキュメント => ⾏
    コレクションにドキュメントを挿⼊すると、
    テーブルに1⾏が挿⼊される
    INSERT INTO
    employees (data)
    VALUES (:1);
    MongoDB Javaの例
    MongoClient mongoClient = MongoClients.create(connString);
    MongoDatabase database = mongoClient.getDatabase("admin");
    MongoCollection coll = database.createCollection("employees");
    Document po = Document.parse(json);
    coll.insertOne(po);
    Bson filter = eq("job", "Programmer");
    MongoCursor cursor = coll.find(filter).cursor();
    Document doc = cursor.next();
    JSONコレクション

    View Slide

  15. Copyright © 2023, Oracle and/or its affiliates
    15
    フィルタ => クエリ
    フィルタ式はテーブル上でSQLクエリとして
    実⾏される。インデックス作成、コストベ
    ース・オプティマイザなど、Oracle
    Databaseのコア機能をフル活⽤
    SELECT data
    FROM employee e
    WHERE e.data.job = 'Programmer'
    MongoDB Javaの例
    MongoClient mongoClient = MongoClients.create(connString);
    MongoDatabase database = mongoClient.getDatabase("admin");
    MongoCollection coll = database.createCollection("employees");
    Document po = Document.parse(json);
    coll.insertOne(po);
    Bson filter = eq("job", "Programmer");
    MongoCursor cursor = coll.find(filter).cursor();
    Document doc = cursor.next();
    JSONコレクション

    View Slide

  16. Copyright © 2023, Oracle and/or its affiliates
    16
    • データ・モデル: 表ではなく、JSONコレクション
    • 開発者は既存スキルを活かし、MongoDBのツール・ドライバなどを引き続き使⽤可能
    • MongoDBのワークロードをOracleに簡単に移⾏
    • SQLを有効活⽤
    • より⾼度でより速い分析機能、機械学習
    • JSONと他のデータモデル(リレーショナル、XML、空間など)を同時にクエリ実⾏可能
    • リレーショナルデータ、レポーティング、問合せ結果をMongoDBコレクションとして公開
    Oracle Database API for MongoDB

    View Slide

  17. Copyright © 2023, Oracle and/or its affiliates
    17
    デモ

    View Slide

  18. クラウド側環境と端末側環境
    デモ環境
    Copyright © 2023, Oracle and/or its affiliates
    18
    端末︓PC
    クラウド︓OCI
    ① OCIコンソールでAJD起動 ② MongoDB Compass
    にてJSONファイルのデータ
    をインポート
    ③ SQLにてデータを参照
    および追加
    SQL クエリ実⾏
    ※ MongoDB API
    を背後で呼び出し

    View Slide

  19. Copyright © 2023, Oracle and/or its affiliates
    19
    事例

    View Slide

  20. ビジネス課題:
    Oracle Sauce Videoは、企業が社員や顧客、ファンなどと協⼒してデジタル動画コンテンツを
    作成できる、動画コンテンツ作成・ソーシング・ソリューションです。動画作成の複雑さとコストを
    低減し、Red Bull Racingなどのお客様が、さまざまなユースケースに対応した動画の撮影、
    収集、作成を容易に⾏えるようにします。
    当初のインフラストラクチャは、AmazonやGoogleのサービス、MongoDB Atlasなど複数の
    ベンダーのサービスが、複数のMicrosoft Azureクラウド・リージョンに分散して配置されていま
    した。
    使⽤した製品︓
    Oracle Autonomous JSON Database (AJD)
    Oracle Container Engine for Kubernetes
    OCI Object Storage
    Copyright © 2023, Oracle and/or its affiliates
    「Autonomous JSON DatabaseとOCIは、
    MongoDB Atlasやその他のクラウド・サービスで稼
    働していたソリューションを置き換えるために必要なす
    べてを備えています。移⾏は⾮常にスムーズで、お客
    様は切り替えに気づかないほどです。」
    Jon Girven
    オラクル、ソフトウェア開発担当シニア・マネージャー
    結果:
    現在、Oracle Sauce Videoソリューションは、動画プロジェクトのメタデータ⽤のAutonomous
    JSON Database(AJD)、動画⽤のOCI Object Storage、Kubernetes上で動作する30
    以上のマイクロサービスなど、OCIサービスのエコシステム上で動作しています。
    機能を失うことなく、インフラストラクチャをOCIベースのソリューションに統合
    MongoDB AtlasからAJDへのデータとアプリケーションのリアルタイム移⾏では、Oracle
    GoldenGateがデータ移⾏とMongoDBとAJD間のリアルタイム・データ同期を⾏い、業務を
    中断させることなく約1時間で完了
    AJDのエンタープライズ・データベース機能(マテリアライズド・ビューなど)により、これまで
    MongoDB上で複雑なマニュアル・コーディングを必要としていたデータベース操作を簡素化
    パッチ適⽤、インデックス作成、バックアップなどのデータ管理作業を、AJDが⾃律的に⾏うため
    、開発チームはアプリ開発に専念できる
    Sauce Video、MongoDB Atlasの
    代わりにAutonomous JSON
    Databaseを使⽤
    OCI Notification
    OCI Speech

    View Slide

  21. ビジネス課題:
    アパレル、フットウェア、ジュエリーのファッション・ブランドのサステナブル・ソーシングを⾏うドイツ
    のスタートアップは、お客様がアプリ内のデータが信頼でき、検証されたものであると安⼼でき
    るよう、低コストで使いやすいプラットフォームを必要としていました。
    使⽤した製品︓
    Oracle Autonomous Database(ATP)
    Oracle Autonomous Database for analytics and data warehouse (ADW)
    Oracle Autonomous JSON Database (AJD)
    Oracle Blockchain Platform Cloud Service
    Oracle Container Engine for Kubernetes
    Oracle Analytics Cloud (OAC)
    「インフラストラクチャ、データベース、およびブロックチェ
    ーン・アプリケーションを1つのプラットフォームで実⾏し
    て、プラットフォームを⾮常に迅速かつ⼤規模に拡張
    することが、はるかに簡単になりました。」
    Peter Merkert⽒
    retraced、共同設⽴者兼CEO
    結果:
    データベースの管理者を必要とせず、データベースの容量を⾃動スケーリングし、バッ
    クアップを実⾏
    AJDとKubernetes Engineにより、従業員はビジネス・ソリューション開発に集中
    できるように
    注⽂書のコピー、製品に関連する画像、部品、ブランド、⼯場、農場など、さまざまな
    JSONドキュメントを保存
    ブロックチェーンが、各顧客のサプライチェーンの各ステップで収集されたデータの信頼性
    を確保
    OACが、サプライチェーンの主要業績評価指標に関するインサイトを迅速に提供
    事例を読む
    retraced、エシカル・ファッションを
    確実に提供
    Copyright © 2023, Oracle and/or its affiliates
    21

    View Slide

  22. 地図制作業務におけるデジタル変⾰推進を⽀える基盤をOracle Cloud Infrastructure(OCI)で刷新
    企業・システム概要
    • 全国の道路、建築物や施設、地形の変化を詳細に調査し、
    その変化を随時データベースに反映し、⾼鮮度・⾼精度な
    地図制作を⾏う
    • オンプレミスで利⽤してきた既存システムでは、業務毎に追
    加された数百のツールやデータベースにより⽣じる地図編集
    者の業務のサイロ化、ITの運⽤管理の負荷やデータの増
    加に伴うデータベースの追加に係るコストが課題に
    採⽤ポイント
    • オープンソース・ベースの機能専⽤型クラウド・データベースを
    複数連携させた構成など複数のパブリック・クラウドを⽐較し
    OCIを採⽤
    • 地図制作に必要な空間データおよびグラフ・データベースな
    どのあらゆるデータ・モデルやデータ・ワークロードに対応する、
    Oracle Database Cloud Serviceのコンバージド・デー
    タベース・エンジン
    • オラクルのコンサルティング部⾨の⾼い技術や知⾒
    顧客事例︓トヨタマップマスター様
    Copyright © 2023, Oracle and/or its affiliates
    22
    システム構成イメージ
    利⽤サービス・製品
    • Database Cloud Service (DBCS)
    • Container Engine for Kubernetes
    • Oracle Consulting Service

    View Slide

  23. 辻井 由佳
    Copyright © 2023, Oracle and/or its affiliates |
    23
    ⽇本オラクル株式会社
    テクノロジーコンサルティング事業本部
    プロフェッショナルサービス本部
    第三デジタルインテグレーション部
    プリンシパルコンサルタント
    研究機関における IoT データ基盤
    Oracle Consulting Service 事例紹介

    View Slide

  24. 本システムの⽬的
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    24
    • 施設(ライブ会場など)の各種センサーから混雑情報を収集し、
    混雑緩和などの施策を打つシステムの構築
    ü 複数の施設が対象となる
    ü 蓄積されたデータは
    複数の研究機関/企業が活⽤する
    施設
    利⽤者
    データ基盤
    研究機関/企業
    データ格納 デバイスデータ
    センシング




    /レコメンド
    各種デバイス
    予測結果
    外部情報
    外部情報
    データソース
    データ
    取得
    予測結果
    格納

    View Slide

  25. 基盤構築するうえでの課題
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    25
    複数の研究機関/企業が利⽤し、複数の施設を対象とするため、様々なデバイスが存在する
    • 各データソースごとに処理を⽤意するのは困難
    • 各デバイスごとにデータ項⽬が異なる
    ü デバイスごとに必要な表定義(属性/列数)が異なる
    取得できる情報
    • 作成⽇
    • 通過⼈数
    • 配置場所
    取得できる情報
    • 作成⽇
    • カメラ名
    • 配置場所
    • 画⾯内⼈数
    取得できる情報
    作成⽇ 通過⼈数 配置場所
    • ⽇時
    • エリア
    • 天気
    • 気温
    • ⼀時間後の
    予報
    複数デバイスを扱える
    汎⽤的な仕組みが必要︕
    作成⽇ カメラ名 配置場所 画⾯内⼈数
    ⽇時 エリア 天気 気温 ⼀時間後の予報
    データソースは頻繁に増減する

    View Slide

  26. アーキテクチャ概要
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    26
    ⼊⼒層
    データソース
    予測サーバ
    Oracle Autonomous Database
    Oracle Cloud Infrastructure (OCI)
    API
    Gateway
    Object Storage
    Event
    検知
    API Gateway
    OCI
    Streaming
    ID JSON
    1 2022/9/10 11:53:25 corpA flow CAM1 { direction":"up","result":1}
    2 2022/9/10 11:54:28 corpA simulator SIM1 { area": T1", predicate":3, }
    3 2022/9/10 11:54:56 corpB weather Weatherjp { 1h": rain", 30min": rain , }
    4 2022/9/10 12:01:05 corpA flow CAM1 { direction": down","result":4}
    データ格納層
    データ処理層
    データ変換
    (Functions) データ変換/集計
    (Apex/ORDS)
    フォーマット
    変換層
    データ活⽤層
    結果の
    格納
    HP での表⽰ 等
    ⼊⼒の
    取得
    特徴量
    ①IDや⽇付等の共通項⽬以外は
    JSON型で柔軟に管理
    Streamingの利⽤により、
    データ処理量の増加時にも
    安定稼働可能
    ②REST APIにより、
    データ連携を容易化

    View Slide

  27. ①JSONを使ったデータ⼀元管理
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    27
    !
    !
    !
    表構造で管理した場合
    ID ID
    1 2023/4/17 CAM1 area1
    2 2023/4/17 CAM2 area2
    ID
    1 2023/4/17 A 16:30
    2 2023/4/17 B 16:30
    ID
    1 2023/4/16 30%
    2 2023/4/17 60%
    データソース追加のたびに
    スキーマ定義検討&表追加が必要
    取得したいデータごとに
    SQLを作成する必要がある
    表構造+JSON型を利⽤した場合
    !
    !
    !
    ID Value
    1 2023/4/17 {“カメラID”:“CAM1”,“エリア":”area1”}
    2 2023/4/17 {“カメラID”:“CAM2”,“エリア":”area2”}
    3 2023/4/17 {“販売店”:“A店”,“開始時刻":”16:30”}
    4 2023/4/17 {“販売店”:“B店”,“開始時刻":”16:30”}
    5 2023/4/16 {“天気”:“晴れ”,“降⽔確率":”30%”}
    6 2023/4/17 {“天気”:“曇り”,“降⽔確率":”60%”}
    カメラ情報
    チケット情報
    天気情報
    どのデータソースでも
    共通して取得する情報は
    共通列として定義
    データソースごとに異なる形式の情報を
    もたせるために、
    Oracle Database の JSON 型の列を使⽤して
    種々の情報をスキーマレスで格納する
    同じSQLで
    データ取得可能
    データソース追加時も
    スキーマ定義検討&表追加不要

    View Slide

  28. ①JSONを使ったデータ⼀元管理︓JSONデータの利⽤イメージ
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    28
    Oracle Database
    CREATE TABLE <表名> (
    ID NUMBER GENERATED BY DEFAULT ON NULL AS
    IDENTITY,
    CREATED_AT TIMESTAMP DEFAULT sysdate,
    DATATYPE VARCHAR2(200),
    VALUE VARCHAR2(4000)
    CONSTRAINT <制約名> CHECK (VALUE IS JSON)
    )
    Oracle Databaseのテーブルの⽂字列型(※)
    のカラムに”IS JSON”制約を付与
    ü 各種JSON機能を利⽤可能に+対象カラムの値がJSON形式であることをチェック
    ※ 21c〜 はJSONデータに対する処理を最適化するバイナリ形式のデータ型(JSON)が追加
    ID CREATED_AT DATATYPE VALUE
    1 2023/4/12 {
    "CameraID":"CAM1",
    "Area":"area1"
    }
    2 2023/4/12 {“CameraID”:“CAM2”,“Area":”area2”}
    6 2023/4/13 {“weather”:“曇り”,“降⽔確率":”60%”}
    INSERT INTO datatbl (created_at, datatype, value) VALUES(
    2023/4/12,
    ʻʼカメラ,
    '{
    "CameraID":"CAM1",
    "Area":"area1"
    }'
    );
    データ投⼊
    SELECT a.VALUE.CameraID
    FROM datatbl a
    WHERE c. VALUE.Area = ʻarea1';
    ドット記法によりJSONのキー構造を指定して検索
    CAMERAID
    ----------------------------------------------------------------
    -----
    CAM1

    View Slide

  29. ②Oracle REST Data Services(ORDS)及び Oracle APEXとの連携
    Oracle Databaseの表として⼀元管理したことで、
    Oracle REST Data Services(ORDS)及び Oracle APEXでREST APIが簡単に作成できる
    ユースケース︓研究機関におけるIoTデータ基盤
    Copyright © 2023, Oracle and/or its affiliates
    29
    クライアント層
    中間層
    ( Oracle REST Data Services )
    データベース層
    (Oracle Autonomous Database)
    URI Map and Bind SQL、PLSQL
    結果セット
    変換
    取得
    Autonomous Database
    ORDS
    アプリケーション
    センサID 時刻 ⾃由記述
    102 11:23 {
    “タイプ”: 流量,
    “始点X": XXX,
    “始点Y":YYY
    }
    103 11:24 …
    リアルタイムデータ等の格納表
    SELECT *
    FROM RESTTBL
    WHERE
    datetime > 指定開始⽇時 AND
    datetime < 指定終了⽇時
    curl -X GET
    https://XXXX/ords/oc
    stest/data/period?BEG
    IN=指定開始⽇時&END=
    指定終了⽇時
    センサID 時刻 ⾃由記述
    102 11:23 {
    “タイプ”: 流量,
    “始点X": XXX,
    “始点Y":YYY
    }
    103 … …
    結果セットを取得
    Oracle APEX
    様々な研究機関/企業とのデータ連携が容易に⾏えるように︕

    View Slide

  30. データの⼀元管理を実現する統合型データベース (Converged Database)
    Copyright © 2023, Oracle and/or its affiliates
    30
    堅牢なデータシステムはもちろん、
    新規性の⾼い流動的なデータの格納にもOracle Databaseが利⽤できます︕
    リレーショナル
    JSON
    Key
    Value
    Graph
    Spatial
    ファイル
    Oracle
    Database
    複数のデータストアの管理が不要
    ü コスト的メリット
    ü SQLでデータ操作可能なので、
    Oracle DBAのナレッジが⽣かせる
    データ連携が容易
    ü APEX/ORDSを使って
    簡単にAPIを作成できる
    データの整合性が保たれる
    ü 内部的にOracle DBの
    トランザクション管理が利⽤されている
    Oracle Databaseでデータの⼀元管理

    View Slide

  31. Copyright © 2023, Oracle and/or its affiliates
    31
    まとめ

    View Slide

  32. Copyright © 2023, Oracle and/or its affiliates
    32
    JSONとRDBの世界のギャップを埋める
    同じデータの2つの側⾯
    すべてが
    オブジェクトに⾒える
    すべてが
    ⾏と列に⾒える
    あなたのデータ
    SQL
    SODA、REST、
    MongoDB API

    View Slide

  33. Copyright © 2023, Oracle and/or its affiliates
    33
    JSON Document Relational Duality
    JSONドキュメントとリレーショナルの⼆⾯性
    Oracle Database 23c
    JSON Relational Dualityは、
    JSONのユースケースのシンプル
    さと、リレーショナルのマルチユー
    スケースのパワーを兼ね備えた
    アーキテクチャを提供

    View Slide

  34. Copyright © 2023, Oracle and/or its affiliates
    34
    oracle.com/23cfree
    Developer Release
    Oracle Database 23cが
    データ・ドリブン・アプリケーションの開発と運⽤を
    どれだけ劇的に簡素化するかをお試しください。
    Oracle Database 23c FREE
    今すぐダウンロード
    提供開始

    View Slide

  35. JSONドキュメントのサポート
    とMongoDB APIによるモダンアプリの開発
    Copyright © 2023, Oracle and/or its affiliates
    35

    View Slide

  36. Oracle Database World
    Tokyo
    ご清聴ありがとうございました

    View Slide