1. 엔터티(Entity)

1) 개념

- 사람, 장소, 물건, 사건, 개념 등의 명사

- 업무상 관리가 필요한 관심사

- 저장이 되기 위한 어떤 것

 

2) 특징

① 업무에서 필요로 하는 정보여야 한다.

② 유일한 식별자가 있어야 한다. ex) 회원 ID, 계좌번호 등

③ 두 개 이상의 인스턴스의 집합이어야 한다.

④ 업무 프로세스에 의해 이용되어야 한다.

⑤ 한 개 이상의 속성을 포함해야 한다.

⑥ 다른 엔터티와 관계를 가져야 한다.

 

3) 분류

① 유무형에 따른 분류 - 물리적 형태가 존재하는가?

- 유형 엔터티 : 업무에서 도출되며 지속적으로 사용되는 엔터티 ex) 고객, 강사, 사원 등

- 개념 엔터티 : 물리적 형태 없이 개념적으로 사용되는 엔터티 ex) 거래소 종목, 코스닥 종목, 생명보험 상품 등

- 사건 엔터티 : 비즈니스 프로세스를 실행하면서 생성되는 엔터티 ex) 주문, 체결, 취소주문, 수수료 청구 등

 

② 발생 시점에 따른 분류 - 언제 발생되는가?

- 기본 엔터티 : 다른 엔터티로부터 영향을 받지 않고 독립적으로 생성되는 엔터티 ex) 고객, 상품, 부서 등

- 중심 엔터티 : 기본 엔터티로부터 발생되고 행위 엔터티를 생성하는 것 ex) 계좌, 주문, 취소, 체결 등

- 행위 엔터티 : 2개 이상의 엔터티로부터 발생됨 ex) 주문 이력, 체결 이력 등

 

4) 엔터티의 명명법

① 현업 업무에서 사용하는 용어를 사용한다.

② 약어를 사용하지 않는다.

③ 단수 명사를 사용한다.

④ 모든 엔터티에서 유일한 이름을 부여한다.

⑤ 엔터티 생성 의미에 맞는 이름을 부여한다.

 

 

2. 속성(Attribute) 

1) 개념

- 업무에서 필요로 함

- 의미상 더 이상 분리되지 않음

- 엔터티를 설명하고 인스턴스의 구성 요소가 됨

 

2) 엔터티, 인스턴스, 속성, 속성값의 관계

- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.

- 한 개의 엔터티는 두 개 이상의 속성을 갖는다.

- 한 개의 속성은 한 개의 속성값을 갖는다.

 

3) 속성 설계 시 고려사항

① 엔터티에 필요한 속성인가?

② 속성이 하나의 값만을 가지고 있는가?

③ 속성이 하나의 의미만 가지고 있는가?

④ 동일한 의미를 가지는 속성이 하나만 존재하는가?

 

4) 분류

① 특성에 따른 분류

- 기본속성 : 업무분석을 통해 바로 정의한 속성

- 설계속성 : 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성

- 파생속성 : 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성

 

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

- PK 속성 : 엔터티를 식별할 수 있는 속성

- FK 속성 : 다른 엔터티와의 관계에서 포함된 속성

- 일반속성 : PK, FK에 포함되지 않은 속성

 

5) 도메인

- 각 속성은 가질 수 있는 값의 범위가 있는데, 이를 속성의 도메인이라고 함

- ex) 학생이라는 엔터티가 있을 때 학점 속성의 도메인은 0.0~4.5 사이의 실수 값

 

6) 속성의 명명법

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

② 서술식 속성명은 가급적 사용하지 않는다.

③ 약어 사용은 가급적 제한한다.

④ 전체 데이터모델에서 유일성을 확보하는 것이 좋다.

 

 

3. 관계(Relationship)

1) 개념

- 엔터티들이 서로 상호 연관성을 가지고 있는 상태

- 강사와 수강생은 서로 논리적으로 연관성이 부여된 상태, 해당 관계는 '강의한다'라는 관계로 명명 가능

- 강사 인스턴스 하나가 여러 수강생 인스턴스들과 관계를 가지고 있기 때문에 이러한 관계를 일대다 관계라고 부름

 

2) 분류

① 존재에 의한 관계 : ex) 단지 사원이 부서에 소속되어 있기 때문에 나타나는 관계

② 행위에 의한 관계 : ex) 고객이 주문이라는 행위를 하여 발생되는 관계

 

3) 표기법

① 관계명(Membership) : 관계의 이름

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

- 각각의 관계는 두 개의 관계명을 가짐

 

② 관계차수(Cardinality) : 일대일, 일대다, 다대다

 

③ 관계선택사양(Optionality) : 필수관계, 선택관계

- 고객은 여러 번 주문할 수도 있고, 한 번도 주문하지 않을 수도 있음 (선택관계)

- 주문은 반드시 고객이 있어야 함 (필수관계)

 

 

4. 식별자

1) 개념

- 엔터티 내에서 각각의 인스턴스들을 구분할 수 있는 속성

- ex) 웹사이트에서 특정 회원을 구분하기 위해 계정명이나 이메일을 사용하는 것

 

2) 특징

① 유일성 : 엔터티 내의 모든 인스턴스들을 유일하게 구분할 수 있어야 함

② 최소성 : 식별자의 개수는 유일성을 만족하는 최소의 수를 가져야 함

③ 불변성 : 식별자의 값은 정해지면 변하면 안됨

④ 존재성 : 식별자의 값은 null이 될 수 없음

 

3) 분류

① 대표성 여부

- 주식별자 : 엔터티 내에서 각 인스턴스들을 구분할 수 있는 구분자, 다른 엔터티와 관계를 연결할 수 있는 식별자 ex) 주문번호, 사원번호

- 보조식별자 : 엔터티 내에서 각 인스턴스들을 구분할 수 있는 구분자이나 대표성을 가지지 못해 관계연결을 못하는 식별자 ex) 전화번호

 

② 스스로 생성 여부 

- 내부식별자 : 엔터티 내부에서 스스로 생성되는 식별자 ex) 게시판 글 번호

- 외부식별자 : 타 엔터티와의 관계를 통해 들어오는 식별자 ex) 댓글 엔터티의 원본 게시물 번호

 

③ 속성의 수

- 단일식별자 : 하나의 속성만으로 구성된 식별자 ex) 사원엔터티의 사원번호

- 복합식별자 : 둘 이상의 속성 조합으로 구성된 식별자 ex) 주문엔터티의 고객번호와 주문번호

 

④ 대체가능 여부

- 본질식별자 : 업무에 의해 만들어지는 가공되지 않는 원래의 식별자 ex) 사원엔터티의 사원번호

- 인조식별자 : 주 식별자의 속성이 두 개 이상인 경우 속성들을 하나의 속성으로 묶어 사용하는 식별자 ex) 제품엔터티의 시리얼번호

 

4) 식별자 관계와 비식별자 관계

① 식별자 관계

- 부모 엔터티로부터 속성을 받아 자식엔티티의 주식별자로 사용하는 경우

- 1:1 관계 : 부모로부터 받은 속성을 자식엔티티가 모두 사용하고 그것만을 주식별자로 사용

- 1:M 관계 : 부모로부터 받은 속성 이외에 다른 부모로부터 받은 속성을 포함하거나 스스로 가지고 있는 속성과 함께 주식별자로 구성

- 식별자 관계로만 관계 구성 시 조인조건의 개수가 많아져 개발자 복잡성과 오류가능성을 유발

- 표기 : 실선으로 표현

 

② 비식별자 관계

- 부모 엔티티로부터 속성을 받았지만 자식엔티티의 주식별자로 사용하지 않고, 일반적인 속성으로 사용하는 경우

- 약한 종속관계

- 자식 주식별자 구성을 독립적으로 구성

- 상속받은 주식별자 속성을 타 엔터티에 차단 필요

- 부모쪽의 관계참여가 선택관계

- 비식별자 관계로만 관계 구성 시 많은 조인이 걸리게 되고, 복잡성이 증가하며 성능이 저하됨

- 표기 : 점선으로 표현

'네트워크캠퍼스 > DATABASE' 카테고리의 다른 글

WHERE절  (0) 2024.02.16
DML  (0) 2024.02.15
DDL  (0) 2024.02.15
관계형 데이터베이스  (0) 2024.02.14
데이터 모델의 이해  (0) 2024.02.13

+ Recent posts