18일차 : 물리 데이터 모델 품질 검토

Dev_HG·2020년 7월 21일
0

1. 물리 데이터 모델 품질 기준

1. 물리 데이터 모델 품질 기준 개념

  • 물리적 데이터 모델은 시스템 성능에 대해 직접적인 영향을 미치기 때문에 성능 문제를 사전에 검토하여 최소화하는 노력이 절대적으로 필요하다

2. 물리 데이터 모델 품질 요소

1. 정확성

  • 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무 영역 또는 요구 사항이 정확하게 반영되었음을 의미

2. 완전성

  • 데이터 모델의 구성요소를 정의하는 데 있어서 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미

3. 준거성

  • 제반 준수 요건들이 누락 없이 정확하게 준수되었음을 의미

4. 최신성

  • 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있고, 이슈 사항들이 지체없이 반영되고 있음을 의미

5. 일관성

  • 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 참조, 활용되면서, 모델 표현상의 일관성을 유지하고 있음을 의미

6. 활용성

  • 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달 할 수 있으면서, 업무 변화 시에 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미

2. 물리 E-R 다이어 그램

1. 논리적 설계

  • 엔터티
  • 속성
  • 주 식별자
  • 외래 식별자
  • 관계
  • 관계의 카디널리티
  • 관계의 참여도

2. 물리적 설계

  • 테이블
  • 컬럼
  • 기본 키
  • 외래 키
  • 관계
  • 관계의 카디널리티
  • 관계의 참여도

3. 데이터베이스

  • 테이블

  • 컬럼

  • 기본 키

  • 외래 키

  • 논리 데이터 모델에서 물리 데이터 모델로 변환되면서 각 구성들에 대한 명칭이 변경된다.

2. 관계 변환

1. 1:1 변환

  • 논리 데이터 모델에서 1:1관계는 일반적이지 않은 형태의 관계
  • 상대적으로 자주 사용되는 테이블에 외래 키를 포함하는 것이 유리

2. 1:N 변환

  • 논리 데이터 모델의 관계에서 가장 보편적 형태의 관계이며, N 측의 관계 컬럼에 선택사양이 결정되게 된다.

3. N:M 변환

  • 실제 데이터 환경에서는 빈번하게 등장하는 논리 데이터 모델의 배타적 관계 모델은 물리 모델링에서 생성하는 방법이 일반적인 관계 변환 방법과는 차이가 있다.
    => N:M 변환 케이스
  • 외래 키 분리 : 관계별로 관계 컬럼을 생성하는 방법으로 실제 외래 키의 제약조건이 생성 가능
  • 체크 제약 조건의 추가적 생성이 필요
  • 외래 키 결합 : 관계들을 하나의 관계 컬럼으로 통합 생성하는 방법, 실제 외래 키 제약 조건의 생성은 불가능하고 다수의 관계를 선별하여 구분하기 위한 별도의 컬럼 필요

3. 관리 목적 테이블 또는 컬럼의 추가

  • 데이터베이스를 이용하는 프로그래밍의 수행 속도 향상을 위해 추가되는 테이블이나 컬럼으로 관리가 가능하다

4. 데이터 타입 선택

  • 물리 모델링에서 자주 발생하는 문제 중 하나가 컬럼 데이터 형식 설저으이 오류로 인해 발생한다.
  • 논리 모델링에서 정의된 논리적인 데이터 타입을 물리적인 DBMS 특성과 성능의 고려를 통해 최적 데이터 타입을 선택해야 한다.

5. 데이터 표준 적용

  • 논리 데이터 모델링의 산출물을 물리데이터 모델링에서 변환하는 경우 필수적으로 각각의 대상에 대한 이름을 생성하게 된다.
    => 데이터 표준화 절차(프로세스) : 요구사항 수집 -> 표준 정의 -> 표준 확정 -> 표준 관리 절차로 이루어져 있다.
  • 이름의 변환 과정에서 데이터베이스의 활용 및 관리를 고려하여 전사적으로 사전에 수립된 데이터 표준을 준수하게 된다.
  • 데이터 표준에는 표준 용어, 표준 도메인, 표준 명명 규칙 등이 존재한다.

3. CRUD 분석

1. CRUD 분석 개념

  • 시스템 개발 시 프로세스와 데이터베이스에 저장되는 데이터 사이의 관계를 CRUD로 분석하는 기법이다.
  • 주로 CRUD 매트릭스를 통해 관계를 표현

2. CRUD 매트릭스

1. CRUD 매트릭스(CRUD Matrix)개념

  • 프로세스와 데이터 사이에 관계 의존성을 CRUD(Create, Read, Update, Delete)로 표현한 매트릭스

2. CRUD 매트릭스 필요성

  • 모델링 작업 검증 : 분석 단계의 데이터 모델과 프로세스 모델에 대한 작업 검증 역할을 수행
  • 중요 산출물 : 시스템 구축 단계에서 애플리케이션 개발 시 필요하며 중요한 산출물
  • 테스트 시 사용 산출물 : 애플리케이션을 객관적 자료를 사용하여 테스트 시 중요 테스트 케이스 역할을 수행
  • 인터페이스 현황 파악 : 전체 업무의 인터페이스 파악이 가능

3. CRUD 매트릭스 구성요소

  • 엔터티 타입 : 프로세스에 영향을 받는 데이터, 데이터베이스의 튜플 역할(고객, 제품, 주문, 목록)
  • 단위 프로세스 : 엔터티의 영향을 주는 업무 단위, 데이터베이스의 트랜잭션 역할
    (고객 등록, 주문 조회)
  • CRUD : 프로세스가 엔터티에 주는 영향, Create, Read, Update, Delete(생성, 조회, 수정, 삭제)

4. CRUD 매트릭스 규칙

1. 엔터티 타입

  • 모든 엔터티에 C 가존재
  • 데이터는 1번 생성되어야함
  • 데이터 생성이 없으면 데이터의 읽기, 갱신, 삭제가 불가능
  • 모든 엔터티에 R 존재
  • 데이터는 최소한 한번은 읽어야함
  • 모든 엔터티에 CRUD 존재
  • 엔터티에 C,R,U,D 중 하나라도 존재해야 함

2. 프로세스

  • 두 개 이상의 단위 프로세스가 하나의 엔터티 타입 생성불가
  • 같은 엔터티에 두개 이상의 C가 존재하면 안됨
  • 모든 단위 프로세스는 하나 이상 엔터티 타입에 표기
  • 단위 프로세스에 CRUD 중 하나라도 존재해야함
  • CRUD 매트릭스 규칙을 통해 매트릭스에 빠진 부분이 있는지 확인할 수 있다.

3. SQL 성능 튜닝

1. SQL 성능 튜닝 개념

  • 최소의 자원을 이용하여 데이터베이스로부터 최적의 성능을 제공하도록 하는 개선활동이다.
  • 튜닝 결과에 따라 동일한 결과에 대해서 성능 차이가 크게 발생한다.

2. SQL 성능 튜닝 기법

  • 옵티마이저 조정 : 옵티마이저의 실행계획을 점검 및 조정
  • 힌트 사용 : 힌트를 사용해 원하는 실행계획으로 유도
  • 부분 범위 처리 사용 : 일부만 액세스한 후 결과를 리턴해 빠른 응답을 제공
  • 인덱스 활용 : 인덱스를 무용지물로 만드는 SQL을 수정
profile
꾸준함

0개의 댓글