• 카테고리

    질문 & 답변
  • 세부 분야

    데이터베이스

  • 해결 여부

    미해결

데이터 집합레벨 이해의 중요성

22.09.16 01:18 작성 조회수 175

1

강의를 들으면서 데이터 집합 레벨 개념을 처음 알게 되었고, join의 결과가 어떤 집합의 레벨을 갖게 되는지까지 이해를 하였습니다. 그런데 join의 과정에 집합 레벨을 이해하는게 어떤 식으로 도움이 되는지까지는 이해가 어렵습니다. 집합 레벨을 고려하면서 쿼리를 짜는 것이 join을 많이 하더라도 요구사항에 부합한 정확한 결과를 도출하는데 도움이 되기 때문에 집합 레벨을 이해해야하는 것이 맞을까요?

답변 1

답변을 작성해보세요.

4

안녕하십니까,

RDBMS(Relational DBMS)의 기본 사상은 중복성을 배제한 고유 엔터티들을 각각의 테이블들로 생성해서 데이터의 정합성, 수정/삭제/생성의 효율성, 관리의 편이성을 도모함과 동시에 이들 고유 엔터티(테이블)들 끼리 자유롭게 연결하고 이를 가공하여 업무에서 필요로 하는 집합레벨로 정보를 편리하게 추출할 수 있도록 만들자는 것입니다.

때문에 SQL은 데이터를 효율적으로 연결하는 조인, 서브쿼리, Union등의 연산과 Group by등으로 데이터 집합의 레벨을 변경하는 연산 등을 편리하게 제공하고 있습니다.

하지만 테이블과 테이블을 연결할 때 각각의 집합 레벨이 서로 다르기 때문에 연결을 수행하면 어떤 집합 레벨이 되는지 이해하는게 매우 중요합니다. 일반적으로 업무에 사용되는 SQL들은 조인시 6~7개, 많으면 10개 그 이상도 될 수 있습니다. 이들 테이블들을 조인 시 개별 테이블들의 조인키 컬럼에 따른 집합 레벨을 생각하지 않고 무조건 조인을 수행하게 되면 데이터의 중복등이 발생하여 사용자가 원하는 집합의 정보를 추출하지 못합니다.

가령 고객과 주문 데이터를 특정 조건으로 연결하고 필터링해서 결국은 고객 레벨로 가공된 최종 정보를 사용자가 보기를 원하는데, 조인 연결시 어떻게 집합 레벨이 변경되는지 이해하지 못하면 잘못된 정보를 추출하기 쉽습니다.

때문에 SQL을 사용한다면 조인은 기본이며, 조인시 연결 컬럼에 따라서 집합 레벨이 어떻게 변하는지를 이해하는 것이 매우 중요합니다.

감사합니다.