자격증 공부📖/SQLD

[SQLD 데이터 모델의 이해] 모델링의 특징, entity(엔터티), attribute(속성)

hyunsix 2021. 5. 12. 21:46

1. 모델링의 특징

모델링은 복잡한 "현실 세계"를 데이터 모델을 통해 단순화켜 표현하는 것이다. 따라서 모델링은 아래와 같은 3가지 특성을 지닌다.

  1. 추상화 : 현실세계를 특정한 형식에 맞춰서 개념적으로 표현한다.
  2. 단순화 : 현실세계를 정의한 규칙이나 표기법이나 언어로 간단명료하게 표현한다.
  3. 명확화 : 애매모호한 표현은 제하고 누구나 이해할 수 있도록 정확하게 현상을 기술한다.

데이터 모델링은 현실세계 -> 개념적구조 -> 논리적구조 -> 물리구조 (데이터베이스) 의 flow를 가지는데 아래와 같이 그림으로 이해하면 보다 더 쉽게 이해할 수 있다.

  • 개념적 데이터 모델링은 현실 세계를 추상적인 개념으로 바꾸는 모델링이다. 추상화 수준이 높고 포괄적인 수준으로 모델링을 진행한다. 
  • 논리적 데이터 모델링은 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 보다 정확하게 표현해 놓는 단계이다. 
  • 물리적 데이터 모델링은 실제로 데이터베이스에 값을 넣을 수 있도록 성능, 저장 등을 고려하여 설계하는 단계이다.

 

2. Entity

우선 아래 표를 눈에 익히고 들어가면 좋을 것 같다.

출처 : https://jistol.github.io/database/2017/02/01/database-entity-attribute-relationship/

 

엔터티는 저장이 되기 위한 어떠한 '것' 이다. (사람, 장소, 물건, 사건, 개념 등)

 

  • 엔터티는 2개 이상의 인스턴스를 가져야 한다. 
  • 속성이 반드시 포함되어 있어야 한다.
  • 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다.
  • 의미있는 식별자에 의해 인스턴스는 중복배제하여 존재해야 한다.

 

Entity 분류

  • 유무형에 따른 분류
    • 유형 엔터티 : 물리적 형태가 있음 ex) 강사, 사원, 물건 
    • 개념 엔터티 : 물리적 형태가 없음 ex) 조직, 보험상품
    • 사건 엔터티 : 업무 수행에 따라 발생 ex) 주문, 청구, 미납
  • 발생시점에 따른 분류
    • 기본 엔터티 : 원래 존재하는 정보 ex) 사원, 부서, 고객, 상품
    • 중심 엔터티 : 본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 한다. ex) 계약, 사고, 예금원장, 청구, 주문, 매출
    • 행위 엔터티 : 두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가한다. ex) 주문목록, 사원변경이력

 

3. 속성

성별, 나이 연락처 등 인스턴스의 구성요소가 되는 값이다.

 

  • 업무에서 필요로 한다.
  • 의미상 더 이상 분리되지 않는다.
  • 엔터티를 설명하고 인스턴스의 구성요소가 된다.

 

속성의 분류

  • 특성에 따른 분류
    • 기본속성 : 업무분석을 통해 바로 정의한 속성 ex) 제품번호, 제품명, 제조일시, 제조원가
    • 설계속성 : 원래 업무상 존재하진 않지만 설계를 하면서 도출해내는 속성 ex) 제조사코드
    • 파생속성 : 다른 속성으로부터 게산이나 변형이 되어 생성되는 속성 ex) 판매금액, 이익
  • 엔터티 구성방식에 따른 분류
    • PK 속성 : 엔터티를 식별할 수 있는 속성
    • FK 속성 : 다른 엔터티와의 관계에서 포함된 속성
    • 일반 속성 : PK, FK에 포함되지 않은 속성