새소식

Study/Classes

[SQLD] 1-2. Entity/Attribute/Relationship

  • -
728x90

패스트캠퍼스 강의와 이기적 기본서를 기반으로 공부합니다. 

1. Entity 엔터티

  • 업무에서 관리해야 하는 관심사, 데이터 집합
  • 개념, 사건, 장소 등의 명사
  • 인스턴스의 집합
    * (엔터티는 원소, 인스턴스는 원자라고 생각하면 이해가 쉬울 듯)

엔터티의 특징

  1. 식별자가 있어야 함
  2. 2개 이상의 인스턴스가 존재하는 집합
  3. 속성을 가져야 함
  4. 다른 엔터티와 최소 한개 이상 관계가 있어야 함
  5. 업무에서 관리되어야 함 = 업무 프로세스에 의해 이용되어야 함

엔터티의 분류

  • 유형과 무형에 따른 분류
유형 e.g 고객, 사원 업무에서 도출되며 지속적으로 사용하는 엔터티
물리적인 형태가 있고 업무로부터 엔터티를 구분하기 가장 용이
개념 e.g 종목, 상품 개념적 정보로 구분되는 엔터티
물리적인 형태가 없음
사건 e.g 주문, 취소 비즈니스 프로세스를 실행하면서 생성되는 엔터티
발생량이 비교적 많고 통계자료에 이용 가능
  • 발생 시점에 따른 분류
기본 (key) e.g 부서, 고객 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티
타 엔터티의 부모 역할을 함
중심 (main) e.g 계좌, 배송 기본 엔터티로부터 발생, 행위 엔터티를 생성
데이터의 양이 많음
행위 (action) e.g 주문 이력 2개 이상의 엔터티로부터 발생
자주 바뀌거나 데이터량이 증가
상세 설계 단계나 프로세스와 상관 모델링을 진행하면서 도출

2. Attribute 속성

개념

  • 업무에 필요한 정보인 엔터티가 가지는 항목
  • 의미적으로 더이상 분리되지 않는 단위
  • 인스턴스의 구성 요소

특징

  • 해당 업무에서 필요하고, 업무에서 관리되는 정보임
  • 속성은 하나의 값만 가짐
  • 주식별자에게 함수적으로 종속됨 - 기본 키 변경 시 속성 값도 변경
  • 하나의 속성에는 한 개의 값만 가짐 

표기법

출처: t.ly/ssB9

barker 표기법 - # 식별자, * 필수값, ⚬ 선택값

분류

  • 분해 여부
단일 속성 하나의 의미로 구성된 것
e.g 회원 ID, 이름
복합 속성 여러 개의 의미가 있을 수 있음
e.g 주소 - 시, 구, 동 등으로 구분 가능
다중값 속성 여러 개의 값을 가질 수 있는 속성, 엔터티로 분해됨
e.g 상품 리스트
  • 특성
기본 속성 비즈니스 프로세스에서 바로 정의되는 본래의 속성
e.g 제품 번호, 회원ID
설계 속성 원래 업무상 존재하지는 않지만 데이터 모델링 과정에서 발생, 유일한 값 부여
e.g 상품코드
파생 속성 다른 속성으로부터 계산이나 변형되어 만들어지는 속성
e.g 금액 합계, 평균
  • 엔터티 구성 방식
PK속성 엔터티를 식별할 수 있는 속성
e.g 부서 번호, 사원 번호
FK속성 다른 엔터티와의 관계에 포함된 속성
일반 속성 PK, FK 에 포함되지 않은 속성

도메인  (중요! )

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

속성은 도메인 이외의 값을 가지지 못함 (성별 - 남자/여자)

3. Relationship 관계

정의

  • 엔터티 간의 논리적인 연관성
  • 존재 관계 : 두 개의 엔터티가 존재 여부의 관계가 있음 
    e.g 고객이 은행에 "가입한다", 부서에 사원이 "소속된다"
  • 행위 관계 : 두 개의 엔터티가 어떤 행위에 의해 관계가 있음
    e.g 증권회사가 계좌를 "개설한다"

관계의 표기법

  • 관계명 membership

엔터티가 관계에 참여하는 형태
관계가 시작되는 쪽: 관계시작점
관계를 받는 편: 관계끝점
각 관계는 두 개의 관계명을 가질 수 있다. (교수 > 학생 : 가르친다. 학생 > 교수 : 배운다.)

  • 관계차수 cardinality 

두 개의 엔터티 간 참여자의 수 
1:1, 1:M, M:M

  • 관계선택사양 optionality
    • 필수참여단계 - 그림 상 실선 (주문은 고객을 반드시 가져야 함)
    • 선택참여단계 - 그림 상 점선 (고객은 주문을 할 수도, 안 할 수도 있다)

  • 관계 정의 시 체크 사항
  1. 두 개의 엔터티 사이에 관심 있는 연관 규칙이 존재하는가? 
  2. 두 개의 엔터티 사이에 정보의 조합이 발생하는가?
  3. 업무기술서, 장표에 관계 연결에 대한 규칙이 서술되어 있는가?
  4. 업무기술서, 장표에 관계 연결을 가능케 하는 동사가 있는가?

 


한 포스팅에 넣어보려고 조금 욕심부렸습니다..😇

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.