조인join

조인join (rev. 1.4)

조인 join 연산
기호 ⨝

관계대수relational_algebra 연산 중 하나?

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


아래 분류 sections 여러곳을 참고하여서 체계적이지 않음, 나중에 다시 체계적으로 분류

1. 내부조인 inner join

내부조인inner_join

2. 외부조인 outer join

외부조인outer_join

left outer join
right outer join
full outer join

3. 상호조인 cross join

상호조인 cross join

4. 자체조인 self join

자체조인 self join

5. cartesian product

6. equi join


7. non-equi join


8. 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개론: 여러 테이블에 대한 조인 검색
}

9. 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