DB
join - 데이터 집합 레벨 변화
KingBini
2024. 4. 25. 14:51
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(중복) 레벨을 따라가는 테이블이 결과적으로 중복된 레벨을 가지게 된다. 따라서 조인 후에도 유니크 레벨을 유지하려면 조인 컬럼을 적절하게 선택하는 것이 중요하다.