2026 SQLD 필기 1과목 1장 1~3절 | 데이터 모델·엔터티·속성 — 핵심 이론
데이터위자드 ·
필기 · 핵심 이론
SQLD 모델링은 용어 암기에서 끝나지 않습니다. 주문 한 건을 어느 엔터티에 저장하고, 금액은 어떤 속성으로 관리할지 판단해야 SQL의 행 수와 집계 결과까지 이해할 수 있습니다. 먼저 업무에서 관리할 대상을 찾고, 각 대상이 가진 성질을 분리하는 순서로 시작합니다.
모델링의 세 단계 · 엔터티의 성립 조건 · 속성과 도메인 · 기본·설계·파생 속성 · 데이터 독립성
1. 모델링의 세 단계
개념 모델링은 고객·주문 같은 핵심 대상을 도출하고 관계를 표현합니다. 논리 모델링은 식별자·속성·관계를 구체화하면서 특정 DBMS에 종속되지 않는 구조를 만듭니다. 물리 모델링에서 테이블·컬럼·자료형·인덱스 등 구현 요소를 정합니다.
업무가 고객과 주문을 관리한다는 사실과 주문일을 DATE로 저장한다는 결정은 수준이 다릅니다. 문제에서 구체적인 자료형이나 저장 구조가 등장하면 물리 단계인지 먼저 확인하세요. 앞 단계로 돌아가 수정할 수 있으므로 세 단계가 서로 완전히 단절되는 것도 아닙니다.
물리 모델링은 DBMS 특성과 저장 구조를 고려한다.
예제로 적용하기
고객·주문 관계를 정리한 뒤 PostgreSQL의 NUMERIC 자료형과 인덱스를 결정했다. 마지막 작업의 단계는?
풀이와 판단 과정
결론: 물리 모델링
자료형과 인덱스는 실제 DBMS에 구현하는 물리 단계의 결정입니다.
2. 엔터티의 성립 조건
엔터티는 업무에서 관리할 가치가 있고, 여러 인스턴스로 구분되며, 속성과 관계를 갖는 대상입니다. 고객이라는 엔터티와 고객번호 101인 고객 한 명이라는 인스턴스를 구별하세요. 주문의 결제금액 하나는 일반적으로 독립 엔터티가 아니라 주문의 속성입니다.
같은 명사라도 업무에 따라 엔터티가 될 수도 속성이 될 수도 있습니다. 배송지를 주소 문자열 하나로만 다루면 고객 속성이지만, 여러 배송지·기본 여부·이력을 별도로 관리하면 배송지 엔터티로 분리하는 편이 자연스럽습니다.
엔터티는 업무에서 관리하는 대상이고 인스턴스는 그 대상의 개별 발생이다.
예제로 적용하기
여러 고객이 각각 여러 배송지를 저장하고 기본 배송지를 선택한다. 적절한 설계는?
풀이와 판단 과정
결론: 배송지를 별도 엔터티로 두고 고객과 연결한다.
반복되는 배송지는 독립 인스턴스로 관리하고 고객과 관계를 맺어야 검색·수정이 가능합니다.
3. 속성과 도메인
속성은 인스턴스를 설명하는 최소한의 의미 단위입니다. 도메인은 속성에 허용되는 값의 집합과 형식입니다. 수량의 도메인을 1 이상의 정수로 정했다면 소수나 음수를 허용하는지 따져야 합니다. 자료형만 정했다고 업무상의 허용 범위까지 모두 정해진 것은 아닙니다.
금액이 숫자라는 사실과 금액이 0 이상이어야 한다는 규칙을 구분하세요. 날짜 형식이 맞아도 종료일이 시작일보다 빠르면 업무 규칙을 어길 수 있습니다. 도메인과 제약조건은 이런 잘못된 값을 차단하는 기준을 제공합니다.
도메인은 속성이 가질 수 있는 값의 범위와 형식을 규정한다.
예제로 적용하기
주문수량은 1 이상의 정수라는 규칙에 어긋나는 값은?
풀이와 판단 과정
결론: 0
수량 0은 정수이지만 1 이상이라는 도메인 범위에 들어가지 않습니다.
4. 기본·설계·파생 속성
업무에서 원래 발생하는 고객명·주문일은 기본 속성의 예입니다. 설계 편의를 위해 만든 일련번호나 코드 체계는 설계 속성으로 분류할 수 있습니다. 수량×단가로 얻는 금액은 파생 속성입니다. 파생 속성을 저장하면 조회를 단순하게 만들 수 있지만 원본 변경과 동시에 갱신해야 합니다.
계산할 수 있다는 이유만으로 항상 저장하거나 항상 제거하는 것은 아닙니다. 성능과 이력 보존 요구를 함께 봅니다. 주문 시점의 단가를 보존해야 한다면 현재 상품 가격과 별도로 주문 상세의 단가를 저장할 필요가 있습니다.
다른 속성으로 계산할 수 있는 금액은 파생 속성의 예다.
예제로 적용하기
수량 3, 주문 당시 단가 2,000원으로 주문금액을 계산한다. 파생 값은?
풀이와 판단 과정
결론: 6,000원
주문금액=수량×주문 단가이므로 3×2,000=6,000입니다. 현재 상품 단가와 주문 당시 단가를 혼동하지 마세요.
5. 데이터 독립성
논리적 데이터 독립성은 논리 구조 변화가 외부 사용자 관점에 미치는 영향을 줄이는 성질입니다. 물리적 데이터 독립성은 저장 방식 변화가 논리 구조에 미치는 영향을 줄이는 성질입니다. 인덱스를 추가했는데 사용자의 SELECT 문을 반드시 모두 다시 작성해야 한다면 독립성이 부족한 구조입니다.
외부·개념·내부 스키마를 각각 사용자 관점·전체 논리 구조·물리 저장 관점으로 연결해 외우면 방향이 명확합니다. 독립성은 어떤 변경도 영향이 없다는 보장이 아니라 변경의 파급을 분리하는 설계 목표입니다.
저장 구조 변화의 영향을 논리 구조에서 줄이는 것이 물리적 독립성이다.
예제로 적용하기
테이블의 업무 구조를 유지하면서 인덱스만 추가했다. 가장 관련 있는 개념은?
풀이와 판단 과정
결론: 물리적 데이터 독립성
인덱스는 저장·접근 경로와 관련되며 논리적인 업무 데이터 구조와 구분됩니다.
한눈에 비교하기
| 구분 | 관점 | 판단 예 |
|---|---|---|
| 개념 | 업무 핵심 대상 | 고객이 주문한다 |
| 논리 | 속성·식별자·관계 | 고객번호로 고객 구별 |
| 물리 | DBMS 구현 | NUMERIC·인덱스 지정 |
| 도메인 | 허용 값 | 수량은 1 이상의 정수 |
순서대로 풀어 보는 예제
온라인 주문을 모델링한다면 고객과 주문을 먼저 분리합니다. 주문에는 주문번호·고객번호·주문일을 두고, 상품이 여러 개 포함되므로 주문상세를 따로 둡니다. 주문상세의 수량과 단가가 금액 계산의 근거입니다.
고객 한 명을 삭제할 때 주문 이력을 어떻게 처리할지도 관계 규칙으로 정해야 합니다. 화면에 고객명이 보인다는 이유로 고객명을 주문의 식별자로 삼으면 동명이인과 이름 변경을 처리하기 어렵습니다.
헷갈리는 문장 바로잡기
모델링의 세 단계
잘못된 판단 개념 모델링에서 모든 인덱스를 확정한다.
올바른 판단: 물리 모델링은 DBMS 특성과 저장 구조를 고려한다.
엔터티의 성립 조건
잘못된 판단 고객번호 101 한 명이 고객 엔터티 전체다.
올바른 판단: 엔터티는 업무에서 관리하는 대상이고 인스턴스는 그 대상의 개별 발생이다.
속성과 도메인
잘못된 판단 도메인은 테이블의 현재 행 수다.
올바른 판단: 도메인은 속성이 가질 수 있는 값의 범위와 형식을 규정한다.
기본·설계·파생 속성
잘못된 판단 파생 속성은 원본과 불일치할 가능성이 없다.
올바른 판단: 다른 속성으로 계산할 수 있는 금액은 파생 속성의 예다.
데이터 독립성
잘못된 판단 물리적 독립성은 컬럼의 업무 의미를 삭제하는 것이다.
올바른 판단: 저장 구조 변화의 영향을 논리 구조에서 줄이는 것이 물리적 독립성이다.
복습 체크리스트
- 엔터티와 인스턴스를 구분한다.
- 속성의 자료형과 업무 허용 범위를 따로 점검한다.
이론을 정리했다면 같은 절의 객관식 문제에서 조건과 예외를 확인하세요. 정답을 고른 뒤에는 틀린 선택지가 왜 성립하지 않는지도 설명해 보세요.
핵심 개념 확인 — 객관식 5문제
설명을 읽은 뒤 아래 다섯 문항을 풀어 보세요. 정답을 고르고 틀린 선택지의 오류도 설명할 수 있으면 이 단원의 기준을 이해한 것입니다.
문제 1
데이터 모델·엔터티·속성에서 모델링의 세 단계에 대한 설명으로 옳은 것은?
- ① 개념 모델링에서 모든 인덱스를 확정한다.
- ② 물리 모델링은 업무 규칙과 무관하다.
- ③ 물리 모델링은 DBMS 특성과 저장 구조를 고려한다.
- ④ 논리 모델은 특정 DBMS의 저장 블록을 먼저 정한다.
정답과 해설 보기
정답 ③
개념 모델링은 고객·주문 같은 핵심 대상을 도출하고 관계를 표현합니다. 논리 모델링은 식별자·속성·관계를 구체화하면서 특정 DBMS에 종속되지 않는 구조를 만듭니다. 물리 모델링에서 테이블·컬럼·자료형·인덱스 등 구현 요소를 정합니다. 업무가 고객과 주문을 관리한다는 사실과 주문일을 DATE로 저장한다는 결정은 수준이 다릅니다. 문제에서 구체적인 자료형이나 저장 구조가 등장하면 물리 단계인지 먼저 확인하세요. 앞 단계로 돌아가 수정할 수 있으므로 세 단계가 서로 완전히 단절되는 것도 아닙니다.
물리 모델링은 DBMS 특성과 저장 구조를 고려한다.
문제 2
데이터 모델·엔터티·속성에서 엔터티의 성립 조건에 대한 설명으로 옳은 것은?
- ① 고객번호 101 한 명이 고객 엔터티 전체다.
- ② 엔터티는 업무에서 관리하는 대상이고 인스턴스는 그 대상의 개별 발생이다.
- ③ 속성이 전혀 없어도 업무 엔터티로 충분하다.
- ④ 모든 명사는 반드시 별도 엔터티다.
정답과 해설 보기
정답 ②
엔터티는 업무에서 관리할 가치가 있고, 여러 인스턴스로 구분되며, 속성과 관계를 갖는 대상입니다. 고객이라는 엔터티와 고객번호 101인 고객 한 명이라는 인스턴스를 구별하세요. 주문의 결제금액 하나는 일반적으로 독립 엔터티가 아니라 주문의 속성입니다. 같은 명사라도 업무에 따라 엔터티가 될 수도 속성이 될 수도 있습니다. 배송지를 주소 문자열 하나로만 다루면 고객 속성이지만, 여러 배송지·기본 여부·이력을 별도로 관리하면 배송지 엔터티로 분리하는 편이 자연스럽습니다.
엔터티는 업무에서 관리하는 대상이고 인스턴스는 그 대상의 개별 발생이다.
문제 3
데이터 모델·엔터티·속성에서 속성과 도메인에 대한 설명으로 옳은 것은?
- ① 숫자형이면 모든 업무 규칙을 만족한다.
- ② 속성은 항상 여러 값을 한 셀에 저장한다.
- ③ 도메인은 속성이 가질 수 있는 값의 범위와 형식을 규정한다.
- ④ 도메인은 테이블의 현재 행 수다.
정답과 해설 보기
정답 ③
속성은 인스턴스를 설명하는 최소한의 의미 단위입니다. 도메인은 속성에 허용되는 값의 집합과 형식입니다. 수량의 도메인을 1 이상의 정수로 정했다면 소수나 음수를 허용하는지 따져야 합니다. 자료형만 정했다고 업무상의 허용 범위까지 모두 정해진 것은 아닙니다. 금액이 숫자라는 사실과 금액이 0 이상이어야 한다는 규칙을 구분하세요. 날짜 형식이 맞아도 종료일이 시작일보다 빠르면 업무 규칙을 어길 수 있습니다. 도메인과 제약조건은 이런 잘못된 값을 차단하는 기준을 제공합니다.
도메인은 속성이 가질 수 있는 값의 범위와 형식을 규정한다.
문제 4
데이터 모델·엔터티·속성에서 기본·설계·파생 속성에 대한 설명으로 옳은 것은?
- ① 다른 속성으로 계산할 수 있는 금액은 파생 속성의 예다.
- ② 파생 속성은 원본과 불일치할 가능성이 없다.
- ③ 고객명은 설계를 위해 임의 생성한 번호다.
- ④ 기본 속성은 반드시 숫자여야 한다.
정답과 해설 보기
정답 ①
업무에서 원래 발생하는 고객명·주문일은 기본 속성의 예입니다. 설계 편의를 위해 만든 일련번호나 코드 체계는 설계 속성으로 분류할 수 있습니다. 수량×단가로 얻는 금액은 파생 속성입니다. 파생 속성을 저장하면 조회를 단순하게 만들 수 있지만 원본 변경과 동시에 갱신해야 합니다. 계산할 수 있다는 이유만으로 항상 저장하거나 항상 제거하는 것은 아닙니다. 성능과 이력 보존 요구를 함께 봅니다. 주문 시점의 단가를 보존해야 한다면 현재 상품 가격과 별도로 주문 상세의 단가를 저장할 필요가 있습니다.
다른 속성으로 계산할 수 있는 금액은 파생 속성의 예다.
문제 5
데이터 모델·엔터티·속성에서 데이터 독립성에 대한 설명으로 옳은 것은?
- ① 개념 스키마는 사용자 한 명의 화면만 뜻한다.
- ② 저장 구조 변화의 영향을 논리 구조에서 줄이는 것이 물리적 독립성이다.
- ③ 물리적 독립성은 컬럼의 업무 의미를 삭제하는 것이다.
- ④ 외부 스키마는 디스크 블록 배치다.
정답과 해설 보기
정답 ②
논리적 데이터 독립성은 논리 구조 변화가 외부 사용자 관점에 미치는 영향을 줄이는 성질입니다. 물리적 데이터 독립성은 저장 방식 변화가 논리 구조에 미치는 영향을 줄이는 성질입니다. 인덱스를 추가했는데 사용자의 SELECT 문을 반드시 모두 다시 작성해야 한다면 독립성이 부족한 구조입니다. 외부·개념·내부 스키마를 각각 사용자 관점·전체 논리 구조·물리 저장 관점으로 연결해 외우면 방향이 명확합니다. 독립성은 어떤 변경도 영향이 없다는 보장이 아니라 변경의 파급을 분리하는 설계 목표입니다.
저장 구조 변화의 영향을 논리 구조에서 줄이는 것이 물리적 독립성이다.
범위 확인
2026년 학습 범위를 기준으로 구성했습니다. 시험 시행기관의 자격 안내·출제 기준에서 과목과 변경 공지를 확인할 수 있습니다.
SQLD 전체 목차
과목별 이론
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
단원별 객관식
- 1과목 · 1장 1~3절 · 데이터 모델·엔터티·속성
- 1과목 · 1장 4~5절 · 관계·식별자와 카디널리티
- 1과목 · 2장 1~3절 · 정규화·조인·트랜잭션 모델
- 1과목 · 2장 4~5절 · NULL·본질식별자·인조식별자
- 2과목 · 1장 1~2절 · 관계형 DB와 SELECT·DISTINCT
- 2과목 · 1장 3절 · 문자·숫자 함수와 CASE
- 2과목 · 1장 4절 · WHERE·날짜 범위·연산자 우선순위
- 2과목 · 1장 5~6절 · 집계·GROUP BY·HAVING·ORDER BY
- 2과목 · 1장 7~8절 · INNER·OUTER·표준 조인
- 2과목 · 2장 1절 · 서브쿼리·EXISTS·스칼라 서브쿼리
- 2과목 · 2장 2~3절 · 집합 연산·ROLLUP·CUBE·GROUPING
- 2과목 · 2장 4~5절 · 윈도우 함수·순위·Top N
- 2과목 · 2장 6~8절 · 계층형 질의·셀프 조인·PIVOT·정규표현식
- 2과목 · 3장 1~2절 · DML·TCL과 트랜잭션
- 2과목 · 3장 3~4절 · DDL·DCL·제약조건·권한
실습
- SQL 학습 실습 1 · 6작업 · SELECT·조건·정렬
- SQL 학습 실습 2 · 6작업 · NULL·COUNT·평균
- SQL 학습 실습 3 · 6작업 · 날짜 범위·문자 조건
- SQL 학습 실습 4 · 6작업 · GROUP BY·HAVING·조건부 합계
- SQL 학습 실습 5 · 6작업 · 조인·행 수·미주문 고객
- SQL 학습 실습 6 · 6작업 · 서브쿼리·EXISTS·NOT EXISTS
- SQL 학습 실습 7 · 6작업 · 순위·동률·고객별 Top N
- SQL 학습 실습 8 · 6작업 · 집합 연산·조건부 피벗·전체 검산