Database/개념

[DATABASE] 엔터티, 속성, 관계, 식별자 란?

꽁담 2018. 10. 21. 21:51

엔터티란?



업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing) 입니다.

객체라고도 표현합니다.


엔터티의 특징


1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 합니다.

2. 유일한 식별자에 의해 식별이 가능해야 합니다.

3. 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 합니다.

4. 업무 프로세스에 의해 이용되어야 합니다.

5. 반드시 속성이 있어야 합니다.

6. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 합니다.


엔터티의 분류


1. 유무형에 따른 분류


- 유형엔터티 : 물리적인 형태가 있고 안정적이며 지속적으로 활용되는 엔터티 ( 예 : 사원, 물품 )

- 개념엔터티 : 물리적인 형태는 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티 ( 예 : 조직, 보험상품 )

- 사건엔터티 : 업무를 수행함에 따라 발생되는 엔터티 ( 예 : 주문, 청구 )


2. 발생시점에 따른 분류


- 기본엔터티 : 업무에 원래 존제하는 정보 ( 예 : 사원, 부서, 고객 )

- 중심엔터티 : 기본엔터티로부터 발생되고 그 업무에 있어 중심적인 역할을 하는 엔터티 ( 예 : 계약, 예금원장, 주문 )

- 행위엔터티 : 두 개 이상의 부모엔터티로부터 발생되고 내용이 자주 바뀌는 엔터티 ( 예 : 주문목록, 사원변경 )



속성이란?



업무에서 필요로 하는 인스턴스로 관리하고 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위를 의미합니다.


속성의 특징


1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 합니다.

2. 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 합니다.

3. 하나의 속성에서는 한 개의 값만을 가집니다.


속성의 분류


1. 속성의 특성에 따른 분류


- 기본속성 : 업무로부터 추출한 모든 속성이 해당

- 설계속성 : 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성

- 파생속성 : 다른 속성에 영향을 받아 발생하는 속성으로서 계산된 값들이 해당


2. 엔터티 구성방식에 따른 분류


- PK ( Primary Key )속성 : 엔터티를 식별할 수 있는 속성

- FK ( Foreign Key)속성 : 엔터티와의 관계에서 포함된 속성

- 일반속성 : 엔터티에 포함되어 있고 PK, FK 에 포함되지 않는 속성


도메인


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


속성명을 부여하는 원칙


1. 해당업무에서 사용하는 이름을 부여

2. 서술식 속성명은 사용하지 않음

3. 약어사용은 가급적 제한

4. 전체 데이터모델에서 유일성을 확보



관계란?



엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태를 의미합니다.


관계의 표기법


1. 관계명 : 관계의 이름

2. 관계차수 : 1:1, 1:M, M:N

3. 관계선택사항 : 필수관계, 선택관계


관계명


엔터티가 관계에 참여하는 형태를 지칭

관계가 시작되는 편을 관계시작점, 받는 편을 관계끝점이라 부릅니다.

애매한 동사를 피하며, 현재형으로 표현해야 합니다.




관계차수


엔터티 간 관계에서 참여자의 수를 표현


1:1


1:M


M:N



관계선택사양


필수참여는 참여하는 모든 참여자가 반드시 관계를 가져야 합니다.

선택참여는 물리속성에서 FK 로 연결될 경우 Null 을 허용할 수 있는 항목입니다. 선택참여하는 엔터티 쪽을 원으로 표시합니다.



식별자란?



여러개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름의 구분자를 의미합니다.

하나의 엔터티에 구성되어 있는 여러개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 식별자가 존재해야 합니다.


식별자의 특징


1. 유일성 : 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분

2. 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소 수가 되어야 함

3. 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함

4. 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재해야함


식별자 분류


 분류

 식별자

 설명

 대표성 여부

 주식별자

 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자

 

 보조식별자

 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못하는 식별자

 스스로 생성여부

 내부식별자

 엔터티 내부에서 스스로 만들어지는 식별자

 

 외부식별자

 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자

 속성의 수

 단일식별자

 하나의 속성으로 구성된 식별자

 

 복합식별자

 둘 이상의 속성으로 구성된 식별자

 대체여부

 본질식별자

 업무에 의해 만들어지는 식별자

 

 인조식별자

 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있어 인위적으로 만든 식별자


주식별자 도출기준


1. 업무에서 자주 이용되는 속성을 주식별자로 지정합니다.

2. 명칭, 내역 등과 같은 이름으로 기술되는 것은 피해야 합니다.

3. 속성의 수가 많아지지 않도록 합니다.


식별자관계와 비식별자관계


1. 식별자관계 : 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우

2. 비식별자관계 : 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우




이 내용은  'SQL 전문가 가이드, 한국데이터베이스 진흥원' 에서 공부한 내용입니다.