조인join

조인 join 연산
기호 ⨝

관계대수relational_algebra 연산 중 하나?

대충, 테이블table/릴레이션relation이 여러 개 있을 때
여러 테이블에 흩어져 있는 정보 중에서
사용자가 필요한 정보만 가져와서 가상의 테이블처럼 만들어서 결과를 보여주는?

nested query를 single block query로 바꾸면, 거의 대부분 join 연산을 쓰게 된다.[1]

이건 연산 두 개로 분해 가능?
cartesian_product를 하고, 실렉트select를 한 것.[2]
R⨝CS = σC(R×S)


아래 분류 sections 여러곳을 참고하여서 체계적이지 않음, and 겹치는 것도 존재, 나중에 다시 tree 구조로 체계적으로 분류

1. 내부조인 inner join

내부조인inner_join

https://everything2.com/title/inner join
“also sometimes called "equi-joins" or "natural joins".”
ex. SELECT * FROM a INNER JOIN b ON a.field=b.field

2. 외부조인 outer join

외부조인outer_join

left outer join
left_outer_join
right outer join
right_outer_join
full outer join
full_outer_join

equijoin과 natural_join은, 다른 릴레이션relation에 matching하지 않는 튜플tuple들은 제외하는데,
outer join은...

https://everything2.com/title/outer join
ex. SELECT * FROM a LEFT JOIN b ON a.field=b.field

3. 상호조인 cross join

상호조인 cross join

chk: 이게 일반적인 join?

4. 자체조인 self join

자체조인 self join

5. cartesian product


결과의 차수degree는 (두 operand 테이블의 차수들)의 합,
결과의 카디널리티cardinality는 (두 operand 테이블의 카디널리티들)의 곱과 같다.


6. equi join

= 만으로.
이것은 superfluous한 속성attribute(s)를 남긴다. 그걸 제외한 것이 natural join. (황인준)

7. non-equi join


8. 세타 조인 theta join

equijoin이 =만으로...라면,
이것은 =,<,≤,>,≥,≠
여섯가지 ... (더 일반적?) - 정확히 rewrite. (황인준)

9. 자연 조인 natural join ⨝N


equijoin에서 중복된 것을 삭제한?? chk

기호 *
equijoin 후 superfluous attribute(s)를 제거하는 join. (황인준)

10. DB개론에서

조인속성join_attribute을 이용해, 두 릴레이션relation을 조합하여 하나의 결과 릴레이션을 구성.
join attribute란: 두 relation이 공통으로 가지고 있는 속성attribute.

binary operator: (relation, relation) ↦ relation


자연 조인 natural join ⨝N
가장 많이 사용되는 조인.
자연조인natural_join


세타 조인 theta join ⨝AθB
자연 조인보다 더 일반화된 조인.
표현
릴레이션1 ⨝AθB 릴레이션2
에서, AθB는 조인 조건으로, A는 릴레이션1의 속성attribute이고 B는 릴레이션2의 속성. θ는 비교연산자(>, ≥, <, ≤, =, ≠). 비교 연산이 가능하도록, A와 B는 같은 도메인domain으로 정의되어야 함.
θ 연산자가 =인 경우, 특별히 동일 조인(equi-join)이라 함.
세타조인theta_join

세미 조인과 외부 조인:
{
세미조인semijoin : ⋉ ⋊
조인 속성으로 프로젝트project릴레이션relation을 이용해 조인한다.
//aka semi-join semi_join
외부조인outer_join
결과 릴레이션에 조인 연산에서 제외되었던 모든 tuple을 포함시킨다.
left outer join ⟕
right outer join ⟖
full outer join ⟗
https://everything2.com/title/outer join
http://foldoc.org/outer join


inner_join (also sometimes called "equi-joins" or "natural joins")
https://everything2.com/title/inner join
http://foldoc.org/inner join

조인검색
{
조인검색 : 여러 개의 테이블table을 연결하여 데이터를 검색하는 것.
조인검색을 하려면 테이블을 연결해주는 속성attribute이 필요하고 이 속성을 조인속성이라 함.
조인속성의 이름은 (테이블마다?) 달라도 되지만 도메인domain은 반드시 같아야 함.
일반적으로 테이블의 관계를 나타내는 외래키foreign_key를 조인속성으로 이용한다고. (이유 tbw)
Ref. [https]DB개론: 여러 테이블에 대한 조인 검색
}

11. Oracle 11g의 경우 - '예제로 배우는 ORACLE 11g' 위키북스에서


cartesian product - https://wikidocs.net/3957
이건 VG:곱집합,product_set과 마찬가지 idea.

equi join - https://wikidocs.net/3958
두 테이블에 공통으로 존재하는 열column의 값이 일치되는 행row을 연결하여 결과를 생성하는.

non-equi join 비등가조인 - https://wikidocs.net/3959
동일 column 없이 다른 조건을 써서.

self join - https://wikidocs.net/3960
자기 자신과 조인.

outer join - https://wikidocs.net/3961
조인 조건을 만족하지 않는 행row도 나타내는.
조인 조건을 만족하지 못하였어도 해당 행row을 나타내고 싶을 때 outer join을 사용.






Up: 관계데이터연산relationship_data_operation > 관계대수relational_algebra 관계연산 관계연산자 relational operation // <- DB개론 보고 관계대수relational_algebra 작성시 만든것, 나중에 cleanup


Wikiadmin
조인,join page mk?
{
번역할만한 단어가 있나?? meet랑 같이... Ndict:조인 미트 Ggl:조인 미트

2024-03-13
WpKo:격자_(순서론) 첫줄에선
조인,join 미트,meet
이음,join 만남,meet으로 번역함.



}

집합론,set_theory과 비교 tbw ... 집합,set 집합연산,set_operation
set operation
inner join intersection ∩
outer join union ∪
----
  • [1] KU황인준 2022-03-28 50:40
  • [2] KU황인준