SQL/SQLD.

[SQLD] 데이터 모델링의 이해 -2

devz0 2023. 3. 16. 14:57
728x90

앞서 작성한 데이터 모델링의 이해 1에서의 데이터 모델링의 3요소가 결국 이번에 다룰 엔티티, 속성, 관계가 된다.

엔티티

업무에서 관리해야 하는 데이터의 집합이다.

엔티티의 특징

특징 설명
식별자 - 엔티티는 유일한 식별자 필수 ex)회원 id
인스턴스 집합 - 2개 이상의 인스턴스 ex) 고객정보는 2명 이상
속성 - 엔티티는 1개 이상의 속성 필수 ex) 고객 엔티티 회원id, password , name
관계 - 엔티티는 다른 엔티티와 최소한 1개 이상의 관계
- 단 통계성 엔티티, 코드성 엔티티 관계 생략 가능
업무 -엔티티는 업무에서 관리되어야 하는 집합
- 데이터로서 존재하지만 업무에서 필요 없으면 성립 X

엔티티의 종류

1.유형과 무형 - 유형 , 개념 , 사건

종류 설명
유형 엔티티 - 업무에서 도출, 지속적으로 사용되는 엔티티 ex) 고객, 사원
- 물리적 형태 존재
개념 엔티티 - 물리적 형태 없음
- 개념적으로 사용되는 엔티티 ex) 거래소 종목, 보험 상품
사건 엔티티 - 비즈니스 프로세스를 실행하면서 생성되는 엔티티 ex) 주문, 취소, 수수료 청구

2. 발생하는 시점 - 기본 , 중심 , 행위

종류 설명
기본 엔티티 - 키 엔터티
- 독립적으로 생성되는 엔티티 ex) 고객, 상품, 부서
중심 엔티티 - 기본 엔티티로부터 발생, 행위 엔티티를 생성 ex) 주문, 취소
행위 엔티티 - 2개 이상의 엔티티로부터 발생 ex) 주문 이력, 체결 이력

속성

  • 업무에서 필요한 정보인 엔티티가 가지는 항목
  • 더 이상 분리되지 않는 단위로 업무에 필요한 데이터 저장
  • 1개의 값만 저장
  • 주식별자에게 함수적으로 종속 , 즉 기본키 변경시 속성의 값도 변경
  • 속성의 명칭은 명사, 유일한 명칭, 약어 사용 지양

속성의 종류

1. 분해 여부에 따른 종류 - 단일, 복합, 다중 값

종류 설명
단일 속성 - 하나의 의미로 구성된 것 ex) 회원id, 이름
복합 속성 - 여러 개의 의미가 있는 것 ex) 주소(시, 군, 동)
다중값 속성 속성에 여러 개의 값을 가질 수 있는 것 ex) 상품리스트
- 다중값 속성은 엔티티로 분해

2. 특성에 따른 속성의 종류 - 기본, 설계, 파생

종류 설명
기본 속성 - 비즈니스에서 도출되는 본래의 속성 ex) 회원id, 이름
설계 속성 - 데이터 모델링 과정에서 발생하는 속성 ex) 상품 코드
- 유일한 값 부여
파생 속성 - 다른 속성에 의해 만들어지는 속성 ex) 합계, 평균

 

  • 원금, 예치기간, 이자율 - 기본속성
    • 이자율은 예를들어 5% 정해진 값. 이 정해진 값에 따라 이자가 달라지는 것
  • 이자 - 계산된 값으로 파생속성
  • 코드를 부여 - 유일한 값 부여하는 설계 속성

 

❤️‍🔥 도메인 : 속성이 가질 수 있는 값의 범위

 

관계

엔티티 간의 관련성을 의미한다. 엔티티의 관계에는 존재 관계와 행위 관계가 있는데 존재 관계란 두 개의 엔티티가 존재 여부의 관계가 있는 것을 일컫고 행위 관계란 두 개의 엔티티가 어떤 행위에 의한 관련성이 있는 것을 일컫는다.

관계의 종류

  • 관계명 - 관계의 이름 (존재관계, 행위관계)
  • 관계차수 - 1:1, 1:M, N:M
  • 관계선택사양 - 필수/선택

관계 체크 사항

  1. 두 개의 엔터디 사이에 관심 있는 연관 규칙이 존재하는가?
  2. 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
  3. 업무 기술서, 장표에 관계 연결에 대한 규칙이 서술 되어 있는가?
  4. 업무 기술서, 장표에 관계 연결을 가능하게 하는 동사가 있는가? (명사로 바꿔서 나온 적 있음)

식별 관계와 비 식별 관계

  • 식별 관계
    • 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용
    • 부모 테이블의 키가 자신의 기본키에  포함되기 때문에 반드시 부모 테이블에 데이터가 존재해야 자식 테이블에 데이터를 입력
    • 부모 데이터가 없다면 자식 데이터는 생길 수 없습니다.
    • 식별관계는 ERD상에서 실선으로 표시
  • 비식별 관계
    • 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계
    • 자식 데이터는 부모 데이터가 없어도 독립적으로 생성 가능
    • 자유로운 데이터 생성과 수정이 가능
    • 비식별관계는 ERD상에서 점선으로 표시

❤️‍🔥 주 식별자를 부모 엔티티에서 자식엔티티로 연관 짓기 위해서는 식별자관계를 고려해야한다

 

728x90
반응형