SQLD - 데이터 모델링의 이해

JS·2023년 5월 10일
0

1. 데이터 모델링의 정의

  • 고객과 함께 고객의 업무 프로세스를 이해해야 데이터 모델링을 제대로 할 수 있다.
  • 현실 세계를 DB에서 표현하기 위한 추상화 과정이다.
  • 데이터 모델링 표기법을 사용해서 모델링 한다.
  • 고객의 이해하기 쉽게 간결하게 모델링 해야 한다.
  • 고객의 업무 프로세스내 비즈니스 프로세스 규칙을 정의하여 데이터 모델로 표현 할 수 있어야 한다.
    (비즈니스 프로세스 규칙(BR) : ex) 책을 대여 해줄때 고객이 3회 연체 했을 경우 대여를 못한다.)

2. 데이터 모델링의 특징

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

3. 데이터 모델링의 단계

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

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)

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

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

  • 외부 스키마(외부 단계) : DB의 개별 사용자 관점의 이해와 표현
  • 개념 스키마(개념 단계) : DB 관리자의 관점으로 규칙과 구조 표현
  • 내부 스키마(내부 단계) : DB 시스템의 설계자 관점으로 저장 장치 관점의 이해 및 표현

8. 엔터티 (Entity)

  • 데이터의 집합

  • 저장되며 관리되는 데이터

  • 개념, 사건, 장소 드으이 명사

  • 유형과 무형에 따른 분류

  • 유형 엔터티 : 물리적이며, 안정적, 지속적인 엔터티 ex) 사원, 제품 등등

  • 개념 엔터티 : 물리적이진 안힞만 개념적으로 존재하며 정보로 구분되는 엔터티 ex) 강의, 금융상품, 부서 등등

  • 사건 엔터티 : ex) 비즈니스 프로세스에 따라 발생되는 엔터티 ex) 구매, 판매, 영업, 수납 등등

  • 발생 시점에 따른 엔터티 분류

  • 기본 엔터티 : 키 엔터티라고 하며, 독립적으로 생성 및 관리 된다.

  • 중심 엔터티 : 기본 엔터티로 부터 발행되는 엔터티를

  • 행위 엔터티 : 상위에 있는 2개 이상의 엔터티로 부터 발생되는 엔터티이다. ex) 주문 이력, 접속 이력, 수납 이력 등등

9. 속성 (Attribute)

  • 엔터티가 가지는 항목
  • 속성은 더 이상 분리 되지 않는다
  • 인스턴스의 구성 요소로 최소의 데이터 단위이다.
  1. 속성은 업무에서 관리되는 정보이다.
  2. 속성은 하나의 값만 가진다.
  3. 주식별자에게 함수적으로 증속된다. 기본키에 따라 속성의 값도 변경 될 수 있다.
  • 특성에 따른 속성의 종류
  • 기본속성 : 비즈니스 프로세스에서 도출한 본래의 속성 ex) 이름, ID, 전화번호, 등록일자 등등
  • 설계속성 : 데이터 모델링 과정에서 발생되는 속성 ex) 상품코드, 지점코드 등등
  • 파생속성 : 다른 속성에 의해서 만들어지는 속성 ex) 합계, 평균 등등
profile
신입 FE 개발자

0개의 댓글