DB모델링 - 기본 개념, 절차, 원칙, 정규화, 역정규화, 이력관리

|

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. 모델링 기본원칙

- 커뮤니케이션 원칙 : 커뮤니케이션 도구

- 모델링 상세화 원칙 : 데이터의 근본적 이해가 가능한 수준까지 상세화

- 논리적 표현 원칙 : 물리모델의 영향을 받지 않고 비즈니스를 반영한 논리모델 설계

 

And