728x90
SMALL

식별자(Identifiers) 란? 

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

 

식별자의 특징 

특징 내용 예시
유일성 주식별자에 의해 모든 인스턴스들이 유일하게 구분됨 사원번호가 주식별자일 경우 모든 직원들에 대해 개인별로 고유하게 부여되어야한다.
최소성 주식별자를 주성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함 사원번호만으로도 고유한 구조인데 ' 사원분류코드+ 사원번호 ' 로 식별자까지 구성될 경우 부적절한 주식별자 구조이다.
불변성 지정된 주식별자의 값은 자주 변하지 않아야함. 변하면 이전 기록이 말소됨 사원번호이 값이 변한단다는 의미는 퇴사하고 새로운 직원이 들어온다는 의미와 같다. 
존재성 주식별자가 지정되면 반드시 값이 존재해야함(NOT NULL) 사원번호가 없는 회사 직원은 있을 수가 없다. 

 

식별자 분류

분류 식별자 설명
대표성여부 주식별자 엔터티 내에서 각 어커런스(인스턴스)를 구분 할 수 있는 구분자, 타 엔터티와 참조관계로 연결할 수 있다. 
보조식별자 구분자이나 대표성이 없고 참조관계 연결이 안된다.
스스로 생성여부 내부식별자 엔터티 내부에서 스스로 만들어지는 식별자
외부식별자 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
속성의 수 단일식별자 하나의 속성으로 구성된 식별자
복합식별자 둘 이상의 속성으로 구성된 식별자
대체여부 본질식별자 업무에 의해 만들어지는 식별자
인조식별자 원조 식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자

 

주식별자 도출 기준 

- 해당 업무에서 자주 이용되는 속성이여야한다. 

- 명칭, 내역 등고 ㅏ같은 이름으로 기술되는 것들은 주식별자로 지정하지 않느다. 

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

   →너무 많으면 인조식별자를 생성한다. 

 

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

항목 식별자관계 비식별자관계
목적 강한 연결관계 표현 약한 연결관계 표현
자식 주식별자
영향
자식 주식별자의 구성에 포함됨 자식 일반 속성에 포함됨
표기법 실선표현 전섬 표현
연결
고려사항
• 반드시 부모 엔터티 종속
• 자식 주식별자구성에 부모 주식별자 포함
• 상속받은 주식별자속성을 타 엔터티에 이전 필요
• 약한 종속관계
• 자식 주식별자구성을 독립적으로 구성
• 자식 주식별자구성에 부모 주식별자 구분 필요 
• 상속받은 주식별자 속성을 타 엔터티에 차단 필요
• 부모쪽의 관계 참여가 선택 관계

주식별자

: 자식의 주식별자로 부모의 주식별자 상속

- 부모로부터 받은 식별자를 자식 엔터티의 주식별자로 이용하는 경우

- 강한 연결관계 표현, 실선 표기 

- 식별자 관계로만 설정 시 주식별자 증가로 오류 유발

 

비식별자

: 부모 속성을 자식의 일반 속성으로 사용 

- 부모없는 자식이 생설 될 수 있는 경우 

- 부모와 자식의 생명주기가 다른 경우 (별도로 소멸) 

- 여러개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가진 경우

- 자식엔터티에 별도의 주식별자를 생성하는 것이 더 유리한 경우 

- SQL문장이 길어져 복잡성 증가되는 것 방지 

- 비식별자 관계로만 설정시 부모 엔터티와 조인하여 성능 저하 

728x90
반응형
LIST

'Self Study > SQLD' 카테고리의 다른 글

[SQLD] 반정규화(De-Normalization)  (0) 2022.11.04
[SQLD] 정규화(Normalization)  (0) 2022.11.03
[SQLD] 성능데이터 모델링  (0) 2022.11.03
[SQLD] 관계(Relationship)  (0) 2022.11.02
[SQLD] 속성(Attribute)  (0) 2022.11.02

+ Recent posts