関係代数

リレーショナルモデルを使用する場合、使用できる操作のグループは2つあります。それらの1つは関係代数です。

で作業するときリレーショナルモデル、使用できる操作の2つのグループがあります。

最初は呼ばれます関係代数、そしてそれは手続き型言語

これはSQLの基礎であり、SQLはリレーショナルデータベースを操作するための事実上の標準であるため、学ぶことは非常に重要です。

2番目は呼ばれます関係論理手続き型ではなく、宣言型言語。データベースソフトウェアに伝えないので、データベースとのやり取りの方法の根本的な違いです何をすべきか、あなたはそれを言うだけですあなたが欲しいもの、そしてそれを行う方法の詳細を整理させてください。

これは、プログラミング言語間の一般的な違いです。現代のフロントエンドでは、ReactでのDOMとの相互作用は宣言型であると言います。バニラJavaScriptを使用してDOMを変更するのは手続き型です。

のような言語データログQBEそしてQUELそのベースとして関係論理を持っています。 SQLが従うより実用的なアプローチと比較して、物事を行うためのはるかにニッチな方法だと思うので、これについては説明しませんが、必要に応じて見ることができます。

この紹介を踏まえて、続けましょう関係代数

2種類の操作があります。

  • 主な操作
  • 結合操作

関係代数の一次演算

主な操作は次のとおりです。

  • 連合2つのテーブルが同じ列と属性タイプ(ドメイン)を持っている限り、2つのテーブルからデータを取得し、タプルの合計を生成します。
  • 2つのテーブルが同じ列と属性タイプ(ドメイン)を持っている限り、最初のテーブルに含まれているが2番目のテーブルには含まれていないデータを取得し、タプルの違いを生成します。
  • デカルト積2つのテーブルからデータを取得し、属性値に基づいてそれらのデータを組み合わせた1つのテーブルを生成します。
  • 選択する特定の基準に基づいて、テーブルに含まれるタプル(行)の一部のみを抽出します。
  • 事業既存のテーブルの1つ以上の属性(列)のみを含む新しいテーブルを生成するには
  • 名前を変更属性の名前を変更するために使用され、複数のテーブルが異なるデータに対して同じ名前を持っている場合の競合を防ぐために使用されます

関係代数の結合演算

結合は、おそらく関係代数で実行できる最も強力な操作です。これらは主要な操作の上に構築されており、さまざまな関係(テーブル)に含まれるデータを相互に関連付けることができます。

注:DBMSでの実際の結合についてはすぐに説明しますが、これはほとんど理論です。

2つの主要な結合バージョンがあります。自然結合そしてシータ結合. All the other versions are extracted from those 2.

自然結合

自然結合2つのリレーション(テーブル)を相互に関連付け、属性の同じ値に基づいて新しいテーブルを作成します。

まず、同じ属性名(列)を持つ2つのリレーションが必要です。次に、リレーションAの属性の値がリレーションBの属性で一致しない場合、行は結果の一部ではなく、無視されます。

例:

関係A

従業員ID 名前
1 マーク
2 トニー
3 リック

関係B

マネージャー名 従業員ID
トッド 1
アルバート 2

自然結合を実行して、各従業員のボス名を取得できます。

従業員ID 名前 マネージャー名
1 マーク トッド
2 トニー アルバート

リレーションには共通の従業員ID属性名があるため、結果には2回ではなく、1回だけ表示されます。

リレーションBに対応するエントリがないため、リレーションAに存在する従業員#3のリックはこのテーブルに含まれていません。

シータ結合

シータ結合を使用すると、任意の基準に基づいて結合を実行し、自然結合のように等しいだけでなく、2つの異なる関係にある2つの列を比較できます。

2つのテーブルのデカルト積を実行し、必要な選択に基づいて結果をフィルタリングします。

等結合

等結合はシータ結合であり、選択は2つの異なるテーブルの属性値間の同等性に基づいて行われます。

自然結合との違いは、比較する属性名(列)を選択できることです。

結合については、SQLが導入されたときに詳しく説明するので、実際に使用できます。


その他のデータベースチュートリアル: