논리적인 이름
이 있어야 한다.하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성
- 하나의 엔터티에는 반드시 하나의 유일한 식별자가 존재해야 한다.
유일성
: 주식별자에 의해 엔터티 내에 모든 인트선스들이 유일하게 구분되어야 한다.최소성
: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.불변성
: 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.존재성
: 주식별자가 지정이 되면 반드시 값이 들어와야 한다.외부 식별자의 경우 주식별자 특징과 일치하지 않으며, 참조 무결성 제약 조건에 따른 특징을 가지고 있다.
대표성
을 가지는가 (대표성 여부)스스로 생성
되었는가 (스스로 생성 여부)단일 속성
으로 식별되는가 (단일 속성 여부)업무적으로 의미
가 있는가 (대체 여부)데이터 모델링 작업에서 중요한 작업 중의 하나가 주식별자 도출 작업이다. 도출하기 위한 기준을 정리하면 다음과 같다.
자주 이용되는 속성
을 주식별자로 지정한다.이름으로 기술되는 것들
은 가능하면 주식별자로 지정하지 않는다
.너무 많은 속성이 포함되지 않도록
한다.예를 들면, 직원이라는 엔터티가 있을 때 유일하게 식별가능한 속성으로는 주민등록번호와 사원번 호가 존재할 수 있다. 사원번호가 그 회사에서 직원을 관리할 때 흔히 사용되므로 사원번호를 주 식별자로 지정하고 주민등록번호는 보조식별자로 사용할 수 있다.
예를 들어, 한 회사에 부서이름이 100개가 있다고 할 때, 각각의 부서이름은 유일하게 구별될 수 있다고하여 부서이름을 주식별자로 지정하지 않도록 해야 한다. 만약 부서이름을 주식별자로 선정하면 물 리데이터베이스로 테이블을 생성하여 데이터를 읽을 때 항상 부서이름이 WHERE 조건절에 기술되는 현상이 발생된다. 부서이름은 많은 경우 20 자 이상이 될 수 있으므로 조건절에 정확한 부서이름을 기술하기는 쉬운 일이 아니다.
FK 의 역할
을 한다.부모로부터 받은 식별자를 주식별자로 사용하는 경우
- 부모로부터 받은 식별자를 자식 엔터티의 주식별자로 이용하는 경우 Null 값이 오면 안된다. (존재성)
- 따라서, 이 경우 반드시
부모 엔터티가 생성되어야 자기 자신의 엔터티가 생성
된다.
- 부모로 받은 속성을 자신 엔터티가 모두 사용하고, 주식별자로 사용한다면 →
1:1 관계
- 부모로부터 받은 속성을 포함하여 다른 부모 엔터티에서 받은 속성을 포함하거나 스스로 가지고 있는 속성과 함계 주식별자로 구성되는 경우 →
1:M 관계
부모로부터 속성을 받았지만 자식 엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우
- 비식별자 관계에 의한 외부 속성을 생성한다.
- 자식 엔터티에서 받은 속성이 반드시 필수가 아니더라도 무방하기 때문에
부모 없는 자식
이 생성될 수 있는 경우- 엔터티 별로 데이터의 생명 주기를 다르게 관리할 경우
예를 들어, 부모 엔터티에 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만자식만 남겨두고 먼저 소멸
될 수 있는 경우- 여러 개의 엔터티가 하나의 엔터티로
통합되어 표현
되었는데각각의 엔터티가 별도의 관계
를 가질 때
![](https://velog.velcdn.com/images%2Fyeomss%2Fpost%2Fa09a05af-0e62-410d-852e-fa0d45863149%2FUntitled%205.png)
- 통합된 엔터티에 각각의 엔터티가 별도의 관계를 가지고 있고 각각의 관계로부터 받은 주식별자를 접수 엔터티의 주식별자로 사용할 수 없는 모습을 보여준다.
4. 자식 엔터티에 주식별자로 사용하여도 되지만 자식 엔터티에서 `별도의 주식별자를 생성하는 것이 더 유리하다고 판단될 때` 비식별자 관계에 의한 외부 식별자로 표현한다.
![](https://velog.velcdn.com/images%2Fyeomss%2Fpost%2F5b478c2e-66d8-46ff-b2be-85c1c0b51ef5%2FUntitled%206.png)
식별자 관계만으로 연결된 데이터 모델
의 특징은 주식별자 속성이 지속적으로 증가할 수 밖에 없는 구조로서 개발자 복잡성
과 오류 가능성을 유발
시킬 수 있는 요인이 될 수 있다.부모 엔터티까지 찾아가야 하는 경우
가 발생한다.비식별자 관계
선택 프로세스비교
항목 | 식별자 관계 | 비식별자 관계 |
---|---|---|
목적 | 강한 연결 관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨 | 자식 일반 속성에 포함됨 |
표기법 | 실선 표현 | 점선 표현 |
연결 고려사항 | 반드시 부모 엔터티 종속, 자식 주식별자 구성에 부모 주식별자 포함, 상속받은 주식별자 속성을 타 엔터티에 이전 필요 | 약한 종속 관계, 자식 주식별자 구성을 독립적으로 구성, 자식 주식별자 구성에 부모 주식별자 부분 필요, 상속받은 주식별자 속성을 타 엔터티에 차단 필요, 부모 쪽의 관계 참여가 선택 관계 |
균형감
을 갖출 수 있다.