데이터 모델링(2)

1 minute read

전 포스트 데이터 모델링(1)과 이어지는 내용입니다.

데이터 모델링에서의 데이터 독립성

데이터 독립성이란

데이터 독립성은 애플리케이션에 대해 독립하는 것을 말할 수 있다. 애플리케이션은 사용자 요구사항을 처리하는데, 사용자의 접근하는 유형에 따라 데이터를 구성하는 방법이 영향을 받는다. 데이터 독립성이란, 이 영향으로부터 애플리케이션에 대해 독립한다(최소화한다)는 뜻으로 볼 수 있다. (데이터 독립성의 반대말은 데이터 종속성입니다).

데이터 독립성의 필요성

데이터 독립성을 통해 지속해서 증가하는 유지비용⬇️, 데이터 복잡도⬇️, 중복된 데이터⬇️를 낮출 수 있기 때문에, 사용자 요구 사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지할 필요가 있다.

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

외부 단계 (External Schema)

  • 뷰 단계. 사용자와 가까운 단계.
  • 사용자 관점. 사용자 개인적 DB 스키마.
    • 사용자마다 처리하고자 하는 데이터 유형, 관점, 방법에 따라 다른 스키마 구조로 되어 있음

개념적 단계 (Conceptual Schema)

  • 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된
  • 통합 관점

내부적 단계 (Internal Schema)

  • 데이터가 물리적으로 DB에 저장된 형식에 대한 스키마 구조
  • 물리적 저장구조

데이터 모델링의 중요한 3가지 개념

데이터 모델링의 3가지 요소

  1. Things: 업무가 관여하는 어떤 것
  2. Attributes: 어떤 것이 가지는 성격
  3. Relationships: 업무가 관여하는 어떤 것 간의 관계

데이터 모델의 표기법 ERD

  • 1976년 피터 첸(Peter Chen)이 ER모델(Entity-Relationship model) 표기법을 만듦
  • 엔터티는 사각형, 관계는 마름모, 속성은 타원형으로 표기
  • 여러 가지 표기법이 존재: Barker, IE 표기법 등

ERD 작업 순서

  1. 엔터티를 그린다.
  2. 엔터티를 적절하게 배치한다.
    • 일반적으로 가장 중요한 엔터티를 왼쪽 상단, 업무 흐름에 중심이 되는 엔터티를 중앙에 배치
    • 왼쪽에서 오른쪽, 위쪽에서 아래쪽으로 자연스럽게 흐를 수 있도록 배치
  3. 엔터티 간 관계를 설정한다.
  4. 관계명을 기술한다.
  5. 관계의 참여도를 기술한다.
  6. 관계의 필수 여부를 기술한다.

좋은 데이터 모델의 요소

  • 완전성 (Completeness)
    • 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의된다
  • 중복 배제 (Non-Redundancy)
    • 데이터 중복을 배제함으로써 낭비되는 저장 공간, 데이터 관리 비용을 줄인다
  • 업무 규칙 (Business Rules)
    • 수많은 업무 규칙을 데이터 모델에 표현하여 모든 사용자와 공유한다
  • 데이터 재사용 (Data Reusability)
    • 데이터의 통합성과 독립성을 고려해서 데이터 재사용을 향상한다.
    • 데이터 구조의 확장성, 유연성을 가진다.
      • 데이터가 애플리케이션에 대해 독립적으로 설계되어서, 외부 업무환경 변화에 대해 유연하게 대응한다.
  • 의사소통 (Communication)
    • 업무 규칙을 데이터 모델에 최대한 자세하게 표현함으로써 관련자들이 업무 규칙들을 동일한 의미로 받아들이고 활용할 수 있게 한다.
  • 통합성 (Integration)
    • 동일한 데이터는 조직 전체에서 한 번만 정의되고 이를 여러 다른 영역에서 참조·활용한다.

SQLD 41회에 관련 문제가 나왔었습니다. 데이터 모델의 틀린 요소를 찾는 것이었는데, 저는 기능성으로 답했습니다.

Reference

  1. “SQL 전문가 가이드” by 한국데이터산업진흥원 p.22-36

Leave a comment