강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

SQL USER님의 프로필 이미지
SQL USER

작성한 질문수

데이터 분석 SQL Fundamentals

조인 개요 및 조인 시 데이터 집합 레벨의 변화 이해 - 01

'레벨 유지'의 의미에 대한 질문

작성

·

35

0

안녕하세요. 강의를 듣다보면, 집합 레벨의 변화에 대한 내용이 많이 나오는데요.

'1:m조인 시 결과집합은 m집합의 레벨을 그대로 유지'에서

'm집합의 레벨을 그대로 유지'한다는 의미를 아래 두 가지와 동격으로 이해해도 괜찮을까요?

= m집합 테이블의 '행 개수' 유지 --- (1)

= m 집합 테이블의 'pk의 unique 수' 유지 --- (2)

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

1:m 조인 후에도 m집합의 레벨을 유지한다는 의미는 행 개수나 건수를 유지한다는 의미가 아니고,

조인 후 결과 집합은 원래 m 집합에서 조인으로 사용되는 컬럼의 Unique 레벨을 그대로 따라간다는(유지한다는) 의미입니다.

가령 dept 테이블은 deptno로 1의 집합이고, emp 테이블은 deptno로 m인 집합입니다. dept와 emp를 조인 컬럼인 deptno로 조인을 하게 되면, 조인 후 생성되는 집합(조인 결과)은 m인 emp 테이블의 집합 레벨을 그대로 유지하게 됩니다(즉 deptno로 m 이자, empno로는 unique)

1:m 조인시에는 조인 컬럼으로 m에 해당하는 테이블은 집합 레벨(pk이든, 조인 컬럼이든)이 변경이 되지 않습니다.

하지만, 1:m 조인 시에는 결과가 조인 컬럼으로 m에 해당하는 테이블의 건수와 같지 않은 경우가 발생할 수도 있습니다(where 조건으로 filtering 한다면 당연히 같지 않지만, 조인 조건만 있고, where로 filtering 하는 경우는 없다고 가정하고)

  1. 나중에 outer 조인을 말씀 드릴텐데, 1에 해당하는 테이블에는 조인 컬럼으로 데이터가 있지만, m에 해당하는 테이블에 조인 컬럼으로 데이터가 없는 경우가 있을 때 outer join을 하면 조인이 되지 않는 1의 테이블 정보를 추출할 수 있어서 건수가 m 테이블에 맞지 않습니다.

     

  2. 흔하지는 않지만, 데이터 정합성을 잘못 맞춰서, m쪽에는 데이터가 있지만, 1쪽에는 데이터가 없는 경우가 있습니다(즉 emp 테이블에는 특정 deptno가 있지만, dept 테이블에는 해당 deptno가 없는 경우. 이런 경우는 정합성 오류이긴 합니다만 발생은 할 수가 있습니다). 그런 경우 건수가 m 테이블에 맞지 않습니다.

 

제가 실습 예제로 1:m 조인과 집합 레벨 보존은 많이 수행할 것입니다. 실습을 수행해 보시면 좀 더 명확히 이해 하실 수 있으실 겁니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. SQL USER님, 집합 레벨에 대한 질문을 해주셔서 감사합니다.

‘1:M 조인 시 결과집합은 M 집합의 레벨을 그대로 유지’라는 표현은 주로 다음과 같이 해석할 수 있습니다:

  1. M 집합 테이블의 ‘행 개수’ 유지: 여러 행들 중 M의 행 개수가 집합 레벨을 결정합니다. 따라서, 조인의 결과는 M 테이블의 행 개수가 영향을 끼치며, 이로 인해 집합의 유일성과 레벨이 M 테이블을 중심으로 형성됩니다.

  2. M 집합 테이블의 ‘PK의 unique 수’ 유지: 조인 결과는 PK(Primary Key)의 유일성을 보존하는 집합 레벨에 도달하게 됩니다. 즉, 조인 이후에도 M 테이블의 PK가 유일성을 유지하고, 이로 인해 최종 결과가 M 테이블의 집합 레벨을 따르게 됩니다.

아래에 관련된 비슷한 질문과 상세한 답변을 찾아보실 수 있는 링크들이 있습니다. 이를 통해 구체적인 이해를 돕고자 합니다:

  1. 집합 레벨 관련 질문 입니다
  2. “집합의 레벨”의 의미

위 자료들은 집합 레벨의 개념을 더 쉽게 이해할 수 있도록 도움을 줄 것입니다. 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

SQL USER님의 프로필 이미지
SQL USER

작성한 질문수

질문하기