1. 데이터 모델링 개념
- 정의: 데이터베이스를 구축하기 전에 데이터의 구조와 관계를 설계하는 과정
- 목적: 데이터 중복 최소화, 무결성 유지, 효율적 데이터 관리
- 예시:
- 학생과 강의 데이터를 관리할 때, ‘학생 테이블’과 ‘강의 테이블’을 분리하여 설계
2. 데이터 모델링의 3가지 관점
- 데이터 관점
- 개체(Entity), 속성(Attribute), 관계(Relationship) 정의
- 예시:
- 학생(학번, 이름, 전공) ↔ 강의(강의코드, 강의명) ↔ 수강(학번, 강의코드)
- 프로세스 관점
- 데이터의 흐름과 CRUD 연산 정의 (DFD 활용)
- 예시:
- 학생이 ‘수강 신청’을 하면, ‘수강 테이블’에 데이터가 저장됨
- 사용자 관점
- 데이터 활용 방식, 권한, UI/UX 설계 고려
- 예시:
- 교수는 모든 학생의 수강 정보를 조회 가능, 학생은 자신의 정보만 조회 가능
3. 데이터 모델링 특징
- 추상화: 현실 세계를 논리적 구조로 변환
- 단순화: 복잡한 데이터 관계를 쉽게 표현
- 명확성: 데이터 구조를 이해하기 쉽게 정리
- 예시:
- 학생이 강의를 듣는 관계를 단순한 테이블 구조(학생-수강-강의)로 표현
4. 데이터 모델링의 중요성
- 데이터 중복 최소화 → 저장 공간 절약
- 데이터 무결성 유지 → 오류 및 불일치 방지
- 데이터 일관성 유지 → 시스템 간 원활한 연계
- 예시:
- 학생의 정보(이름, 학번)를 ‘학생 테이블’에서만 관리하여 중복 입력 방지
5. 데이터의 독립성
- 논리적 독립성: 논리적 구조 변경이 물리적 구조에 영향 없음
- 물리적 독립성: 저장 구조 변경이 논리적 구조에 영향 없음
- 예시:
- 논리적 독립성: 새로운 속성(이메일) 추가해도 기존 애플리케이션 영향 없음
- 물리적 독립성: HDD에서 SSD로 변경해도 데이터 구조 변경 없음
6. 데이터 모델링의 3단계
- 개념적 모델링
- ERD(Entity Relationship Diagram) 작성
- 개체, 관계, 속성 정의
- 예시:
- 학생 ↔ 강의 ↔ 수강 관계를 ERD로 표현
- 논리적 모델링
- 관계형 데이터베이스 설계
- 정규화 진행 (1NF, 2NF, 3NF)
- 예시:
- ‘강의명’을 ‘강의 테이블’에만 저장하여 데이터 중복 제거
- 물리적 모델링
- 실제 데이터베이스 구축
- 인덱스, 테이블스페이스, 성능 최적화 고려
- 예시:
- ‘학생 테이블’의 ‘학번’에 인덱스를 생성하여 조회 속도 개선
7. ERD(Entity Relationship Diagram) 개념
- 개체(Entity): 데이터베이스에서 관리할 대상 (예: 학생, 강의)
- 관계(Relationship): 개체 간의 연관성 (예: 학생 ↔ 수강 ↔ 강의)
- 속성(Attribute): 개체가 가지는 특징 (예: 학생 → 학번, 이름, 학년)
- 예시:
- ERD에서 학생(학번, 이름) ↔ 수강(학번, 강의코드) ↔ 강의(강의코드, 강의명)
8. 데이터 모델링의 주요 기법
- ER 모델(Entity-Relationship Model)
- 개체(Entity), 관계(Relationship), 속성(Attribute) 중심
- 예시:
- ‘학생 - 수강 - 강의’ 관계를 ERD로 표현
- 정규화(Normalization)
- 1NF: 반복 속성 제거
- 2NF: 부분적 함수 종속 제거
- 3NF: 이행적 함수 종속 제거
- 예시:
- ‘학생’ 테이블에서 ‘강의명’을 제거하고 ‘강의’ 테이블로 분리
- 반정규화(Denormalization)
- 성능 개선을 위해 일부 데이터 중복 허용
- 예시:
- ‘학생 테이블’과 ‘강의 테이블’을 조인 없이 조회 가능하도록 데이터 중복 저장
SQLD 제1장 데이터 모델링 – 항목별 실전 예제 문제
1. 데이터 모델링 개념
Q1. 데이터 모델링의 주요 목적이 아닌 것은?
① 데이터 중복 최소화
② 데이터 무결성 유지
③ 데이터 검색 성능 최적화
④ 프로그래밍 언어 선택
✅ 정답: ④ (데이터 모델링은 프로그래밍 언어와 무관함)
2. 데이터 모델링의 3가지 관점
Q2. 데이터 모델링의 3가지 관점에 대한 설명 중 틀린 것은?
① 데이터 관점에서는 개체와 속성을 정의하고 관계를 모델링한다.
② 프로세스 관점에서는 CRUD 연산을 분석하고, 데이터의 흐름을 정의한다.
③ 사용자 관점에서는 데이터 정규화를 수행하여 무결성을 유지한다.
④ 데이터 모델링에서는 데이터 관점, 프로세스 관점, 사용자 관점을 모두 고려해야 한다.
✅ 정답: ③ (사용자 관점은 데이터 정규화보다 데이터 활용 방식 정의가 주요 목적)
3. 데이터 모델링 특징
Q3. 다음 중 데이터 모델링의 특징이 아닌 것은?
① 현실 세계를 논리적 구조로 변환하는 추상화 과정이다.
② 데이터의 구조를 단순화하여 표현한다.
③ 데이터 모델링은 데이터베이스 구축 후에도 수정이 불가능하다.
④ 명확한 데이터 구조를 제공하여 이해하기 쉽게 만든다.
✅ 정답: ③ (데이터 모델링은 구축 후에도 수정이 가능함)
4. 데이터 모델링의 중요성
Q4. 데이터 모델링이 중요한 이유로 적절하지 않은 것은?
① 데이터 중복을 최소화하여 저장 공간을 절약할 수 있다.
② 데이터 무결성을 유지하여 오류와 불일치를 방지할 수 있다.
③ 데이터 구조를 자유롭게 변경하여 일관성을 무시할 수 있다.
④ 데이터 일관성을 유지하여 시스템 간 원활한 연계를 지원한다.
✅ 정답: ③ (데이터 구조 변경 시 일관성을 유지해야 함)
5. 데이터의 독립성
Q5. 다음 중 데이터의 독립성에 대한 설명으로 틀린 것은?
① 논리적 독립성이란 논리적 구조를 변경해도 응용 프로그램에 영향을 주지 않는 것이다.
② 물리적 독립성이란 저장 장치나 방식이 변경되어도 논리적 구조에 영향을 주지 않는 것이다.
③ 데이터 독립성이 높을수록 데이터베이스 관리가 어려워진다.
④ 데이터 독립성을 유지하면 유지보수 비용을 절감할 수 있다.
✅ 정답: ③ (데이터 독립성이 높으면 데이터베이스 관리가 더 쉬워짐)
6. 데이터 모델링의 3단계
Q6. 데이터 모델링 단계별 특징으로 옳지 않은 것은?
① 개념적 모델링에서는 개체, 관계, 속성을 정의한다.
② 논리적 모델링에서는 데이터베이스의 논리적 구조를 설계한다.
③ 물리적 모델링에서는 테이블을 설계하고 성능 최적화를 고려한다.
④ 논리적 모델링과 물리적 모델링은 같은 단계로 간주된다.
✅ 정답: ④ (논리적 모델링과 물리적 모델링은 서로 다른 단계)
7. ERD(Entity Relationship Diagram)
Q7. 다음 중 ERD(Entity Relationship Diagram)에 대한 설명으로 틀린 것은?
① 개체(Entity)는 관리하고자 하는 데이터의 대상이다.
② 관계(Relationship)는 개체 간의 연관성을 의미한다.
③ 속성(Attribute)은 개체가 가지는 특징을 나타낸다.
④ ERD는 물리적 데이터베이스 구축을 위한 직접적인 SQL 문을 포함한다.
✅ 정답: ④ (ERD는 개념적 모델링 도구이며 직접적인 SQL을 포함하지 않음)
chat gpt와 함께하는 즐거운 시간!
'SQLD' 카테고리의 다른 글
| SQLD) 제1장 데이터 모델링 요약 정리 2 (0) | 2025.02.18 |
|---|