Written on
·
303
0
강의중 1:M 조인시 결과집합은 M의 집합레벨을 그대로 유지한다는 말이 이해가 안되서
검색해 보았는데요
즉 집합의 레벨 변경이라고 설명드리는 부분은 해당 집합의 유일성이 최초에는 특정 컬럼(주로 pk 컬럼 또는 조인 연결컬럼)으로 어떻게 되어 있고, 이들 집합이 연산(조인, group by, 기타 데이터 연결)의 수행 결과 어떻게 유일성이 변화되는지를 의미하는 것입니다.
라는 답변을 달아주신걸 봤습니다.
EMP DEPT를 조인했을시 EMP와 DEPT가 M:1관계이기 때문에
EMP의 집합레벨 즉 EMPNO를 PK로 하는 집합레벨을 유지한다고 하시는것 같은데요
추가적으로 DEPT_HIST를 조인했을때는 EMP,DEPT와 HIST 테이블이 1:M 이고
EMPNO,DEPTNO,FROMDATE를 PK로 하는 집합레벨을 유지한다는 뜻인가요?
아니라면 EMP,DEPT중 어느 테이블과의 관계를 따져 집합레벨을 결정하게 되는지 알려주시면 감사하겠습니다.
Answer 1
0
안녕하십니까,
EMP DEPT를 조인했을시 EMP와 DEPT가 M:1관계이기 때문에
EMP의 집합레벨 즉 EMPNO를 PK로 하는 집합레벨을 유지한다고 하시는것 같은데요
=> 네 맞습니다.
그리고,
조인 키 컬럼으로 1: M 관계가 되는 테이블들의 조인시 조인 결과는 M이 되는 집합 레벨을 그대로 유지합니다.
그래서 EMP->EMP_DEPT_HIST->DETP를 조인한다고 하면 먼저 EMP->EMP_DEPT 를 조인하면 조인키인 EMPNO로 1:M 이기 때문에 조인 결과는 EMP_DEPT와 동일한 집합레벨을 유지합니다. 이 조인 결과와(즉 EMP_DEPT_HIST와 동일한 집합레벨인) DEPT를 조인키인 DEPTNO로 조인하면 M:1 이기 때문에 최종 조인 결과 역시 EMP_DEPT_HIST와 동일한 집합 레벨이 만들어지게 됩니다.
만약 DEPT->EMP->EMP_DETP_HIST 순으로 조인하더라도 결과는 마찬가지 입니다.
DEPT->EMP는 조인키인 DEPTNO로 1:M이므로 조인 결과는 EMP 집합레벨과 동일하며, 다시 이 조인 결과를 EMP_DEPT_HIST와 조인하면 조인키인 EMPNO로 1:M이 되므로 최종 조인 결과는 EMP_DEPT_HIST와 동일한 집합 레벨이 됩니다.
감사합니다.