정답 : 3번 엔티티 수는 7개
제시된 논리 데이터 모델을 3차 정규화까지 수행하면 7개의 엔터티가 도출됨.
엔터티에서 반복적인 속성 제거(제1정규화), 부분함수 종속 제거(제2정규화), 이행함수 종속 제거(제3정규화)를 수행하면 됨. 이 과정에서 (1)학생, (2)학과, (3)교수, (4)도서, (5)대출, (6)대출도서, (7)Lab실 이용신청 엔터티를 도출할 수 있음.
직접적으로 정규화를 수행하지 않더라도 학생, 학과, 교수, 도서, 대출, 대출도서는 번호라는 칼럼이 붙은 속성명을 참고하여 도출할 수 있고, Lab실 이용신청은 반복적인 속성을 통해 찾을 수 있음.
정규화 후 엔터티 수 고르는 2가지 방법
1) 정규화 없이 푸는 법 (편법)
정규화를 직접 수행하지 않고, 속성에서 '번호'를 찾아서 엔터티 도출하기
-> 이러면 제3정규화까지 대략 마무리 되는 경우가 많음
학생, 학교번호, LAB실신청번호, LAB실이용승인교수번호, 대출번호, 대출도서번호, ISBN = 총 엔티티수 7개
2) 정규화 해서 푸는 법
정규화를 통한 엔터티 도출과정은 아래와 같음.
1. 제1정규화 - 속성의 원자화, 반복속성 제거.
이 데이터 모델에서 반복그룹으로 볼 수 있는 부분은 Lab실 이용 관련 속성들임.
이 속성들을 아래와 같은 엔터티로 생성할 수 있음.
(1) LAB실이용(
학번,
이용순번,
이용신청일,
이용시작일,
이용만기일,
이용승인교수번호
)
2. 제2정규화 - 부분함수 종속 제거.
부분함수 종속이란 복합키의 일부에만 종속되는 속성을 의미함.
이 모델에서 대출/반납을 보면 :
- {대출번호, 도서번호)가 복합키가 될 수 있고
- 대출자번호(학번), 대출일자는 대출번호에만 종속
- 도서명, ISBN 등은 도서번호에만 종속
따라서 제2정규화를 통해 :
(2) 대출 ( 대출번호(PK), 대출자번호(학번), 대출일자 )
(3) 대출상세 ( 대출번호(PK), 도서번호(PK), 반납일자 )
(4) LAB실이용 ( 도서번호(PK), ISBN, 도서명 )
3. 제3정규화 - 이행함수(일반속성 간) 종속성 제거. A->B, B->C가 있을 때 A->C가 되는 관계.
이 모델에서 이행함수 종속이 있는 부분은 아래와 같으며, 여기서 학과, 출판사, 교수 엔터티를 도출할 수 있음
(5) 학과 ( 학과번호, 학과명 )
학번 -> 학과번호
학과번호 -> 학과명
따라서 학번 -> 학과명 (이행함수 종속)
(6) 출판사 ( 출판사코드, 출판사명 )
도서번호 -> 출판사코드
출판사코드 -> 출판사명
따라서 도서번호 -> 출판사명 (이행함수 종속)
(7) 승인교수( 교수번호, 교수명 )
Lab실 이용번호 -> 승인교수번호
승인교수번호 -> 교수명
따라서 Lab실 이용번호 -> 교수명 (이행함수 종속)
[요약 설명]
이 문제는 논리 데이터 모델에서 정규화를 수행하여 엔터티의 개수를 파악할 수 있는 능력을 평가함.
특히 대출 및 반납과 같은 관계형 데이터에서 중복 데이터 제거, 함수 종속성 분석, 그리고 엔터티의 분리를 통해 데이터 모델을 설계하는 과정을 이해하고 있는지를 묻고 있음.
[이론적 내용]
1. 논리 데이터 모델
- 논리 데이터 모델은 데이터베이스의 구조와 관계를 명확히 표현하며, 주로 엔터티, 속성, 관계 등을 정의함
- 정규화를 통해 중복 데이터를 최소화하고, 무결성을 유지할 수 있도록 설계됨
2. 정규화 과정
- 제1정규형(1NF) : 속성에 중복된 그룹속성이나 다중값을 제거함
- 제2정규형(2NF) : 부분함수 종속을 제거함. 복합 키가 주식별자인 경우, 일부 속성에만 종속하는 속성을 별도로 분리함
- 제3정규형(3NF) : 이행적함수 종속을 제거함. 한 속성이 다른 속성을 통해 간접적으로 의존하는 경우 이를 분리함
3. 엔터티 도출 시 고려사항
- 대출자, 대출번호, 도서, 반납 등 각 개념별로 엔터티가 분리될 수 있음
- 정규화 과정에서 중복되는 데이터나 함수 종속성을 제거하면 엔터티의 수가 증가할 수 있음
'Data Engineering' 카테고리의 다른 글
[SQLD 자격검정 실전문제] Part 1-2. 41번 데이터 모델링 정규화 설명 (0) | 2025.05.28 |
---|---|
[SQLD 자격검정 실전문제] Part 1-2. 40번 정규형 선택 문제 (0) | 2025.05.28 |
[SQLD 자격검정 실전문제] Part 1-2. 38번 정규형 문제 (0) | 2025.05.28 |
[SQLD 자격검정 실전문제] Part 1-2. 37번 정규화와 성능 (0) | 2025.05.27 |
[SQLD 자격검정 실전문제] Part 1-2. 36번 정규화와 분리된 스키마 구조 (0) | 2025.05.27 |