Hyunebee

SQLD - 엔티티, 속성, 관계 본문

MySQL

SQLD - 엔티티, 속성, 관계

Hyunebee 2022. 2. 7. 18:10

엔티티

 데이터의 집합, 저장되고 관리되어야 하는 데이터 

 

엔티티의 유형

 

유형과 무형에 따른 엔티티

-유형 : 업무에서 도출되며 지속적으로 사용되는 엔티티 
-개념 : 물리적인 형태가 없다, 개념적으로 사용

-사건 : 비스니스 프로세스를 실행하면서 생성되는 엔티티이다.

 

발생시점에 따른 엔티티

-기본 : 키엔티티라고도 한다., 다른 엔티티로부터 영향을 발생X 독립적으로 생성

-중심 : 기본으로 부터 발생해서 행위를 생성하는것이다.

-행위 : 2개 이상의 엔티티로부터 발생

 

식별자

 엔티티를 대표할 수 있는 유일성을 만족하는 속성이다.

 -주식별자(기본키)

   1.최소성 

   2.대표성

   3.유일성

   4.불변성

 

 데이터베이스 키

 -기본키 : 후보키 중에서 엔티티를 대표할 수 있는키

 -후보키 : 유일성과 최소성을 만족하는 키

 -슈퍼키 : 유일성은 만족하지만 최소성을 만족하지 못함

 -대체키 : 키본키를 선정하고 남은 후보키

 -외래키 : 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가리키는 것으로 참조 무결성을 확인하기 위해서 사용

 

속성

 엔티티가 가지는 항목으로 더이상 분리되지 않는 단위로 인스턴의 구성요소이고 의미적으로 더 이상 분해되지 않는다.

 

속성의 특징

-속성은 업무에서 관리되는 정보이다.

-단일값만 가진다.

-주식별자에게 함수적으로 종속된다. PK가 변경되면 속성값도 변경된다.(ex ID가 바뀌면 그에따른 회원 정보도 바뀐다.)

 

속성의 종류

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

-단일 : 하나의 의미로 구성

-복합 : 여러 개의 의미가 있는 것(ex 전화번호 국번 + 번호)

-다중 : 속성에 여러 개의 값을 가질 수 있는 것, 이것은 엔티티로 분해할 수 있다. 

 

특성에 따른 속성의 종류

-기본 : 비즈니스 프로세스에 도출되는 본래의 속성

-설계 : 데이터 모델링 과정에서 발생되는 속성, 유일한 값을 부여한다.

-파생 : 다른 속성에 의해서 만들어지는 속성이다.(ex 합계)

 

도메인

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

 

관계

 엔티티 간의 관련성을 의미하며 존재,행위 관계로 분류한다.

 

존재 관계 : 엔티티 간의 상태를 의미(존재 여부의 관계)

행위 관계 : 엔티티 간에 어떻 행위가 있는것 (두개의 엔티티가 어떤 행위에 의한 관련성이 있는 것이다.)

 

관계차수

  1:1

   관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 하나의 관계만 가지고 있다.

   -완전 1:1 : 하나의 엔티티에 가ㅗㄴ계되는 엔티티의 관계가 하나인 경우 반드시 존재해야 한다.

   -선택적 1:1 : 하나의 엔티티에 관계되는 엔티티의 관계가 하나이거나 없을 수 도 있다.

  1:N

   관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 하나의 이상의 관계를 가지고 있다. 그 반대에 참여하는 관계는 

   하나의 관계를 가진다.

 

 

  N:M

   관계에 참여하는 각 엔티티는 다른 엔티티에 대해서 여러개의 관계를 가지고 있다. 그 반대의 관계 또한 여러개의 관

   계를 가진다. 양쪽이 서로 1: N관계라 생각하자! 

하나의 주문에는 여러 제품을 포함한다. 그리고 하나의 제품은 여러 주문에 포함된다.

 

 

관계 선택사항: 필수관계와 선택관계

 필수참여 

 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔티티의 참여자와 연결이 되어야 하는 관계이다. 아무것도 표시하지  않는다.

 

 선택참여

 ERD에서 관계를 나타내는 선에서 선택 참여하는 엔티티 쪽을 원으로 표시한다. 만약 관계가 표시된 양쪽 엔티티가 모두  선택참여라   면  0:0 관계가 성립됨으로 관계설정을 확인해야 한다.

 

식별 관계와 비식별 관계

식별 관계

-고객과 계좌 엔티티에서는 고객은 독립적으로 존재할 수 있는 강한 개체이다.

-강한 개체는 독립적으로 존재가능하다.

-강한 개체는 다른 엔티티와 관계를 가질 때 다른 엔티티에게 기본키를 공유한다.

-강한 개체는 식별 관계로 표현된다.

-즉 식별관계란 고객 엔티티의 기본키인 회원 ID를 계좌 엔티티의 기본키의 하나로 공유하는 것이다. 

 

비식별 관계

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

-비식별 관계는 점선으로 표현한다.

 

 

'MySQL' 카테고리의 다른 글

SQLD - DB  (0) 2022.02.12
SQLD - 정규화, 반정규화  (0) 2022.02.08
SQLD - 스키마  (0) 2022.02.07
SQLD - ERD 단계  (0) 2022.02.06
SQLD - 데이터 모델링  (0) 2022.02.06