[web] Database Join
1.Joinは
重複データを回避するために、RDBはデータを複数のテーブルに分けて記憶する.これらの分離されたデータから所望の結果を得るためには、複数のテーブルを組み合わせる必要がある.
[1] Cross Join (Cartisian Product)
前の行と後の行の表のすべての行を組み合わせて、特別な条件は必要ありません.
SELECT *
FROM STUDENT, PROFESSOR
[2] Inner Join前のテーブルと後のテーブルを組み合わせて、結合条件を満たす文のレコードのみを返します.すなわち、対等比較や範囲演算などの条件文を交差結合に追加します.
SELECT *
FROM STUDENT, PROFESSOR
WHERE STUDENT.SUBJECT = PROFESSOR.SUBJECT
[3] Natural Join前のテーブルと後のテーブルを組み合わせて、同じ名前のカラムに同じ値のみを返します.つまり、Inner Join条件文に同じカラム名条件を追加します.
# 만약 STUDENT, PROFESSOR의 공통 컬럼명이 SUBJECT일 경우 위에 예시와 동일합니다.
SELECT *
FROM STUDENT NATRUAL JOIN PROFESSOR
[4] Outer Join 内部結合は、共通のカラム名に基づいて結果セットを生成しますが、外部結合には条件文を満たさない行も表示されます.
2.Join動作原理
[1] Nested Loop Join
前のテーブルと後のテーブルのすべてのレコードを組み合わせます.これはネストされたループに似ています.前置表Loop*後行表Loop
[2] Sorted Merge Join
2つのテーブルを
[3] Hash Join
ハッシュ関数の結合を使用すると、ピアツーピア結合で非常にパフォーマンスが向上します.ただし、マージ操作によりパフォーマンスが低下します.
シードマージ(Seed Merge)は、他のソート操作があるため、範囲結合に理想的です.インデックスのないテーブルでインデックスが発生した場合は「ハッシュ結合」を選択しますが、インデックスがあってもハッシュ結合が頻繁に実行される場合があります.そのため、より大きなデータを処理する上で優位性があります.
Reference
この問題について([web] Database Join), 我々は、より多くの情報をここで見つけました https://velog.io/@youngmin-mo/database2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol