데이터모델링 - 엔티티 타입, 식별자, 관계

2022. 7. 14. 09:29·데이터모델링

데이터 모델링 - 엔티티 타입, 식별자, 관계

💡 데이터 모델링이란?

  • 업무에서 필요한 데이터가 무엇인지 그리고 데이터간의 관계를 의사결정하는 활동

💡 개발공정

  • 요구사항 정의 → 분석 → 설계 → 구현 → 테스트 → 배포
  • 요구사항 정의 → 분석 → 설계 까지의 활동을 Modeling이라고 한다.

엔티티 타입

💡 엔티티 타입이란?

  • 업무에 필요하고 유용한 정보를 저장하고 관리 하기 위한 것으로 영속적으로 존재하는 단위
  • 엔티티 타입은 엔티티의 집합이라고 할 수 있다.
  • 정보가 저장될 수 있는 사람, 장소, 물건 ,사건 같은 개념을 정의할 수 있는것

엔티티 타입의 특징

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

엔티티타입의 분류

  • 유무형에 따른 분류
    • 유형 엔티티타입 : 물리적인 형태가 있고 안정적이며 지속적으로 황용되는 엔티티타입 → 사원, 물품, 강사 등
    • 개념 엔티티타입 : 물리적인 형태가 없고, 관리해야 할 개념적 정보로 구분되는 엔티티타입 → 조직, 상품, 장소 등
    • 사건 엔티티타입 : 업무를 수행에 따라 발생되는 엔티티타입으로 비교적 발생량이 많으며 통계자료에 이용됨 → 주문, 청구, 미납 등
  • 발생 시점에 따른 분류
    • 기본 엔티티타입 : 업무에 원래 존재하는 정보, 다른 엔티티타입과 관계에 의해 생성되지 않음. 다른 엔티티 타입의 부모역할
    • 중심 엔티티타입 : 기본 엔티티타입에서 발생, 업무에서 중심적인 역할, 데이터 양이 많으며 다른엔티티 타입과의 관계를 통해 많은 행위 엔티티타입을 생성
    • 행위 엔티티타입 : 두 개 이상의 부모 엔티티타입에서 발생, 내용이 자주 바뀌고 데이터양이 증가됨, 상세 설계단계나 프로세스와 상관 모델링을 진행하면서 주로 도출

엔티티타입의 명명

  • 가능하면 현업에서 사용하는 용어를 사용
  • 가능하면 약어를 사용하지 않는다
  • 단수 명사를 사용한다
  • 엔티티타입에 부여되는 이름은 유일해야 한다.
  • 가급적 엔티티타입이 생성되는 의미에 따라 이름을 부여한다.

속성

💡 속성이란?

  • 업무에 필요한 엔티티에서 관리하고자 하는, 더 이상 분리되지 않는 최소의 데이터 단위
  • 엔티티 타입에는 두 개 이상의 엔티티가 존재하고 각각의 엔티티는 고유의 성격을 표현하는 속성 정보를 한 개 이상 가진다.
  • 엔티티 타입, 엔티티, 속성 ,속성값에 대한 관계 분석
    1. 한 개의 엔티티 타입은 두 개 이상의 엔티티 집합이어야 한다.
    2. 한 개의 엔티티는 두 개 이상의 속성을 갖는다.
    3. 한 개의 속성은 한 개의 속성값을 갖는다.

속성의 분류

  • 속성의 특성에 따른 분류
    • 기본 속성 : 업무로부터 추출한 모든 속성에 해당, 코드성 데이터, 엔티티타입을 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성은 기본 속성이다
    • 설계 속성 : 필요한 데이터 외의 데이터 모델링을 위해 업무를 규칙화 하려고 속성을 새로 만들거나 변형하여 정의하는 속성
    • 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된 값
  • 엔티티 구성 방식을 따른 분류

식별자(Identifier)

💡 식별자란?

  • 엔티티 타입에서 각각의 엔티티를 구분할 수 있는 결정자.
  • 모든 엔티티타입에는 반드시 하나 이상의 식별자가 있어야 한다.

식별자 특징

  • 식별자에 의해 엔티티타입 내 모든 엔티티들이 유일하게 구분되어야 함
  • 식별자가 지정되면 그 식별자는 변하지 않아야 함
  • 주식별자의 경우 식별자가 지정되면 주식별자 속성에 반드시 데이터값이 있어야 함

식별자 구분

  • 대표성 여부 : 주식별자, 보조 식별자
    • 주식별자 : 엔티티타입의 대표성을 나타내는 유일한 식별자
    • 보조 식별자 : 주식별자를 대신하여 보조적으로 엔티티를 식별할 수 있게 함
    • 주식별자, 보조 식별자 모두 엔티티 타입의 엔티티를 식별할 수 있음
    • 주식 별자는 엔티티타입에 하나만 존재가능, 보조식별자는 두개 이상일 수 있음
  • 스스로 생성 여부 : 내부식별자, 외부식별자
    • 내부 식별자 : 자신의 엔티티 타입 내에서 스스로 생성되어 존재하는 식별자
    • 외부 식별자 : 다른 엔티티 타입으로 부터 관계에 의해 주식별자 속성을 상속받아 자신의 속성에 포함되는 식별자
    • 외부 식별자는 자신의 엔티티타입으로부터 다른 엔티티타입을 찾아가는 연결자(FK) 역할을 한다.
  • 단일 속성 여부 : 단일 식별자, 복합 식별자
    • 단일 식별자 : 주식별자의 구성이 한 가지 속성으로만 이루어진 경우
    • 복합 식별자 : 두 개 이상의 속성으로 구성된 경우
    • 주문 엔티티타입은 주문 번호의 속성이 주식별자 역할을 하므로 단일 식별자, 주문 목록의 경우에는 주문번호와 제품 번호 속성을 조합해서 하나의 식별자처럼 이용하므로 복합 식별자 라고 한다.
  • 대체 여부 : 원조 식별자, 대리 식별자
    • 대리 식별자 : 주식별자의 속성이 복합 식별자일 경우 여러 개의 속성을 묶어 하나의 속성으로 만들어 주식별자로 활용하는 경우
    • 원조 식별자 : 복합 식별자의 속성을 가지고 있는 주식별자

관계

💡 관계란?

  • 두 개의 엔티티타입 사이의 논리적인 관계
  • 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 것

관계의 카디낼리티

  • 두 개의 엔티티타입간 관계에서 참여자의 수를 표현하는 것

관계를 표시하는 방법

  1. 1:1 관계
    • 각각의 엔티티는 하나의 관계만을 가지고 있다.
  2. 1:M 관계
    • 다른 엔티티타입에 하나이상의 수와 관계를 가지지만, 반대방향은 하나의 관계만 가진다.
  3. M:N 관계
    • 다른 엔티티타입에 하나이상의 수와 관계를 가지고, 반대 방향도 동일하게 하나이상의 관계를 맺는다.
반응형
'데이터모델링' 카테고리의 다른 글
  • 개발 방법론 - 애자일 개발
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배열요소삭제
    react
    배요소열추가
    리액트
    배열요소수정
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
데이터모델링 - 엔티티 타입, 식별자, 관계
상단으로

티스토리툴바