リレーショナルデータベースとは、データ ポイント間の関係が事前に定義されたデータ ポイントの集合体です。

リレーショナルモデルはデータをテーブルに編成します。各行は個々のレコードを表し、各列は値を含む属性で構成されます。この表形式のデータベース構造により、データポイント間の関係を簡単に確立できるため、データ自体を再編成しなくてもさまざまな方法で情報にアクセスできます。

リレーショナルデータベース内のテーブルを結合して、さまざまなデータポイント間の相互接続についてより深いインサイトを得ることができます。例えば、顧客のテーブルには、名前と住所の列があり、行の値は John と California です。同様に、製品のテーブルプロダクトには名前とコストの列があり、行の値は shoes と $12 です。customer テーブルを product テーブルと結合して、顧客がより頻繁に購入する人気商品を特定します。

簡単に言うと、リレーショナルデータベースとは、あらかじめ定義済の関係でデータを保存し、データにアクセスする方法です。

リレーショナルデータベース管理システムとは

リレーショナルデータベース管理システム (RDBMS) は、リレーショナルテーブルを管理するツールとサービスのソフトウェア層です。実際、RDBMS とリレーショナルデータベースという用語は同義語とみなされます。リレーショナルデータベースは、アプリケーション、ユーザー、およびリレーショナルデータベース間の一貫したインターフェースを提供します。組織は、さまざまな部門からの大量のビジネスクリティカル情報を管理するために RDBMS を使用しています。

複数のユーザーが同じデータベースをさまざまな方法で操作できます。例えば、データを冗長化することなく、データベース操作を実行したり、重要なデータポイントを集約したりできます。また、リレーショナルデータベース管理システムにより、データベース管理者はデータへのアクセスをより細かく制御できます。

リレーショナルデータベースが重要な理由

コンピュータが発明されて以来、コンピュータ上のデータの管理と保存は、継続的な研究分野です。リレーショナルデータベースが登場する前は、組織はコンピューター上のフォルダーに似た階層型データベースシステムを使用していました。これらの初期のデータベースシステムでは、大量のデータを整理できました。ただし、データの関係を明確にする方法には限界がありました。また、それらは複雑で、特定の用途に特有であり、扱うには技術的な専門知識が必要でした。

リレーショナルデータベースモデルは、それらの問題を解決するために登場しました。物理データストレージをデータベースの管理や使用から切り離しました。最新のリレーショナルデータベースを使用すると、ユーザーは物理的なデータストレージを管理しなくてもデータを保存および取得できます。論理データ構造をプログラムで操作することもできます。

リレーショナルデータベースの利点とは

リレーショナルデータモデルの主な利点は、データから意味のある情報を導き出すことができることです。例えば、テーブル内のデータをカウント、ソート、グループ化したり、数学演算を実行したり、複雑なレポートを生成したりできます。したがって、リレーショナルデータベースシステムは、現在最も人気のあるデータストレージです。以下にさらにいくつかの利点を示します。

データの完全性

データの完全性とは、データの全体的な完全性、正確性、および一貫性を意味するものです。リレーショナルデータベースでは、一連の制約を使用してデータベースにおけるデータの完全性が強化されます。これらには、プライマリキー、外部キー、「Not NULL」制約、「Unique」制約、「Default」制約、および「Check」制約が含まれます。

こうした完全性の制約により、テーブルのデータにビジネスルールを適用することで、データの正確性と信頼性を確保できます。これに加えて、ほとんどのリレーショナルデータベースでは、データベース内のデータ ポイントに対するアクションに基づいて実行されるトリガーにカスタムコードを埋め込むことができます。カスタムコードは、クライアントまたはアプリケーションによって呼び出されたときに実行されるストアドプロシージャに埋め込むこともできます。

セキュリティ

ほとんどのリレーショナルデータベース管理システムは、高度なアクセス制御を備えてます。データベース管理者は、どのユーザーがどのデータにどのようなアクセス権を取得するかを決定できます。個々のセルレベルでも、データの読み取り、変更、削除へのアクセスを制限できます。このようなきめ細かなアクセス制御により、リレーショナルデータベースの安全性が非常に高くなります。

バックアップとディザスタリカバリ

ほとんどのリレーショナルデータベースにはインポート機能とエクスポート機能があるため、データバックアップをすばやく作成できます。最新のクラウドベースのリレーショナルデータベースは継続的なミラーリングを実行するため、消失したデータを数秒以内に復元できます。

コミュニティサポート

いくつかのリレーショナルデータベースのテクノロジーは、オープンソースで無料で使用できます。オープンソースデータベースでは、機能を継続的に改善および適応させる活発なコミュニティがあります。デベロッパーやデータエンジニアは、リレーショナルデータベースを非常に便利に使用できるようにするさまざまなツールやソフトウェアにアクセスできます。

リレーショナルデータベースの仕組み

リレーショナルデータベースは、アプリケーションコード内からデータテーブルを再編成することなく、アプリケーションがデータにアクセスし、さまざまな方法でデータを再構成できる環境を提供することで機能します。以下に、リレーショナルデータベースシステムの主な機能をいくつか示します。

データモデル

リレーショナルデータベースは、実世界のオブジェクトやエンティティとしばしば呼ばれる概念を表すテーブルで構成されています。テーブルの各列には、属性と呼ばれる特定の種類のデータが保持され、フィールドには属性の実際の値が格納されます。テーブルの各行と列は、1 つのオブジェクトまたはエンティティに関連する値のコレクションを表します。

テーブルの各行と列に、プライマリキーと呼ばれる一意の識別子を付けることができます。外部キーは、別の既存のテーブルのプライマリキーを参照して、論理的な接続を作成します。したがって、複数のテーブル間の行は、プライマリキーと外部キーのペアを使用して相互に関連付けられます。例えば、注文テーブルの各行には、顧客 ID を含む外部キーを含めることができます。この外部キーは、顧客に関するすべての情報を含む顧客テーブル内の行を識別します。

SQL

SQL (構造化クエリ言語) が、リレーショナルデータベースと通信するための主要なインターフェイスとなります。1986 年に SQL は米国国家規格協会 (ANSI) の標準となりました。一般的なリレーショナルデータベースエンジンはすべて、標準の ANSI SQL をサポートしています。これを使用して、データの更新、削除、または保存、データサブセットの取得、およびリレーショナルデータベースのあらゆる側面の管理を行うことができます。

SQL はステートメントに一般的な英語のキーワードが使用されているため、習得が非常に簡単です。また、さまざまなプログラミング言語とうまく統合できます。例えば、Java プログラミング言語に SQL クエリを埋め込んで、主要な SQL データベースシステムで高性能なデータ処理アプリケーションを構築できます。

トランザクション

リレーショナルデータベースのトランザクションとは、一連のオペレーションとして実行され、単一の論理的な作業単位を形成する 1 つ以上の SQL ステートメントです。トランザクションは、「全か無か」という命題です。つまり、トランザクション全体が 1 つの単位として完了しなければならないということです。リレーショナルデータベース管理システムがトランザクションのどの部分も完了できない場合、個々のコンポーネントは実行されません。リレーショナル モデルの用語では、トランザクションは「コミット」または「ロールバック」となります。データベース管理システムは、すべてのトランザクションを、他のトランザクションとは独立して、一貫性と信頼性をもって処理します。

ACID 準拠

すべてのリレーショナルデータベーストランザクションは、データの完全性を確保するために、ACID 準拠準拠している必要があります。つまり、原子性で一貫性があり、分離性と耐久性が必要です。

原子性
原子性では、トランザクション全体が正常に実行される必要があります。トランザクションの一部が失敗すると、その時点まで行われた変更はすべてロールバックされます。

整合性
整合性により、トランザクションの一部としてリレーショナルデータベースに書き込まれたデータが、定義されているすべてのルールと制約 (制限、カスケード、トリガーなど) に従います。

分離
分離には、各トランザクションがそれ自体独立している必要があります。複数のユーザーがリレーショナルデータベースのデータを同時に変更しようとすると、同時実行制御のメカニズムにより、互いの変更が上書きされるのを防ぎます。

耐久性
耐久性 により、トランザクションが正常に完了した後、リレーショナルデータベースに加えられたすべての変更が永続的な状態となります。

データベースにはどのような種類がありますか

特定のデータモデルの柔軟性とスケーラビリティを最適化するように設計されたデータベースには、さまざまなタイプがあります。これらのデータベースタイプには次のものが含まれます。

  • リレーショナル:データは、個々のレコードの行とレコードに関連する属性またはデータポイントを格納する列を使用して表形式で格納されます。
  • キーバリュー: データは、各項目にキーと値を持つディクショナリ形式で格納されます。
  • ドキュメント:データは、JSON、XML、または半構造化データ用の別の形式を使用してドキュメントとして格納されます。
  • グラフ:データは、ノード、これらのノード間の関係を定義するエッジ、および個々のデータポイントを格納するプロパティを使用してナレッジグラフとして保存されます。

リレーショナルデータベースと非リレーショナルデータベースの違いは何ですか

リレーショナルデータベースと非リレーショナル (NoSQL とも呼ばれる) データベースの違いは、それらに含まれるデータの構造です。リレーショナルデータベースモデルでは、データがテーブル、インデックス、およびビューに編成されます。この表形式の構造により、SQL などのクエリ言語を使用して関連データを簡単に作成、読み取り、変更、削除できます。各行の構造は同じで、スプレッドシートとほとんど同じです。

非リレーショナルデータベースでは、表形式のデータ構造は使用されません。代わりに、データはキーと値のペア、JSON、グラフ、またはその他のほぼすべてのタイプのデータ構造として保存できます。多くの非リレーショナルデータベースは、データが SQL を必要としない方法で保存およびクエリされるため、NoSQL データベースとも呼ばれます。

非リレーショナルデータベース (NoSQL データベース) は、特定のデータ モデル専用に設計されており、モダンアプリケーションを構築するための柔軟なスキーマを備えています。開発、機能性、パフォーマンスを大規模かつ容易に実現できるという点で広く評価されています。相違点は次のとおりです。

データストレージメカニズム

リレーショナルデータベースは、構造化されたデータをルールベースで行と列に格納します。逆に、NoSQL データベースでは、個々のデータ要素が別々のファイルに格納されます。

柔軟な構造

リレーショナルデータベースでは、データが表形式で保存され、データの種類とテーブルのリレーションシップに関する厳格なルールに従います。非リレーショナルデータベースは構造化データを必要としないため、柔軟性が高くなります。これらを使用して、ファイル、動画、その他の非構造化コンテンツを保存できます。

データの完全性メカニズム

リレーショナルデータベースモデルは厳密な ACID 特性に従います。従来の非リレーショナルデータベースは、より柔軟な BASE (基本利用可能、ソフトステート、結果整合性) モデルを提供します。可用性は保証されますが、強固な一貫性は保証されません。データベースの状態は時間の経過とともに変化することがあり、最終的には一貫性が保たれます。最新の非リレーショナルデータベースは、ACID、強固な一貫性、高可用性なども提供します。

リレーショナルデータベースを選択する際に注意すべき点

リレーショナルデータベースのユースケースは、保存されているデータの種類と量、およびアクセスに必要なパフォーマンスのレベルによって異なります。そのため、Amazon Aurora、Oracle、Microsoft SQL Server から MySQL や PostgreSQL まで、さまざまなリレーショナルデータベースエンジンが開発されており、それぞれに長所と短所があります。

リレーショナルデータベースを選択する際に重要なことは、まずサポートするマネージドクラウドサービスプロバイダーが必要かどうかを検討することです。Amazon Relational Database Service (RDS) は、最も一般的なリレーショナルデータベースのプロビジョニング、パッチ適用、バックアップ、およびその他の重要なタスクを処理する完全マネージド型のデータベースサービスです。つまり、メンテナンス要件を気にすることなく、ユースケースに合ったデータベースエンジンを選択できます。

AWS はお客様のリレーショナルデータベース管理システム要件をどのようにサポートしますか

Amazon Relational Database Service (Amazon RDS) はマネージドサービスを集めたものであり、クラウド内でリレーショナルデータベースを簡単にセットアップ、運用、およびスケールできるようにします。クラウドデータベースには、パフォーマンス、スケール、コスト効率といった、多くの利点があります。Amazon RDS のリレーショナルデータベースエンジンの例を以下に示します。

Amazon Aurora
Amazon Aurora は MySQL および PostgreSQL と互換性のあるリレーショナルデータベースエンジンです。ハイエンドな商用データベースのスピードと可用性、オープンソースデータベースのシンプルさとコスト効率性を兼ね備えています。Amazon Aurora は、最大 MySQL の 5 倍、PostgreSQL の 3 倍のスループットを、商用データベースの 10 分の 1 のコストで提供します。

Oracle
Amazon RDS for Oracle では、Oracle Database の複数のエディションを数分でデプロイできます。コスト効率が高く、ハードウェアのキャパシティーサイズを変更することもできます。既存の Oracle ライセンスを使用することも、時間単位でライセンス使用料を支払うこともできます。プロビジョニング、バックアップ、パッチ適用、モニタリング、ハードウェアのスケーリングといった複雑なデータベース管理タスクは RDS によって管理されるので、お客様はアプリケーション開発に集中できます。

Microsoft SQL Server
Amazon RDS for SQL Server は、SQL Server をクラウド内で容易に設定、運用、スケールできるサービスです。Express、Web、Standard、Enterprise など、複数のエディションの SQL Server をデプロイできます。Amazon RDS for SQL Server を利用すると、SQL Server のネイティブな機能に直接アクセスできるため、変更を加えることなく、アプリケーションとツールが正常に動作します。

MySQL
MySQL は、ウェブベースアプリケーションの大部分で使用されているオープンソースのリレーショナルデータベース管理システムです。Amazon RDS for MySQL では、これまでお使いの MySQL データベースエンジンと同じ機能を引き続き利用できます。つまり、既存のデータベースで現在既に使用しているコード、アプリケーション、およびツールツールに変更を加えることなく、Amazon RDS で使用できるということです。

PostgreSQL
PostgreSQL は、拡張性と標準準拠を重視するオープンソースのオブジェクトリレーショナルデータベースシステムです。Amazon RDS for PostgreSQL は、PostgreSQL ソフトウェアのインストール、ストレージ管理、アップグレードなど、優先度が低く時間のかかるデータベース管理タスクを担っています。数分以内にデプロイして開始できます。

MariaDB
MariaDB は、MySQL のフォークである MySQL 互換のデータベースエンジンです。これは、MySQL の元の開発者によって開発されました。Amazon RDS for MariaDB により、クラウド内で MariaDB のデプロイを簡単にセットアップ、運用、スケールができます。Amazon RDS を使用すると、コスト効率が良く、サイズ変更が可能なハードウェア容量で、スケーラブルな MariaDB データベースを数分でデプロイできます。

無料アカウントを作成して、AWS のリレーショナルデータベースを使い始めましょう。

Amazon Aurora とそのイノベーションについての詳細
グローバル規模での耐障害性を実現する Amazon Aurora HA & DR デザインパターン