データベースとは データ マネジメントのガイド

データベースは、情報を保存、管理、取得するための構造化されたシステムです。

データベースは、図書館員がすべての本のすべてのページの場所を正確に把握しているデジタル図書館のようなものです。何百万ものバラバラの紙が散らばった巨大な部屋に入ったとしたら、必要な情報を見つけることはできないでしょう。そこで、書類を整理し、明確にラベル付けして、数秒で取り出せるシステムが必要になります。データベースは、アプリケーションに対してこれを行います。あらゆるデジタル システムの信頼できるメモリとして機能し、ウェブサイト、企業、重要なサービスが毎日機能するために依存する情報を安全に保存します。

ほとんどのデータベースは、次の 2 つの主なカテゴリに分類されます。

  • リレーショナル データベース(SQL): データをテーブルに整理し、テーブルは行と列で構成されます。これらのデータベースは、データポイント間の関係を見つけるための構造化クエリ言語(SQL)を提供しており、トランザクションの整合性と複雑なクエリに最適です。
  • 非リレーショナル データベース(NoSQL): 動的で柔軟なスキーマを備えています。データをドキュメント、グラフ、Key-Value ペアで保存するため、非構造化データ、半構造化データ、急速に変化するデータを大規模に処理できます。

データベースに関する重要なポイント

  • 概要: データベースは、アプリケーションで使用するデータを保存、整理、取得するための専用システムです
  • 仕組みを説明しましょう。人が読むことを想定して設計されたスプレッドシートとは異なり、データベースはマシンが対話することを想定して構築されているため、大量の情報を効率的に処理できます。
  • どのように使用できますか?リレーショナル データベース、ドキュメント データベース、ベクトル データベースなど、さまざまな種類のデータベースがあり、それぞれユーザー プロフィール、ソーシャル メディアの投稿、AI 生成データなど、異なる種類の情報に適しています。

マネージド データベース サービスとは

自分の PC やサーバーでデータベースを実行する場合、多くの作業が必要になります。バックアップの処理、セキュリティ アップデートのインストール、サーバーのメモリ不足の防止などを行う必要があります。これは「セルフホスティング」と呼ばれます。

マネージド データベース サービスは、この作業を代行します。クラウド プロバイダにデータベースの実行を依頼し、料金を支払います。インフラストラクチャの設定、ソフトウェアの最新状態の維持、システムのオンライン状態の確保といった、手間のかかる作業を管理します。これにより、サーバーの配管を気にすることなく、アプリのコードの記述に集中できます。

データベースの仕組み

Google スプレッドシートや Excel のようなスプレッドシートは、人間が目視で確認するには最適ですが、何千人もの人が同時に使用しようとすると、動作が遅くなり、煩雑になります。データベースの構築方法が異なります。この機能は、次の 3 つの主要部分を使用します。

  1. データ: 情報そのものです。テキスト(名前やメールアドレス)、数値(価格)などのシンプルなものから、画像や AI エンベディングなどの複雑なものまであります。
  2. クエリ: データベースに情報を「要求」する方法です。SQL(構造化クエリ言語)などの言語を使用して、必要なものをデータベースに正確に伝えます。たとえば、「先週登録したすべてのユーザー」をリクエストできます。
  3. データベース管理システム(DBMS): マネージャーとして機能するソフトウェアです。リクエストの処理、データの安全性の確保、情報の保存方法の整理を行います。PostgreSQL、MySQL、MongoDB などがあります。

データベースの種類

どのデータベースが適切であるかはデータの形状によって決まります。

タイプ

最適な用途

主な特徴

リレーショナル(SQL)

明確な関係性を持つ構造化データ

テーブル、行、列を使用

口座残高の銀行システム

非リレーショナル(NoSQL)

柔軟なデータ、高速なデータ、変化するデータ

テーブルを使用せず、さまざまな方法でデータを保存する

大規模ウェブアプリのビッグデータ分析

Key-Value

シンプルで高速な検索

データをデジタル辞書のようなペアとして保存

ログイン用のユーザー セッション情報の保存

ドキュメント

複雑なネストされたデータの保存

データを JSON ファイルなどのドキュメントとして保存

e コマースにおける商品カタログの管理

Vector

AI と ML

情報を数学ベクトルとして保存

過去のユーザー行動に基づいておすすめの商品を見つける

グラフ

深い関係性を持つデータ

アイテム同士の関係に注目

ソーシャル メディアの「友だちの友だち」機能

時系列

時間の経過とともに変化するデータ

特定のタイムスタンプで情報を記録する


工場内の温度センサーのモニタリング

タイプ

最適な用途

主な特徴

リレーショナル(SQL)

明確な関係性を持つ構造化データ

テーブル、行、列を使用

口座残高の銀行システム

非リレーショナル(NoSQL)

柔軟なデータ、高速なデータ、変化するデータ

テーブルを使用せず、さまざまな方法でデータを保存する

大規模ウェブアプリのビッグデータ分析

Key-Value

シンプルで高速な検索

データをデジタル辞書のようなペアとして保存

ログイン用のユーザー セッション情報の保存

ドキュメント

複雑なネストされたデータの保存

データを JSON ファイルなどのドキュメントとして保存

e コマースにおける商品カタログの管理

Vector

AI と ML

情報を数学ベクトルとして保存

過去のユーザー行動に基づいておすすめの商品を見つける

グラフ

深い関係性を持つデータ

アイテム同士の関係に注目

ソーシャル メディアの「友だちの友だち」機能

時系列

時間の経過とともに変化するデータ

特定のタイムスタンプで情報を記録する


工場内の温度センサーのモニタリング

リレーショナル データベース

リレーショナル データベース(一般に SQL データベースとも呼ばれる)は、構造化されたテーブルでデータを表します。銀行取引の成否を完全に保証する必要がある場合は、ACID(アトミック性、整合性、独立性、耐久性)特性に厳密に準拠しているリレーショナル データベースの使用を検討します。

NoSQL データベース

NoSQL データベースは柔軟性に優れています。データはドキュメント、グラフ、Key-Value ペアとして保存されます。厳格なスキーマを必要としないため、モバイルアプリ、ソーシャル メディア フィード、リアルタイム コンテンツ管理システムなど、変化の速いアプリケーションに適していることがよくあります。

Key-Value データベース

これは NoSQL データベースの中で最も単純な形式です。データは、一意のキーと値のペアとして保存されます。高速でシンプルなため、デベロッパーはセッション データのキャッシュ保存やユーザー設定の保存などに使用できます。

これらは辞書のように機能します。キー(ユーザー名など)と値(プロフィール データ)があります。複雑なテーブルを検索して必要なものを見つける必要がないため、非常に高速です。

ドキュメント データベース

ドキュメント データベースは、柔軟な形式(多くは JSON)でデータを保存します。コンテンツ管理システムのように、ブログ投稿ごとに属性が異なる場合など、データ構造が頻繁に変更される場合に便利です。

ベクトル データベース

ベクトル データベースは、情報を数学的なベクトルとして保存します。これにより、コンピュータは単に正確なキーワードを照合するだけでなく、データの「意味」をよりよく理解できるようになります。これは、最新の生成 AI と検索機能を支えるテクノロジーです。

グラフ データベース

グラフ データベースは、データポイント間の関係に重点を置いています。テーブルではなく、ノードとエッジとしてデータを保存します。ソーシャル ネットワークを考えてみましょう。「人」はノードで、「フォロー」アクションはエッジです。複雑な接続に依存するレコメンデーション エンジンを構築している場合、グラフ データベースを使用すると、標準のリレーショナル データベースよりもはるかに高速にそれらのリンクをクエリできます。

時系列データベース

時系列データベースは、時間でインデックス付けされたデータポイントの保存に特化しています。IoT デバイスのセンサー測定値、サーバーログ、株式市場の更新情報など、タイムスタンプ付きの大容量データ向けに構築されています。これらのデータベースは「ダウンサンプリング」に優れています。ダウンサンプリングとは、古い高頻度データを取り込み、より広範な要約に圧縮してスペースを節約するプロセスです。

データベースのデプロイ オプション

データベースは次の場所に配置できます。

オンプレミス: 独自のオフィスまたはデータセンターにある独自の物理ハードウェアでデータベースを実行します。これにより、完全に制御できますが、セキュリティとメンテナンスをすべて自分で管理する必要があります。

ハイブリッド: オンプレミスとクラウドの両方を組み合わせたものです。センシティブ データはセキュリティ上の理由からオンプレミスに保持し、一般公開アプリのデータにはクラウドを使用する場合があります。

クラウド: データベースはクラウド プロバイダのサーバーに存在します。アプリが突然人気になった場合にスケールアップしやすいため、この方法が最もよく選ばれます。クラウド データベースには、次のような利点があります。

  • 弾力性: ストレージや処理能力を即座に増やすことができます。
  • アクセシビリティ: チームは世界中のどこからでもデータベースを管理できます。
  • メンテナンス: 基盤となるハードウェア、アップデート、セキュリティ パッチをクラウド プロバイダが管理します。

デプロイ オプション間で移行する場合(オンプレミス設定からマネージド クラウド サービスへの移行、ハイブリッドな環境から完全なクラウドネイティブ ソリューションへの移行など)は、データ形式の変更だけでなく、インフラストラクチャの変更にも重点を置く必要があります。データの完全性を確保し、ダウンタイムを最小限に抑え、接続の変更を管理するために、データベースの移行を慎重に計画してください。

AI とデータベース

以前は、デベロッパーは標準的なアプリケーション データと AI データを別々のデータベース サイロに分離して保存することがよくありました。そのため、開発者はデータベースと別の AI エンジンとの間で大量のデータをやり取りする必要があり、アプリの速度が低下し、メンテナンスが難しくなりました。今日では、統合が主流となっています。AI によって生成された情報を含むデータを、同じ場所で理解して処理できるデータベースが求められています。

大まかに言うと、最新のデータベースは、次のコア AI 機能を追加することで「インテリジェント」になっています。

  • ベクトル検索とセマンティック検索: データベースはデータを「ベクトル」(意味を表す数値のリスト)として保存します。これにより、アプリはキーワードを一致させるだけでなく、意味に基づいて結果を見つけることができます。「canine」を検索すると「dog」が見つかります。
  • 検索拡張生成(RAG): データベースは、質問に回答する前に、非公開の最新情報を AI モデルに提供します。これにより、AI はより正確で根拠のある回答を生成できます。
  • マルチモーダル機能と検索: データベースで、テキスト、画像、音声などのさまざまなデータ型をまとめて保存し、関連付けることができるようになりました。これらの形式を横断して検索できます。たとえば、特定の商品写真に一致するテキストの説明や価格を見つけることができます。
  • 自然言語から SQL への変換: 「価値の高い顧客をすべて表示して」のようなわかりやすい英語の質問を、その情報を取得するために必要な正確なコードに変換します。
  • ハイブリッド検索: 従来のキーワード検索とセマンティック検索を組み合わせたものです。特定の用語(商品 ID など)には完全一致を使用し、ベクトルを使用して意図に基づいて関連アイテムを検索するため、非常に効果的です。

これらのツールをサポートするデータベースを使用すると、1 回のクエリでユーザーの名前、履歴、好みを検索できます。これにより、技術スタックが簡素化され、アプリでより迅速かつスマートなエクスペリエンスを提供できるようになります。

特定のキーワードとセマンティック コンセプトを組み合わせて、Python でハイブリッド検索を実行する方法は次のとおりです。

  • Python
読み込んでいます...

適切なデータベースを選択する方法

特定のアーキテクチャを決定する前に、次の質問をして、プロジェクトのニーズに最適なデータベースの種類を判断します。

比較検討

推奨されるデータベース タイプ

推論

データは銀行の記録やユーザー アカウントのように厳密な構造を持っていますか?

リレーショナル(SQL)

テーブルと行により、データの正確性が確保され、レコード間の厳密な関係が適用されます。

ユーザーログやアクティビティ フィードなど、頻繁に形式が変わるデータを保存する必要があるか。

NoSQL

厳密なスキーマがないため、構造が進化または変化するデータを保存できます。

ユーザー セッションなどの単純なデータをできるだけ早く検索する必要があるか

Key-Value

単一のキーを値に直接マッピングすることで、複雑な検索を回避できます。

データは、さまざまな機能を持つ商品など、コード内のオブジェクトのように見えるか?

ドキュメント

JSON などの形式でデータを保存すると、アプリケーション コードで直接データを操作しやすくなります。

「意味」や類似性を検索する必要がある AI アプリケーションを構築しているか?

Vector

これらのデータベースは、厳密なキーワードではなく、数学的な類似性に基づいてデータを保存、比較するように最適化されています。

データポイント間の関係は、データそのものと同じくらい重要ですか?

グラフ

これらのシステムは、ソーシャル ネットワークや不正行為検出パスなどの複雑な接続を迅速に走査するように構築されています。

センサーの測定値のように、時間とともに常に変化するデータを追跡する必要があるか?

時系列

時系列データベースは、時間でインデックス付けされたデータポイントを記録してクエリするように最適化されています。

比較検討

推奨されるデータベース タイプ

推論

データは銀行の記録やユーザー アカウントのように厳密な構造を持っていますか?

リレーショナル(SQL)

テーブルと行により、データの正確性が確保され、レコード間の厳密な関係が適用されます。

ユーザーログやアクティビティ フィードなど、頻繁に形式が変わるデータを保存する必要があるか。

NoSQL

厳密なスキーマがないため、構造が進化または変化するデータを保存できます。

ユーザー セッションなどの単純なデータをできるだけ早く検索する必要があるか

Key-Value

単一のキーを値に直接マッピングすることで、複雑な検索を回避できます。

データは、さまざまな機能を持つ商品など、コード内のオブジェクトのように見えるか?

ドキュメント

JSON などの形式でデータを保存すると、アプリケーション コードで直接データを操作しやすくなります。

「意味」や類似性を検索する必要がある AI アプリケーションを構築しているか?

Vector

これらのデータベースは、厳密なキーワードではなく、数学的な類似性に基づいてデータを保存、比較するように最適化されています。

データポイント間の関係は、データそのものと同じくらい重要ですか?

グラフ

これらのシステムは、ソーシャル ネットワークや不正行為検出パスなどの複雑な接続を迅速に走査するように構築されています。

センサーの測定値のように、時間とともに常に変化するデータを追跡する必要があるか?

時系列

時系列データベースは、時間でインデックス付けされたデータポイントを記録してクエリするように最適化されています。

プロジェクトに適したデータベースの種類がわかったら、その管理方法も検討する必要があります。迅速なスケーリングが必要で、サーバーエラーの修正ではなく機能の作成に時間を費やしたい場合は、通常、マネージド クラウド サービスが最善の道です。

貴社のデータベースは AI に対応していますか?

現在のアプリでデータベースがうまく機能していても、AI によって新たな要求が生じます。次の AI 機能の構築を始める前に、現在の設定がそのタスクに本当に適しているかどうか、次の質問を自問自答してみてください。

  • データベースは、通常のデータとともに高次元ベクトルデータを保存できるか?
  • 「はい」の場合: AI に既存のデータベースを使用することで、アーキテクチャをシンプルに保つことができます。
  • 「いいえ」の場合: 専用のベクトル データベースまたはプラグインをスタックに追加する必要がある可能性があります。
  • データベースに類似検索が組み込まれているか?
  • 「はい」の場合: システムは、追加のコードなしで「意味のある」一致をすばやく見つけることができます。
  • 「いいえ」の場合: AI が理解できるものにデータを変換するために、別の「検索レイヤ」を構築または管理する必要があります。
  • データベースは、データを別の場所に移動せずに処理できるか?
  • 「はい」の場合: データ転送費用を節約し、AI の応答のレイテンシを短縮できます。
  • 「いいえ」の場合: 外部 AI モデルにデータを絶えず移動させるため、パフォーマンスのボトルネックに直面する可能性があります。
  • データベースは、さまざまな種類のデータ(テキスト、画像、音声)を 1 か所で処理できるか?
  • はいの場合: 統合されたクエリ言語で複雑な「マルチモーダル」AI アプリを構築できます。
  • 「いいえ」の場合: 複数のデータベースを統合する必要があるため、コードのメンテナンスが難しくなります。
  • 新しいデータが到着したときに、データベースはどの程度簡単に「知識」を更新できるか?
  • 「はい」の場合: データが更新されると、AI 機能にリアルタイムの変更が即座に反映されます。
  • 「いいえ」の場合: 時間のかかる再インデックスを手動でトリガーするまで、AI の回答が「古く」なる場合や、不正確になる場合があります。
  • データベースは、AI クエリに対して強力なセキュリティとアクセス制御を提供しているか?
  • 「はい」の場合: ユーザーが閲覧を許可されている情報のみを表示する AI アプリを安全に構築できます。
  • 「いいえ」の場合: AI が制限された情報を誤って不適切な相手と共有してしまう「データ漏洩」のリスクがあります。
  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud