본문 바로가기

programming/용어정리

[SQL] 1.1. 데이터 모델링의 이해

 

  1. 데이터 모델링
    • 현실 세계의 대상을 데이터베이스로 표현하기 위해 추상화한다
    • 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야 한다
    • 데이터 모델링 표기법을 통해 모델링을 수행한다
    • 고객도 쉽게 이해할 수 있도록 복잡하지 않도록 설계한다
    • 고객의 업무 프로세스를 추상화하고 SW가 분석/설계하면서 점차 상세해진다
  2. 데이터 모델링의 특징
    • 추상화
      • 현실세계를 간략하게 표현한다
    • 단순화
      • 누구나 쉽게 이해할 수 있도록 표현한다
    • 명확성
      • 명확하게 해석되어야 하며 하나의 의미를 가져야 한다
  3. 데이터 모델링 단계
    • 개념적 모델링
      • 전사적 관점에서 기업의 데이터를 모델링 한다
      • 추상화 수준이 가장 높은 모델링이다
      • 기술적 용어는 가급적 사용하지 않는다
      • entity, attribute 를 도출하고 개념적 ERD를 작성한다
    • 논리적 모델링
      • 식별자를 도출하고 릴레이션을 정의한다
      • 정규화를 수행하여 데이터 모델의 독립성을 확보한다 (독립성이 확보되면 재사용성이 올라간다)
    • 물리적 모델링
      • 실제 데이터베이스를 구축한다 (테이블, 인덱스, 함수 등을 생성)
      • 성능, 보안, 가용성을 고려하여 구축한다
  4. 데이터 모델링을 위한 ERD
    • ERD (Entity Relationship Model)은 entity와 다른 entity 간의 관계를 정의하는 모델링 방법이다
    • ERD 작성 절차
      • entity 를 도출하고 그린다
      • entity 를 배치한다
      • entity 간 관계를 설정한다
      • 관계명을 서술한다
        • 대체 무슨 관계가 있는 것인지 간략하게 서술
          • ex) 고객 테이블과 주문 테이블간에 관계는 [장바구니의 상품을 주문한다] 정도의 관계가 있을 수 있다
      • 관계 참여도를 표현한다
        • 1:1, 1:N, N:M
      • 관계의 필수 여부를 표현한다
        • 우산(빈 동그라미) nullable
  5. 데이터 모델링 고려사항
    • 데이터 모델의 독립성
      • 독립성이 확보된 모델은 고객의 업무 변화에 능동적으로 대응할 수 있다
      • 정규화를 통해 중복된 데이터를 제거하고 entity 를 분리할 수 있다
    • 고객 요구사항의 표현
      • 고객의 요구사항을 단순하게 표현해야 한다. 데이터 모델링으로 고객과 모델러가 의사소통이 가능해야 한다
      • 요구사항을 간결하고 명확하게 표현해야 한다
    • 데이터 품질 확보
      • 데이터 표준을 정의하고 최대한 준수한다

 

 

참고

- 영진닷컴 도서 `2019 이기적 SQL 개발자 이론서 + 문제집` 

반응형