들어가며: 합격을 위한 전략
SQLD 시험은 만점을 받는 시험이 아닙니다. **60점(과락 40점)**을 넘기면 합격하는 자격증입니다. 1과목(데이터 모델링의 이해)은 용어와 개념 위주로 빠르게 정리하고, 배점이 높은 2과목(SQL 기본 및 활용)의 주요 문법과 함정을 파악하는 것이 가장 효율적인 전략입니다.
이 포스팅은 방대한 이론서의 내용을 ‘시험에 나오는 것’ 위주로 재구성했습니다. 이동 중이나 시험장 입실 직전에 반복해서 읽어보세요.

[1과목] 데이터 모델링의 이해 (10문제)
1. 데이터 모델링의 중요 3요소 (Things, Attributes, Relationships)
- 엔터티(Entity): 업무가 관리하고자 하는 데이터의 집합 (예: 고객, 상품)
- 속성(Attribute): 엔터티가 가지는 가장 작은 논리적 단위 (예: 고객명, 상품가)
- 관계(Relationship): 엔터티 간의 논리적인 연결 (예: 구매하다)
2. 스키마(Schema) 3단계 구조
- 외부 스키마(External): 사용자 관점 (여러 개 존재 가능)
- 개념 스키마(Conceptual): 통합 관점 (DBA, 설계자), 전체적인 뷰
- 내부 스키마(Internal): 물리적 저장 구조 (시스템 프로그래머)
3. 엔터티의 분류
- 유무형: 유형(물품), 개념(조직), 사건(주문)
- 발생시점:
- 기본(Key) 엔터티: 독립적으로 생성 (고객, 상품)
- 중심(Main) 엔터티: 기본 엔터티로부터 발생, 행위의 주체 (주문, 계약)
- 행위(Action) 엔터티: 두 개 이상의 부모 엔터티로부터 발생, 데이터량 많음 (주문상세, 입금내역)
4. 정규화 (Normalization) ★★★ (무조건 출제)
데이터 중복을 제거하고 이상 현상(Anomaly)을 방지하는 과정입니다.
- 1차 정규화 (1NF): 속성의 원자성(Atomic) 확보 (반복되는 속성 제거)
- 2차 정규화 (2NF): 부분 함수 종속 제거 (PK가 복합키일 때, 일부 키에만 종속되는 속성 분리)
- 3차 정규화 (3NF): 이행 함수 종속 제거 (A→B, B→C 일 때 A→C가 되는 관계 분리, 즉 일반 속성끼리의 종속 제거)
5. 식별자 관계 vs 비식별자 관계
- 식별자 관계 (실선): 부모의 식별자를 자식의 **PK(주식별자)**로 상속. 강한 연결.
- 비식별자 관계 (점선): 부모의 식별자를 자식의 일반 속성으로 상속. 약한 연결, NULL 가능.
[2과목] SQL 기본 및 활용 (40문제)
1. SQL 실행 순서 ★★★ (가장 중요)
SQL 문법 작성 순서와 달리, 실제 DBMS가 처리하는 순서를 반드시 암기해야 합니다. Alias(별칭) 사용 가능 시점을 묻는 문제로 자주 출제됩니다.
FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
- Tip:
SELECT절에서 정의한 Alias는ORDER BY에서만 사용 가능합니다. (WHERE절 사용 불가)
2. NULL의 특성 및 함수
- 특성: NULL은 0이나 공백이 아님. ‘알 수 없는 값’.
- 연산:
NULL + 1 = NULL,NULL * 2 = NULL(NULL이 포함된 산술 연산은 무조건 NULL) - 비교:
COL = NULL(X),COL IS NULL(O) - 주요 함수:
NVL(값, 대체값): 값이 NULL이면 대체값 반환 (Oracle) /ISNULL()(SQL Server)NULLIF(A, B): A와 B가 같으면 NULL, 다르면 A 반환COALESCE(A, B, C...): NULL이 아닌 최초의 값 반환
3. 트랜잭션 제어 언어 (TCL)
- COMMIT: 변경 사항 영구 반영
- ROLLBACK: 변경 사항 취소 (이전 COMMIT 시점으로 복귀)
- SAVEPOINT: 저장점 설정 후
ROLLBACK TO 저장점가능
4. DELETE vs TRUNCATE vs DROP
| 구분 | DELETE | TRUNCATE | DROP |
| 종류 | DML | DDL | DDL |
| 복구 | ROLLBACK 가능 | ROLLBACK 불가능 | ROLLBACK 불가능 |
| 대상 | 데이터만 삭제 (로그 남음) | 데이터만 삭제 (공간 초기화) | 테이블 자체 삭제 |
5. JOIN의 종류
- INNER JOIN: 양쪽 테이블에 모두 존재하는 키 값만 연결 (교집합).
- LEFT OUTER JOIN: 왼쪽 테이블 기준. 오른쪽 데이터가 없으면 NULL로 채움.
- CROSS JOIN: 모든 경우의 수 조합 (Cartesian Product, 행 개수 = A * B).
- NATURAL JOIN: 동일한 이름을 가진 모든 컬럼을 기준으로 자동 조인 (Alias 사용 불가).
6. 서브쿼리 (Subquery)
- 단일 행 서브쿼리: 결과가 1건 (
=,<,>) - 다중 행 서브쿼리: 결과가 여러 건
IN: 하나라도 일치하면 참ANY/SOME: 하나 이상 만족하면 참 (> ANY: 최소값보다 크면 참)ALL: 모두 만족해야 참 (> ALL: 최대값보다 커야 참)
7. 윈도우 함수 (Window Function) – 순위 함수
동점자 처리 방식의 차이를 묻는 문제가 자주 나옵니다.
- RANK: 1등, 2등, 2등, 4등 … (동점자 수만큼 건너뜀)
- DENSE_RANK: 1등, 2등, 2등, 3등 … (건너뛰지 않음)
- ROW_NUMBER: 1등, 2등, 3등, 4등 … (동점자도 고유 순위 부여)
8. 계층형 질의 (Hierarchical Query)
오라클에서 트리 구조를 조회할 때 사용합니다.
START WITH: 시작 조건CONNECT BY PRIOR 자식 = 부모: 순방향 전개 (부모 → 자식)CONNECT BY PRIOR 부모 = 자식: 역방향 전개 (자식 → 부모)ORDER SIBLINGS BY: 형제 노드 간의 정렬
9. 그룹 함수 (집계)
- ROLLUP: 소그룹 간의 소계 및 전체 합계 산출 (계층적). 인수의 순서가 중요함.
- CUBE: 결합 가능한 모든 경우의 수에 대한 다차원 집계. (시스템 부하 큼)
- GROUPING SETS: 특정 항목에 대한 소계만 계산.
💡 시험장 가기 전 마지막 체크리스트 (Tip)
- SQL 문법의 차이: Oracle과 SQL Server(MSSQL)의 문법 차이를 묻는 문제가 1~2문제 나옵니다. (예:
LENvsLENGTH,ISNULLvsNVL) - 문자열 결합: 오라클은
||, SQL Server는+연산자를 사용합니다. (오라클CONCAT은 인수 2개만 가능) - NULL 정렬:
ORDER BY시 오라클은 NULL을 가장 큰 값(마지막)으로, SQL Server는 가장 작은 값(처음)으로 취급합니다. - Count(*) vs Count(컬럼):
Count(*)는 NULL 포함 전체 행 수,Count(컬럼)은 NULL 제외 행 수입니다.
마치며
SQLD는 문제 은행 방식의 경향이 강하므로, 위 내용을 숙지한 뒤 기출문제 3~5회분을 풀어보며 문제 유형을 익히는 것이 가장 빠릅니다.
이 요약 노트가 여러분의 합격에 도움이 되길 바랍니다. 모두 합격하세요!