inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

데이터 분석 SQL Fundamentals

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

1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?

130

작성자 없음

작성한 질문수 0

0

테이블을 열어서 봤을 때 on에서 서로 연결할 키들의 중복들이 많으면 이 테이블은 M이고

유니크하면 1이 된다 라고 이해하면 될까요?

그래서

emp_salary_hist,

emp_dept_hist,

emp는 m이고

dept는

1 로 이해 했는데 맞게 이해한 건지 궁금합니다.

감사합니다.

 

 

sql postgresql dbms/rdbms

답변 2

0

권 철민

안녕하십니까,

  1. 1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?

=> 직접 확인이 어느 레벨인지 까지는 잘 모르겠지만, 테이블의 group by나 count를 하는 것을 직접 확인이라고 한다면,

연결할 key로 테이블에 Primary key가 잡혀 있으면 테이블을 직접 확인하지 않고 해당 primary key로 1인지 M인지 판단할 수 있습니다. 가려 emp의 pk가 empno이고 emp_salary_hist의 pk가 empno+ fromdate 라면 pk만 가지고도 emp와 emp_salary_hist는 empno로 1:M인 것을 확인 할 수 있습니다.

  1. 테이블을 열어서 봤을 때 on에서 서로 연결할 키들의 중복들이 많으면 이 테이블은 M이고

    유니크하면 1이 된다 라고 이해하면 될까요?

=> 네 맞습니다.

 

  1. 그래서

    emp_salary_hist,

    emp_dept_hist,

    emp는 m이고

    dept는

    1 로 이해 했는데 맞게 이해한 건지 궁금합니다.

=> 음, 질문을 제대로 이해하지 못했습니다만, 테이블별로 정리해서 말씀드리자면

emp와 emp_salary_hist는 empno로 1:M 입니다. emp와 emp_dept_hist는 empno로 1:M이며, dept와 emp_dept_hist는 마찬가지로 deptno로 1:M 입니다. 그리고 dept와 emp는 deptno로 1:M 입니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

Yellow C.a.r.d님, 테이블의 관계를 파악하는 방법에 대한 질문 주셨네요.

1:M 관계와 같은 관계 유형을 파악하기 위해 테이블을 직접 확인하는 것이 중요합니다. 테이블의 각 키 값이 얼마나 중복되는지를 확인함으로써 테이블이 1인지 M인지를 이해할 수 있습니다. 즉, emp_salary_histemp_dept_hist 같은 테이블 내에서 특정 열이 여러 번 중복된다면, 이는 해당 열을 기준으로 M에 해당하는 것으로 볼 수 있습니다. 반면, 중복이 없는 열이라면 이는 1로 간주할 수 있습니다.

기본적으로, 테이블 간의 관계는 각 테이블의 기본 키(primary key)와 외래 키(foreign key)를 통해 정의됩니다. 예를 들어, dept 테이블의 경우 중복이 없으므로 1이라고 볼 수 있습니다. 따라서 여러 직원(emp)은 하나의 부서(dept)에 속할 수 있어, 이는 명확한 M:1 관계를 나타냅니다.

관련된 질문과 답변을 추가로 확인하고 싶다면 아래의 링크들을 참고하시면 도움이 될 것입니다:

  1. 집합 레벨 관련 질문 입니다
  2. 다중 조인시 집합의 레벨
  3. 1:M 관련 질문

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

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

0

49

2

date_part

0

54

2

lag/lead offset 관련 질문

0

54

2

join 관련 질문 (inner join, left join)

1

97

2

배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?

0

88

2

Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다

0

51

2

rollup시 null값 매출 라벨링

0

52

2

10. 조인 실습 - 02 관련 질문

0

58

1

조인실습03 - join의 pk-fk join

0

106

2

조인실습03 - join의 pk-fk join

0

67

2

(공유)맥, 스키마 import

0

81

2

sql 입문자인데, 이 강의와 sql 코딩테스트와 연관이 있을까요?

0

136

2

안녕하세요. 튜닝핵심가이드강의 관련해서 여쭤보고 싶어서 남깁니다.

0

89

1

섹션5 Group by 실습-01 강의 예제 질문

0

115

2

섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 예제 질문

0

122

2

섹션2 조인 실습 01 강의 질문

0

132

2

lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다.

0

124

1

Dbeaver오류

0

628

2

직원 별 가장 높은 매출

0

117

1

강의순서대로 실습코드순알려주세요.

0

132

1

m:n inner join일 경우 cross조인과 동일하게 동작되는건가요?

0

127

1

rollup

0

88

2

Dbeaver에 접속해도 postgressql이 네비게이터에 안보입니다.

0

352

2

제발...오류가 계속 납니다

0

234

2