SQLD2026년 4월 10일· 6 min read

SQLD 핵심 개념 정리 (데이터 모델링·SQL 활용)

SQLD 시험에서 반드시 알아야 할 핵심 개념을 과목별로 정리했습니다. 데이터 모델링, 정규화, JOIN, 서브쿼리까지 한 번에 잡으세요.

안녕하세요. 문어입니다 🐙


1과목: 데이터 모델링의 이해

엔터티(Entity)

업무에 필요한 정보를 저장·관리하기 위한 집합입니다. 쉽게 말하면 테이블의 후보예요.

분류 기준유형예시
유무형유형 엔터티사원, 물품
개념 엔터티조직, 보험상품
사건 엔터티주문, 청구
발생 시점기본 엔터티사원, 부서
중심 엔터티계약, 주문
행위 엔터티주문목록, 사원변경이력
기본 엔터티는 다른 엔터티로부터 독립적으로 존재합니다. 시험에서 "독립 엔터티"로 나오기도 해요.

속성(Attribute)

엔터티가 가지는 최소 의미 단위입니다.

  • 기본 속성: 업무에서 직접 추출 (이름, 주소)
  • 설계 속성: 설계 과정에서 만든 속성 (일련번호, 코드)
  • 파생 속성: 다른 속성으로부터 계산 (합계, 평균)

관계(Relationship)

엔터티 간의 논리적 연결입니다.

  • 존재 관계: 부서 — 사원 (소속)
  • 행위 관계: 고객 — 주문 (주문하다)

카디널리티(1:1, 1:N, M:N)와 필수/선택 참여 여부를 구분하는 문제가 자주 나옵니다.

식별자(Identifier)

엔터티에서 각 인스턴스를 유일하게 구분하는 속성입니다.

구분주식별자비식별자
특징유일성 + NOT NULL유일할 수도, 아닐 수도
예시사원번호이메일
주식별자 조건: 유일성, 최소성, 불변성, 존재성 — 이 네 가지를 외워두세요.

정규화

정규화 단계 정리

단계핵심제거 대상
1NF원자값만 허용반복 그룹, 다중값
2NF부분 함수 종속 제거복합키의 일부에만 종속되는 컬럼
3NF이행 함수 종속 제거A→B→C에서 A→C 간접 종속
BCNF모든 결정자가 후보키후보키가 아닌 결정자
시험에서는 1NF~3NF까지가 핵심입니다. 특히 2NF와 3NF 구분 문제가 자주 출제됩니다.

반정규화

성능 향상을 위해 의도적으로 정규화를 깨는 기법입니다.

  • 테이블 병합: 1:1 관계 테이블을 하나로
  • 테이블 분할: 수직/수평 분할
  • 중복 컬럼 추가: JOIN 비용을 줄이기 위해 중복 허용

2과목: SQL 기본 및 활용

SELECT 실행 순서

FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
이 순서를 모르면 SQL 문제 절반은 틀립니다. 반드시 암기하세요.

JOIN

JOIN 유형설명
INNER JOIN양쪽 모두 일치하는 행만
LEFT OUTER JOIN왼쪽 테이블 전체 + 오른쪽 일치
RIGHT OUTER JOIN오른쪽 테이블 전체 + 왼쪽 일치
FULL OUTER JOIN양쪽 모두 전체
CROSS JOIN모든 조합 (카테시안 곱)
NATURAL JOIN같은 이름의 컬럼으로 자동 JOIN

서브쿼리

위치이름예시
SELECT절스칼라 서브쿼리SELECT (SELECT ...)
FROM절인라인 뷰FROM (SELECT ...)
WHERE절일반 서브쿼리WHERE col IN (SELECT ...)
상관(Correlated) 서브쿼리 vs 비상관 서브쿼리 구분도 자주 나옵니다. 상관 서브쿼리는 메인 쿼리의 값을 참조합니다.

윈도우 함수 (분석 함수)

함수명() OVER (PARTITION BY 그룹컬럼 ORDER BY 정렬컬럼)
함수기능
ROW_NUMBER()동일값이어도 순차 번호
RANK()동일값 동일 순위 → 다음 순위 건너뜀
DENSE_RANK()동일값 동일 순위 → 다음 순위 연속
LAG() / LEAD()이전/다음 행 값 참조
SUM() OVER()누적합 등 집계

그룹 함수

함수기능
ROLLUP(A, B)A별 소계 + 전체 합계
CUBE(A, B)모든 조합의 소계
GROUPING SETS원하는 조합만 지정

자주 틀리는 포인트

  1. NULL 연산: NULL과의 모든 비교는 UNKNOWN → IS NULL 사용
  2. HAVING vs WHERE: 집계 함수 조건은 HAVING, 개별 행 조건은 WHERE
  3. DELETE vs TRUNCATE vs DROP: DELETE는 롤백 가능, TRUNCATE는 불가, DROP은 테이블 자체 삭제
  4. UNION vs UNION ALL: UNION은 중복 제거, UNION ALL은 전부 포함
  5. VARCHAR vs CHAR: VARCHAR는 가변 길이, CHAR는 고정 길이 (빈 공간 공백 채움)

직접 문제를 풀어보세요

매번 새로운 모의고사와 무한 풀이 모드로 실전 감각을 키울 수 있습니다.