IT/SQLD(SQL개발자)

[SQLD] 데이터 모델링관점과 분류

pandada 2019. 6. 13. 09:25
반응형

 

데이터 모델링 관점과 분류

 

정보 시스템을 모델링할 때 세 관점 

  * 데이터 관점

    - 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링 하는 방법(What, data)

  * 프로세스 관점

    - 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지를 모델링하는 방법(How,Process)

  *  데이터와 프로세스의 상관관점

    - 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법 (Interaction), (상호 연관성 파악)

 

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

  1) 업무가 관여하는 어떤 것(Things)

  2) 어떤 것이 가지는 성격(Attributes)

  3) 업무가 관여하는 어떤 것 간의 관계(Relationships)

 

 

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

  * 기본엔터티

    - 그 업무에 원래 존재하는 정보로서 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다.

    - 다른 엔터티로부터 주 식별자를 상속받지 않고 자신의 고유한 주 식별자를 가지게 된다.

    - ex) 사원, 부서, 고객, 상품, 자재 등

  * 중심엔터티

    - 기본엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 한다.

    - 데이터의 양이 많이 발생되고 다른 엔터티와의 관계를 통해 많은 행위엔터티를 생성한다.

    - ex) 계약, 사고, 예금원장, 청구, 주문, 매출 등

  * 행위엔터티

    - 두 개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터양이 증가된다.

    - 상세 설계단계나 프로세스와 상관모델을 진행하면서 도출될 수 있다.

    - ex) 주문목록, 사원변경이력 등

 

 

속성의 분류

  * 기본속성

    - 업무로부터 추출한 모든 속성

  * 설계속성

    - 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성

    - ex) 코드성 속성, 일련번호와 같은 속성

  * 파생속성

    - 다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값들이 이에 해당됨

 

 

엔터티의 특징

  - 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

  - 유일한 식별자에 의해 식별이 가능해야 한다.

  - 영속적으로 존재하는 인스턴스의 집합이어야 한다.

  - 엔터티는 업무 프로세스에 의해 이용되어야 한다.

  - 엔터티는 반드시 속성이 있어야한다.

  - 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야한다.

 

 

도메인

  - 속성이 가질 수 있는 값의 범위

  ex) 학생이라는 엔터티가 있을 때 학점이라는 속성의 값의 범위는 0.0에서 4.0 사이의 실수 값이며 주소라는 속성은 길이가 20자리 이내의 문자열로 정의할 수 있다.

 

 

 

관계의 표기법

  * 관계명(Membership) : 관계의 이름

  * 관계차수(Cardinality) : 1:M, 1:1, M:N

  * 관계선택사양(Optionality) : 필수관계, 선택관계

 

관계 체크사항

* 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?

* 두 개의 엔터티 사이에 정보의 조합이 발생되는가?

* 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?

* 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?

 

 

식별자 분류

  * 대표성 여부에 따라

    주 식별자 - 보조 식별자

  * 스스로 생성 여부에 따라

    내부 식별자 - 외부 식별자

  * 단일속성 여부에 따라

    단일 식별자 - 복합 식별자

  * 대체 여부에 따라

    본질 식별자 - 인조 식별자

 

 

식별자의 특징

  * 주 식별자

    - 주 식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다.

    - 주 식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

    - 지정된 주 식별자의 값은 자주 변하지 않는 것이어야 한다.

    - 주 식별자가 지정이 되면 반드시 값이 들어와야 한다.

  * 외부 식별자

    - 주 식별자 특징과 일치하지 않으며 참조무결성 제약조건에 따른 특징을 가지고 있다.

  * 비 식별자

    - 부모엔터티로부터 속성을 받았지만 자식엔터티의 주 식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우

    - 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우

    - 엔터티별로 데이터의 생명주기를 다르게 관리할 경우

    - 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질때

    - 자식엔터티에 주 식별자로 사용하여도 되지만 자식엔터티에서 별도의 주 식별자를 생성하는 것이 더 유리하다고 판단될 때 비 식별자 관계에 의한 외부식별자로 표현한다.

 

 

반응형

'IT > SQLD(SQL개발자)' 카테고리의 다른 글

[SQLD] 정규화와 성능  (0) 2019.06.16
[SQLD] 성능 데이터 모델링의 개요  (0) 2019.06.15
[SQLD] 식별  (0) 2019.06.11
[SQLD] 관계(Relationship)  (0) 2019.06.10
[SQLD] 속성(Attribute)  (0) 2019.06.09