Database 개념4 - Database Modeling

Database Modeling(데이터베이스 모델링)

정보화 시스템을 구축하기 위해 어떤 데이터가 존재 하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법.

데이터 모델링 3단계

개념적 : 업무 중심의 포괄적, 추상적 모델링

논리적 : 개념적 모델링의 결과로부터 key, 속성, 관계 파악, 표현

물리적 : 실제 DBMS에 적용, 성능, 저장용량 등 고려한 작업 수행

데이터 모델링 순서

데이터모델링순서

ERD (Entity Relation Diagram)

E-R Diagram 기호

ER_Diagram기호

  • 개체(Entity) : 사용자와 관계가 있는 주요 객체로서 업무 수행을 위해 데이터로 관리되어져야 하는 사람, 사물, 장소, 사건 등을 실체(Entity)라고 한다.
    • Entity 찾는 법
  • 속성 (Attribute)
    • 저장할 필요가 있는 실체에 관한 정보
    • 실체(Entity)의 성질, 분류, 수량, 상태, 특성 등을 나타내는 세부사항
    • 실체에 포함되는 속성의 숫자는 10개 내외로 하는 것이 바람직함
    • 최종 DB 모델링 단계를 통해 테이블의 칼럼으로 활용
  • 속성의 유형
    • 기초 속성 : 원래 갖고 있는 속성으로 현업에서 기본적으로 사용되는 속성
    • 추출 속성 : 기초 속성으로부터 계산(가공)에 의해 얻어질 수 있는 속성
    • 설계 속성 : 실제로 존재하지 않으나 시스템의 효율성을 도모하기 위해 설계자가 임의로 부여하는 속성

논리적 데이터 베이스 모델링 과정

정규화

  • 애트리뷰트 간에 존재하는 함수적 종속성을 분석해서 관계형 스키마를 더 좋은 구조로 정제해 나가는 일련의 과정
  • 데이터의 중복을 제거하고 속성들을 본래의 제자리에 위치시키는 것

제 1 정규화

  • 반복되는 그룹 속성을 제거한 뒤 기본 테이블의 기본키를 추가해 새로운 테이블을 생성하고 기존의 테이블과 1:N의 관계를 형성하는 과정
  • 반복되는 그룹 속성이란 같은 성격과 내용의 칼럼이 연속적으로 나타나는 칼럼을 말함

제 2 정규화

  • 복합키에 전체적으로 의존하지 않는 속성 제거
  • 제2정규화의 대상이 되는 테이블은 키가 여러 칼럼으로 구성된 경우
  • 복합키의 일부분에 의해 종속되는 것은 부분적 함수 종속 관계라 하며 이를 제거하는 작업

제 3 정규화

  • 기본키에 의존하지 않고 일반 컬럼에 의존하는 컬럼들을 제거하는 과정
  • 이행적 함수 종속관계를 갖는 칼럼을 제거하는 과정

물리적 데이터베이스 모델링 과정

  • 논리적 데이터 베이스 모델링 단계에서 얻어진 데이터 베이스 스키마를 좀 더 효율적으로 구현하기 위한 작업과 DBMS 특성에 맞게 실제 데이터 베이스 내의 개체들을 정의하는 단계
    • Column의 domain 설정 (integer, varchar, date…)
  • 데이터 사용량 분석과 업무 프로세스 분석을 통해서 보다 효율적인 데이터 베이스가 될 수 있도록 효과적인 인덱스를 정의하고 상황에 따른 역정규화 작업을 수행함.
    • Index, Trigger, 역정규화

역정규화 (Denomalization)

  • 시스템 성능을 고려하여 기존 설계를 재구성하는 것
  • 정규화에 위배되는 행위
  • 테이블의 재구성

역정규화 방법

  • 데이터 중복 (컬럼 역정규화)

    • 조인 프로세스가 많아 시스템의 성능 저하를 가져오는 경우, 조인 프로세스를 줄이기 위해 해당 칼럼을 중복함으로써 성능을 향상시키기 위한 방법
  • 파생 컬럼의 생성

    • 기본적으로 테이블에 없는 컬럼을 숫자 연산이나 데이터 조작등을 통해 조회할 때 새로운 정보를 보여주는 경우

      ex) 판매 테이블의 판매금액 컬럼이나 성적 테이블의 총점과 평균

  • 테이블 분리

    • 컬럼 기준으로 분리(컬럼 수)
    • 레코드 기준으로 분리(레코드 양)
  • 요약 테이블 생성 (Summary Table)

    • 조회의 프로세스를 줄이기 위해 요약된 정보만을 저장하는 테이블을 만드는 것
  • 테이블 통합

    • 분리된 두 테이블이 시스템 성능에 영향을 끼칠 경우 고려

Leave a comment