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

RDBMSを使う大きなメリットの1つは、”参照整合性 “です。 参照整合性とは、データの正確性と一貫性のことです。 このデータの整合性は、これらの主キーと外部キーを使用することによって達成されます。

参照整合性は、”制約 “によってデータの整合性を保つ。 制約とは、まずメインテーブルの主レコードを削除しないと関連レコードが削除されないようにすることで、データの正確性を強制する規則である。 主キーと外部キーの関係が適切に追加されている場合、まず他のテーブルから関連レコードを削除せずに主レコードを削除しようとすると、関連レコードが削除されるまでトランザクションがブロックされます。 これにより、メインテーブルの主レコードをもはや持たないテーブルの参照レコードである「孤児レコード」と呼ばれるものを防ぐことができます。

参照整合性が強制する 3 つのルールは次のとおりです。 外部キーは対応する主キーを持たなければならない。 (

2. 主テーブルのレコードが削除されると、主キーを参照しているすべての関連レコードも削除されなければなりません。 これは通常、カスケード削除を使用して達成されます。 これは、カスケード更新を使用することで達成できます。

関係データベース管理システム内のデータのクエリは、関係データベースに格納されたデータを管理するために設計された堅牢な言語である構造化照会言語 (SQL) を使用することで行われます。 SQL の機能により、リレーショナル データベース システムは、強力なトランザクション機能、データ マイニング、および複雑なレポート作成を必要とするあらゆるアプリケーションの最初の選択肢となるのです。

このSQLステートメントは、EmployeeId = 1の1人の従業員のすべての売上レコードがどのように取得されるかの結果セットを取得することを実証しています。

SELECT * FROM Employees

JOIN Sales ON Employees.EmployeeId = SALES.EmployeeId

WHERE EmployeeId = 1

次のSQL文は、複数のテーブルで結合を実装するクエリの例です。 この場合、SQLクエリはCustomersテーブルから従業員情報、販売情報、顧客情報のすべてを取得しています。

SELECT * FROM Employees

JOIN Sales ON Employees.EmployeeId = SALES.EmployeeId

JOIN Customers ON Customers.CustomerId = SALES.CustomerId

WHERE EmployeeId = 1

関係データベースにも「インデックス作成」と呼ばれる機能が備わっています。 データベースのインデックスとは、データの検索速度を向上させるデータ構造のことです。 インデックスは一般的に、テーブルへの問い合わせや結合に日常的に使用されるデータフィールドに追加されます。 上記の SQL 文では EmployeeId と CompanyId がこの種の最適化の候補となります。

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

非リレーショナル データベース(NoSQL データベース)は、データを保存します。 しかし、リレーショナル データベースとは異なり、テーブル、行、主キー、外部キーは存在しません。 その代わり、非リレーショナル データベースは、保存されるデータの種類の特定の要件に最適化されたストレージ モデルを使用します。

より人気のある NoSQL データベースには、MongoDB、Apache Cassandra、Redis、Couchbase、Apache HBase などの種類があります。

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

ドキュメントデータストアは、XML、YAML、JSON、BSON、プレーンテキストなどさまざまな方法でエンコードできる、通常JSONドキュメントの形式で保存される「ドキュメント」と呼ばれるエンティティ内の、名前付き文字列フィールドとオブジェクトデータ値のセットを管理します。 ドキュメント内のフィールドは公開され、アプリケーションはフィールド値を使用してデータをクエリおよびフィルタリングできます。

ドキュメント ストアは、すべてのドキュメントが同一のデータ構造を維持する必要がないため、非常に大きな柔軟性を提供します。 この柔軟性は、組織の要件が変化したときにどのように活用されるかを容易に理解できます。

列指向(または列指向)データストア

列指向データストアはデータを列に整理し、概念的にはリレーショナル データベースに類似しています。 列指向データベースの真の利点は、データを格納する列指向のアプローチから来る、疎なデータを構造化する非正規化アプローチにあります。

Key-value store

これは NoSQL データベースの中で最も複雑ではなく、その名前が示すように、キーバリュー ストアは単にオブジェクト内に含まれるキーバリュー ペアのコレクションです。

ドキュメント ストア

ドキュメント ストアは、キーバリュー ストアよりも少し複雑です。 彼らはスキーマで指定された特定のドキュメント構造を想定していない。 ドキュメント ストアは日常的なドキュメントをそのまま保存するように設計されており、複雑なクエリを可能にします。

MongoDB と CouchDB は両方ともドキュメント ストアの例です。

グラフ データベース

最後に、最も複雑な非リレーショナル データベース タイプがあります。 これは、エンティティ間の関係を効率的に格納するように設計されています。 購買システムや製造システム、カタログの参照など、データが大きく相互接続している場合、グラフ データベースは良いソリューションです。

グラフ NoSQL データベースの可能性は無限であり、収集するデータがますます相互接続しているため、グラフ データベースは、依然として優勢であるリレーショナル データベースも含めて、今後も普及し続けることでしょう。 ORM のコンセプトは、好みのプログラミング言語を使ってクエリを書くことができることです。 より一般的な ORM には、Java、Javascript、.NET、PHP があります。

要約すると、

リレーショナル データベースについて知っておくべきこと:

  • 構造化データで動作することです。

  • システム内の関係には制約があり、高いレベルのデータ整合性を促進します。

  • 無限のインデックス作成機能があり、その結果クエリの応答時間が速くなります。

  • データ分析およびレポート作成のための複雑な SQL クエリを作成することができます。

  • モデルはデータ層でビジネス ルールを保証および実施し、非関連データベースにはないデータ整合性のレベルを追加できます。

  • それらはテーブルと行指向です。

  • それらはデータを形成し操作するために SQL (structured query language) を使用しており、これは非常に強力です。 MySql、Oracle、Sqlite、Postgres、および MS-SQL。 NoSQLデータベースの例。

  • SQL データベースは、高負荷のトランザクション型アプリケーションに最も適しています。

非リレーショナル/NoSQL データベース:

  • 多量のデータを少ない構造で保存する能力があります。

  • ビジネス要件の変化に対応する拡張性と柔軟性を提供します。

  • スキーマフリーまたはスキーマオンリードのオプションを提供します。

  • 非構造化データを含むあらゆるタイプのデータ「ビッグデータ」を取り込む能力を備えています。

  • NoSQL または非リレーショナル データベースの例:MongoDB、Apache Cassandra、Redis、Couchbase、Apache HBase。 NoSQL は、構造の制約がほとんどない柔軟なデータ ストレージに最適です。

  • スキーマを変更しなくても、あらゆる構造のデータを簡単に保存および結合できる、柔軟なデータ モデルを提供しています。 この質問に対する答えは、この記事の冒頭に戻ることができます。 これら 2 つの非常に異なるタイプのデータベースは、それぞれ同じように有用ですが、対照的な理由と使用例があります。 一方が他方より優れているというわけではなく、リレーショナルデータベースとノンリレーショナルデータベースの両方がその役割を担っているのです。

    要するに、唯一の正しい答えというものはないのです。 プロジェクトに最適なデータベースの種類を決定する最善の方法は、組織のニーズと達成すべきアプリケーション機能を分析することです。

コメントを残す

メールアドレスが公開されることはありません。