2 분 소요


데이터 모델링

데이터 모델링의 단계

개념적 모델링

  • 고객의 비지니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링을 수행
  • 복잡하게 표현하지 않고, 중요한 부분을 위주로 모델링하는 단계
  • 업무적 관점에서 모델링하며, 기술적 용어는 가급적 사용 X
  • 엔티티와 속성을 도출하고 개념적 ERD를 작성한다.

논리적 모델링

  • 개념적 모델링을 논리적 모델링으로 변환하는 과정
  • 식별자를 도출하고 필요한 모든 릴레이션을 정의한다.
  • 정규화를 수행해서 데이터 모델의 독립성을 확보한다.

물리적 모델링

  • 데이터베이스를 실제 구축한다.
    • 테이블, 인덱스, 함수 등을 생성한다.
  • 성능, 보안, 가용성을 고려하여 구축한다.

img1

ERD (Entity Relationship Diagram)

  • 1976년 피터첸이 ERD 표기법을 만들었고, 사실상 데이터 모델링의 표준으로 사용되고 있음.
  • 엔티티 간의 관계를 정의하는 모델링 방법

작성 절차

  1. 엔티티를 도출하고 그린다.
  2. 엔티티를 배치한다.
    • 엔티티를 도출한 후 엔티티를 베치한다.
    • 중요한 엔티티를 왼쪽 상단에 배치 (가시성)
  3. 엔티티 간의 관계를 설정한다.
  4. 관계명을 서술한다.
    • 엔티티 간의 어떤 행위나 존재가 있는지 표현
  5. 관계 참여도를 표현한다.
    • 관계 참여도 : 1개의 엔티티와 다른 엔티티 간의 참여하는 관계 수
  6. 관계의 필수 여부를 표현한다.
    • 필수 : 반드시 존재해야 하는 것.

ERD 작성 시 고려사항

  • 중요한 엔티티를 가급적 왼쪽 상단에 배치
  • ERD는 이해하기 쉽고 복잡하지 않아야 함.

3중 스키마(3-Level Schema)

img2

외부 스키마

  • 사용자 관점, 업무상 관련이 있는 데이터 접근
  • 응용 프로그램이 접근하는 데이터베이스를 정의한다.

개념 스키마

  • 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
  • 전체 데이터베이스 내의 규칙과 구조를 표현한다.
  • 통합 데이터베이스 구조이다.

내부 스키마

  • 개발자 관점, 데이터베이스의 물리적 저장 구조이다.
  • 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미

엔티티(Entity)

엔티티 특징

  • 식별자
    • 엔티티는 유일한 식별자가 있어야 한다.
  • 인스턴스 집합
    • 2개 이상의 인스턴스를 가져야 한다.
  • 속성
    • 엔티티는 반드시 속성을 가지고 있어야 한다.
  • 관계
    • 엔티티는 다른 엔티티와 최소 1개 이상의 관계가 있어야 한다.
  • 업무
    • 엔티티는 업무에서 관리되어야 하는 집합이어야 한다.

엔티티의 종류
엔티티의 종류에 대해서는 아래 그림을 참고하자.

물리적 형태의 존재 여부에 따른 분류

img3

발생 시점에 따른 분류

img4

속성(Attribute)

속성이란?

  • 업무에서 필요한 정보인 엔티티가 가지는 항목
  • 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
  • 인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다.

특징

  • 속성은 하나의 값만 가진다.
  • 주식별자에게 함수적으로 종속된다.
    • 기본키가 변경되면, 속성의 값도 변경된다.

분류
속성의 분류는 아래 표를 참고하자.

분해 여부에 따른 속성의 분류

img5

특성에 따른 속성의 분류

img6

도메인이란?

  • 속성이 가질 수 있는 값의 범위를 의미한다.
  • 예를 들어 성별이라는 속성의 도메인은 ‘남자’, ‘여자’ 이다.

관계(Relationship)

관계란?

  • 엔티티 간의 관련성을 의미를 한다.

관계의 종류

  • 존재 관계
    • 엔티티 간의 상태를 의미
  • 행위 관계
    • 엔티티 간의 어떤 행위가 있는 것.

관계 차수

  • 두 개의 엔티티 간에 관계의 참여하는 수

img7

필수적 관계와 선택적 관계

  • 필수적 관계는 ‘l’로 표현되고, 선택적 관계는 ‘O’로 표현된다.
  • 필수적 관계
    • 반드시 하나가 있어야 하는 관계
    • 고객이 반드시 있어야 계좌를 개설할 수 있음.
  • 선택적 관계
    • 없을 수도 있는 관계
    • 고객은 있지만, 계좌가 없을 수도 있다면 선택적 관계가 됨.

식별 관계와 비식별 관계

  • 식별 관계
    • 강한 개체의 기본키를 다른 엔티티의 기본키로 가지는 관계
    • 실선으로 표현한다.
  • 비식별 관계
    • 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것.
    • 점선으로 표현한다.

엔티티 식별자(Entity Identifier)

식별자란?

  • 엔티티를 대표할 수 있는 유일성을 만족하는 속성

주식별자 속성

  • 최소성
    • 주식별자는 최소성을 만족하는 키이다.
  • 대표성
    • 주식별자는 엔티티를 대표할 수 있어야 한다.
  • 유일성
    • 주식별자는 엔티티의 인스턴스를 유일하게 식별한다.
  • 불변성
    • 주식별자는 자주 변경되지 않아야 한다.

키의 종류
아래 표를 참고하자

img8

식별자의 종류

  • 대표성 여부에 따라 주식별자, 보조 식별자로 나뉜다.
    • 주식별자
      • 유일성과 최소성을 만족하면서, 엔티티를 대표하는 식별자
      • 다른 엔티티의 참조 관계로 연결될 수 있다.
    • 보조 식별자
      • 유일성과 최소성을 만족하지만, 대표성을 만족하지 못하는 식별자
  • 생성 여부에 따른 분류
    • 내부 식별자
      • 엔티티 내부에서 스스로 생성되는 식별자
    • 외부 식별자
      • 다른 엔티티와의 관계로 인하여 만들어지는 식별자
  • 속성의 수에 따른 분류
    • 단일 식별자
      • 하나의 속성으로 구성
    • 복합 식별자
      • 2개 이상의 속성으로 구성
  • 대체 여부
    • 본질 식별자
      • 비지니스 프로세스에서 만들어지는 식별자
    • 인조 식별자
      • 인위적으로 만들어지는 식별자


참고 사이트 출처

  • https://starrykss.tistory.com/1612