Database 12. 데이터모델링 - 식별자
데이터 모델링 - 식별자
Identifiers
식별자 개념
- 여러 개의 인스턴스 각각을 구분할 수 있는 논리적인 이름이 있어야 하는 구분자.
- 엔터티 내의 각 인스턴스를 개별적으로 식별하기 위해 사용됨.
- 식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자임.
ex) 고객(고객번호), 사원(사원번호), 주문(주문번호), 상품(상품번호)
식별자의 특징
- 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 함.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함.
- 주식별자가 지정이 되면 반드시 값이 들어와야 함.
식별자의 분류
1) 대표성 여부
주 식별자
- 엔터티 내에서 각 행을 구분할 수 있는 구분자.
- 타 엔터티와 참조관계를 연결할 수 있는 식별자.
ex) 고객번호 , 사원번호
보조 식별자
- 엔터티 내에서 각 행을 구분할 수 있는 구분자이나 대표성을 가지지 못해
참조관계 연결을 못함.
ex) 주민등록번호
2) 스스로 생성여부
내부 식별자
- 엔터티 내부에서 스스로 만들어지는 식별자
ex) 고객번호
외부 식별자
- 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
ex) 교육이력엔터티의 사원번호
3) 속성의 수
단일 식별자
- 하나의 속성으로 구성된 식별자
복합 식별자
- 둘 이상의 속성으로 구성된 식별자
ex) 교육이력 엔터티의 사원번호 + 수강일자
4) 대체여부
본질 식별자
- 업무에 의해 만들어지는 식별자
ex) 고객번호
인조 식별자
- 인위적으로 만든 식별자
ex) 주문엔터티의 고객번호 + 주문번호 + 순번
식별자 도출 기준
- 해당 업무에서 자주 이용되는 속성을 주식별자로 지정함.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않음.
- 복합으로 주식별자로 구성할 경우 너무 많은 속성이 포함되지 않도록 함.
식별자 관계와 비식별자 관계의 결정
- 외부식별자 (Foreign Identifier)는 자기 자신의 엔터티에서 필요한 속성이
아니라 다른 엔터티와의 관계를 통해 자식 쪽 엔터티에 생성되는 속성
- 데이터 베이스 생성시에 Foreign key 역할을 함
-
자식 엔터티에서 부모엔터티로부터 받은 외부식별자를 자신의 주식별자로 이용할
것인지 (식별자 관계) 또는, 부모와 연결이 되는 속성으로서만 이용할
것인지 (비식별자 관계) 해야 함. -
식별자
- 비식별자
식별자 관계
- 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우
- 식별자 관계 (Identifying Relationship)라고 지칭함
- 외부 식별자의 주 식별자 역할
- 부모의 식별자가 자식에게도 식별자 역할을 함.
비식별자 관계
- 부모엔터티로 부터 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고
일반적인 속성으로만 사용하는 경우. - 비식별자 관계 (Non-Identifying Relationship)라고 함.
- 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문임.
- 자식엔터티에 주식별자로 사용하여도 되지만 자식엔터티에서 별도의 주식별자를
생성하는 것이 더 유리하다고 판단될 때 비식별자 관계에 의한 외부식별자로 표현함 - 외부 식별자는 FK로써의 역할을 함.
- 부모의 식별자는 자식에게 식별자 역할을 하지않고 FK로써의 역할을 함.
식별자 관계로만 설정할 경우의 문제점
- 지속적으로 식별자 관계를 연결한 데이터 모델의 PK속성의 수는 증가할 수 밖에 없는
구조를 가지게 됨 - 식별자 관계만으로 연결된 데이터 모델의 특징은 주식 별자 속성이 지속적으로 증가
할수 밖에 없는 구조로서 개발의 복잡성과 오류가능성을 유발시킬 수 있음 - 방안
약한관계
관계분석 ==> 관계의 강/약 분석 =====> 비식별자 관계 고려
독립PK구성
자식테이블 독립 PK 필요 ======> 비식별자 관계 고려
PK속성 단순화
SQL 복잡성 증가(개발생산성하락) ===========> 비식별자 관계 고려
관계
식별자 관계 비식별자 관계
======================================================================
1)목적 강한 연결 관계 표현 약한 연결 관계 표현
----------------------------------------------------------------------
2)자식 주식 주 식별자의 구성에 포함 자식 일반 속성에 포함됨
----------------------------------------------------------------------
3)연결고려 반드시 부모 엔터티 종속 약한 종속관계
----------------------------------------------------------------------
사항 자식 주식별자구성에 부모 자식 주식별자 구성을 독립적
식별자포함 필요 으로 구성
----------------------------------------------------------------------
댓글남기기