SQLD 시험 합격 전략 요약
SQLD 시험에서 1과목 ‘데이터 모델링의 이해’는 전체 배점의 약 20%를 차지합니다. 이론 중심의 암기형 문제가 많아 정확한 개념 정리만으로도 고득점이 가능합니다. 특히 엔터티의 분류, 식별자의 특징, 정규화 개념은 매 시험마다 출제되므로 반드시 숙지해야 합니다.
1. 데이터 모델링 개요
🔎 초압축 암기 요약
데이터 모델링은 개념적 → 논리적 → 물리적 단계로 진행됩니다. 스키마는 외부·개념·내부 3단계로 나뉘며, 데이터 독립성은 논리적 독립성과 물리적 독립성으로 구분됩니다. 모델링의 3요소는 Things(엔터티), Attributes(속성), Relationships(관계)입니다. ERD 작업 순서는 ‘엔터티 그림 → 배치 → 관계설정 → 관계명 → 참여도 → 필수여부’ 순서로 기억하세요.
📘 초보자 이해용 상세 설명
정의: 데이터 모델링이란 현실 세계의 업무를 데이터베이스로 옮기기 위해 데이터 구조를 설계하는 과정입니다. 쉽게 말해 ‘어떤 데이터를, 어떤 형태로, 어떻게 저장할 것인가’를 결정하는 작업입니다.
원리: 데이터 모델링은 추상화(현실을 간략히 표현), 단순화(복잡한 것을 쉽게), 정확화(명확한 규칙 적용) 세 가지 특징을 가집니다. 마치 건물을 짓기 전에 설계도를 그리는 것과 같습니다.
데이터 독립성의 3단계 스키마:
- 외부 스키마: 각 사용자가 보는 개인적인 DB 뷰입니다. 영업팀은 영업 데이터만, 인사팀은 인사 데이터만 보는 것과 같습니다.
- 개념 스키마: 모든 사용자의 관점을 통합한 전체 DB 구조입니다. 회사 전체의 데이터 설계도에 해당합니다.
- 내부 스키마: 데이터가 물리적 저장장치에 실제로 저장되는 방식입니다.
데이터 독립성:
- 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마에 영향을 주지 않습니다.
- 물리적 독립성: 내부 스키마가 변경되어도 외부/개념 스키마에 영향을 주지 않습니다.
- Mapping(사상): 상호 독립적인 스키마들을 연결해주는 다리 역할을 합니다.
좋은 데이터 모델의 요소: 완전성, 중복배제, 업무규칙, 데이터 재사용, 의사소통, 통합성 — 이 6가지를 기억하세요. 시험에서 ‘좋은 데이터 모델의 조건’으로 자주 출제됩니다.
시험 출제 포인트: 3단계 스키마 구조에서 ‘외부-개념-내부’의 순서와 각 독립성의 정의를 정확히 구분하는 문제가 출제됩니다. 특히 “논리적 독립성은 개념 스키마 변경 → 외부 스키마 영향 없음”이라는 점을 혼동하지 마세요.
2. 엔터티(Entity)
🔎 초압축 암기 요약
엔터티는 업무에 필요한 정보를 저장·관리하기 위한 집합적인 것입니다. 유무형 분류는 유형/개념/사건, 발생시점 분류는 기본/중심/행위입니다.
엔터티 특징 6가지: 업무필요, 유일식별자, 2개 이상 인스턴스, 업무프로세스 이용, 속성 보유, 1개 이상 관계를 반드시 기억하세요.
📘 초보자 이해용 상세 설명
정의: 엔터티(Entity)란 업무에서 관리해야 할 데이터의 집합입니다. ‘사원’, ‘주문’, ‘상품’처럼 눈에 보이는 것뿐만 아니라 ‘보험상품’, ‘조직’처럼 개념적인 것도 포함합니다. 엔터티는 집합이고, 인스턴스는 그 집합 안의 개별 데이터입니다.
유무형에 따른 분류:
- 유형 엔터티: 물리적으로 존재하는 것 (예: 사원, 물품, 강사)
- 개념 엔터티: 물리적 형태 없이 개념으로만 존재 (예: 조직, 보험상품)
- 사건 엔터티: 업무 수행 중 발생하는 것 (예: 주문, 청구, 미납)
발생시점에 따른 분류:
- 기본(키) 엔터티: 업무에 원래 존재하는 정보로, 다른 엔터티의 부모 역할을 합니다. 자신만의 고유한 주식별자를 가집니다. (예: 사원, 부서)
- 중심 엔터티: 기본 엔터티로부터 발생하며, 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성합니다. (예: 계약, 사고, 주문)
- 행위 엔터티: 2개 이상의 부모 엔터티로부터 발생하며, 데이터가 자주 바뀌거나 양이 증가합니다. (예: 주문목록, 사원변경이력)
시험 출제 포인트: “다음 중 기본 엔터티에 해당하는 것은?”과 같은 분류 문제가 자주 나옵니다. 기본 엔터티는 ‘원래 있는 것’, 중심은 ‘기본에서 파생’, 행위는 ‘2개 이상 부모에서 발생’으로 구분하세요.
3. 속성(Attribute)과 관계(Relationship)
🔎 초압축 암기 요약
속성은 의미상 분리되지 않는 최소의 데이터 단위입니다. 분류는 기본/설계/파생 속성입니다. 관계는 엔터티 인스턴스 간의 논리적 연관성이며, 관계 표기법은 관계명, 관계차수(1:1, 1:M, M:N), 관계선택성(필수/선택)으로 구성됩니다. UML에서는 연관관계(실선)와 의존관계(점선)를 구분합니다.
📘 초보자 이해용 상세 설명
속성의 정의: 속성이란 엔터티가 가지는 최소 단위의 데이터 항목입니다. ‘사원’ 엔터티라면 ‘사원명’, ‘입사일’, ‘급여’ 등이 속성에 해당합니다.
속성의 분류:
- 기본 속성: 업무로부터 직접 추출한 일반적인 속성 (예: 이름, 전화번호)
- 설계 속성: 업무를 규칙화하기 위해 새로 만든 속성 (예: 일련번호)
- 파생 속성: 다른 속성 값을 계산하여 만든 속성 (예: 합계, 평균). 빠른 성능을 위해 사용합니다.
도메인: 각 속성이 가질 수 있는 값의 범위를 의미합니다. 예를 들어 ‘이름’ 속성의 도메인은 ‘한글 5글자 이내’와 같이 정의됩니다.
관계: 두 엔터티의 인스턴스 사이에 존재하는 논리적 연관성입니다. 관계는 ‘존재적 관계'(항상 유지되는 관계)와 ‘행위에 의한 관계'(특정 행위에 의해 발생하는 관계)로 나뉩니다. ERD에서는 이 둘을 구분하지 않지만, UML에서는 연관관계(실선)와 의존관계(점선)로 구분하여 표현합니다.
시험 출제 포인트: ‘파생 속성의 예시’를 묻는 문제와, ‘UML에서 연관관계와 의존관계의 차이’를 묻는 문제가 출제됩니다.
UML (Unified Modeling Language)은 소프트웨어 구조를 그림으로 표현하는 표준 언어
4. 식별자(Identifier)
🔎 초압축 암기 요약
식별자는 엔터티 내에서 인스턴스를 구분하는 구분자이며, 특징은 유일성·최소성·불변성·존재성입니다. 식별자 관계에서 주식별자 관계는 강한 연결(실선), 비식별자 관계는 약한 연결(점선)로 표기합니다. 식별자는 논리 모델링, Key는 물리 모델링에서 사용하는 용어입니다.
존재성 : 어떤 인스턴스(행)가 생성되면 그 인스턴스를 구분할 수 있는 식별자 값이 반드시 존재해야 한다는 의미 👉 NULL이면 안 된다.
📘 초보자 이해용 상세 설명
정의: 식별자는 엔터티에서 각 인스턴스(데이터)를 유일하게 구분할 수 있는 속성 또는 속성의 조합입니다. 주민등록번호가 사람을 구분하는 것과 같은 원리입니다.
식별자의 분류:
| 분류 기준 | 종류 | 설명 |
|---|---|---|
| 대표성 여부 | 주식별자 / 보조식별자 | 주식별자는 대표성을 가지고 참조관계 연결 가능, 보조식별자는 참조관계 연결 불가 |
| 생성 여부 | 내부식별자 / 외부식별자 | 내부는 스스로 생성, 외부는 타 엔터티에서 받아옴 |
| 속성의 수 | 단일식별자 / 복합식별자 | 단일은 하나의 속성, 복합은 2개 이상의 속성으로 구성 |
| 대체 여부 | 본질식별자 / 인조식별자 | 본질은 업무에 의해 자연 생성, 인조는 인위적으로 생성 |
식별자 관계와 비식별자 관계:
- 식별자 관계(실선): 부모의 주식별자를 자식의 주식별자로 상속합니다. 강한 연결관계를 의미합니다.
- 비식별자 관계(점선): 부모의 속성을 자식의 일반 속성으로 사용합니다. 약한 연결관계를 의미합니다. 부모 없는 자식이 생성될 수 있거나, 생명주기가 다르거나, SQL 복잡성을 줄이기 위해 사용합니다.
시험 출제 포인트: 식별자 관계(실선)와 비식별자 관계(점선)의 구분은 매우 자주 출제됩니다. ‘비식별자 관계를 사용하는 경우 5가지’를 암기해 두세요.
✅ 비식별자 관계를 사용하는 경우 5가지
✔ 자식이 독립식별
✔ 다중 부모
✔ 선택적 관계
✔ 부모 변경 가능성
✔ PK 과도한 증가 방지
🧠 시험 핵심 포인트 정리
- 데이터 모델링 3요소: Things, Attributes, Relationships
- 3단계 스키마: 외부 → 개념 → 내부 (논리적 독립성 = 개념 변경 시 외부 무관)
- 엔터티 분류: 유무형(유형/개념/사건), 발생시점(기본/중심/행위)
- 속성 분류: 기본/설계/파생 — 파생 속성 = 계산에 의해 생성
- 식별자 특징 4가지: 유일성, 최소성, 불변성, 존재성
- 식별자 관계 = 실선(강한), 비식별자 관계 = 점선(약한)
- ERD 작업 순서: 엔터티 그림 → 배치 → 관계설정 → 관계명 → 참여도 → 필수여부
❓ 기본 확인문제
문제 1. 다음 중 데이터 모델링의 3요소가 아닌 것은?
① Things ② Attributes ③ Relationships ④ Constraints
문제 2. 개념 스키마가 변경되어도 외부 스키마에 영향을 주지 않는 것을 무엇이라 하는가?
① 물리적 독립성 ② 논리적 독립성 ③ 데이터 무결성 ④ 참조 무결성
문제 3. 다음 중 기본(키) 엔터티에 해당하는 것은?
① 주문목록 ② 사원변경이력 ③ 부서 ④ 계약
문제 4. 다른 속성에 영향을 받아 발생하며, 성능 향상을 위해 미리 값을 계산해 두는 속성은?
① 기본 속성 ② 설계 속성 ③ 파생 속성 ④ 복합 속성
문제 5. 식별자의 특징으로 올바르지 않은 것은?
① 유일성 ② 최대성 ③ 불변성 ④ 존재성
✅ 기본문제 해설
1. 정답: ④ — 데이터 모델링의 3요소는 Things(엔터티), Attributes(속성), Relationships(관계)입니다. Constraints는 3요소에 포함되지 않습니다.
2. 정답: ② — 논리적 독립성은 개념 스키마 변경 시 외부 스키마에 영향을 주지 않는 성질입니다. 물리적 독립성은 내부 스키마 변경 시 외부/개념 스키마에 영향을 주지 않는 것입니다.
3. 정답: ③ — 부서는 업무에 원래 존재하는 기본 엔터티입니다. 주문목록은 행위 엔터티, 사원변경이력도 행위 엔터티, 계약은 중심 엔터티에 해당합니다.
4. 정답: ③ — 파생 속성은 다른 속성 값을 계산하여 만든 속성입니다. 합계, 평균 등이 대표적인 예입니다.
5. 정답: ② — 식별자의 특징은 유일성, 최소성, 불변성, 존재성입니다. ‘최대성’이 아니라 ‘최소성’이 맞습니다. 주식별자를 구성하는 속성의 수는 최소여야 합니다.
🔥 고난도 확인문제
문제 1. 다음 중 비식별자 관계를 사용하는 경우로 적절하지 않은 것은?
① 부모 없는 자식이 생성될 수 있는 경우
② 부모와 자식의 생명주기가 동일한 경우
③ 여러 엔터티가 하나로 통합 표현되면서 별도 관계를 가진 경우
④ SQL문장이 길어져 복잡성이 증가되는 것을 방지하는 경우
문제 2. UML에서 존재적 관계와 행위에 의한 관계는 각각 어떤 선으로 표현하는가?
① 실선, 실선 ② 점선, 실선 ③ 실선, 점선 ④ 점선, 점선
문제 3. 다음 중 엔터티의 특징으로 올바르지 않은 것은?
① 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다
② 하나의 인스턴스만으로도 엔터티가 될 수 있다
③ 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다
④ 유일한 식별자에 의해 식별이 가능해야 한다
🧩 고난도 해설
1. 정답: ②
비식별자 관계는 부모와 자식의 생명주기가 다른 경우에 사용합니다. 생명주기가 동일하다면 오히려 식별자 관계(강한 연결, 실선)를 사용하는 것이 적절합니다. 비식별자 관계 사용 조건: 부모 없는 자식 생성 가능, 생명주기 상이, 통합 엔터티 내 별도 관계, 별도 주식별자가 유리한 경우, SQL 복잡성 방지.
2. 정답: ③
UML에서 연관관계(존재적 관계)는 실선으로, 의존관계(행위에 의한 관계)는 점선으로 표현합니다. 반면 ERD에서는 두 관계를 구분하지 않고 동일하게 표기합니다. 이 차이를 묻는 문제가 종종 출제됩니다.
3. 정답: ②
엔터티는 반드시 2개 이상의 인스턴스 집합이어야 합니다. 하나의 인스턴스만으로는 엔터티가 될 수 없습니다. 이 조건은 엔터티 특징 6가지 중 하나이며, 시험에서 자주 함정으로 출제됩니다.
다음 편 예고
다음 2편에서는 SQLD 1과목의 나머지 핵심 영역인 ‘데이터 모델과 성능’을 다룹니다. 정규화와 반정규화의 차이, 파티셔닝 기법, 슈퍼/서브타입 변환까지 시험에 자주 나오는 성능 관련 개념을 완벽 정리합니다. 합격을 위한 핵심 정리가 이어지니 꼭 확인하세요!
