제육's 휘발성 코딩
반응형

데이터베이스 엔티티 (Entity)

  • 엔티티는 업무에서 관리해야 하는 데이터 집합을 의미
  • 개념, 사건, 장소 등의 명사

 

엔티티 특징

  • 식별자 : 유일한 식별자
  • 인스턴스 집합 : 2개 이상의 인스턴스 필요
    • ex) 고객 정보는 2명 이상 있어야 한다.
  • 속성 : 엔티티는 반드시 속성을 가지고 있다.
    • ex) 고객 엔티티에 이름, 주소, 전화번호 등
  • 관계 : 다른 엔티티와 최소한 한 개 이상 관계 필요
  • 업무 : 업무에서 관리되어야 하는 집합

 

엔티티 종류

  • 엔티티의 종류는 유형과 무형에 따른 종류, 발생하는 시점에 따른 종류로 나뉜다.

 

유형과 무형

  • 유형 엔티티 : 업무에서 도출되며 지속적으로 사용되는 엔티티
    • ex) 고객, 강사, 사원
  • 개념 엔티티 : 유형 엔티티는 물리적 형태가 있지만, 개념 엔티티는 없다.
    • ex) 거래소 종목, 코스닥 종목, 생명보험 상품
  • 사건 엔티티 : 비즈니스 프로세스를 실행하면서 생성되는 엔티티
    • ex) 주문, 체결, 취소 등

유형과 무형으로 분리하는 기준은 물리적 형태의 존재 여부이다.

 

발생 시점에 따른 분류

  • 기본 엔티티 : 키 엔티티라고도 하며, 다른 엔티티 영향 없이 독립적으로 생성
    • ex) 고객, 상품, 부서
  • 중심 엔티티 : 기본 엔티티와 행위 엔티티 중간에 있는 것으로 기본 엔티티로부터 발생되고, 행위 엔티티를 생성
    • ex) 계좌, 주문, 취소, 체결 등
  • 행위 엔티티 : 2개 이상의 엔티티로 부터 발생
    • ex) 주문 이력, 체결 이력

 

속성 (Attribute)

  • 속성이란 업무에서 필요한 정보인 엔티티가 가지는 항목
  • 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
  • 인스턴스의 구성요소이다.

 

속성의 특징

  • 속성은 업무에서 관리되는 정보이다.
  • 속성은 하나의 값만 가진다.
  • 주식별자에게 함수적으로 종속된다.
    • 기본키가 변경되면 속성의 값도 변경

 

속성의 종류

분해 여부에 따른 속성의 종류

  • 단일 속성 : 하나의 의미로 구성된 것
    • ex) 회원 ID, 이름
  • 복합 속성 : 여러 개의 의미가 있는 것
    • ex) 주소는 시, 군, 동 등 분해될 수 있다.
  • 다중값 속성 : 속성에 여러 개의 값을 가질 수 있는 것
    • 다중값 속성은 엔티티로 분해된다.

 

특성에 따른 속성의 종류

  • 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
    • ex) 회원 ID, 이름 등
  • 설계 속성 : 데이터 모델링 과정에서 발생되는 속성
    • 유일한 값을 부여한다. ex) 상품 코드, 지점 코드 등
  • 파생 속성 : 다른 속성에 의해 만들어지는 속성
    • ex) 합계, 평균 등

 

관계 (Relationship)

  • 관계란 엔티티 간의 관련성을 의미하며 존재 관계와 행위 관계로 분류된다.
  • 존재 관계는 두 개의 엔티티가 존재 여부 관계가 있는 것이고, 행위 관계는 두 개의 엔티티가 어떤 행위에 의한 관련성이 있는 것이다.

관계의 종류

존재 관계

  • 존재 관계는 엔티티 간의 상태를 의미한다.
  • ex) 고객이 은행에 가입하면 관리점이 할당되고, 그 할당된 관리점에서 고객 관리

행위 관계

  • 엔티티 간에 어떤 행위가 있는 것으로, 계좌를 사용해서 주문을 발주하는 관계
  • ex) 증권회사는 계좌를 개설하고 주문을 발주

관계 차수

사진1

  • 두 엔티티 간에 관계를 참여하는 횟수
  • 최대 기수성 (1:1 , 1:M, N:M)
    • 1대1 관계 : 한 명의 고객은 하나의 고객등급이 부여
    • 1대N 관계 : 한 명의 고객은 여러 계좌를 개설할 수 있다.
    • M대N 관계 : 조인이 카테시안 곱이 발생하므로 1대N 또는 N대1로 해소 필요
  • 최소 기수성 (필수 (|), 선택 (0))

 

식별 관계

  • 고객 엔티티의 기본키인 ID를 계좌 엔티티에 기본키로 FK를 공유한 경우 가정
  • 고객과 계좌 엔티티에서 고객은 독립적으로 존재할 수 있는 강한 개체이다.
  • 강한 개체의 기본키 값이 변경되면 식별 관계에 있는 엔티티의 값도 변경된다.
  • 여기서 계좌 엔티티는 약한 개체가 된다.
  • 이러한 강한 개체는 식별 관계로 표현된다.
  • 실선으로 표현

 

비식별관계

  • 강한 개체의 기본키를 다른 엔티티의 일반 컬럼으로 관계를 가지는 경우
  • 점선으로 표현

강한 개체 (Strong Entity) : 누구에게도 지배되지 않는 독립적인 개체

약한 개체 (Weak Entity) : 개체의 존재가 다른 개체의 존재에 달려 있는 개체

 

엔티티 식별자

  • 식별자란, 엔티티를 대표할 수 있는 유일성을 만족하는 속성을 말한다.

 

주식별자 (기본키)

  • 최소성 : 주식별자는 최소성을 만족
  • 대표성 : 주식별자는 엔티티를 대표할 수 있어야 한다.
  • 유일성 : 주식별자는 엔티티의 인스턴스를 유일하게 식별한다.
  • 불변성 : 주식별자는 자주 변경되지 않아야 한다.

키의 종류

  • 기본키 : 후보키 중에서 엔티티를 대표할 수 있는 키
  • 후보키 : 유일성과 최소성을 만족하는 키
  • 슈퍼키 : 유일성은 만족하지만 최소성은 만족하지 않는 키
  • 대체키 : 여러 후보 키 중에서 기본키를 선정하고 남은 키
  • 외래키 : 참조 무결성을 확인하기 위해 다른 테이블의 필드를 가리키는 키

 

식별자 종류

  • 대표성, 생성 여부, 속성의 수, 대체 여부로 분류

 

식별자의 대표성

  • 주 식별자 : 유일성과 최소성을 만족하면서 엔티티를 대표하는 식별자
    • 다른 엔티티와 참조 관계로 연결될 수 있다.
  • 보조 식별자 : 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자

 

생성 여부

  • 내부 식별자 : 엔티티 내부에서 스스로 생성되는 식별자
    • ex) 부서코드, 주문번호, 종목코드
  • 외부 식별자 : 다른 엔티티와 관계로 인하여 만들어지는 식별자
    • ex) 계좌 엔티티에 회원ID

 

속성의 수

  • 단일 식별자 : 하나의 속성으로 구성
    • ex) 고객 엔티티에 회원ID
  • 복합 식별자 : 두 개 이상의 속성으로 구성

 

대체 여부

  • 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
  • 인조 식별자 : 인위적으로 만들어지는 식별자

인조 식별자는 후보 식별자 중에서 주식별자로 선정할 것이 없거나, 주식별자가 너무 많은 컬럼으로 되어 있는 경우에 사용한다.

즉, 순서 번호를 사용해서 식별자를 만드는 것이다. ex) oracle - rownum

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^