by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

1장. 데이터 모델링 주요 개념




1장. 데이터 모델링 주요 개념

1.1 엔티티타입

개념 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위,엔티티의 집합

특징

  1. 반드시 시스템을 구축하고자 하는 업무에서 필요하고 관리하고자하는 정보이어야한다.
  2. 유일한 식별자에 의해 식별이 가능해야한다.
  3. 영속적으로 존재하는 엔티티의 집합이어야 한다.
  4. 업무 프로세스(business process)는 그 엔티티타입을 반드시 이용해야한다.
  5. 엔티티타입에는 반드시 속성이 있어야한다.
  6. 엔티티타입은 다른 엔티티타입과 최소 한 개 이상의 관계가 있어야한다.

분류

  • 유무형에 따른 분류(엔티티타입 자체의 성격에 따른 분류방법)
  • 유형 엔티티타입(Tangible Entity Type)
    물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔티티타입 (사원, 물품, 강사...)
  • 개념 엔티티타입(Conceptual Entity Type)
    물리적인 형태가 없고, 관리해야 할 개념적 정보로 구분되는 엔티티타입 (조직, 상품, 장소...)
  • 사건 엔티티타입(Event Entity Type)
    업무를 수행함에 따라 발생되는 엔티티타입으로 각종 통계자료에 이용되는 엔티티타입 (주문, 청구, 미납...)
  • 발생기점에 따른 분류(업무를 구성하는 모습에 따라 구분)
  • 기본 엔티티타입 (Fundamental Entity Type)
    업무에 원래 존재하는 정보로서 독립적으로 생성되며 자신은 타 엔티티타입의 부모 역할을 한다.(사원,부서)
  • 중심 엔티티타입(Fundamental Entity Type)
    기본 엔티티타입에서 발생되고 그 업무에서 중심적인 역할을 한다.(접수,계약)
  • 행위 엔티티타입(Fundamental Entity Type)
    두 개 이상의 부모 엔티티타입에서 발생되고 내용이 자주 바뀌거나 데이터양이 증가된다.(주문내역,계약진행)

엔티티타입의 명명

  1. 가능하면 현업업무에서 사용하는 용어를 사용한다.
  2. 약어를 가능하면 사용하지 않는다.
  3. 단수 명사를 사용한다.
  4. 모든 엔티티타입 명은 유일해야한다.
  5. 엔티티타입 생성 의미대로 이름을 부여한다.

1.2 관계

개념 두개의 엔티티타입 사이의 논리적인 관계 즉 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태를 말한다.

관계 페어링
각각의 엔티티들은 자신이 관련된 엔티티들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Pairing)이라고 한다.

  • 엔티티 타입 : 엔티티의 집합을 논리적으로 표현
  • 관계 : 관계 페어링의 집합을 논리적으로 표현

관계의 명명

  • 두 개의 멤버십(membership)을 갖는다.
  • 두 가지 관점으로 표현
  • 멤버십은 엔티티타입이 관계에 참여하는 것(자신이 기준)
  • 관계의 시작 : 관계 시작점
  • 관계의 끝 : 관계 끝점
    관계의 시작과 끝점 모두 관계 이름을 갖으며, 멤버십의 성격에 따라 관계 이름이 능동적이거나 수동적으로 명명
  • 규칙
    -애매한 동사를 피하라
    구체적이지 못한 행위가 있는지 또는 두 참여자 간 어떤 상태가 존재하는지 파악하기 어렵다.
    -현재형으로 표현
    수강 신청했다. 할 것이다. 피하고 수강 신청한다. 강의 한다.

관계 카디낼리티(Cardinality)
카디낼리티 - 두 개의 엥ㄴ티티타입 간 관계에서 참여자의 수

관계읽는 방법
-엔티티 타입의 참여도를 읽고 다음에 엔티티 타입을 읽고 관계명을 읽는다.

관계의 참여도 참여방법

  • 필수참여 관계
  • 선택참여 관계

1.3 속성

개념 업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지않는 최소의 데이터 단위.

엔티티타임,엔티티,속성, 속성값에 대한 관계를 분석하면 다음과 같은 결과를 얻을수 있다.

  1. 규칙 1. 한개의 엔티티타입은 두개 이상의 엔티티 집합이어야 한다.
  2. 규칙 2. 한개의 엔티티는 두개 이상의 속성을 갖는다.
  3. 규칙 3. 한개의 속성은 한개의 속성값을 갖는다.

속성의 분류

  • 속성의 특성에 따른 분류
  1. 기본속성(basic attribute)-업무분석을 통해 정의한 속성,엔티티타입에 가장 일반적이고 많은 속성을 차지한다.
  2. 설계속성(designed attribute)-업무에는 존재하지않지만 설계를 하면서 도출하는 속성,업무외에 데이터 모델링을 위해,
    업무를 규칙화화려고 속성을 해고 만들어가 변형하여 정의하는 속성,
    일련번호와 같은 속성은 단일(unique)한 식별자를 부여하기 위해 모델에서 새로 정의.
  3. 파생속성(derived attribute)-다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값
  • 엔티티 구성방식에 따른 분류
    #PK속성-엔티티를 식별할수있는 속성
    #FK속성-다른 엔티티와의 관계에서 포함된 속성
    #일반속성 - 엔티티에 포함되어있고 PK,FK에 포함되지않은 속성

속성의 명명

  • 원칙
  1. 해당업무에서 사용하는 이름을 부여한다.
  2. 서술식 속성명은 사용하지않는다.
  3. 약어 사용은 가급적 자제한다.
  4. 엔티티타입에서 유일하게 식별가능 하도록 지정한다.

1.4 엔티티 수퍼타입과 서브타입

-여러개의 엔티티타입이 비슷하고 일부의 속성이나 관계만 다를 경우
여러 개의 엔티티타입을 한 개의 엔티티타입으로 묶어 통합하고 하나의 엔티티타입 안에 다른 엔티티타입의 모습을 서브타입으로 나뉘어 표시하는 경우 엔티티타입이 통합되었다고 한다.
통합하여 표시하는 엔티티타입을 수퍼타입, 수퍼타입 안에 포함되어 표시된 비슷한 성격의 엔티티타입을 서브타입
예)방문접수, 전화접수, 인터넷 접수(서브 타입)
동일한 성격 : 접수(수퍼 타입)
다른 성격 : 접수 방법


엔티티 수퍼타입과 서브타입의 표시 방법

엔티티 수퍼타입과 서브타입의 표시하기 위한 특징
-서브타입간의 관계가 서로 배타적으로 수퍼타입과 관계를 갖는지 서로 포함하면서 수퍼타입과 관계를 가지는지 결정
대부분의 경우 배타적
촉탁 직원이면서 시간직원으로 등록하여 별도로 일할 수 있다.
::서로 포함 관계로 구분
-각각의 서브타입은 정확하게 하나의 수퍼타입에만 속해야 한다.
다중상속 불허
-수퍼타입과 서브 타입 사이에는 서브타입을 구분할 수 있는 구분자가 반드시 존재, 구분자의 위치는 수퍼타입의 속성으로 포함
-서브타입에 있는 엔티티 어커런스는 구분자에 의해 식별
-서브타입에 대한 서브타입을 지정할 수 있지만 모델의 복잡성이 증가하므로 서브타입의 수준을 1로 유지
-하나의 서브타입만으로는 분석이 덜된 상태이므로 세분화하여 서브타입을 분리

1.5 서브젝트 에어리어(subject area)

정의 해당업무 내에서 연관이 많은 엔티티타입을 그룹으로 묶어 표시하는 개념
-시스템의 복잡도를 감소시키고 개발 범위를 분담하며, 모델의 읽기편이성(readability)를 위해 업무 단위별로 구분하여 표현하는 서브젝트 에어리어를 이용하도록한다.

1.6 정규화

1.7 ERD표기법

각각 업무분석에서 도출된 엔티티타입과 엔티티타입 간의 관계를 이해하기 쉽게 그림으로 표시하는 방법이다.
실게 프로젝트에서는 해당 업무에 있어서 데이터의 흐름과 프로세스와의 연관성을 이야기 하는데 가장 중요한 표기법이자 산출물이다.

  • ERD를 작성하는 순서
  1. 엔티티타입을 그린다.
  2. 엔티티타입을 적절하게 배치한다.
  3. 엔티티타입간 관계를 설정한다.
  4. 관계명을 기술한다.
  5. 관계의 참여도를 기술한다.
  6. 관계의 필수여부를 기술한다.
  • ERD에서 엔티티타입의 배치방법
  1. 업무를 진행하는 순서에 따라 엔티티타입을 왼쪽 편부터 오른쪽으로 그리고 위에서 아래로 표시한다.
  2. 업무 흐름에 중심이 되는 엔티티타입, 보통 업무 흐름에 있어 중심이 되는 엔티티타입은 타 엔티티타입과 많은 관계를 가지고 있으므로 중앙에 배치한다.
  3. 업무를 진행하는 중심 엔티티타입과 관계를 갖는 엔티티타입들은 중심에 배치된 엔티티타입의 주위에 배치하도록 한다.
  • ERD 관계의 연결
  • ERD 관계명의 표시
  • ERD 관계 카이낼리티와 선택성 표시

문서에 대하여

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.