リレーショナル データベースとは
リレーショナル データベースとは、データを列と行の 1 つ以上のテーブル(「関係」)にあらかじめ格納している事前定義済みの関係でデータを整理して表示するための情報のコレクションで、さまざまなデータ構造が互いにどのように関係しているか簡単に確認して理解します。関係は、テーブル間の相互作用に基づいて確立された、異なるテーブル間の論理接続です。
Google Cloud のリレーショナル データベースである Cloud SQL、Cloud Spanner 、AlloyDB for PostgreSQL が、運用コストの削減と革新的なアプリケーションの構築にどのように役立つかについて説明します。
準備ができたら10 GB のストレージを無料で利用できる、90 日間の Cloud Spanner の無料トライアル インスタンスを作成しましょう。
リレーショナル データベースの定義
リレーショナル データベース(RDB)は、テーブル、行、列の情報を構造化する方法の一つです。RDB は、テーブルを結合して情報間のリンク(関係)を確立できるため、さまざまなデータポイント間の関係を簡単に理解し、分析情報を得ることができます。
リレーショナル データベース モデル
1970 年代に IBM で E.F. Codd 氏によって開発されたリレーショナル データベース モデルでは、共通の属性を使用して任意のテーブルを別のテーブルに関連付けることができます。データの整理に階層構造を使用する代わりに、Codd 氏は、データを含むテーブルを再編成することなく、テーブルにデータを格納、アクセス、関連付けるデータモデルの使用への移行を提案しました。
リレーショナル データベースは、企業のデータの整理、管理、関連付けに役立つスプレッドシート ファイルの集まりと考えることができます。リレーショナル データベース モデルで、各「スプレッドシート」は、列(属性)と行(レコードまたはタプル)で表される情報を格納するテーブルです。
属性(列)はデータ型を指定し、各レコード(または行)にはその特定のデータ型の値が含まれます。リレーショナル データベース内のすべてのテーブルには、主キーと呼ばれる属性(行の一意の識別子)があり、各行は、外部キー(別の既存テーブルの主キーへの参照)を使用して異なるテーブル間の関係を作成するために使用することができます。
リレーショナル データベース モデルの動作を実際に確認してみましょう。
たとえば、顧客 テーブルと オーダー テーブルがあるとします。
顧客テーブルには、お客様に関する次のデータが含まれています。
- お客様 ID(主キー)
- お客様名
- 請求先住所
- 発送先住所
[顧客] テーブルでは、お客様 ID は顧客をリレーショナル データベース内で一意に識別するための主キーです。同じお客様 ID を持つ顧客は他にいません。
オーダーテーブルには、注文に関するトランザクション情報が含まれています。
- オーダー ID(主キー)
- お客様 ID(外部キー)
- 注文日
- 出荷日
- 注文ステータス
ここで、特定の注文を識別するための主キーはオーダー ID です。顧客を注文に関連付けるには、外部キーを使用して [顧客] テーブルのお客様 ID をリンクします。
この 2 つのテーブルは、共有されたお客様 ID に基づいて関連付けられます。つまり、両方のテーブルに対してクエリを実行して、正式なレポートを作成したり、他のアプリケーションでデータを使用したりできます。たとえば、小売業の支店長が特定の日付に購入したすべての顧客に関するレポートを作成したり、注文の受注者のうち過去 1 か月間に配送が遅かった顧客を把握したりできます。
上記の説明はシンプルであることを意図しています。ただし、リレーショナル データベースはまたデータ間の非常に複雑な関係を示すのに優れており、データがデータベースの事前定義済みリレーショナル スキーマに準拠している限り、より多くのテーブルでデータを参照できます。
データは事前定義済みの関係として整理されるため、宣言的にデータに対してクエリを実行できます。宣言型クエリを使用すると、システムによる結果の計算方法を指定せずにシステムから抽出する対象を定義できます。 これは、他のシステムとは対照的に、リレーショナル システムの中核です。
リレーショナル データベースの例
リレーショナル データベースの仕組みを理解したところで、次に、リレーショナル データベース モデルを使用する多くのリレーショナル データベース管理システムについて学習します。リレーショナル データベース管理システム(RDBMS)は、リレーショナル データベースの作成、更新、管理に使用するプログラムです。 よく知られている RDBMS には、MySQL、PostgreSQL、MariaDB、Microsoft SQL Server、Oracle Database などがあります。
Cloud SQL や Cloud Spanner、AlloyDB のようなクラウドベースのリレーショナル データベースは、データベースのメンテナンス、パッチ適用、容量管理、プロビジョニング、インフラストラクチャ サポートのためのマネージド サービスを提供するため、ますます一般的になっています。
準備ができたら10 GB のストレージを無料で利用できる、90 日間の Cloud Spanner の無料トライアル インスタンスを作成しましょう。
リレーショナル データベースのメリット
リレーショナル データベース モデルの主な利点は、データを直感的に表現でき、関連するデータポイントに簡単にアクセスできることです。そのため、インベントリの追跡からトランザクション データの処理、アプリケーション ロギングまで、大量の構造化データを管理する必要がある組織では、リレーショナル データベースがよく使用されます。
リレーショナル データベースを使用してデータを管理し、保存することには、他にも多くの利点があります。以下に例を示します。
柔軟性
全体的なデータベース構造の変更や既存のアプリケーションに影響を与えることなく、必要に応じてテーブルや関係の追加、更新、削除や、データ変更を簡単に行うことができます。
ACID コンプライアンス
リレーショナル データベースは、ACID(アトミック性、整合性、独立性、耐久性)のパフォーマンスをサポートし、エラー、障害、その他の潜在的な事故に関係なく、データの有効性を保証します。
使いやすさ
SQL を使用すると複雑なクエリを簡単に実行できるため、技術者でなくても、データベースの操作方法を学習できます。
共同作業
複数のユーザーが同時にデータにアクセスして操作できます。ロック機能を搭載しているので、更新中のデータへの同時アクセスを防止できます。
組み込みのセキュリティ機能
ロールベースのセキュリティにより、データアクセスは特定のユーザーに制限されます。
データベースの正規化
リレーショナル データベースでは、正規化と呼ばれる設計手法によりデータの冗長性が低減され、データの整合性が向上します。
リレーショナル データベースと非リレーショナル データベース
リレーショナル データベースと非リレーショナル データベース(NoSQL データベース)の主な違いは、データの保存方法と構成方法にあります。非リレーショナル データベースは、ルールベースの表形式ではデータを保存しません。代わりに、データを接続されていない個別のファイルとして保存し、ドキュメントやリッチメディア ファイルなどの複雑な非構造化データに使用できます。
リレーショナル データベースとは異なり、NoSQL データベースは柔軟なデータモデルに従っているため、頻繁に変更されるデータの保存や、さまざまなタイプのデータを処理するアプリケーションに最適です。
関連プロダクトとサービス
Google Cloud は、オンプレミス データセンターの廃止から SaaS アプリケーションの実行、コアビジネス システムの移行まで、ビジネスニーズに合わせて構築された幅広いフルマネージド リレーショナル データベース サービスを提供します。
Google のリレーショナル データベース サービスでは、これまで以上に多くのワークロードをクラウドに移行できます。開発者に柔軟性と自由度を与えることで、最高のアプリの構築により多くの時間を費やせるようになります。