データベース比較とERモデル(テーブルレコードの関係)

前回の記事「データベースの概要と一般的なデータベースの紹介」では、データベースのランキングと一般的なデータベースについて言及し、次にデータベースのトップ 10 について説明しました。
1. リレーショナル: リレーショナル
2. ドキュメント: ドキュメント ベース
3. キー値:キーと値のペアに基づく
4.検索エンジン: 検索エンジンに基づく
ここに画像の説明を挿入

1. リレーショナル データベース (RDBMS)

1.物質

リレーショナル データベースは最も古いタイプのデータベースです. RDBMS モデルは、複雑なデータ構造を単純なバイナリ リレーションシップ(つまり、2 次元テーブルの形式)に分解し、データを行テーブルになり、テーブルの集まりがデータベースを構成します.
ここに画像の説明を挿入
テーブル内のレコードとテーブルの間には関係があり、実際にはさまざまなエンティティ間のさまざまな接続がリレーショナルモデル
で表現されます.リレーショナルデータベースはデータベースです.リレーショナル モデルに基づいており、SQL はリレーショナル データベースのクエリ言語です。

2.利点

  • 複雑なクエリ: SQL ステートメントを使用して、1 つのテーブルと複数のテーブルの間の非常に複雑なデータ クエリを容易にすることができます。
  • トランザクションサポート:セキュリティ性能の高いデータアクセス要件を実現可能

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

1 はじめに

非リレーショナル データベースは、従来のリレーショナル データベース機能の去勢バージョンと見なすことができ、キーと値のペアに基づいてデータを格納し、SQL 層で解析する必要がありません。パフォーマンスは非常に高いです同時に、一般的に使用されていない機能を削減することで、パフォーマンスがさらに向上します.
現在、主流の非リレーショナルデータベースのほとんどは基本的に無料です.

2.NoSQLタイプ

SQL と比較すると、NoSQL は一般に、キー値型、ドキュメント型、検索エンジン、リスト上の列ストレージ、およびグラフ データベースを含む非リレーショナル データベースを指します。これらのテクノロジーを含める場合は、NoSQL という用語のみを使用してください

2.1. キーバリューペアデータベース

Key-Value キー値の方法でデータを格納します.ここで、Key と Value は単純なオブジェクトまたは複雑なオブジェクトにすることができます.キーは一意の識別子として使用されます.利点は検索速度が速いことです,これはリレーショナル型よりも明らかに優れています.データベースの欠点は、リレーショナル データベースのように条件付きフィルタリング (WHERE など) を使用できないことです. データがどこにあるかわからない場合は、すべてのキーをトラバースする必要があり、多くの計算を消費します. . キー値データベースの一般的な使用シナリオは、
メモリキャッシュです。Redis は最も人気のあるキー値データベースです

2.2. 文書データベース

このタイプのデータベースは、XML や JSON などの形式のドキュメントを保存および取得できます。データベースでは、ドキュメントは情報を処理するための基本単位であり、ドキュメントはレコードに相当します。ドキュメント データベースに格納されているドキュメントは、キーと値のペア データベースに格納されている "値" に相当します. MongoDB は、最も一般的なドキュメント データベースです。その他、CouchDBなどがあります。

2.3. 検索エンジンデータベース

検索エンジン分野で適用されるデータ保存形式。検索エンジンは大量のデータをクロールし、特定の形式で保存して、検索中に最高のパフォーマンスを確保するためです。コア原則は、 「反転」
の典型的な製品です。 index": Solr、Elaticsearch、Splunk など。

2.4. カラム型データベース

行ベースのデータベースと比較して、Oracle、MySQL、SQL Server などのデータベースはすべて行ベースのストレージ (行ベース) を使用しますが、列ベースのデータベースは列に従ってデータベースにデータを格納します。システムの I/O を大幅に削減し、分散ファイルシステムに適している. 欠点は、機能が比較的限定されている.
代表的な製品: Hbase など.

2.5、グラフデータベース

グラフ データ構造は、エンティティ間の関係を格納するために使用されます。グラフデータベースの最も典型的な例はソーシャルネットワークにおける人々の関係性である.データモデルは主にノードとエッジ(関係性)によって実現され,その特徴は補助的な関係性の問題を効率的に解決できることである.代表的な製品:Neo4j
,インフォグリッドなど

3. まとめ

NoSQL は SQL を補完するのに適しています. 実際の開発では, 一部の要件では完全なリレーショナル データベース機能が提供されません.高性能で低コストの非リレーショナル データベースを使用する方が賢明です. 例:ログ収集、リーダーボード、タイマーなどの機能
NoSQのカテゴリは多いが、SQLの割合が多い ランキングによると、上位5つのうち4つがリレーショナルデータベースなので、SQLの習得は非常に必要

4. リレーショナル データベースの設計規則

  • リレーショナルデータベースの典型的な構造はデータテーブルであり、これらのデータテーブルの構成は構造化されています(Structured)
  • データをテーブルに入れ、次にテーブルをライブラリーに入れます
  • データベースには複数のテーブルが存在する可能性があり、各テーブルにはそれ自体を識別するための名前があり、一意であることを示します
  • テーブルには、Java や Python の「クラス」の設計と同様に、テーブルにデータを格納する方法を定義するいくつかの特性があります。

1. テーブル、レコード、フィールド

ER (エンティティ関係、エンティティ関係) モデルには、エンティティ セット、属性、関係セットの 3 つの主要な概念があります。

  • エンティティ セット (クラス) は、データベース内のテーブル (テーブル) に対応します。
  • エンティティ (インスタンス) は、レコード (レコード) とも呼ばれるデータベース テーブルの行 (行) に対応します。
  • 属性は、フィールドとも呼ばれるデータベース テーブルの列に対応します。
    ここに画像の説明を挿入

2. テーブル関係

2.1、1 対 1 の関係 (1 対 1)

1 対 1 でテーブルを作成できるため、実際にアプリケーションを開発することはあまりありません (
例:ユーザー テーブル(学籍番号、名前、携帯電話番号、ID カード番号、自宅住所、緊急連絡先) は、2 つのテーブル
に分割されます)。 2 つのテーブル: 2 つの各テーブルのレコードは 1 対 1 対応
基本情報テーブル(共通情報): 学生番号、名前、携帯電話番号、ID カード番号
ファイル情報テーブル(非共通情報): 学生番号、自宅住所、および緊急連絡
先 原則:

  • 一意の外部キー: メイン テーブルの主キーとセカンダリ テーブルの外部キー (一意) は、主キーと外部キーの関係を形成し、外部キーは一意です。
  • 外部キーは主キーです。主テーブルの主キーと副テーブルの主キーは、主キーと外部キーの関係を形成します。
    ここに画像の説明を挿入
2.2、1 対多の関係 (1 対多)

一般的なシナリオの例:顧客テーブルと注文テーブルカテゴリ テーブルと商品テーブル部門テーブルと従業員テーブル
など:

  • 従業員テーブル: 番号、名前、...、部署
  • 部門テーブル:番号、名前、紹介
    テーブル作成の原則:
    スレーブテーブルにフィールドを作成し(マルチパーティ)、そのフィールドがメインテーブルの主キーを指す外部キーとなる(ワンパーティ)
    ここに画像の説明を挿入
2.3、多対多の関係 (多対多)

多対多の関係を表すには、結合テーブルと呼ばれる 3 番目のテーブルを作成する必要があります。このテーブルは、多対多の関係を 2 つの 1 対多の関係に分割し、両方のテーブルの主キーを3 番目の表では、
たとえば次のようになります。

  • 画像情報テーブル: 画像 ID、サイズ、場所
  • 画像タグ テーブル: タグ ID、タグ名、プロファイル
  • ピクチャ ラベル テーブル: 1 つのピクチャに対して複数のラベルを選択でき、複数のピクチャで 1 つのラベルを選択できます
    ここに画像の説明を挿入
2.4. 自己参照

同じテーブルで、独自のフィールドを参照できます。
たとえば、従業員テーブル(従業員番号、名前、部門番号、上司番号)
従業員番号は、部下の従業員の上司番号でもある場合があります。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/The_girl_wait_me/article/details/124884124