SQLD자격증공부/개념

데이터베이스 모델링 - 데이터 모델링

김옹희 2023. 4. 30. 19:25

1. 정의

  • 고객과 함께 고객의 업무 프로세스를 이해해야 데이터 모델링을 제대로 할 수 있다.
  • 현실 세계를 데이터베이스에서 표현하기 위한 추상화 과정이다.
  • 데이터 모델링 표기법을 사용해서 모델링 한다.
  • 고객의 업무 프로세스내 비즈니스 프로세스 규칙정의하여 데이터 모델로 표현 할 수 있어야 한다.
  • 고객이 이해하기 쉽고 간결하게 모델링 해야한다.

2. 특징

추상화 Abstraction 현실 세계를 일정한 양식(표기법)에 맞게 간략하게 표현
단순화 Simplification 누구나 이해하기 쉽도록 약속된 규약에 의한 제한된 표기법 또는 언어를 이용하여 표현
명확화 Clarity 명확하게 의미가 한 가지로 해석되어야 함으로 애매모호함을 제거하고 정확하게 현상을 기술

3. 단계

개념적 모델링 논리적 모델링 물리적 모델링
추상화 수준이 가장 높음
업무 측면의 모델링
전사적이고 포괄적인 모델링
핵심 엔터티 도출
ERD 작성
특정 데이터베이스 모델에 종속
세부속성, 식별자, 관계 등 정확하게 표현
데이터 정규화 완료
재사용성이 높음
물리적인 성능과 데이터
저장을 고려한 설계
가장 구체적인 데이터 모델링
추상화 수준이 가장 낮은 단계
성능, 보안, 가용성을 고려한
데이터베이스 모델링

4. 3가지 관점

  • 데이터 관점 - 데이터와 업무 간의 어떤 관련이 있는지, 데이터와 데이터 사이의 관계가 무엇인지에 따라 모델링 한다.
    비즈니스 프로세스에서 사용되는 데이터를 의미한다.
    - 구조분석, 정적분석
  • 프로세스 관점 - 실제 하는 업무에 따라 무엇을 어떻게 하는지 모델링 한다. 비즈니스 프로세스에서 수행하는 작업을 의미한다.
    - 시나리오 분석, 도메인 분석, 동적 분석

  • 데이터와 프로세스의 상관 관점 - 업무의 처리(프로세스)와 데이터 간의 서로 어떤 영향을 주고 받는지를 모델링 한다. 프로세스와 데이터 간의 관계를 의미한다.
    CRUD( Create, Read, Update, Delete )

5. 데이터 모델링을 위한 ERD (Entity Relationship Diagram)

 

1976년 피터 첸(Peter Chen) 이 만든 표기법, 데이터 모델링의 표준으로 지금까지 사용됨.

대표적인 표기법 - Chen, IE/Crow's Foot, Barker, UML

 

ERD를 작성하는 순서

  1. 엔터티 도출
  2. 엔터티 배치
  3. 엔터티 관계 설정
  4. 관계명 기술
  5. 관계 참여도 기술
  6. 관계 필수 여부 기술

 6. 3단계 구조 스키마 ( 3-Level Schema )

  • 데이터베이스의 독립성을 위해 3단계 구조 스키마가 존재
  • 사용자(외부 스키마), 설계자(내부 스키마), 개발자(개념 스키마)의 각기 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 ANSI표준으로 정함
  • 데이터의 독립성 확보를 통해 생긴 장점
      데이터 복잡도 감소
      데이터 중복 제거
      사용자 요구사항 변경에 따른 대응력 향상
      관리 및 유지보수 절감 
  • 각 계층을 뷰라고 부르며 3단계 계층으로 분리되어 서로 독립성을 확보

7. 데이터베이스 3단계 구조 특징

  • 외부 스키마(외부 단계)
    데이터베이스의 개별 사용자 관점의 이해와 표현
    응용프로그램이 접근하는 데이터베이스
    여러 개의 외부 스키마 존재

  • 개념 스키마(개념 단계)
    데이터베이스 관리자의 관점으로 규칙과 구조 표현
    데이터베이스의 전체적인 논리구조
    일반적으로 스키마는 개념 스키마를 지칭

  • 내부 스키마(내부 단계)
    데이터베이스 시스템의 설계자 관점으로 저장 장치 관점의 이해 및 표현
    데이터가 실제로 데이터베이스에 물리적으로 어떻게 저장 되는지 확인

8. 엔터티( Entity)

  • 데이터의 집합
  • 저장되며 관리되는 데이터
  • 개념, 사건, 장소 등의 명사

  • 유형 과 무형에 따른 분류
    유형 엔터티 - 물리적, 안정적, 지속적인 엔터티 ( 사원, 제품, 교수 등)
    개념 엔터티 - 물리적이진 않지만 개념적으로 존재하며 정보로 구분되는 엔터티 ( 강의, 금융상품, 부서 등 )
    사건 엔터티 - 비즈니스 프로세스에 따라 발생되는 엔터티, 테이터가 많음 ( 구매, 판매, 영업, 수납 등 )

  • 발생 시점에 따른 엔터티 분류
    기본 엔터티 - 키 엔터티, 독립적으로 생성 및 관리 ( 고객, 부서, 판매제품 )
    중심 엔터티 - 기본 엔터티로 부터 발행되는 행위 엔터티를 생성하는 중간 엔터티 ( 계좌, 주문 수납 등 )
    행위 엔터티 - 상위에 있는 2개 이상의 엔터티로 부터 발생되는 엔터티 ( 주문이력, 접속이력, 수납이력 등)

9. 속성( Atrribute )

  • 엔터티가 가지는 항목
  • 속성은 더 이상 분리 되지 않는다.
  • 업무에 필요한 데이터를 저장
  • 인스턴스의 구성 요소로 최소의 데이터 단위이다.

  • 속성의 특징
    속성은 업무에서 관리되는 정보이다.
    속성은 하나의 값만 가진다.
    주식별자에게 함수적으로 종속된다. 기본키에 따라 속성의 값도 변경 될 수 있다.
  • 특성에 따른 속성의 종류
    기본속성 - 비즈니스 프로세스에서 도출한 본래의 속성 ( 이름, ID, 전화번호, 등록일시 등 )
    설계속성 - 데이터 모델링 과정에서 발생되는 속성 ( 상품코드, 지점코드 등 )
    파생속성 - 다른 속성에 의해서 만들어지는 속성 ( 합계, 평균 등 )