SQLD
1과목
8
업데이트 2026.08.08

SQLD 데이터 모델링 핵심 정리: 엔터티부터 정규화까지

SQLD 1과목의 엔터티, 속성, 관계, 식별자와 정규화를 서로 연결해 이해할 수 있도록 예시 중심으로 정리합니다.

이 글의 핵심

엔터티는 관리해야 할 대상, 속성은 대상의 특성, 관계는 대상 사이의 업무 연결입니다.

식별자는 인스턴스를 유일하게 구별하며 최소성·불변성·존재성을 함께 봅니다.

정규화는 중복을 줄이고 삽입·수정·삭제 이상을 예방하는 구조 개선 과정입니다.

엔터티·인스턴스·속성을 한 장면으로 이해하기

온라인 쇼핑몰을 예로 들면 고객, 상품, 주문은 관리 대상이므로 엔터티가 됩니다. 고객 엔터티에 실제로 저장된 김민수 고객 한 명은 인스턴스이고, 고객번호·이름·가입일은 고객의 특성을 표현하는 속성입니다.

문제에서는 명사라고 모두 엔터티가 되지 않습니다. 업무에서 반드시 관리해야 하고, 두 개 이상의 인스턴스가 존재하며, 속성과 관계를 가질 수 있는지 확인해야 합니다.

관계는 존재 관계와 행위 관계로 읽기

부서와 사원처럼 소속 상태를 표현하면 존재 관계, 고객이 주문한다처럼 업무 행위로 생기면 행위 관계로 볼 수 있습니다. 시험에서는 관계 이름보다 참여도와 카디널리티를 정확히 읽는 것이 중요합니다.

고객 한 명이 주문을 여러 개 할 수 있고 각 주문은 반드시 한 고객에게 속한다면 고객과 주문은 1대다 관계입니다. 주문이 없는 고객도 허용된다면 고객에서 주문 방향은 선택 참여입니다.

표현질문예시
카디널리티몇 개와 연결되는가?고객 1명 : 주문 여러 건
선택성연결이 반드시 필요한가?주문 없는 신규 고객 허용
관계명어떤 업무 의미인가?고객이 주문을 생성한다

주 식별자와 인조 식별자

주 식별자는 각 인스턴스를 유일하게 구별하는 대표 식별자입니다. 유일성뿐 아니라 속성 수가 불필요하게 많지 않은 최소성, 값이 자주 바뀌지 않는 불변성, NULL이 없는 존재성도 중요합니다.

업무에서 자연스럽게 존재하는 회원 이메일이나 주민등록번호 같은 값은 본질식별자 후보가 될 수 있습니다. 별도의 일련번호를 새로 만들어 식별에 사용하면 인조식별자입니다. 인조식별자는 단순하지만 원래 업무상 유일성은 별도 제약조건으로 보호해야 합니다.

정규화는 이상 현상을 제거하는 과정

정규화의 목적은 테이블을 무조건 작게 나누는 것이 아니라 데이터 중복 때문에 생기는 삽입·수정·삭제 이상을 줄이는 것입니다. 함수적 종속을 기준으로 속성을 적절한 엔터티로 이동합니다.

  • 제1정규형: 한 칸에 여러 값을 넣지 않고 원자값을 유지
  • 제2정규형: 복합키 일부에만 종속된 부분 종속 제거
  • 제3정규형: 일반 속성이 다른 일반 속성에 종속되는 이행 종속 제거

정규화 문제는 현재 테이블의 기본키를 먼저 표시한 뒤 “이 속성은 키 전체에 종속되는가?”를 묻는 순서로 풀면 안정적입니다.

모델과 SQL을 연결해서 복습하기

모델의 1대다 관계는 SQL에서 주로 기본키와 외래키의 조인 조건으로 나타납니다. 선택 참여가 있는 쪽을 보존하려면 OUTER JOIN이 필요할 수 있고, 선택 속성은 NULL 연산 규칙과 연결됩니다.

따라서 1과목 용어를 독립적으로 외우기보다 “이 모델을 조회하려면 어떤 JOIN이 필요한가?”를 함께 질문하세요. 모델링 개념이 2과목 SQL 문제의 조건 해석에도 도움이 됩니다.


자주 묻는 질문

반정규화는 정규화의 반대인가요?

성능이나 조회 단순화를 위해 이미 정규화된 구조에 중복이나 통합을 의도적으로 허용하는 설계입니다. 무계획한 중복과 달리 데이터 일관성 유지 방법을 함께 설계해야 합니다.

외래키는 항상 NULL이 될 수 없나요?

관계의 필수 참여 여부에 따라 달라집니다. 선택 참여 관계라면 외래키가 NULL을 허용할 수 있습니다.

시험 과목과 합격 기준은 KDATA SQL 개발자 공식 안내를 기준으로 확인했습니다. 가풀은 시험 주관기관의 공식 서비스가 아니며, 일정과 규정은 접수 전 공식 공고를 다시 확인해야 합니다.

시험 안내

SQLD 시험 구성과 합격 기준: 준비 전에 알아야 할 핵심

읽기
학습법

SQLD 2주 공부법: 비전공자도 따라가는 14일 학습 계획

읽기
2과목

SQL JOIN 완전 정리: INNER·OUTER·SELF JOIN 결과 읽는 법

읽기