リレーショナル データベースとも呼ばれる SQL データベースは、行と列からなる高度に構造化されたテーブルにデータを保存して整理するシステムです。これらのデータベースは、データの読み取りと書き込みを行うための構造化クエリ言語(SQL)を用意しており、リレーショナル データベース管理システム(RDBMS)に分類されます。
SQL ステートメントは、テーブル構造の作成や更新、データの読み取りや書き込み、ユーザー権限の管理、管理タスクの実行に使用されます。たとえば、CREATE ステートメントはテーブルの作成に使用し、INSERT ステートメントはテーブルに新しい行を追加し、SELECT ステートメントはデータベース クエリを実行します。構造的な変更や管理上の変更を行うステートメントは、通常、ソフトウェア開発者や管理者専用で、読み取り / 書き込み操作はエンドユーザー アプリケーションによって実行されます。
リレーショナル データベースは、複数のテーブルにわたって情報をリンクする機能を維持します。この形式により、テーブル内のさまざまな列やデータポイント間の関係についての分析情報を簡単かつ速やかに取得できます。リレーショナル データベースでは、特定の列のインデックスを作成して検索を高速化できます。
たとえば、医療機関では、患者情報の行を含むテーブルを維持している場合があります。各行が 1 人の患者であり、列には患者の名前、保険情報、連絡先情報などのデータポイントが含まれます。来店情報を格納する 2 つ目のテーブルが存在する場合があります。リレーショナル データベースでは、各行に一意の ID を使用して、リンクされた患者情報を 2 つのテーブルで保持します。これにより、各患者の来院を速やかに検索できます。
AlloyDB、 Cloud SQL、 Spanner など、Google Cloud の SQL データベースを無料トライアルにご登録ください。
SQL(構造化クエリ言語)は、リレーショナル データベースでデータを保存、取得、管理するために使用されるプログラミング言語です。SQL ステートメントは英語に似ており、ソフトウェア開発者、データ アナリスト、その他の実務担当者が利用できます。
企業が SQL データベースを選ぶ理由は次のとおりです。
ソフトウェア アプリケーションの構築に使用される SQL データベース エンジン(プロダクト)は数多くあります。最も人気があるものには、PostgreSQL、MySQL、SQL Server、Oracle などがあります。オープンソースのデータベース エンジンもあれば、商用のデータベース エンジンもあります。
PostgreSQL は、エンタープライズ レベルのパフォーマンスを目的として設計されたオープンソースのオブジェクト リレーショナル データベース(ORDBMS)であり、その信頼性と堅牢な機能で評価されています。開発の歴史が長く SQL を使用していることから、世界で最も人気のあるオープンソース データベースの一つとなっています。
デフォルトの手続き型言語は pgSQL(PL/pgSQL)の拡張機能であり、標準のディストリビューションには Tcl、Perl、Python の手続き型言語拡張機能が含まれています(PL/Tcl、PL/Perl、PL/Python と表記)。拡張機能では、Java、Ruby、C、C++、Delphi、JavaScript などの多くの言語がサポートされています。
詳細な比較については、PostgreSQL と SQL の比較ガイドをご覧ください。
MySQL は、1995 年に開発された人気のあるオープンソースのリレーショナル データベースで、現在は Oracle がスポンサーとなっています。SQL クエリをサポートしており、グラフィカル ユーザー インターフェース(GUI)またはコマンドラインから管理できます。
MySQL は物理マシンに手動でデプロイすることや、クラウド サービス プロバイダを通じてデプロイすることが可能です。データベースのメンテナンスの負担を軽減するために、フルマネージド サービスを選択する企業が増えています。
SQL Server は、SQL クエリを実行する Microsoft 所有のデータベースです。PostgreSQL と SQL Server の違いについて詳しく見ていきましょう。
一般的に使用されている非リレーショナル データベース エンジンは数多くあり、その多くは非表形式でデータを保存します。その一部は SQL に似たクエリをサポートしているため、「SQL だけではない」という意味の「NoSQL」という用語を生み出しました。
アプリケーションによって非リレーショナル NoSQL データベースを使用する場合や、リレーショナル SQL データベースを使用する場合があるのはなぜでしょうか。適切なデータベースの選択は、多くの場合、ユースケースに左右されます。SQL と NoSQL の使い分け
SQL データベースは、構造化されたリレーショナル データや複雑なクエリの管理に優れています。SQL データベースは ACID に準拠しているため、データが高度に構造化されたトランザクション情報に適しています。たとえば、販売注文は、すべての注文に同じ列が含まれ整合性が重要であるため、SQL データベースに適しています。
これに対して、NoSQL データベースは非表形式でデータを保存します。データは、ドキュメント、Key-Value ペア、グラフなど、リレーショナル モデルに適さない別の形式になっている可能性があります。たとえば、ページごとに構造が異なることがあるため、ウェブサイトはドキュメント データベースに適しています。
SQL のユースケースの例:
SQL データベースとは異なり、NoSQL データベースは複雑なデータの関係や広範なインデックス管理を行う必要がないため、通常はスケーラビリティが高く、安定したパフォーマンスを保ちます。通常、NoSQL データベースは、スケールアウト アーキテクチャで実装され、追加の容量が必要になったときに、データベースが自動的にノードを追加できます。
こうした NoSQL データベースの特性は、大規模で頻繁なデータ変更を必要とするアプリケーションに最適です。データベースが複雑なデータ関係を維持する必要がないため、ノードを追加してもクエリのパフォーマンスにはほとんど影響しません。
NoSQL の一般的な用途は次のとおりです。
NoSQL データベースの詳細を確認する。