[database] entity, attribute, relationship

mquat·2022년 5월 13일
0

Entity란

  • 업무에 필요하고 유용한 정보를 저장/관리하기 위한 어떤 것
  • instance 의 집합
  • Entity는, 그 안에 포함된 개체들의 특성을 설명할 수 있는 특성(attribute)를 갖는다
    • '학생' 이라는 entity
    • 속성(attribute)는 학번, 이름, 전공, 이수학점 등
  • Entity는 아래와 같은 특징을 갖는다
    • 반드시 필요한 정보여야 한다
    • 유일한 식별자에 의해 식별 가능해야 한다
    • instance의 집합이어야 한다
    • Business process 상에서 반드시 이용되어야 한다
    • 속성 (attribute)가 있어야 한다
    • 다른 entity와 최소 1개 이상 관계가 존재해야 한다

속성(attribute)의 특징

엔티티가 갖는 속성 또한 몇 가지 특징을 갖는다.

  • 해당 업무에서 필요하고 관리되어야 하는 정보여야 한다
  • 기본 속성/설계 속성/파생 속성이 있다
    • 설계 속성이란, 업무를 규칙화하기 위해 속성을 새로 변형한 속성
    • 파생 속성이란, 기존 속성들에 의해 계산된 값들을 보통 말함
  • entity를 식별할 수 있는 고유 속성은 PK, 다른 entity와의 관계에서 포함된 속성은 FK, PK나 FK에 해당되지 않는 속성은 일반 속성이다
    이미지 출처: https://blog.naver.com/liberty264/220558732682

관계의 분류

예를 들어,
어떤 부서에 홍길동이라는 사원이 소속되어 있는 것은 '존재에 의한 관계'다.
만약 홍길동이 스타벅스에서 커피를 주문했다면 '행위에 의한 관계'다.

관계는 3개 관계가 있다.

  • 1:1 관계
    • 한 직원은 하나의 사원번호를 갖는다
    • 한 사원번호는 한 직원을 가리킨다
  • 1:M 관계
    • 한 직원은 하나의 부서에만 소속된다
    • 한 부서는 여러 직원을 포함할 수 있다
  • M:M 관계
    • 한 주문은 여러 제품을 포함한다
    • 한 제품은 여러 주문에 포함될 수 있다

관계는 필수참여관계와 선택참여관계로 또 나눌 수 있다.
주문서는 반드시 주문목록을 포함한다. 주문목록이 없는 주문서는 의미가 없고, 주문서가 없는 주문목록은은 존재하지 않는다.
즉 이 둘은 필수참여 관계다.

반대로, 선택참여관계는 타 entity의 참여자와 관계가 있을 수도 없을 수도 있다. 예를 들어 일반 목록은 주문이 될 수도 있지만 안될 수도 있다.

만약 관계가 있는 2개 entity에 모든 참여자가 선택참여관계라면 이 모델링을 다시 검토해봐야 한다.
(zero to zero 관계)


참고 자료
https://blog.naver.com/liberty264/220567987579

profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글