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 |