본문 바로가기

데이터 Story/모델링 매뉴얼

사원 엔터티의 업무 식별자

사원 엔터티의 업무 식별자는 주민등록번호 속성만이 되도록 설계한다. 그래서 퇴사한 후 재입사하더라고 같은 식별자를 사용하기 때문에 다른 사원이 되지 않도록 한다.

 

만약 퇴사한 사원이 재입사했을 때 다른 사원으로 인식한다면, 즉 사원번호가 달라진다면 사원 엔터티의 업무 식별자는 주민등록번호+입사일자가 된다. [그림1] 릴레이션이 이를 나타낸다.

 

[사원]

#사원번호

사원명

주민등록번호

입사일자

퇴사일자

12345

홍길동

1234567890123

2032-01-01

2042-12-31

23456

김길동

2345678901234

2025-01-30

{null}

34567

이길동

6789012345678

2027-10-15

{null}

45678

홍길동

1234567890123

2045-05-01

{null}

 

[그림1]

 

업무 식별자가 주민등록번호+입사일자이기 때문에 2032년에 입사했다가 2042년에 퇴직한 홍길동 2045년에 다시 입사하면 홍길동의 사원번호는 두 개가 된다. 이는 홍길동을 두 개의 인스턴스로 관리하는 것이며, 다른 사원을 의미하는 것이기도 하다.

 

‘45678’ 사원번호는 현재 사용하고 있는 사원번호이고, ‘12345’ 사원번호는 과거에 사용했던 사원번호를 나타내는데, [그림1] 릴레이션처럼 관리할 때의 문제는 같은 사람의 사원번호가 두 개라는 점이다. 사원번호는 시스템에서 광범위하게 사용되는데, ‘홍길동의 사원번호가 두 개라면 데이터를 통합 관리하는 데 문제가 된다. 우선 집계할 때 어떤 식으로든 복잡해진다.

 

또한 사원 엔터티에 대한 정의와도 연관된다. 사원에 대한 일반적인 정의라면 한 사람에 대한 사원번호가 한 개만 존재하는 것이 바람직하다.

 

[그림2] 릴레이션과 같이 한 번 부여된 홍길동의 사원번호는 재입사 여부와 무관하게 지속적으로 사용해야 한다. 입사일자, 퇴사일자 등 변경 사항은 사원이력 엔터티에서 별도로 관리한다.

 

[사원]

#사원번호

사원명

주민등록번호

입사일자

퇴사일자

12345

홍길동

1234567890123

2045-05-01

{null}

23456

김길동

2345678901234

2025-01-30

{null}

34567

이길동

6789012345678

2027-10-15

{null}

 

[사원이력]

#사원번호

#변경일자

사원명

주민등록번호

입사일자

퇴사일자

12345

2045-05-01

홍길동

1234567890123

2032-01-01

2042-12-31

 

[그림2]

 

[그림2] 릴레이션은 사원 개별로 하나의 사원번호만 존재한다는 것을 나타내므로 업무 식별자는 주민등록번호 속성 하나다.