1. 데이터 모델링이란? 현실 세계 / 관심있어 하는 대상 / 데이터베이스화 / 도구
2. 잘된 데이터 설계 : 중복배제 / 일관성 / 유연성
3. 절차
1) 개념데이터 모델링
- 주제영역정의 : 20개 내외 / 하위주제영역별 엔터티는 100개 안넘도록 / 명사형 / 상향식, 하향식 / 유연성, 균형유지, 업무친화도유지
- 핵심엔터티 도출
* Entity란? 관리하고자 하는 / 집합 / 독립성, 동질성, 본질적 / 개체집합 / 행위집합
* Entity 분류 ( key - 주체 ex.customer / 메인 - 키엔터티가 행위를 함으로 발생되는 행위의 집합 ex.order / 액션 - 실제발생업무 ex. orderitems)
- 관계정의
2) 논리데이터 모델링(엔터티상세화)
- 정규화 : 이상현상이 야기하는 종속관계 제거 -> 여러 엔터티로 무손실 분해하는 과정
① 1차 정규형 : 반드시 하나의 값
② 2차 정규형 : 완전 종속 ( 부분함수종속제거), 모든 컬럼들이 기본키에 종속적(전체키에 종속적)
③ 3차 정규형 : 식별자를 제외한 나머지 속성들 간의 종속이 존재하면 안된다(이행함수종속제거)
④ BCNF 정규형 : 결정자가 key가 아님
- 이력관리
① 시점이력 : 데이터의 변경이 발생한 시각만을 관리 ex. 발생일자 20190501 -> key
② 선분이력 : between사용해서 편리 ex. 시작일자 20190521 ~ 종료일자 99991231 -> key
3) 물리데이터 모델링(논리-물리 데이터 모델변화)
- 역정규화 (denormaliztion) 반정규화라고도함 : 테이블 병합, 추가(자주이용하는 집중화된 컬럼들을 모아놓은 별도의 반정규화된 테이블생성), 분할
① 컬럼의 역정규화 : 컬럼중복 : JOIN을 줄이기(중복컬럼 추가, 파생컬럼추가 - 미리 값을 계산하여 컬럼에 보관, 이력테이블 컬럼추가, 오작동을 위한 컬럼추가 - backup)
② 테이블의 역정규화 : 컬럼을 기준으로 테이블 분리
③ 테이블의 역정규화 : 행을 기준으로 테이블 분리
④ 관계의 역정규화 : 지름길을 만든다(중복관계 추가 -> 성능저하 예방)
4. 모델링 기본원칙
- 커뮤니케이션 원칙 : 커뮤니케이션 도구
- 모델링 상세화 원칙 : 데이터의 근본적 이해가 가능한 수준까지 상세화
- 논리적 표현 원칙 : 물리모델의 영향을 받지 않고 비즈니스를 반영한 논리모델 설계
'DATABASE(SQL)' 카테고리의 다른 글
이력 테이블에서 최종 데이터만 조회하기 (0) | 2020.03.03 |
---|---|
DB모델링 - Entity, Attribute, Identifier, Relation (0) | 2020.01.03 |
ORACLE LIMIT 기능 구현 (0) | 2019.10.29 |
DB모델링실습 - 인사평가시스템 (0) | 2019.09.26 |
DB모델링실습 - 도서관리, PC제조판매 (0) | 2019.09.25 |