SQL에서 가장 중요한 것은 문법이 아니라 “테이블 단위(레벨, grain)”를 잡는 것이다.
쿼리를 작성하기 전에 반드시 먼저 해야 할 질문은 이것이다.

“이 테이블에서 1행은 무엇을 의미하는가?”

이 질문에 답하지 않고 JOIN이나 집계를 시작하면,
결과는 거의 항상 행이 뻥튀기되거나 / 누락되거나 / 해석 불가능해진다.

때문에 쿼리 작성 전에 데이터 딕셔너리부터 정리하는 습관이 중요하다.

 

데이터 딕셔너리란?

데이터 딕셔너리는 단순한 “컬럼 설명 목록”이 아닌
각 테이블의 역할과 관계를 명확히 정의한 설계 문서에 가깝다.

 

떄문에 딕셔너리를 볼때 다음 3가지를 중점으로 생각해야 한다.

- 이 테이블의 행 단위(grain)
- 어떤 테이블과 어떻게 JOIN되는지
- 이 테이블을 어떤 목적의 쿼리에서 써야 하는지

 

 

SQL 관점에서 중요한 데이터 딕셔너리 작성 순서

1. 테이블 요약 (가장 중요)

ex.

  • students (학생 마스터)
  • 1행 = 학생 1명

 

2. 테이블 설명

  • 이벤트성 테이블인지?
  • 마스터 테이블인지?
  • 변하지 않는 정보인지?

를 명확히 한다.

 

3. PK (Primary Key)

 

  • 이 테이블의 행을 유일하게 식별하는 컬럼
  • “이 테이블의 주민등록번호”

 

 

4. 주요 JOIN 키 (관계 명시)

여기서 중요한 건:

  • 누가 1이고 누가 N인가
  • 이 JOIN이 행 수를 늘릴 수 있는지

를 바로 판단할 수 있어야 한다는 점.

 

5. 컬럼 정의 (필요한 만큼)

 

 

 

SQL에서 데이터 딕셔너리는 곧 설계도다

SQL은 “쿼리를 잘 짜는 기술”이 아니라 “데이터 구조를 이해하고 결과를 설계하는 기술”이다.

 

데이터 딕셔너리를 먼저 쓰면...

  • 최종 결과의 행 단위(grain) 를 명확히 선언할 수 있다
  • JOIN 전에 집계가 필요한지 판단할 수 있다
  • JOIN 결과를 보고 정상/비정상을 바로 구분할 수 있다

 

 

 

 

 

한 줄 요약

쿼리를 쓰기 전에 각 테이블에서 1행이 무엇을 의미하는지 먼저 정의하자.

'A.Today I Learne > SQL' 카테고리의 다른 글

[TIL] SQL 라이브세션 6회차  (0) 2025.12.31
[TIL] SQL 라이브세션 5회차  (0) 2025.12.30
[TIL] SQL 라이브세션 4회차  (1) 2025.12.29
포메팅 습관  (0) 2025.12.28

+ Recent posts