2022. 2. 3. 16:27ㆍ자격증/SQLD
2-1. 식별자(Identifiers)란?
우리는 앞에서 인스턴스들의 집합(조합)이 엔터티라고 했다. 그럼, 엔터티내에서 특정 인스턴스를 구별하는 방법은 무엇일까? 이를 위해서 식별자가 존재한다. 즉, 여러 개의 인스턴스를 담고 있는 엔터티에서 인스턴스를 구별하기 위한, 즉 엔터티를 대표하는 속성을 의미하며 하나의 엔터티에서는 반드시 하나의 유일한 식별자가 존재해야 한다.
데이터베이스 공부를 했던 사람이라면 키(Key)와 식별자를 동일하게 생각할 수 있는데, 식별자는 업무적으로 구분이 되는 정보이므로 논리 데이터 모델링 단계에서 사용하는 용어이며, 키(Key)는 데이터베이스에서 테이블에 접근을 하기 위한 것으로 물리 데이터 모델링 단계에서 사용하는 것으로 약간의 차이가 존재한다.
2-2. 식별자의 특징
여기서 알아보는 식별자의 특징에서는 사실상 주 식별자를 기준으로 한다. 이후에 알아볼 내용이지만 주 식별자 이외에 외부식별자라는 개념도 존재하는데, 외부식별자의 경우 주식별자의 특징과 일치하지 않으며 참조무결성 제약조건에 따른 특징을 갖는다.
그럼 주 식별자가 가지는 특징은 다음과 같다.
- 유일성
주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분할 수 있어야 함
- 최소성
주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함
- 불변성
주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함
- 존재성
주식별자가 지정되면 반드시 데이터 값이 존재 해야함(Null값 안됨)
2-3. 식별자의 분류
2-3-1. 대표성 유무에 따른 분류
- 주식별자(Primary Identifier)
엔터니 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
- 보조식별자(Alternate Identifier)
엔터티 내에서 칵 어커런스를 구분할 수 있는 구분자이지만 대표성을 가지지 못해 참조관계 연결을 못함
2-3-2. 스스로 생성되었는지에 따른 분류
- 내부식별자
엔터티 내부에서 스스로 만들어지는 식별자
- 외부식별자(Foreign Identifier)
타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
2-3-3. 단일 속성인지에 따른 분류
- 단일식별자(Single Identifier)
하나의 속성으로 구성된 식별자
- 복합식별자(Composit Identifier)
둘 이상의 속성으로 구성된 식별자
2-3-4. 업무적 의미가 있는가에 따른 분류
- 본질식별자
업무에 의해 만들어지는 식별자
- 인조식별자
업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자
2-4. 주식별자 도출기준
데이터 모델링에 있어서 주식별자를 도출하는 것은 중요한 작업이다. 주식별자를 도출하기 위한 기준은 아래와 같다.
- 해당 업무에서 자주 이용되는 속성을 주식별자로 정의한다.
- 명칭, 내역 등과 같이 이름으로 기술되는 것들은 가능하면 주식별자로 지정하지 않는다.
- 복합으로 주식별자를 구성할 경우 너무 많은 속성이 포함되지 않도록 한다.
2-5. 비식별자 관계(Non-Identifying Relationship)
부모 엔터티로부터 속성을 받았지만 이를 자식 엔터티의 주 식별자로 사용하지 않고 일반적인 속성으로 사용하게 되는 경우가 있는데 이러한 경우를 비식별자 관계(Non-Identifying Relationship)라고 한다. 다음의 네가지 경우에 대해서 비식별자 관계에 의한 외부속성을 생성한다.
1) 자식엔터티가 부모엔터티로부터 받은 속성이 반드시 필수 값이 아니기 때문에 부모 없는 자식이 생성될 수 있는 경우
2) 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우. 예를 들어, 부모 엔터티가 자식 엔터티보다 먼저 소멸되는 경우 등을 말한다.
3) 여러개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때
4) 자식엔터티에 주식별자로 사용하여도 되지만, 자식엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때
2-6. 식별자관계와 비식별자관계 모델링
2-6-1. 비식별자관계 선택 프로세스
식별자 관계를 파악하는데에 있어서 중요한 한가지는 비식별자관계를 파악하는 것이다. 비식별자관계를 파악할때에 있어서 다음과 같은 흐름에 따라 선정한다면 합리적으로 비식별자관계를 설정할 수 있다.
2-6-2. 식별자관계와 비식별자관계 비교
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 |
자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 |
- 반드시 부모엔터티 종속 - 자식 주식별자구성에 부모 주식별자포함 필요 - 상속받은 주식별자속성을 타 엔터티에 이전 필요 |
- 약한 종속관계 - 자식 주식별자구성을 독립적으로 구성 - 자식 주식별자구성에 부모 주식별자 부분 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모쪽의 관계참여가 선택관계 |
출처: https://doorbw.tistory.com/228 [Tigercow.Door]
'자격증 > SQLD' 카테고리의 다른 글
SQL 자격검정 실전문제 제1장 답 (0) | 2022.02.20 |
---|---|
SQL 자격검정 실전문제 제1장 문제 (0) | 2022.02.20 |
1. 관계(Relationship) (0) | 2022.02.03 |
2. 속성Attribute (0) | 2022.02.03 |
1. 엔터티Entity (0) | 2022.02.03 |