본문 바로가기
관리자

Programming-[Backend]/SQL

[SQLD] 2. 엔터티, 속성, 관계, 식별자

728x90
반응형

 

엔터티(Entity)

엔터티는 업무를 추상화한 데이터 집합을 말한다.

 

참조1의 엔터티 도출 예제의 일부를 보자

 

-> 업무 시나리오 표현

● (주)앙꼬래컨설팅에 입사하면 채용 시 개인정보를 기록한 간단한 이력서 외에도 자세한 개인정보를 기록할 수 있도록 인사기록 양식지를 배부한다.
● 입사한 모든 사원은 곧바로 부서에 배정된다.
● 인사기록 양식지에 크게 인사기본정보, 가족사항, 병역, 어학, 학력, 자격증정보, 해외경험내용, 경력 등을 기록해야 한다.
● 신입이든, 경력이든 입사한 모든 사람은 인사기록지에 위의 사항을 기록한다.
● 인사기본정보에는 한글이름, 영문이름, 주민등록번호, 집전화번호, 휴대폰번호, 전자메일, 본적주소, 현주소, 결혼여부를 기재한다.

 

-> 엔터티 도출

(주)앙꼬래컨설팅, 가족관계, 가족사항, 개인정보, 결혼여부, 경력, 경력수행, 국가, 군번, 귀국일자, 근무, 근무지,
근무회사이름, 기록, 기재, 독해점수, 동거여부, 듣기점수, 등록, 발령, 발생, 배부, 배정, 변화, 병역, 병역구분

 

 

 

엔터티의 특징

  • 식별자 : 유일한 식별자가 있어야 한다
  • 인스턴스 집합 : 2개 이상의 인스턴스가 있어야 한다 ex) 고객 테이블에서 고객은 2명 이상 있어야함
  • 속성 : ex) 고객 엔터티에 고객ID, 이름, 전화번호 등..
  • 관계 : 다른 엔터티와 최소 1개 이상의 관계가 있어야 한다
  • 업무 : 업무와 연관이 있어야 한다

 

 

 

엔터티의 종류

 

유형과 무형에 따른 엔터티 종류

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

 

발생 시점에 따른 엔터티 종류

  • 기본 엔터티(Basic Entity) : 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티이다. 키 엔터티 라고도 한다 ex) 고객, 상품, 부서 등
  • 중심 엔티티(Main Entity) : 기본 엔터티와 행위 엔터티 중간에 위치하여 기본 엔터티로부터 발생되고, 행위 엔터티를 생성하는 엔터티이다 ex) 계좌 ,주문, 취소, 체결 등
  • 행위 엔터티(Active Entity) : 2개 이상의 엔터티로부터 발생된다 ex) 주문 이력, 체결 이력 등

 

 


 

 

속성(Attribute)

속성은 엔터티가 가지는 항목으로, 의미적으로 더 이상 분해되지 않는 요소이다. 주식별자에게 함수적으로 종속되는 특징이 있다. 다시 말해 기본 키값이 변경되면 속성 값도 변경된다.

 

 

 

속성의 종류

 

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

  • 단일 속성 : 하나의 의미로 구성된 것. ex)학번, 주민등록번호
  • 복합 속성: 여러 개의 의미를 가진다. ex) 주소, 생년월일
  • 다중값 속성 : 여러 개의 값을 가질 수 있는 것으로, 엔터티로 분해될 수 있다. ex) 취미, 색깔

 

특성에 따른 속성의 종류

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

 

 


 

 

 

 

관계(Relationship)

 

관계는 엔터티 간의 관련성을 의미한다.

 

 

관계의 종류

존재 관계

엔터티간의 존재 상태를 의미한다. 고객이 은행에 가입을 하면, 고객-계좌-관리점 엔터티간에 존재 관계가 생긴다.

 

행위 관계

엔터티간에 관계가 있는 것으로, 계좌는 주문을 발주할 수 있으므로 계좌-주문 엔터티간에는 행위 관계가 있다고 표현한다.

 

 

 

관계 차수(Cardinality)

두 개의 엔터티 간에 관계에 참여하는 수를 의미한다.

 

관계 차수에는 1대 1 관계, 1대 N 관계, M대 N 관계가 있다. 관계형 데이터베이스에서 M대 N 관계의 조인은 카테시안 곱이 발생하므로 1대 N, N대 1 관계로 푸는 것이 통상적이다.

 

 

 

 

식별관계와 비식별관계

식별관계(Identification Relationship)

식별관계는 어떤 엔터터의 기본키가 다른 엔터티의 기본키에 공유되는 관계이다. 예를 들어서 고객은 계좌가 없어도 된다고 가정해보자. 그럼 고객 엔터티는 독립적으로 존재할 수 있으므로 강한 개체이고, 계좌 엔터티는 약한 개체이다. 이때 계좌 엔터티의 기본키에 고객 엔터티의 기본키가 있다면 식별관계인 것이다.

 

식별관계. 계좌 엔터티의 기본키에 회원ID가 FK로 들어있다

 

식별관계에서는 강한 개체의 기본키값이 변경되면 기본키를 공유받은 개체에 있는 엔터티의 값도 변경된다.

 

 

비식별관계(Non-Identification Relationship)

비식별관계는 강한 개체의 기본키를 다른 엔터티의 '기본키가 아닌' 일반 칼럼으로 관계를 갖는 것이다.

보통 식별관계는 실선, 비식별관계는 점선으로 표기한다.

 

 


 

엔터티 식별자(Entity Identifier)

 

주식별자

  • 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야한다. ex) 사원번호만으로도 고유한 구조인데, 사원분류코드+사원번호로 식별자가 구성될 경우 부적절하다
  • 대표성 : 엔터티를 대표할 수 있어야한다
  • 유일성 : 엔터티의 인스턴스(테이블에서 각 행)를 유일하게 식별한다
  • 불변성 : 자주 변경되지 않아야한다
  • 존재성 : 주식별자가 지정되면 null일 수 없다. 반드시 값이 지정되어야한다

 

키의 종류

  • 기본키(Primary key) : 후보키 중에서 엔터티를 대표할 수 있는 키
  • 후보키(Candidate key) : 유일성과 최소성을 만족하는 키
  • 슈퍼키(Super key) : 유일성은 만족하지만 최소성은 만족하지 않는 키
  • 대체키(Alternate key) : 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
  • 외래키(Foreign key) : 다른 테이블의 기본 키 컬럼을 가리키는 것. 참조 무결성(Referential Integrity)을 확인하기 위해서 사용한다. 예를 들어 고객:계좌 = 1:N의 관계일때, 계좌 엔터티에는 고객 ID값이 FK로 존재할 수 있다. 이 경우 계좌 엔터티는 고객 ID값이 임의로 들어갈 수 없고 반드시 고객 엔터티에 있는 ID값이 존재해야만 계좌 엔터티가 만들어질 수 있다.

 

 

식별자의 분류

대표성 여부에 따른 분류

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

보조 식별자 : 유일성과 최소성은 만족하지만, 대표성을 만족하지 못하는 식별자이다.

 

생성 여부에 따른 분류

내부 식별자: 엔터티 내부에서 스스로 생성되는 식별자이다. ex) 부서코드, 주문번호, 종목코드 등

외부 식별자: 다른 엔터티와의 관계로 인해 만들어지는 식별자이다. ex) 계좌엔터티에 회원 ID

 

속성의 수에 따른 분류

단일 식별자: 하나의 속성으로 구성

복합 식별자: 두 개 이상의 속성으로 구성

 

대체 여부에 따른 분류

본질 식별자: 비즈니스 프로세스에서 만들어지는 식별자

인조 식별자: 인위적으로 만들어지는 식별자. 후보 식별자 중에서 주식별자로 선정할 것이 없을 때, 순서 번호(Sequence Number) 등을 이용하여 식별자를 만드는 것이다.

 

 

 


참조

 

0. [도서] 영진닷컴 - SQL 개발자 이론서 + 기출문제

 

1. Dataonair - 업무 시나리오에서 엔티티 타입 도출의 6단계

https://dataonair.or.kr/db-tech-reference/d-lounge/technical-data/?mod=document&uid=236077 

 

 

 

 

 

728x90
반응형