Data Modeling
- 현실 세계의 데이터를 분석하고 설계하는 행위
- 구현만을 위한 것이 아님 (+ 운영, 업무 분석 등)
- 정보들을 일정한 표기법으로 표기
- 업무 분석 + DB 규칙을 하나의 표기로 수행
유의점
- 중복 제거
- 유연성
- 일관성
스키마 종류
- 외부 스키마
- 사용자 관점
- 각기 다른 view를 가질 수 있음
- 논리적인 부분
- 개념 스키마
- 모든 사용자의 관점을 통합
- 내부 스키마
- 물리적인 관점
독립
- 논리적 독립: 개념 스키마가 외부 스키마에 영향을 못 줌
- 물리적 독립: 내부 스키마가 개념 스키마에 영향을 못 줌
Entity
-
특징
- 해당 업무에 필요해야함
- 유일한 식별자가 존재해야함
- 인스턴스가 2개 이상이며, 영속적이여야함
- 한개 이상의 관계가 필요
- 2개 이상의 속성이 반드시 존재해야함
-
분류
- 기본: 다른 entity에 영향을 받지 않고 독립적으로 생성
- 중심: 기본으로부터 발생
- 행위: 업무가 실행될 때 발생
-
속성
- 이름: 전체에서 유일하게 짓는 것이 좋다.
-
속성 분류
- 기본: 본래의 속성
- 설계: 설계 단계에서 데이터 관리를 위하 만든 것
- 빠른 성능을 위해 원래 속성값으로 계산해서 저장
관계
- 이름: 동사로 짓는 것이 좋다.
- 분류
- 존재에 의한 관계
- 행위에 의한 관계
정규화
-
정규화는 논리 데이터 모델에서 진행
-
정규화 성능
- 처리 성능은 증가
- 조회 성능은 낮아짐
-
1차: 모든 속성을 원자값으로 분리 & 비슷한 성격을 column이 나열된 것을 분리
-
2차: entity의 기본키의 일부를 결정자로 쓰는 경우를 제거
-
3차: entity 내부에서의 종속성을 제거
-
BCNF: 모든 결정자를 후보키 이도록 분리
-
4차: 다치 종속 제거
-
5차: 조인 종속 제거
식별자
-
종류
- 주 식별자 <-> 보조 식별자
- 내부 <-> 외부
- 단일 <-> 복합
- 본질 <-> 인조 (인조 식별자는 중복데이터를 막기 힘듦)
-
식별자 <-> 비 식별자
- 식별자
- 자식 주 식별자 구성에 포함됨
- 부모 엔티티에 족속적
- 비 식별자
- 자식 일반 속성에 포함된
- 독립적
- Nullable
- 식별자