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

Oracleデータベースって何だ!?

oracle4engineer
April 09, 2024

 Oracleデータベースって何だ!?

oracle4engineer

April 09, 2024
Tweet

Video

Transcript

  1. Agenda Copyright © 2024, Oracle and/or its affiliates 3 これからのOracle

    Databaseの進化 Oracle Databaseの歴史、概要 コンバージド・データベースがもたらすもの 1 2 3
  2. エンタープライズデータに対するSQLアクセスがなかった頃 1970年代に⼈気のあったデータベース • IMS • IBM製、メインフレームのMVS系OS⽤ • IMS/TM: トランザクション処理システム •

    IMS/DB: 階層型データベース • ADABAS • ソフトウェアAG製、メインフレーム⽤(当初)、関係型データベース • 独⾃⾔語: Natural • VSAM: Virtual Storage Access Method • IBMが開発したメインフレーム向けOS等で利⽤されるデータアクセ ス⽅式(ファイル編成法) • アプリケーションが記憶媒体の物理的な構成を意識せずにデータ を読み書きできる • トランザクション処理システム(CICSなど)と連携してトランザクショナ ルファイルとして利⽤可能 代表的な課題 • APIがすべてベンダー固有/製品固有 • OS間のポータビリティがない • 開発者の⽣産性が極めて低い リレーショナル・データベース以前の時代 Copyright © 2024, Oracle and/or its affiliates 4
  3. リレーショナル・データベースの登場 Copyright © 2024, Oracle and/or its affiliates 5 Dr.

    E.F (Ted) Codd 1923-2003 IBM Research 階層型 ネットワーク型 リレーショナル型データベース(RDB) • データの構造化 • 操作の明確化 • 整合性規則による 制御 リレーショナル型
  4. 設⽴前 AMPEX社に勤務していたLarry Ellisonが、 CIAのプロジェクトOracleに参画 1977年 Software Development Labs設⽴ 1978年 CIAが最初の顧客

    1979年 世界で初めてリレーショナル・データベースを 商⽤化(Oracle Version 2) Wright-Patterson空軍基地が採⽤ 1982年 企業名をOracle Systems Corporationに 改名 1995年 企業名をOracle Corporationに改名 Oracle Databaseの⽣い⽴ち Ed Oats Bruce Scott Bob Miner Larry Ellison Copyright © 2024, Oracle and/or its affiliates 6
  5. Oracle社が開発・販売しているリレーショナル・データベース管理システム(RDBMS) リレーショナル・データベース管理システム (RDBMS: Relational Database Management System) n 2次元の表形式でデータを表したデータベース。 n

    データをデータベース内に移動して格納し、それを取り出してアプリケーションで操作できるようにする。 n データの操作にはSQL (Structured Query Language)を利⽤する n 代表的なRDBMS • Oracle Database(オラクル) • Microsoft SQL Server( Microsoft ) • IBM Db2(IBM) • MySQL(オラクル) • PostgreSQL(PostgreSQL Global Development Group) など Oracle Databaseとは Copyright © 2024, Oracle and/or its affiliates 7 「Oracle Database⼊⾨ 概要編」より
  6. 分割できない⼀連の情報処理の単位 データベース・トランザクション トランザクションが兼ね備えるべき基本的な性質(ACID) A Atomicity(原始性) トランザクションを構成する⼀連の処理は、全部 なされるか、⼀切なされないか、のどちらかの状態 を取ること C Consistency(⼀貫性)

    多数のトランザクションが並列に実⾏されても システム全体のデータの⼀貫性が失われないこと I Isolation(分離性) 並⾏して実⾏される他のトランザクションの影響を 受けないこと、データをロックする機能を持つこと D Durability(永続性) 処理内容をいったん確定(commit)させた後、 確定した内容は失われないこと 例︓ACCOUNTS(銀⾏⼝座表)で振り込み処理(更新)を⾏った場合 Copyright © 2024, Oracle and/or its affiliates 8 ID NAME BALANCE 100 ⽥中 200,000 101 鈴⽊ 500,000 「鈴⽊」の残⾼を 100,000円減らす ACCOUNTS表(銀⾏⼝座表) トランザクション開始 データ更新確定(Commit)でトランザクション終了 1 " # $ % & ' ( ) * & もし障害が発⽣した場合、更新処理をす べて元に戻す(ロールバック) ID NAME BALANCE 100 ⽥中 200,000 101 鈴⽊ 400,000 ID NAME BALANCE 100 ⽥中 200,000 101 鈴⽊ 500,000 ID NAME BALANCE 100 ⽥中 300,000 101 鈴⽊ 400,000 ID NAME BALANCE 100 ⽥中 300,000 101 鈴⽊ 400,000 「⽥中」の残⾼を 100,000円増やす 「Oracle Database⼊⾨ 概要編」より
  7. マルチバージョン読み取り⼀貫性 Oracle Databaseの基本機能 n マルチユーザー・データベースでは、複数のトランザクション内の⽂によって、同じデータが同時に更新される可能性がある。 n 同時に実⾏される複数のトランザクションでは、意味のある⼀貫した結果を出すことが必要。 n 複数のユーザーが同時にデータにアクセスできることの保証(データ 同時実⾏性)

    n ユーザー⾃⾝のトランザクションや他のユーザーのトランザクションに よる参照可能な変更を含め、各ユーザーにデータの⼀貫したビュー が表⽰されることの保証(データ整合性) 例︓CUSTOMERS(顧客票)において、CUST_ID=101のCUST_NAME=鈴⽊を佐藤に更新中にデータを参照 CUST_ID CUST_NAME 100 ⽥中 101 佐藤 102 ⼭⽥ 未確定の更新中データ 「佐藤」を参照 CUST_ID CUST_NAME 100 ⽥中 101 佐藤 102 ⼭⽥ 未確定の更新中データ 「佐藤」の参照で 待たされる UNDO領域で更新前情報を保持 CUST_ID CUST_NAME 100 ⽥中 101 佐藤 102 ⼭⽥ 101 鈴⽊ 更新前のデータ「鈴⽊」を参照 同時実⾏性とデータ整合性が両⽴しないデータベース Oracle Database CUSTOMERS表(顧客表) CUSTOMERS表(顧客表) CUSTOMERS表(顧客表) Copyright © 2024, Oracle and/or its affiliates 9 「Oracle Database⼊⾨ 概要編」より
  8. CUST_ID CUST_NAME 100 ⽥中 101 鈴⽊ 102 ⼭⽥ … 498

    佐藤 499 吉⽥ エスカレーションの発⽣しない⾏レベル・ロック(同時実⾏性の確保) Oracle Databaseの基本機能 ロック範囲が広域な場合、トランザクション処理オプションの効果を低下させる。⼀⽅、⾏レベルでロックすると複数のユーザーが同⼀の表の別の⾏に同時 にアクセスでき、パフォーマンスが⼤幅に向上。 n ロック情報はブロック内で管理 n 最⼩単位の「⾏」レベルでロック n どんなに実⾏ユーザーが増えても同時に処理可能、処理待ちしない (同時実⾏性の確保) 例︓CUSTOMERS(顧客票)において複数⾏(⽥中、鈴⽊、佐藤)を更新中に更新中以外の⾏を更新 更新していない⾏の 「⼭⽥」「吉⽥」は更新不可 n ロック情報はメモリで管理 n 多数の⾏がロックされるようなクエリがあるとロック範囲が拡⼤ n 別の⾏を更新したくても処理待ち CUST_ID CUST_NAME 100 ⽥中 101 鈴⽊ 102 ⼭⽥ … 498 佐藤 499 吉⽥ 更新していない⾏の 「⼭⽥」「吉⽥」も更新可能 同時実⾏性とデータ整合性が両⽴しないデータベース Oracle Database CUSTOMERS表(顧客表) CUSTOMERS表(顧客表) Copyright © 2024, Oracle and/or its affiliates 10 「Oracle Database⼊⾨ 概要編」より
  9. 時代の要望に応じた継続的なイノベーション Oracle Database進化の歴史 Copyright © 2024, Oracle and/or its affiliates

    11 Oracle v2 世界初 商⽤RDBMS Oracle v5 Client/Server Oracle7 パラレル・クエリー ストアド・プロシージャ Oracle8i Java/XML マテリアライズド・ビュー Oracle Database 10g ASM ⾃動データベース診断 Oracle Database 12c In-Memory Database マルチテナント Oracle Database 19c Automatic Indexing Partitioned Hybrid Tables Oracle Database 23c JSONリレーショナル・ デュアリティ マイクロサービス・サポート Oracle v4 読み取り⼀貫性 Oracle v6 ⾏レベルロック PL/SQL パラレルサーバー Oracle8 パーティショニング オブジェクト指向 Oracle9i Database Data Guard Real Application Clusters Oracle Database 11g Exadata Database Machine Active Data Guard Oracle Database 18c Autonomous Database Oracle Database 21c Blockchain Table AutoML クラウドと ビッグデータの時代 メインフレームと ミニコンの時代 クライアント/ サーバーの時代 インターネット・ コンピューティングの時代 データ・ドリブン の時代へ 1980 1990 2000 2010 2020
  10. • ⼤量データの検索・集計 • データのライフサイクル管理 • 性能劣化の検知・修正 • キャパシティの拡張・ クラスタ構成 •

    ダウンタイムの最⼩化 • 災害対策 • データ破損対応 • 多様なデータ型への対応 • 性能監視 • パフォーマンス・チューニング • 運⽤状況のロギング • アプリケーション・テスト • 構成管理 • ⼤量のデータベースの統合運⽤ • アクセス制御 • 改ざん防⽌ • 暗号化 • セキュリティ監査 • 特権ユーザ管理 確実なデータの保管と活⽤のため、幅広い技術要素と要件が求められる 企業システムで求められるデータベースの要件 Copyright © 2024, Oracle and/or its affiliates 12 性能 運⽤ セキュリティ 可⽤性 拡張性 データベース
  11. 性能要件: Oracle Exadata すべてのデータベース・ワークロードのための 最⾼のプラットフォーム • 単⼀ベンダーによるサポート • データベースに特化した設計 •

    ハードウェアとソフトウェアの 密なインテグレーション • ストレージへの⾰新的なアプローチ • Real Application Clustersにより、DBサーバーを並列稼働させ、 ⾼可⽤性と⾼拡張性を実現 • Automatic Storage Managementにより、ストレージ・サーバーを並 列稼働させ、⾼いI/O性能と⾼可⽤性・⾼拡張性を実現 • さらに、Exadata System Softwareが処理の⼀部をオフロードし、⼤ 量データの⾼速処理を実現 13 Copyright © 2024, Oracle and/or its affiliates 驚異的なパフォーマンス、優れた運⽤効率、最⾼の可⽤性とセキュリティ、クラウド対応 スケールアウト可能なインテリジェント・ストレージ スケールアウト可能なデータベース・サーバー 最速の内部ネットワーク DBサーバーを並列稼働 ストレージを並列稼働 オンプレミスにも クラウドにも 理想的
  12. 可⽤性と拡張性を両⽴するディスク共有型クラスタ技術 可⽤性、拡張性要件: Oracle Real Application Clusters (RAC) Copyright © 2024,

    Oracle and/or its affiliates 14 障害発⽣ 物理構成を 意識せずに接続 ⽣存ノードに処理を 切り替えて継続 可⽤性・対障害性 全サーバーから同⼀DBへアクセス可能 なため、単⼀サーバー障害が発⽣して も、業務はほぼ無停⽌ 低い投資コスト 必要なリソースだけを追加することで、 投資コストを最⼩限に抑制可能 拡張性 サーバー追加に伴い線形な性能向上 を実現。スモールスタートから始められる 拡張時のアプリケーション変更不要 全てのサーバーが同⼀データベースを共 有しているため、システム拡張時にアプリ ケーションの変更が不要 リソース有効活⽤ HA構成のような待機系のリソースが必 要なく、コスト効率の良い構成を選択可 能 拡張 RAC HA Oracle Real Application Clusters サーバー のみ 同じデータを 参照 詳細は「Oracle Real Application Clusters アーキテクチャ詳説編」を参照
  13. Oracle Maximum Availability Architecture • システムの重要度および求められる要件に応じて構成を検討 可⽤性要件: ⾼可⽤性システムを構成するOracle Data Guard

    Copyright © 2024, Oracle and/or its affiliates 15 Primary Region #1 Standby Region #2 Single Instance RAC Primary Standby Region #1 Region #2 Data Guard DB Backup DB Backup DB Backup DB Backup DB Backup DB Backup üシングル構成で DBバックアップ取得 üDBサーバー冗⻑構成 ü複製DBでのDR構成 ü複製DBの複数(ローカル+リモート)構成 Primary Standby DB Backup DB Backup もしくは Primary Standby Data Guard/ Golden Gate DG/GG Data Guard/ Golden Gate Data Guard Region #1 Region #1 PLATINUM GOLD (DR) SILVER (HA) BRONZE SILVER (HA) 詳細は「⾼可⽤性システム構築 Oracle Data Guard基本編」を参照
  14. データベース統合とポータビリティ性を両⽴する新しいアーキテクチャ アプリケーションごとにPDBを提供 • アプリケーションの変更は不要 • ⾼速なプロビジョニング (クローン) • ポータビリティ/可搬性 (プラガビリティ)

    CDBで共通オペレーションの実施 • アップグレード、バックアップ、HA構成の⼀元管理 • 必要に応じて個別の管理も可能 メモリーとバックグラウンド・プロセスの共有 • 同じハードウェアでより多くのアプリケーションを稼働できる 運⽤要件: ⼤量のデータベースの統合運⽤を可能とするOracle Multitenant Copyright © 2024, Oracle and/or its affiliates 16
  15. Oracle Maximum Security Architecture セキュリティ要件: データベースを最⼤限保護するOracle Database Security 17 Oracle

    Database 暗 号 化 アクセス制御 監 査 ユーザーやセッション情報に基づいて 表のアクセスを列・⾏レベルで制限 DB管理者の無制限のアクセスを 強制的に禁⽌、厳格な職務分掌を実現 Database Vault 認証強化 外部認証基盤による認証強化 トークン・ベース認証 DF11233 U*1 $5Ha1qui %H1 HSKQ112 A14 FASqw34 £$1 アプリケーションへの影響がない 透過的な暗号化 Transparent Data Encryption 機密データをマスキングし セキュアなテストデータを作成 Data Masking and Subsetting データベースのアクセスログを 漏れなく詳細に記録 Unified Audit アクセスログの分析を⾃動化し 不正なアクセスの検知・アラート Audit Vault and Database Firewall Centrally Managed Users Virtual Private Database Data Redaction Label Security SQL Firewall Copyright © 2024, Oracle and/or its affiliates 17
  16. SQLの⼿続き型拡張機能として オラクル社が提供する⾔語 • Oracle v6 〜 • Procedural Language /

    Structured Query Languageの略 • SQLとの緊密な統合 • 基本的な構⽂で構成され、データ処 理に特化しているため、バッチ処理な どで多く使われる Oracle Databaseに組み込まれた Java仮想マシン(JVM)を提供 • Oracle8i 〜 • Oracle JVM (OJVM) • JDK 11をサポート(23c) • JDK 8をサポート(12.2〜19c) • JDK Versions Support in JDBC and OJVM (the DB Embedded JVM) (Doc ID 2675971.1) • PL/SQLでは実装が難しい機能など を容易に実現 Oracle Databaseに組み込まれた Multilingual Engine(MLE)を利⽤ することでJavaScriptコードを実⾏ • Oracle Database 23c 〜 • ECMAScript 2022準拠 • データベース内のJSONデータの操作 が簡単に • MLEについては以下のOracle Labs の記述を参照 • Oracle Database Multilingual Engine • GraalVM 参考)Oracle Databaseにおいてストアド・プログラムを記述できる⾔語 Copyright © 2024, Oracle and/or its affiliates 18 PL/SQL Java JavaScript
  17. 参考)Oracle Databaseを利⽤するアプリケーションを構築できる⾔語とドライバ Copyright © 2024, Oracle and/or its affiliates 19

    LANGUAGE DRIVER C OCI, ODPI-C C++ OCCI Java JDBC .NET ODP.NET Node.js node-oracledb Python python-oracledb ※ PHP OCI8, PDO_OCI R ROracle Go go-oci8, ora.v4, godror, go-ora Rust rust-oracle Ruby ruby-oci8 Perl DBD::Oracle Open Source Drivers (Third-party maintainers) Open Source Drivers (Oracle contributions) Oracle provided Drivers その他、 • ODBC, OLE DB などの仕様に 準拠したドライバの提供 • 埋込みSQLのプリプロセッサ (Pro*C, Pro*COBOL, Pro*Fortran) • 埋込みSQLを利⽤するJava (SQLJ: ISO規格に準拠) 開発者 ※以前は cx_Oracleという名称でした
  18. .NET Framework (ADO.NET) 参考)代表的なアプリケーション開発⾔語とミドルウェアの関係 Pro*C Pro*COBOL Visual Basic/ASP/Access ASP.NET/VB.NET/C#/F# OLE

    DB Providers for ASP.NET ADO ODP.NET unmanaged ODBC SQLLIB C (OCI) COM JDK JDBC Thick (Type2) JDBC Thin (Type4) C/COBOL クライアント側 サーバー側 Oracle Net Services (Oracle Call Interface: OCI) Java ミドルウェア 開発・実⾏環境、APIなど Windows系OS 環境固有 ※ ※ Windows以外の環境でODBCドライバが 利⽤されていることもあります ODP.NET managed その他の主要な開発⾔語 (JavaScript, PHP etc.)のドライバも C⾔語を利⽤していることが多い Python Oracle Net Services New: 2022/5/26 OCI Copyright © 2024, Oracle and/or its affiliates 20 23cからは ⾮推奨 ASP.NET Framework python- oracledb
  19. Agenda Copyright © 2024, Oracle and/or its affiliates 21 これからのOracle

    Databaseの進化 Oracle Databaseの歴史、概要 コンバージド・データベースがもたらすもの 1 2 3
  20. 標準化・共通化がなされていない状態 業務個別に最適化 • 業務に最適化されたデータベース • 伝統的なシステム構造の踏襲 • 部⾨毎のニーズと優先順位により分離 • セキュリティとコンプライアンス要件に応じた分離

    ユースケースやアプリケーションに応じた最適化 • 新規アプリケーション構築時に、データ・タイプやワークロード を考慮した最適化 • データ・タイプ: リレーショナル、ドキュメント、空間分析、グラフなど • ワークロード: トランザクション、分析、IoTなど なぜデータベースが散在してしまうのか︖ Copyright © 2024, Oracle and/or its affiliates 22 サイロ化された既存システム 新たなビジネスのためのDXシステム
  21. 管理の断⽚化 • それぞれのデータベースを管理するための単⼀の作業には、 独⾃の管理⽅法と技術⼒が必要 データベースが散在することによる困りごと Copyright © 2024, Oracle and/or

    its affiliates 23 データセキュリティの断⽚化 • それぞれのデータベースには、異なるセキュリティモデルと機能 が存在することもある • すべてのデータベースにセキュリティポリシーを個別に実装し、 アプリまたはポリシー変更されたときにすべてのデータベースに 再実装する必要がある データ整合性の断⽚化 • データを継続的に変換し、アプリケーション間およびそれぞれの データベース間で変更を伝播する必要がある • 変更の伝播は本質的に困難であり、避けられないデータの遅 延とデータの相違を引き起こす 可⽤性とスケーラビリティの断⽚化 • 各製品に固有のメカニズムを使⽤して、各単機能⽬的デー タベースを⾼可⽤性およびスケーラブルにする必要がある EVENT RPC ETL REPLICATION DB LINKS EVENT RPC ETL REPLICATION DB LINKS EVENT RPC ETL REPLICATION DB LINKS EVENT RPC ETL REPLICATION DB LINKS
  22. 様々なデータ・モデルに対応 Oracle Databaseはマルチモデルをサポート 企業にとって重要なこと • データ⼀貫性 • セキュリティの確保 • 信頼性

    • スケーラビリティ • すぐに分析可能であること JSON Graph Text リレーショナル Spatial Oracle Database Blockchain Copyright © 2024, Oracle and/or its affiliates 24 アプリケーションにとって重要なこと • 適性なデータ・モデル • 宣⾔的なSQLでアクセス • トランザクション • 主要な開発⾔語をサポート • 標準化されたAPIで開発 参考: マルチモデル・データベース
  23. 様々な種類のデータとワークロードをシングル・データ・プラットフォームで Oracle Database はコンバージド・データベース Copyright © 2024, Oracle and/or its

    affiliates 25 リレーショナル Spatial Blockchain Graph JSON リレーショナルでの複合ワークロード, JSON, Graph, Spatial, Text, Blockchainなどに対応 データの種類が異なっても1つのクエリーで処理できる、既存システムの拡張でデータ活⽤が容易に実現 Text • 表形式 • 数値・⽂字 • SQLアクセス • 複雑な問い 合わせ • 座標・ポリゴン など空間情報 • GPSなどの 座標情報の 活⽤ •テキストもしくは ドキュメント・データの 全⽂検索 • テキストベースの データ交換⽤の フォーマット • シンプルで使い やすいデータ形 式 • ノードとエッジの 関係性 • 関係性の検索 など⾼速で実 現 • データの改ざんを 前後のデータの つながりで防⽌ • 監査証跡、 トレーサビリティ など
  24. これまで これから Oracle Databaseで実現できるデータドリブン実践 Copyright © 2024, Oracle and/or its

    affiliates 26 • 散在するデータ、複雑なデータ配置 • 複雑なデータ活⽤、価値提供の鈍化 • 多⼤なセキュリティリスク、運⽤保守コスト • 集約され、⼀貫性のあるデータ • 市場変化に追従する、鮮度のよいデータ活⽤ • ⼀元化されたセキュリティ、シンプルな運⽤保守 データタイプ、機能別のデータサイロ 集約された、シングル・データ・プラットフォーム =コンバージド・データベース 基幹システム SaaS 新規アプリ 基幹システム SaaS 新規アプリ
  25. Oracle Cloud Infrastructure上で提供するマネージドなOracle Databaseのサービス Complete Simple Oracle Autonomous Databaseで運⽤の⼿間も削減 Copyright

    © 2024, Oracle and/or its affiliates 27 コンバージド・データベース 画像も⽂書も1つのデータベースに集約 様々なデータをシンプルなSQL⽂で⼀度に検索 データ・ロード 変換 データモデラー スケジューリング インサイト 空間分析・グラフ分析 機械学習 ローコード アプリ開発 Autonomous Database (ADB) AIを活⽤することでインフラ運⽤を⾃動化、 AI開発を効率化する、⾃律型データベース ※Oracle Autonomous Databaseの詳細は以下を参照 Oracle Autonomous Database サービス概要のご紹介 Oracle Autonomous Database Cloud 技術詳細
  26. すべてのデータ・レイクのハブの役割 ADBによるシンプルでセキュアなマルチクラウド・アクセス Copyright © 2024, Oracle and/or its affiliates 28

    OCI、AWS、AzureおよびGCP等のオブジェクト・ ストアからのデータの問合せまたはロード • ネイティブ・クラウド・アクセス・ポリシーを使⽤したア クセス制御 (OCI リソース・プリンシパル、AWS ARNなど) すべての共通データ型および表形式をサポート • Parquet、ORC、CSV、JSON、Avroなど • Delta Share表 • Apache Iceberg表(Coming soon) データ・カタログと同期して、データ・レイクの スキーマとメタデータを⾃動的に取得 • OCIデータ・カタログ • AWS Glue
  27. Oracle Databaseで構築する、スマートフォンを購⼊するアプリケーションの例 Copyright © 2024, Oracle and/or its affiliates 29

    カタログからの検索 (JSON) クレジットカードでの購⼊ (構造化データ(OLTP)) 配送管理 (位置情報) 顧客情報 (構造化データ(DWH)) 売り上げ分析 (機械学習⽤データ) ⽬的別 データベース コンバージド・ データベース データ連携 VS ||| ・ ||| ・・ ・・ ・・ ・・ ・・ カタログからの検索 (JSON) クレジットカードでの購⼊ (構造化データ(OLTP)) 配送管理 (位置情報) 顧客情報 (構造化データ(DWH)) 売り上げ分析 (機械学習⽤データ)
  28. 業務システムとデータ種別でみた⽐較 Copyright © 2024, Oracle and/or its affiliates 30 ⽬的別にデータベースが乱⽴した場合

    フロント システム バックエンド システム ビジネス アナリティクス Web モバイル ソーシャル LBS IoT 販売 財務 ⼈事 調達・購買 製造 構造化 OLTP 構造化 OLTP 構造化 OLTP 構造化 OLTP 構造化 OLTP CEO 経営企画 データサイエンティスト 構造化 DWH 構造化 DM 機械学習⽤ ブロックチェーン 台帳 構造化 OLTP JSON グラフ 時系列 位置情報 台帳 ML ML ML ML Web モバイル ソーシャル LBS IoT 販売 財務 ⼈事 調達・購買 CEO 経営企画 データサイエンティスト 製造 コンバージド・データベース 構造化データ(OLTP) 構造化データ(DWH) JSONデータ ブロックチェーン グラフデータ 時系列データ 位置情報 ML(機械学習) … ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ||| ・ ||| VS AutoML
  29. 開発と運⽤管理から⾒た⽐較 Copyright © 2024, Oracle and/or its affiliates 31 構造化

    OLTP 構造化 OLTP 構造化 OLTP 構造化 OLTP 構造化 OLTP 構造化 DWH 構造化 DM 機械学習⽤ ブロックチェーン 構造化 OLTP JSON グラフ 時系列 位置情報 SQL a Mongo API SPARQL SQL c Hive SQL SQL d SQL b SQL d SQL b SQL a PartiQL SQL d SQL e SQL a • SQLは各データベース毎の⽅⾔あり • SQL以外の⾔語も利⽤する必要あり • 各データベース間のデータ整合性は開発者まかせ • 開発要員は x データベースの種類 必要 開発者 構造化 OLTP • 性能・可⽤性・セキュリティは各データベース毎に異なり システム全体として最も低いものに引きずられる(合わさる) • 運⽤要員は x データベースの種類 必要 運⽤管理者 • SQLで様々なデータに透過的にアクセス • エンタープライズの実績をもとにした、統⼀された ⾼度な性能・可⽤性・セキュリティ VS SQL セキュリティ 性能 可⽤性 拡張性 開発者 運⽤管理者 コンバージド・データベース 構造化データ(OLTP) 構造化データ(DWH) JSONデータ ブロックチェーン グラフデータ 時系列データ 位置情報 ML(機械学習) … ・・ ・・ ・・ ・・ ・・ ・・ ・・ ・・ ||| ・ ||| ⽬的別にデータベースが乱⽴した場合 凡例 (ボトルネック) ! " # $ % & 拡 張 性 可 ⽤ 性 性 能
  30. Agenda Copyright © 2024, Oracle and/or its affiliates 32 これからのOracle

    Databaseの進化 Oracle Databaseの歴史、概要 コンバージド・データベースがもたらすもの 1 2 3
  31. Oracle Database 23cの代表的な新機能 コンバージド・データベースであることを活かした機能追加 Copyright © 2024, Oracle and/or its

    affiliates 33 機 能 追 加 AI Vector Search JSON リレーショナル・ デュアリティ JSON スキーマ JavaScript ストアドプロシージャ JS マイクロサービス ・サポート グローバル分散 データベース Trueキャッシュ SQL ドメイン Oracle Database 23c App Simple コンバージド・データベース
  32. ドキュメントとリレーショナル世界の両⽅のメリットを統合 Oracle Database 23c JSON Relational Duality (JSONとリレーショナルの⼆⾯性) Copyright ©

    2024, Oracle and/or its affiliates 34 表 1 2 3 … … … … … … … … … … … … 表 1 2 3 … … … … … … … … … … … … 表 列1 列2 列3 … … … … … … … … … … … … アクセス書式 { "label1" : "String Anita", "label2" : 5678 "label3" : "Physics 201", } { "label1" : "Student Jill", "label2" : 5678 "label3" : "Science 102", } { "name1" : "String Value1", "name2" : { "name3" : "14:00" "name4" : 1234 } } ストレージ形式 Duality View リレーショナル形式のメリット • ユースケースの柔軟性 • 分析・集計に強い • データの⼀貫性 JSON形式のメリット • ⾔語の型への簡単なマッピング • 俊敏なスキーマレス開発 • 標準データ交換フォーマット リレーショナル・モデルおよびSQLアクセスの 利点を提供するために、データを表に⾏として格納 データにJSONドキュメントとしてアクセスし、 ドキュメント・アプリケーションのシンプルさを実現
  33. コンバージド・データベースだからこそ JSON Relational Duality以前 JSON Relational Duality以後 Oracle Database 23c

    JSON Relational Dualityによるデータベース構成の変化 Copyright © 2024, Oracle and/or its affiliates 35 ETL リレーショナル (Table) JSON (ドキュメント) Query API REST API SQL Interface ドキュメント・ データベースを 前提としたアプリ リレーショナル・ データベースを 前提としたアプリ find() SELECT INSERT UPDATE DELETE insertOne() updateOne() deleteOne() insertMany() updateMany() deleteMany() DBの運⽤、DBストレージ、DBデータ、 アプリケーション、ツールが全て別々、 データ連携にはETLが必要 リレーショナル (Table) Query API REST API SQL Interface ドキュメント・ データベースを 前提としたアプリ リレーショナル・ データベースを 前提としたアプリ find() SELECT INSERT UPDATE DELETE insertOne() updateOne() deleteOne() insertMany() updateMany() deleteMany() JSON (Duality View) JSON Relational Duality DBの運⽤、DBストレージ、DBデータは1つに集約、 ETL不要、アプリケーション、ツールは ⽤途によって使い分け
  34. 【全体】 • アプリケーションのオブジェクトを簡 単にJSONとして永続化および 操作し、オブジェクトとリレーショナ ルのミスマッチを解消 • Dualityビューを使⽤することで データをドキュメントまたは表とし て透過的に読み書きできる

    • 値ベースの同時実⾏性制御によ りドキュメントと表の間で⼀貫性 を確保 【開発者】 • ドキュメント指向のアプリケーショ ンで作成されたデータに対して、 そのままSQLを使ったデータ分析 やアプリケーション構築ができる • JSON Relational Dualityを利 ⽤した開発はORMよりも効率的 で、より⼀元化され、かつ⼀貫性 が⾼い • ORM: Object Relational Mapping 【管理者】 • データベースが⼀元化されること によるメリットを享受 • 管理・運⽤⼯数が削減 • データの移動やデータ連携が不要 • 余分なデータを保持するためのスト レージ・コストがかからない Oracle Database 23c JSON Relational Dualityのメリット Copyright © 2024, Oracle and/or its affiliates 36 参考: NEC様によるOracle Database 23c新機能「JSON Relational Duality」の機能・性能検証レポート
  35. • ⽣成AI: ⽂章や画像、⾳声などを⽣成できるAI • ⾃然⾔語(⽇常的につかう⽂章や話し⾔葉)で質問すると⾃然な⽂章で応答 • ⼤規模なデータセットを学習した⼤規模⾔語モデル(LLM)を基にして⽂章を⽣成 • 代表的なサービスとしてOpenAIのChatGPTや GoogleのGeminiなど

    • ⽇常的に使う分には便利だが、ビジネス⽤途で 利⽤するには解決すべき課題も... • 情報が古い(最新でない) • 情報の出典が不明 • 誤った回答(ハルシネーション)を返す時がある • 社内のデータが使えない • 社内のデータを社外のLLMに学習させたくない 参考)ビジネス利⽤における⽣成AIの課題 Copyright © 2024, Oracle and/or its affiliates 37 カレーの作り⽅を教えてください。 以下に基本的なカレーの作り⽅をご紹介します。 ▪材料(6⽫分) - ⽜⾁(⾓切り)…250g - ⽟ねぎ(中)…2個(400g) ... ▪作り⽅ 1. 具材を切る: ⽟ねぎはくし切りにします。じゃがいも は縦半分に切り、... 2. 具材を炒める: 厚⼿の鍋にサラダ油を熱し... ... LLM
  36. ファインチューニング RAG (Retrieval-Augmented Generation: 検索拡張⽣成) 参考)ビジネスでLLM利⽤の課題に対する対応策: ファインチューニング と RAG Copyright

    © 2024, Oracle and/or its affiliates 38 企業データを使⽤して、AIモデルを更新 • 学習した情報を使った回答が可能 • ⽣成する⽂章のスタイルを⾃社に合わせられる • 学習に時間とリソースがかかる • 最新の情報を使⽤した回答はできない 問い合わせ時に必要なデータを参照 • 最新の情報を参照して回答ができる • 回答の元となった情報を提⽰できる • 学習時間がかからない ファインチューニングは、時間と⼿間がかかる割に、期待した効果を得るのが難しい ビジネス⽤途においては、まずはRAGを使⽤するのが効率的 LLM 企業固有データ 学習 LLM 企業固有データ 参照
  37. 参考)RAGを利⽤した企業データと⽣成AIの連携イメージ Copyright © 2024, Oracle and/or its affiliates 39 “製品Aについては、品

    質レポートでxxxといっ た問題が指摘されてい ます。また、ユーザーか らxxxのような問い合 わせがあります。” “製品Aに関する品質 レポート、顧客アンケー トの分析結果をもとに 製品Aの課題を⽰せ” 質問 質問内容を ベクトル変換 既存情報を ベクトル変換 質問に対する回答に必 要なデータをベクトル値 の近似性を利⽤し検索 • 品質レポート • 顧客アンケート • ⽣産計画 • 品質管理 • 他 質問に近似情報を 付加して補完 回答 質問 + LLM 企業固有のデータ 質問に対する回答を ⽣成
  38. ビジネスデータとベクトルデータを結合した検索で絞り込むことで、検索精度を向上 製品情報を指定された製品名、製品カテゴリーで絞り込み、検索結果を指定された⽂書との類似順に表⽰ 指定した写真に似ている上位10⼈の顧客情報を表⽰。情報を取得する際、写真の近似値を95%の精度で指定。 Oracle Database 23c AI Vector Search Copyright

    © 2024, Oracle and/or its affiliates 41 SELECT id FROM prod_info WHERE prod_name in (SELECT name FROM products …) AND prod_category in (SELECT category FROM products …) ORDER BY vector_distance(doc_vector, :input_vector); SELECT id, photo FROM customer ORDER BY VECTOR_DISTANCE(photo_vec, search_vec) FETCH APPROXIMATE FIRST 10 ROWS ONLY WITH TARGET ACCURACY 95 PERCENT
  39. RAGを構成するためのソリューションを提供 参考)オラクルが提供する⽣成AIソリューション Copyright © 2024, Oracle and/or its affiliates 42

    問い合わせ (テキスト) 回答 OCI Generative AI Agents Service(β) OCI Generative AI Service Oracle Database 23c AI Vector Search ベクトル化 回答⽣成 ⽣成AIとベクトルDBを 連携させる仕組み アプリケーション ベクトル化 ベクトル・データの格納 オーケストレーション LLM Vector Store ※詳細は「OCI Generative AI Service & Agent Service製品概要」を参照
  40. Select AI︓⾃然⾔語によるSQL問い合わせ 参考)Autonomous Databaseが提供するAI機能 Copyright © 2024, Oracle and/or its

    affiliates 43 DBへ質問⽂を投げかけると、 SQLに変換し結果を返す Cohere OpenAI Azure OpenAI Oracle Generative AI 「2010年以降でもっともよく⾒られた映画のトップ10を教えて」
  41. まとめ Copyright © 2024, Oracle and/or its affiliates 44 約45年のデータベース領域

    での積み上げ 世界で最も使⽤されている データベーステクノロジー あらゆるワークロード・プラットフォームでOracle Databaseテクノロジーのメリットを享受 世界初の商⽤型リレーショナルデータベースとしての基盤 ベクトル化、RAG、⽣成AIに対応した 新たな価値の創造 コンバージド・データベースの設計思想で スマートなシングルプラットフォームを実現 Any Data、Any AI、Any Application に連携できるモダンプラットフォーム あらゆるデータ形式に対応する マルチモデルをサポート Oracle Database