식별자
- 각각의 인스턴스를 구분 가능하게 만들어주는 대표 속성
- 주 식별자는 PK -> 여러개 존재 가능
- 유일성 : 해당 속성이 인스턴스를 유일하게 식별할 수 있는 성질을 가졌는지
- 최소성 : 최소한의 속성들로만 유일성을 보장하게 하는지
- 불변성 : 속성값이 변하지 않아야 함
- 존재성 : 속성값은 NULL이 될 수 없음
식별자의 특성과 분류
- 대표성 여부
- 주 식별자(PK) -> # 으로 표현
- 다른 엔티티와 연결 가능
- 유일성, 최소성, 불변성, 존재성을 모두 만족하는 식별자
- PK는 여러 속성이 존재할 수 있으나 나머지 일반 속성들이 PK속성들에 대해
함수적 종속성을 띄어야함
- 주 식별자(PK) 도출 기준
- 해당 업무에서 자주 이용되는 속성
- 명칭, 내역 등의 이름은 피함
- 속성 수를 최대한 적게 구성
- 자주 변하지 않는 값
- 보조 식별자 -> 다른 엔티티와 연결 X
- 인스턴스 식별은 가능하나 엔티티를 대표하는 식별자는 아님
- 즉 다른 엔티티와의 참조관계로 연결되지 않음
- 스스로 생성 되었는가에 대한 여부
- 내부 식별자
- 다른 엔티티 참조 없이 해당 엔티티 내부에서 스스로 생성된 식별자
- 외부 식별자
- 대체되었는지 기존에 있는지에 대한 분류
- 원조(본질) 식별자 : 업무에 의해 만들어지는 식별자
- 인조(대리) 식별자 : 인위적으로 만들어지는 식별자
식별자 관계 VS 비식별자 관계
- 식별자 관계
- 트랜잭션에 의한 관계
- 강한 연결 관계
- 실선
- 부모-자식 관계가 항시 유지
- SQL문의 JOIN을 최소화 해줌
- 비식별자 관계
- 부모 엔티티의 식별자 속성이 자식 엔티티의 일반 속성이 되는 관계
- 약한 연결 관계
- 점선
- 부모-자식 관계가 유지 안 될 수 있음