01. DB 모델링
- 의미: DB를 만드는 것
- DB: 실제 업무(실무)를 의미함
- 모델링: 데이터를 그룹화 + 관계를 맺어주는 것
- 단계
- 개념 모델링: 관찰, 분석
- 논리 모델링: 설계
- 물리 모델링: 구현
- 데이터 모델 종류
- 개체관계 모델(ER, Entity-Relationship Model)
- 관계 모델(Relational Model)
- 계층 모델(Hierarchical Model)
- 망 모델(Network Model)
- ER Model (Entity-Relationship Model)
- ER Model: 표현하고자 하는 현업을 개체 + 관계로 표현
- ERD (Entity-Relationship Diagram): ER 모델을 도식화
- ER Model의 질적 특징 7가지
- 완전성 (Completeness): 빠지는 정보 X
- 정확성 (Correctness): ER 개념대로 데이터 모델 작성
- 최소성 (Minimality): 중복 X
- 자명성 (Self-explanation): 그림만 봐도 이해 가능
- 확장성 (Extensibility): 새로운 요구사항 수정이 용이
- 표현성 (Expressiveness): 추가적인 설명 없이도 이해 가능
- 가독성 (Readability): R/W 좋아야함
02. ER 모델 구성 요소
- 구성 요소
- 엔티티 (Entity): 그룹의 대표, 속성을 그룹화
- 구성 요소: PK 속성, FK 속성, 일반 속성
- 개념들 중 가장 중요한 핵심 키워드를 기준으로 묶음
- 둘 이상의 엔티티(객체)가 존재해야 함
- 둘 이상의 속성이 존재해야 함
- 각 인스턴스는 식별 가능
- 관계 (Relationship)
- 엔티티와 엔티티간의 존재하는 업무 규칙 정의/표현
- 관계의 종류
- 관계수 (cardinality): 엔티티의 인스턴스 : 다른 엔티티의 인스턴스 (최대 기준)
- 1:1(일대일), 1:N(일대다), N:M(다대다)
- 선택성 (optionality): 상대 인스턴스의 존재 유무
- 필수 (Mandatory)
- 선택 (Optional)
- 식별성 (dentifier Inheritance)
- 식별 관계: 의미상 더 긴밀한 관계 (같은 테이블로 봐도 무방)
- 식별자 상속: 한 엔티티의 PK 이면서 다른 엔티티의 FK인 것
- 비식별 관계: 주 식별자를 인조식별자로 지정하면 만들 수 있는 관계
- 식별 관계: 의미상 더 긴밀한 관계 (같은 테이블로 봐도 무방)
- 관계 유형
- 기본 관계: 엔티티와 엔티티가 하나의 관계를 맺음 (1:1, 1:N)
- 재귀적 관계: 엔티티가 자기 자신과 관계를 맺음 (계층적인 구조 표현)
- 병렬 관계: 엔티티와 엔티티가 두개 이상의 관계를 맺음
- 문제점: 데이터 찾기 어려움, 물리 설계 시 인덱스가 여러개 존재해야함
- 관계 개선 방법: 중간에 엔티티를 추가 (인터페이스)
- 슈퍼타입/서브타입 관계:
- 슈퍼타입: 공통 속성을 관리 (OOP; 부모)
- 서브타입: 개별 속성을 관리 (OOP; 자식)
- 배타적인 관계: 하나의 엔티티와 두 개 이상의 관계를 가지는데, 관계들이 AND가 아닌 OR
- 관계수 (cardinality): 엔티티의 인스턴스 : 다른 엔티티의 인스턴스 (최대 기준)
- 속성 (Attribute)
- 데이터를 표현하는 가장 작은 단위
- 하나의 엔티티는 두 개 이상의 속성을 가짐
- 구성
- 속성명: 실체의 특성을 규정하는 속성 명칭
- 식별자 여부: 해당 속성이 엔티티 식별자에 해당하는지 표시
- 옵셔널리티: 해당 속성이 반드시 값을 가져야하는지 표시
- Optional: 값을 갖지 않아도 됨 (NULL)
- Manadatory: 반드시 값을 가져야함 (NOT NULL)
- Canditional: 특정 조건에 해당할 경우 반드시 값을 가져야함
- 분류: 속성 값의 구성이나 성격에 따라 나눔
- 단순 속성(Simple) vs 복합 속성(Composite)
- 단순 속성: 더 분해할 수 없는 원자 값
- 복합 속성: 단순 속성들의 조합
- 저장 속성(Stored) vs 파생 속성(Derived)
- 저장 속성: 원래 존재하는 속성
- 파생 속성: 저장 속성/다른 파생 속성에 의해 생겨난 속성
- 성능 비교
- 저장 속성을 매번 계산하는 것: CPU 이용
- 파생 속성을 불러오는 것: I/O를 사용
- 단일 값(Single-value) vs 다중 값(Multi-value)
- 단일 값: 하나의 값만 가지는 속성
- 다중 값: 하나의 속성이 여러개의 값을 가지는 속성
- 다중 값은 모델링 정규화 과정을 통해 별도 엔티티로 분리
- 단순 속성(Simple) vs 복합 속성(Composite)
- 엔티티 (Entity): 그룹의 대표, 속성을 그룹화
03. 식별자 (Identifier)
- 의미: 인스턴스를 개별적을 식별할 수 있는 속성(들)
- 식별자의 특징 4 가지
- 유일성 (Uniqueness): 모든 인스턴스를 유일하게 식별 가능해야 함
- 최소성 (Minimum): 유일성을 만족하는 최소 속성들로 구성
- 불변성 (Stability): 식별자의 값은 변하지 않아야함
- 존재성 (Mandatory): 반드시 값이 존재해야함 (NOT NULL)
- 식별자 종류 4 가지: 대표성 여부에 따른 구분
- 고유 속성 여부: 실제 세계의 업무 기준
- 본질 식별자: 업무에서 일반적으로 통용되는 식별자
- 인조 식별자: 데이터를 효율적으로 관리하기 위해 생성/추가한 식별자
- 대표성 여부: 상대적인 개념
- 주 식별자
- 대체(보조) 식별자
- 고유 속성 여부: 실제 세계의 업무 기준
'DB 모델링' 카테고리의 다른 글
[DB 모델링] 관계형 데이터 모델 이론 (0) | 2025.02.12 |
---|