데이터 집합레벨 이해의 중요성
290
작성한 질문수 52
강의를 들으면서 데이터 집합 레벨 개념을 처음 알게 되었고, join의 결과가 어떤 집합의 레벨을 갖게 되는지까지 이해를 하였습니다. 그런데 join의 과정에 집합 레벨을 이해하는게 어떤 식으로 도움이 되는지까지는 이해가 어렵습니다. 집합 레벨을 고려하면서 쿼리를 짜는 것이 join을 많이 하더라도 요구사항에 부합한 정확한 결과를 도출하는데 도움이 되기 때문에 집합 레벨을 이해해야하는 것이 맞을까요?
답변 1
4
안녕하십니까,
RDBMS(Relational DBMS)의 기본 사상은 중복성을 배제한 고유 엔터티들을 각각의 테이블들로 생성해서 데이터의 정합성, 수정/삭제/생성의 효율성, 관리의 편이성을 도모함과 동시에 이들 고유 엔터티(테이블)들 끼리 자유롭게 연결하고 이를 가공하여 업무에서 필요로 하는 집합레벨로 정보를 편리하게 추출할 수 있도록 만들자는 것입니다.
때문에 SQL은 데이터를 효율적으로 연결하는 조인, 서브쿼리, Union등의 연산과 Group by등으로 데이터 집합의 레벨을 변경하는 연산 등을 편리하게 제공하고 있습니다.
하지만 테이블과 테이블을 연결할 때 각각의 집합 레벨이 서로 다르기 때문에 연결을 수행하면 어떤 집합 레벨이 되는지 이해하는게 매우 중요합니다. 일반적으로 업무에 사용되는 SQL들은 조인시 6~7개, 많으면 10개 그 이상도 될 수 있습니다. 이들 테이블들을 조인 시 개별 테이블들의 조인키 컬럼에 따른 집합 레벨을 생각하지 않고 무조건 조인을 수행하게 되면 데이터의 중복등이 발생하여 사용자가 원하는 집합의 정보를 추출하지 못합니다.
가령 고객과 주문 데이터를 특정 조건으로 연결하고 필터링해서 결국은 고객 레벨로 가공된 최종 정보를 사용자가 보기를 원하는데, 조인 연결시 어떻게 집합 레벨이 변경되는지 이해하지 못하면 잘못된 정보를 추출하기 쉽습니다.
때문에 SQL을 사용한다면 조인은 기본이며, 조인시 연결 컬럼에 따라서 집합 레벨이 어떻게 변하는지를 이해하는 것이 매우 중요합니다.
감사합니다.
최신버젼 다운로드
0
51
2
'레벨 유지'의 의미에 대한 질문
0
68
2
date_part
0
70
2
lag/lead offset 관련 질문
0
74
2
join 관련 질문 (inner join, left join)
1
113
2
배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?
0
105
2
Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다
0
65
2
rollup시 null값 매출 라벨링
0
68
2
10. 조인 실습 - 02 관련 질문
0
72
1
조인실습03 - join의 pk-fk join
0
120
2
조인실습03 - join의 pk-fk join
0
81
2
(공유)맥, 스키마 import
0
85
2
sql 입문자인데, 이 강의와 sql 코딩테스트와 연관이 있을까요?
0
147
2
1인지 M인지는 결국엔 테이블을 직접 확인을 해야 하는걸까요?
0
141
2
안녕하세요. 튜닝핵심가이드강의 관련해서 여쭤보고 싶어서 남깁니다.
0
98
1
섹션5 Group by 실습-01 강의 예제 질문
0
129
2
섹션2 조인 기반 메커니즘에서 조인 실습 - 04 강의 예제 질문
0
134
2
섹션2 조인 실습 01 강의 질문
0
141
2
lead lag 이해 강의에서 윈도우 절은 사용되지 않습니다.
0
137
1
Dbeaver오류
0
647
2
직원 별 가장 높은 매출
0
125
1
강의순서대로 실습코드순알려주세요.
0
144
1
m:n inner join일 경우 cross조인과 동일하게 동작되는건가요?
0
143
1
rollup
0
94
2





