본문 바로가기

데이터 Story/모델링 매뉴얼

엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계 엔터티에 인스턴스를 생성하는 기준이 되는 속성을 주 식별자로 설계하는 것은 주 식별자를 선택하는 중요한 기준 중의 하나다. 인스턴스를 생성하는 기준은 업무 식별자를 의미하기도 한다. 어떤 속성 값이 바뀔 때 새로운 인스턴스를 추가해야 하는지를 나타낸다. 어떤 값이 바뀔 때 인스턴스를 하나 추가하는지를 따져 해당 속성을 주 식별자로 선택한다. 만약 부서를 관리하는 사원을 별도의 엔터티에서 관리할 때, 부서번호가 다를 때마다 인스턴스가 입력된다면 아래 엔터티와 같이 주 식별자를 선택한다. [그림1] 부서관리사원 엔터티에 인스턴스를 추가해야 할 때는 부서번호 값이 추가될 때다. 만약 ‘100’번 부서번호가 존재한다면 부서관리사원 엔터티에 부서번호가 ‘100’번인 인스턴스를 추가하면 안 된다. 이는 엔터티 간의.. 더보기
업무 식별자를 도출할 때는 논리적으로 인스턴스를 구분할 수 있는지로 검토 업무 식별자를 도출할 때는 논리적으로 인스턴스를 구분할 수 있는지로 따진다. 물리적으로 인스턴스를 구분할 수 있는지로 분석하지 않는다. [그림1] 선수소속구단 엔터티는 선수가 소속된 구단을 관리하는 행위 엔터티다.[그림1] 선수는 동시에 여러 구단에 속할 수 있으며, 소속 구단은 매년 변경될 수 있고 기존의 속했던 구단으로 다시 소속될 수 있다. 반대로 구단에도 여러 선수가 속할 수 있다. 위와 같은 요건을 만족시키는 업무 식별자는 선수소속구단 엔터티와 같이 선수번호+구단번호+소속일자 속성이다. 즉 선수소속구단 엔터티의 인스턴스는 논리적으로 선수와 구단, 그리고 소속일자에 의해서 구분된다. 선수번호/구단번호/소속일자 속성이 달라야 인스턴스를 생성할 수 있다. 또한 포지션구분코드, 등번호 속성은 선수번호/.. 더보기
실체 엔터티의 주 식별자와 시각(일자/일시) 속성 실체 엔터티의 주 식별자에는 시각(일자/일시) 속성을 포함시키지 않는다. 한 번 생성되면 지속적으로 존재하는 실체의 성격상 실체 엔터티의 주 식별자에는 일자 속성이 포함될 수 없다. 실체의 상태가 변하거나 실체의 특정 속성 값이 변하는 것은 실체가 새롭게 생기는 것이 아니다. [그림1] 장비실체 엔터티는 생산된 장비를 관리하는 엔터티다. [그림1] 이에 대한 릴레이션은 아래와 같다. [장비실체] #장비아이디 #기준일자 장비명 장비상태유형코드 생산년도 12345 2045-02-05 A장비 정상 2045 45678 2050-12-25 C장비 정상 2050 78901 2055-06-06 B장비 정상 2055 78901 2060-03-30 B장비 정상 2055 12345 2055-02-05 A장비 폐기 2045.. 더보기
모델링 매뉴얼을 쓰는 이유 지금 정리하고 있는 모델링 매뉴얼이 책으로 나올지는 모르겠습니다.어쨌든 이번 매뉴얼 책은 이전 두 책(관계형 데이터 모델링 프리미엄 가이드, 관계형 데이터 모델링 노트)과 성격이 다릅니다.이런 경우에는 이렇게 설계하라는, 일종의 패턴을 설명한 책입니다. 개인적으로 사실 모델링 패턴 책을 좋아하지 않습니다.데이터 모델링은 상황에 따라 판단해야 하기 때문에 기계가 판단하는 것과 같은 패턴이 있을 수 없다고 생각해서요.그래서 주변에서 매뉴얼 비슷한 책을 쓰길 권유 받을 때마다 쓰고 싶은 욕구를 접곤 했습니다. 하지만 언젠가 문득 더 늦기 전에 정리해야겠다는 생각이 들었어요.모두가 데이터를 소리 높여 강조하고 데이터 무결성이 중요하다고 말하지만, 그 뿌리인 데이터 모델에는 신경을 쓰지 않습니다.시간이 지나면 전.. 더보기
행위 엔터티의 주 식별자 설계 행위 엔터티의 하위 엔터티가 많지 않다면, 행위 엔터티의 주 식별자를 인조 식별자로 설계하지 않고 업무 식별자로 설계한다. [그림1] 주문 엔터티는 주문이라는 행위를 관리하는 엔터티다.[그림1] 주문 엔터티의 주 식별자는 인조 식별자가 아니라 업무 식별자다. 행위 엔터티는 업무 식별자를 사용하는 것이 원칙이다. 행위 엔터티의 업무 식별자가 있는데로 불구하고 인조 식별자를 사용하면 엔터티의 정체성이 희석될 수 있다. 인위적인 속성이 추가되는 것 자체가 바람직하지 않다. 행위 엔터티의 주 식별자는 업무 식별자이기 때문에 대체로 복잡하다. 만약 행위 엔터티의 하위 엔터티가 상당히 많다면 이때는 업무 식별자를 주 식별자로 사용하지 않고 인조 식별자를 주 식별자로 사용하는 게 바람직하다. 상위 엔터티의 주 식별자.. 더보기