안녕하세요~ 오늘부터 SQLD 시험을 위한 공부를 해보려고 해서 책에 있는 내용을 정리해 보았어요!
1. 데이터 모델링이란?
- 현실 세계의 데이터를 논리적으로 구조화하여 DB에 표현하는 작업
- 시스템과 사용자 간 의사소통 도구 역할
[목적]
- 데이터 구조를 명확히 정의
- 중복 최소화, 일관성 유지
- 업무 규칙 반영
----------------------------------------------------
2. 데이터 모델의 3단계
(1) 개념적 데이터 모델
- 추상적 수준, 업무 중심
- 엔터티, 속성, 관계 정의
(2) 논리적 데이터 모델
- DBMS 독립적
- 키, 정규화 적용
- 관계형 구조화
(3) 물리적 데이터 모델
- DBMS 종속적
- 테이블, 인덱스, 파티션 등 구현 고려
----------------------------------------------------
3. 데이터 모델링의 3가지 관점
- 데이터 관점: 어떤 데이터를 저장해야 하나?
- 프로세스 관점: 데이터가 어떻게 처리되는가?
- 기능 관점: 시스템이 어떤 기능을 수행해야 하나?
----------------------------------------------------
4. 엔터티(Entity)
- 정의: 저장해야 할 대상 (명사형)
- 조건: 반드시 식별자(PK)가 존재, 하나 이상의 속성 필요
- 예시: 사원, 부서, 고객, 주문
[종류]
- 강한 엔터티: 자체 식별자 존재 (예: 사원)
- 약한 엔터티: 다른 엔터티의 도움으로 식별 (예: 자녀)
- 중심 엔터티: 주요 업무 정보 (예: 주문)
- 행위 엔터티: 이벤트 발생 시 기록 (예: 주문내역)
- 조인 엔터티: 다대다 관계를 1:N, N:1로 분리
----------------------------------------------------
5. 속성(Attribute)
- 정의: 엔터티가 가지는 정보 단위 (형용사형)
[종류]
- 기본 속성: 단순한 속성 (예: 이름, 나이)
- 도출 속성: 다른 속성으로 계산됨 (예: 나이 = 현재연도 - 생년월일)
- 복합 속성: 여러 속성으로 구성 (예: 주소 = 시 + 구 + 동)
- 다중값 속성: 여러 개의 값을 가짐 (예: 연락처 2개 이상)
----------------------------------------------------
6. 관계(Relationship)
- 정의: 엔터티 간의 논리적 연관성
- 기호: 관계선으로 표현됨 (->, <-- 등)
[관계 유형]
- 1:1 (사원 - 사원증)
- 1:N (부서 - 사원)
- N:M (학생 - 과목): 조인 테이블 필요
----------------------------------------------------
7. 식별자(Identifier, Key)
[종류]
- 기본키(PK): 유일하게 식별하는 속성
- 후보키: 유일성과 최소성을 만족하는 속성 집합
- 대체키: 후보키 중 기본키로 선택되지 않은 것
- 외래키(FK): 다른 테이블의 기본키를 참조하는 키
[특징]
- NULL 불가, 중복 불가
----------------------------------------------------
8. 정규화(Normalization)
- 목적: 데이터 중복 제거, 이상현상 제거, 구조 안정화
[정규형 요약]
- 1NF: 원자값만 허용 (반복 속성 제거)
- 2NF: 부분 함수 종속 제거 (기본키 전체에 종속)
- 3NF: 이행적 함수 종속 제거 (기본키가 아닌 속성 간의 종속 제거)
- BCNF: 결정자가 후보키가 아닐 경우 분해 (더 엄격한 3NF)
----------------------------------------------------
9. ERD(Entity Relationship Diagram)
- 개념적 데이터 모델을 시각화한 다이어그램
- 구성 요소: [엔터티] - (관계) - [엔터티], 엔터티 내부에 속성 표시
- 표기법: Crow’s Foot(다중성 시각적으로 표현됨) 자주 사용
감사합니다:) 도움이 되셨다면 좋아요/서로이웃 눌러주시면 감사하겠습니다~