[SQLD] 데이터 모델링의 이해

yurinnn·2024년 5월 24일

DB

목록 보기
3/9

데이터 모델링이란?

  • 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
    • 시스템 구현만이 목적이 아니다.
    • 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이다.
  • 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정
  • 데이터베이스를 구축하기 위한 분석 및 설계의 과정
    • 데이터베이스를 구축하는 것만이 목적이 아니다.
    • 데이터 모델링 자체로도 업무를 설명하고 분석한다.
    • 분석된 모델로 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.

데이터 모델링의 유의점

중복 (Duplication)

  • 여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 하여 중복성을 최소화한다.

비유연성 (Inflexibility)

  • 데이터 모델이 수시로 변경되어 유지보수의 어려움을 가중시킬 수 있다.
  • 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터나 프로세스의 작은 변화가 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

비일관성 (Inconsistency)

  • 데이터 중복이 없더라도 비일관성은 발생할 수 있다.
  • 데이터 간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.
  • 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점이다.

데이터베이스 스키마 3단계

스키마란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다.

외부스키마 (External Schema)

  • 여러 사용자 관점으로 구성한다.

개념스키마 (Conceptual Schema)

  • 통합된 모든 사용자의 관점으로 구성한다.
  • DB에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마이다.

내부스키마 (Internal Schema)

  • 물리적인 저장구조를 표현한다.

ERD 란?

가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치한다.

  • 작성 순서
    엔터티 도출 → 배치 → 관계 설정 → 관계명 기술 → 관계의 참여도 기술 → 필수여부 기술

엔터티의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
  • 유일한 식별자에 의해 식별이 가능해야 한다.
  • 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.
  • 업무 프로세스에 의해 이용되어야 한다.
  • 반드시 속성을 가진다.
  • 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. 그러나 통계성, 공통코드 경우는 관계를 생략할 수 있다.

발생 시점에 따른 엔터티

  • 기본, 키 엔터티
  • 중심 엔터티
  • 행위 엔터티

엔터티, 인스턴스, 속성의 관계

  • 하나의 엔터티는 두 개 이상의 속성을 갖는다. (또는 두 개 이상의 인스턴스 집합)
  • 하나의 인스턴스에서 각각의 속성은 하나의 속성값을 갖는다.

식별자

주식별자 지정시 고려 사항

  • 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
  • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
  • 주식별자가 지정이 되면 반드시 값이 들어와야 한다. (NULL 허용 안됨)

식별자의 분류 체계

속성

특성에 따른 분류

  • 기본속성
    • 업무분석을 통해 바로 정의한 속성
  • 설계속성
    • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해 내는 속성
  • 파생속성
    • 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
    • 데이터를 조회할 때 성능을 빠르게 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
  • 일반속성
    • 엔터티 구성방식에 따른 분류속성으로 엔터티에 포함되어 있고 PK, FK 에 포함되지 않은 속성

데이터 모델의 개념

도메인 (Domain)

  • 속성이 가질 수 있는 값의 범위
  • 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념

데이터 모델링의 관계

  • 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD 에서는 구분하지 않고 단일화된 표기법을 사용한다.
  • UML 에는 클래스다이어그램의 관계 중 연관관계와 의존관계가 있고, 실선과 점선의 표기법으로 표현한다.
  • 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고, 의존관계는 행위에 의해 관계가 형성되는 행위적 관계에 해당한다.
  • 연관관계는 소스코드에서 멤버변수로 선언하여 사용할 수 있고, 의존관계는 오퍼레이션에서 파라미터 등으로 이용할 수 있다.
  • 관계 표기법 : 관계명, 관계차수(1:1, 1:M, M:N), 선택성(선택사양)

엔터티 관계 도출시 확인 사항

  • 두 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
  • 두 엔터티 사이에 정보의 조합이 발생되는가?
  • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
  • 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?

데이터 독립성

  • 논리적 독립성
  • 물리적 독립성
    - 물리 스키마(파일 저장구조 등)가 변경되어도 논리 스키마에 영향을 주지 않는다.
  • 개념적 독립성
  • 내부적 독립성
profile
슬기로운 개발 생활

0개의 댓글