join - 데이터 집합 레벨 변화
직원 테이블(emp)
| empno | name | deptno |
|---|---|---|
| 1 | Alice | 10 |
| 2 | Bob | 20 |
| 3 | Carol | 10 |
| 4 | Dave | 30 |
| 5 | Eve | 20 |
| - 직원 테이블 집합 레벨 : empno로 unique하며, deptno로 중복(M) 레벨이다. |
부서 테이블(dept)
| deptno | deptname |
|---|---|
| 10 | HR |
| 20 | IT |
| 30 | Sales |
| - dept 테이블 집합 레벨 : 기본키는 deptno임으로 유니크 레벨 이다. |
emp 테이블, dept 테이블 deptno로 조인
select
emp.empname,
dept.deptname
`from emp`
`join dept on emp.deptno = dept.deptno;`
| empno | name | deptno |
|---|---|---|
| 1 | Alice | 10 |
| 2 | Bob | 20 |
| 3 | Carol | 10 |
| 4 | Dave | 30 |
| 5 | Eve | 20 |
조인 컬럼 deptno 기준 emp, dept 관계는 M(중복):1(유니크) 관계
- 조인 시 M 테이블 기준으로 유니크레벨을 유지한다..
집합 레벨 변화
- 조인 시,
deptno가 M:1 관계로 변경됩니다.emp테이블은 유니크 레벨인empno로 유지되지만,dept테이블은 M:1 관계에서 중복(M) 레벨로 변환한다. - 따라서, 조인 결과는 M 테이블의 고유성(유니크) 레벨을 따른다.
정리
조인 결과, M:1 관계에서 M(중복) 레벨을 따라가는 테이블이 결과적으로 중복된 레벨을 가지게 된다. 따라서 조인 후에도 유니크 레벨을 유지하려면 조인 컬럼을 적절하게 선택하는 것이 중요하다.