티스토리 뷰

1.   식별자(Identifiers) 개념

l  식별자는 엔티티를 구분짓는 논리적인 이름

l  식별자는 엔티티를 대표할 수 있는 속성

l  엔티티에는 반드시 하나의 유일한 식별자가 존재한다.

 

2.   식별자의 특징

특징

내용

비고

유일성

주식별자에 의해 엔티티내에 모든 인스턴스들을 유일하게 구분함

Ex) 사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유하게 부여됨

최소성

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

Ex) 사원번호만으로도 고유한 구조인데 사원분류코드 + 사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임

불변성

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

Ex) 사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는개념

존재성

주식별자가 지정되면 반드시 데이터 값이 존재(Null 안된다.)

Ex) 사원번호 없는 회사직원은 있을 수 없음

 

3.   식별자 분류 및 표기법

가.   식별자 분류

분류

식별자

설명

대표성

여부

주식별자

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

보조식별자

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

스스로

생성여부

내부식별자

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

외부식별자

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

속성의 수

단일식별자

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

복합식별자

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

대체 여부

본질식별자

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

인조식별자

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

 

나.   식별자 표기법



 

4.   주식별자 도출 기준

l  주식별자 도출기준

-       해당 업무에서 자주 이용되는 속성을 지정한다.

-       명칭, 내역 등과 같이 이름으로 기술되는 것을 피한다.

-       복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.

 

5.   식별자관계와 비식별자관계에 따른 식별자

가.  식별자관계와 비식별자관계의 결정

-       외부식별자(Foreign Identifier)는 자기 자신의 엔티티에서 필요한 속성이 아니라 다른 엔티티와의 관계를 통해 자식 쪽에 엔티티에 생성되는 속성을 외부식별자라 하며 데이터베이스 생성 시에 FK(Foreign Key) 역할을 한다.

 

나.  식별자관계

-       자식엔티티의 주식별자로 부모의 주식별자가 상속되는 경우를 말한다.

-       Null 값이 오면 안된다.

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

-       1:M관계 : 부모로부터 받은 속성, 다른 부모엔티티에서 받은 속성, 스스로 가진 속성으로 주식별자가 구성된 경우

 

다.  비식별자관계(Non-Identifying Relationship)

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

u  비식별자관계 사용 예

n  자식엔티티에서 받은 속성이 반드시 필수가 아니기에 부모 없는 자식이 생성될 수 있는 경우

n  엔티티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우

n  여러 개의 엔티티가 하나의 엔티티로 통합되어 표현되었는데 각각의 엔티티가 별도의 관계를 가질 때

n  자식엔티티에서 별도의 주식별자를 생성하는 것이 더 유리할 경우

 

라.  식별자 관계로만 설정할 경우의 문제점

-       식별자관계로만 연결된 모델의 경우 주식별자 속성이 지속적으로 증가한다.

-       주식별자 증가로 복잡성과 오류가능성을 유발시킬 수 있다.

 

마.  비식별자 관계로만 설정할 경우의 문제점

-       비식별자 관계로 설정할 경우 속성이 자식엔티티로 상속되지 않는다.

-       속성이 자식엔티티로 상속되지 않아 부모엔티티까지 조인되는 현상이 발생

-       불필요한 조인이 발생되고 SQL구문도 길어져 성능 저하 현상이 발생

 

바.  식별자관계와 비식별자관계 모델링

1)     비식별자관계 선택 프로세스

 

2)     식별자와 비식별자관계 비교

항목

식별자관계

비식별자관계

목적

강한 연결관계 표현

약한 연결관계 표현

자식 주식별자 영향

자식 주식별자의 구성에 포함된

자식 일반 속성에 포함됨

표기법

실선 표현

점선 표현

연결 고려사항

- 반드시 부모엔티티 종속

- 자식 주식별자 구성에 부모 주식별자포함 필요

- 상속받은 주식별자 속성을 타 엔티티에 이전 필요

- 약한 종속관계

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

- 자식 주식별자 구성에 부모 주식별자 부분 필요

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

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

 

3)     식별자와 비식별자를 적용한 데이터 모델


반응형
LIST
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함