inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Phân tích dữ liệu SQL Fundamentals

Tổng quan về join và tìm hiểu những thay đổi về cấp độ tập dữ liệu khi join - 01

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

131

작성자 없음

0 câu hỏi đã được viết

0

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

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

그래서

emp_salary_hist,

emp_dept_hist,

emp는 m이고

dept는

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

감사합니다.

 

 

sql postgresql dbms/rdbms

Câu trả lời 2

0

dooleyz3525

안녕하십니까,

  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

communityai8509

안녕하세요, 인프런 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

53

2

date_part

0

55

2

lag/lead offset 관련 질문

0

55

2

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

1

100

2

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

0

89

2

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

0

53

2

rollup시 null값 매출 라벨링

0

54

2

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

0

59

1

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

0

108

2

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

0

68

2

(공유)맥, 스키마 import

0

81

2

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

0

137

2

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

0

91

1

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

0

117

2

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

0

124

2

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

0

133

2

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

0

127

1

Dbeaver오류

0

630

2

직원 별 가장 높은 매출

0

118

1

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

0

133

1

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

0

130

1

rollup

0

91

2

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

0

355

2

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

0

238

2