본문 바로가기

업무식별자

엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계 엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계하는 것은 주 식별자를 선택하는 중요한 기준 중의 하나다. 인스턴스를 생성하는 기준은 업무 식별자를 의미하기도 한다. 어떤 속성 값이 바뀔 때 새로운 인스턴스를 추가해야 하는지를 나타낸다. 어떤 값이 바뀔 때 인스턴스를 하나 추가하는지를 따져 해당 속성을 주 식별자로 선택한다. 만약 부서를 관리하는 사원을 별도의 엔터티에서 관리할 때, 부서번호가 다를 때마다 인스턴스가 입력된다면 아래 엔터티와 같이 주 식별자를 선택한다. [그림1] 부서관리사원 엔터티에 인스턴스를 추가해야 할 때는 부서번호 값이 추가될 때다. 만약 ‘100’번 부서번호가 존재한다면 부서관리사원 엔터티에 부서번호가 ‘100’번인 인스턴스를 추가하면 안 된다. 이는 엔터티 간의.. 더보기
업무 식별자를 도출할 때는 논리적으로 인스턴스를 구분할 수 있는지로 검토 업무 식별자를 도출할 때는 논리적으로 인스턴스를 구분할 수 있는지로 따진다. 물리적으로 인스턴스를 구분할 수 있는지로 분석하지 않는다. [그림1] 선수소속구단 엔터티는 선수가 소속된 구단을 관리하는 행위 엔터티다.[그림1] 선수는 동시에 여러 구단에 속할 수 있으며, 소속 구단은 매년 변경될 수 있고 기존의 속했던 구단으로 다시 소속될 수 있다. 반대로 구단에도 여러 선수가 속할 수 있다. 위와 같은 요건을 만족시키는 업무 식별자는 선수소속구단 엔터티와 같이 선수번호+구단번호+소속일자 속성이다. 즉 선수소속구단 엔터티의 인스턴스는 논리적으로 선수와 구단, 그리고 소속일자에 의해서 구분된다. 선수번호/구단번호/소속일자 속성이 달라야 인스턴스를 생성할 수 있다. 또한 포지션구분코드, 등번호 속성은 선수번호/.. 더보기
행위 엔터티의 주 식별자 설계 행위 엔터티의 하위 엔터티가 많지 않다면, 행위 엔터티의 주 식별자를 인조 식별자로 설계하지 않고 업무 식별자로 설계한다. [그림1] 주문 엔터티는 주문이라는 행위를 관리하는 엔터티다.[그림1] 주문 엔터티의 주 식별자는 인조 식별자가 아니라 업무 식별자다. 행위 엔터티는 업무 식별자를 사용하는 것이 원칙이다. 행위 엔터티의 업무 식별자가 있는데로 불구하고 인조 식별자를 사용하면 엔터티의 정체성이 희석될 수 있다. 인위적인 속성이 추가되는 것 자체가 바람직하지 않다. 행위 엔터티의 주 식별자는 업무 식별자이기 때문에 대체로 복잡하다. 만약 행위 엔터티의 하위 엔터티가 상당히 많다면 이때는 업무 식별자를 주 식별자로 사용하지 않고 인조 식별자를 주 식별자로 사용하는 게 바람직하다. 상위 엔터티의 주 식별자.. 더보기