02 역할의 설정: 관계자는 어떤 역할을 수행하는가
2013.04.15 17:21
개인이나 조직
- 고객,공급자,근로자,고용인, 계약자,또는 파트너와 같은 많은 역할을 수행
- 기업은 비즈니스 전반에 걸쳐 다양한 어플리케이션에서 이러한 개인과 조직의 정보를 관리
- 개인이나 조직을 비즈니스 라이프 사이클에서 어떻게 참여하는가에 따라 고객,파트너,또는 공급자로 봄
선언적 역할
- 기업 전반에 걸쳐 관계자는 ‘고객’ 으로 간주
- 역할들 을 정의하는 것(역할을 선언는 것)과 관련이 있고
맥락적 역할
- 동일한 관계자를 배송부서 직원들은 다른 어떤 트랜잭션의 맥락에서 ‘배송고객’ 으로 봄
- 역할을 사용하는 것(또다른 엔티티의 맥락에서)과 관련
이 패턴이 왜 중요한가?
우리 회사가 관심을 갖고 있는 개인이나 조직은 누구이며, 이들은 우리 회사와 전반적으 로 어떻게 관련되어 있는가?
기업이 핵심 고객과 갖는 관계를 관리
- 비즈니스 수행 과정에 참여하는 개인과 조직의 속성과 특성은 어떤 것인가?
- 어떤 것이 개인과 조직이 기업에 대해 갖고 있는 릴레이션쉽을 정의하는가? 비즈니스 수행 과정에서 개인과 조직의 역할은 어떤 것인가?
- 오직 조직에 대해서만 적합하고 개인에 대해서는 적합하지 않는 역할은 어떤 것인가? 또그 반대의 역할에는 어떤 것이 있는가? 양쪽 모두가 수행할 수 있는 역할에는 어 떤 것이있는가?
- 관리할 필요성이 있는 역할 카테고리가 있는가?
- 비즈니스를 수행하는 동안 개인과 조직은 여러 가지 역할을 수행할 수 있는가?
이 장의 내용
- 선언적 역할의 정의
- 다양한 레벨의 선언적 역할 패턴
- 다양한 선언적 역할 패턴을 사용하는 경우와 사용하지 않는 경우
- 각 패턴에 대한 이해
- 각 패턴의 적절성
- 각 패턴의 요약
선언적 역할이란?
선언적 역할은 관계자가 특정 역할을 수행한다라고 ‘선언한다’
ex) Employee(직원)’으로서 식별 되는 개인 또는 Supplier(공급자)’ 역할을 수행하는 조직
선언적 역할
- ‘개인과 조직에 할당되거나 요구되는 공식적인 행동과 활동’
- 기업의 전체적인 맥락에서 개인이나 조직이 갖는 행동이나 활동에 대한 설정을 모델링
- 개인이나 조직은 ‘고객’ 이나 ‘공급자’ 로 선언될 수 있다
- 트랜잭션이나 비즈니스 정보는 있을 수도 있고 없을 수도 있지만,선언적 역할은 이것과 관계 없이 존재
레벨 1 선언적 역할 패턴
레벨1 선언적 역할 패턴
기업의 관점
- ‘고객’ 엔티티와 ‘공급자’ 엔티티가 있어야만 함
- 역할 이 매우 다를 뿐만 아니라 시스템에서 두 역할이 서로 다른 방식으로 동작한다면, 동일한 조직이 고객이면서 공급자임에도 불구하고 기업의 시스템은 이것을 두 개의 독립적인 요소로 간주
이 패턴이 필요한 이유는?
레벨 1 선언적 역할 패턴의 목적
- 모든 역할을 구체적인 엔티티로 명확하게 정의하여 쉽게 이해할 수 있는 매우 단순한 모델을 보여주는 것
- 각각의 다양한 엔티티들은 특정 주제영역에 대한 역할을 명확하게 기술
선언적 역할의 기본적인 측면
- 첫째, 역할 자체의 정의나 표현.
- 둘째, 역할과 기업의 관계
- 셋째, 어떤 역할이 조직의 역할이고,어떤 역할이 개인의 역할인지,그리고 어떤 역할이 둘 다를 지원하는지.
- 넷째, 이 패턴은 개인과 조직이 하나 또는 그 이상의 역할을 동시에 수행할 수 있도록 지원
(동일한 개인과 조직 이 하나 이상의 역할을 수행할 때, 각각 별도의 엔티티에서 관리)
이 패턴은 어떻게 작동하는가?
- DECLARATIVE ROLE 은 데이터 전문가가 관심을 갖는 역할 엔티티
- 역할의 정의와 그 역할에 연관된 속성 모두를 포함
- 대부분의 상황에서 선언적 역할은 주요 이름이나 현재 이름을 보여주는 하나 이상의 명칭 속성
(ex) 사람의 first name, last name 또는 조직의 organization name)을 가짐
레벨 1 선언적 역할 패턴 활용 사례
레벨 1 선언적 역할 패턴 활용 사례,CUSTOMER
레벨 1 선언적 역할 패턴 활용 사례,SUPPLIER
레벨 1 선언적 역할 패턴 활용 사례, PARTNET
레벨 1 선언적 역할 패턴 활용 사례,EMPLOYEE
레벨 1 선언적 역할 패턴의 몇 가지 기본적인 특징
- 첫째,각각의 엔티티는 명확하게 정의된 역할을 나타냄
- 둘째,각각의 역할 엔티티는 역할 간에 공유될 수 있는 organization name 또는 first name, last name과 같은 속성들을 가질 수 있음
각각의 역할 엔티티는 오직 그역할에만 적용되는 특정한 속성들을 가짐
ex) EMPLOYEE - employee number,SUPPUER - taxation identifier - 셋째,어떤 개인이나 조직이 하나 이상의 역할을 수행하는 것을 표에 기술된 인스턴스에 서 볼 수 있음
ex) ‘Caroline Percy’ - EMPLOYEE와 CUSTOMER의 인스턴스,
‘Matrix Ltd’ - CUSTOMER, PARTNER, SUPPUER의 인스턴스 - 마지막,어떤 역할들은 개인이나 조직에만 특화
ex) EMPLOYEE 역할은 오직 개인에 대한 역할
이 패턴은 언제 사용하는가?
- 비즈니스 관련자가 선언적 역할의 정의를 잘 식별하며 잘 알고 있는 경우
- 기업이 개인이나 조직을,그들 각자가 수행하는 역할과 동일하게 보는 관점으로 가지고 있는 경우.
- 기업이 관계자 개념에 대해 매우 강하게 저항하는 경우.
- 이해하기 쉬운 방법으로 비즈니스 요구사항을 기술할 필요가 있거나, 이해하기 쉽고 명확한 다이어그램을 다른 IT 전문가 또는 관리자들에게 보여줄 필요가 있는 경우
- 비즈니스 내의 역할이 고정적이고 변하지 않는 경우
- 동일한 시점에 또는 시간이 경과해도 각 개인이나 조직은 오직 하나의 역할을 수행
이 패턴의 약점은?
- 이 패턴은 새로운 역할 유형이 빈번하게 추가되거나, 역할이 잘 정의되지 않은 변화가
- 많은 환경에는 적합하지 않음
- 역할들에는 동일한 정보가 반복
- 개인과 조직의 전체적인 그림을 보는 것은 매우 어려움
레벨 2 선언적 역할 패턴
레벨 1 패턴에 PARTY 엔티티를 추가
- 사람들과 관계된 속성(예를 들어,first name, last name, date of birth)과 조직과 관계된 속성(예를 들어, organization name)은 그들의 역할과 관계없이 PARTY 엔티티에 표현
- - 역할에 특화된 정보
(ex)EMPLOYEE - employee number, CUSTOMER - credit limit)는 특정한 선언적 역할 엔티티에서 관리 - 이전 패턴은 개인과 조직,그리고 역할 정보가 선언적 역할 엔티티에 함께 섞여 있으나
- 이 패턴은 관계자가 개인 또는 조직이라는 관점, 관계자는 하나 또는 그 이상의 다양한 선언적 역할을 수행한다는 관점을 제공
이 패턴이 필요한 이유는?
- 여러 곳에서 관계자의 이름{또는 다른 속성)을 여러 번 표현하지는 않음
- PARTY의 서브타입인 ORGANIZATION 엔티티와 PERSON 엔티티를 갖게 됨
- 조직에 국한된 선언적 역할과 개인에 국한된 선언적 역할을 데이터모델 내에서 구분하여 관리
- 개인의 선언적 역할은 오직 PERSON과 연관되고 조직의 역할은 ORGANIZATION과 연관
- 개인과 조직에 모두 적용할 수 있는 역할은 PARTY와 연관
이 패턴은 어떻게 작동하는가?
- PARTY가 서브타입으로서 PERSON과 ORGANIZATION 모두를 가짐
- PERSON
- 살아 있거나 죽은,육체를 가진 인간
- ORGANIZATION
- 특정한 목적을 위해 조직된 사람의 그룹,연합 또는 ‘개인들이 비즈니스를 수행하기 위하여 체계적으로 협업하는 구조
- PERSON
- PERSON
- current first name,current last name, gender, date of birth와 같은 속성 관리
- current first name,current last name, gender, date of birth와 같은 속성 관리
- ORGANIZATION
- current organization name 등과 같은 속성을 관리
- current organization name 등과 같은 속성을 관리
레벨 2 선언적 역할 패턴
- 선언적 역할 엔티티 (DECLARATIVE ROLE 1,2,3)
- PARTY, PERSON, 또는 ORGANIZATION이 어떻게 동작하는지를 정의
- PARTY가 기업에서 어떤 역할을 수행하는가
- 각각의 DECLARATIVE ROLE 1은 반드시 하나의 PARTY를 위한 역할이어야 함
- 관계자에 대해 특정한 속성
- PARTY, ORGAN IZAT ION , PERSON의 슈퍼타입/서브타입 구조에서 표현
- 역할에 대해 특정한 속성들은 그 자신의 선언적 역할에서 표현
- 선언적 역할과의 특정한 일대일 또는 일대다 릴레이션쉽은 선언적 역할 엔티티에서 관련된 엔티티의 외래키를 통해서 표현
- 할 엔티티에서 관련된 엔티티의 외래키를 통해서 표현될 수 있고,다대다 릴레이션쉽은 그 선언적 역할 엔티티와 관련된 엔티티 간의 연관 엔티티에서 표현
ex) PARTNER의 외래키인 partner type id가 PARTNER 선언적 역할을 PARTNER TYPE 분류 엔티 티에 연관
레벨2 선언적 역할 패턴 활용 사례
레벨 1 선언적 역할 패턴은 회사가 관심을 갖고 있는 역할의 초기 범위를 보여주기 위 한 것
- PERSON이나 ORGANIZATION에 대한 정보를 한 번만 관리
- 그들이 여러 역할을 수행한다 할지라도 중복 데이터를 표현할 필요성을 줄이는 패턴을 생성
- PARTY, ORGANIZATION, PERSON의 슈퍼타입/서브타입 구조
- CUSTOMER가 PARTY와 연관
- 각각의 PARTY는 오직 하나의 CUSTOMER로 서 행동할 수 있다
- 각각의 CUSTOMER는 오직 하나의 PARTY에 대한 역할이어야 한다
- CUSTOMER 의 인스턴스는 PERSON 일 수도 있고 ORGANEATION 일수 있음
레벨 2 선언적 역할 패턴 활용 사례
- SUPPLIER 역할은 ORGANIZATION과 직접적으로 연관
- ‘각각의 ORGANEATION은 오직 하나의 SUPPLIER로서 행동할 수 있다
- EMPLOYEE
- 각각의 PERSON은 오직 하나의 EMPLOYEE로서 행동할 수 있다
- PARTY, PERSON 또는 ORGANIZATION의 인스턴스가 각 선언적 역할을 한 시점에 오직 한번만 수행할 수 있도록 관리
- 개인은 오직 한 번만 직원이 될 수 있음
- 한 조직은 공급자 역할을 오직 한 번만 수행할 수 있음
( 이것은 일대일 릴레이션쉽이기 때문에 몇몇 데이터 모델러들이 문제를 제기할 수도 있다.)
PARTY로부터 역할을 분리해야 하는 이유
- 과세식별번호 (SUPPPLER), 직원번호(EMPLOYEE) 등과 같이 관계자가 수행하는 각 역할에 종속적인 정보뿐만 아니라 이름,생년월일 등과 같이 관계자 역할과는 관계 없는 정보
- 선언적 역할이 관계자,개인,또는 조직 그 자체가 아님
- 선언적 역할은 관계자,개인,또는 조직이 수행
- 역할과는 관계 없는 관계자(이름,생년월일,기타 등)에 대한 데이터를 한 번만 관리
(레벨 1 패턴은 반복해서 관리)
각각의 다양한 선언적 역할
- 암묵적으로 분류된 구체적인 역할의 인스턴스
- 기록된 어떤 개인이나 조직은 그 역할에 의하여 분류
ex) 개인이나 조직이 CUSTOMER 역할로서 활동하고 있다면 그들은 CUSTOMER ‘유형’ 선언적 역할을 수행
이 패턴은 언제 사용하는가?
- 개인이나 조직에 대한 공통 정보가 존재
- 동일한 관계자가 여러 역할을 수행하는 상황
- 개인만을 위한 일부 특정한 역할이 있고, 조직에서만 수행하는 역할이 있으며,개인과
- 조직 모두가 수행할 수 있는 역할이 있다는 것을 명확하게 할 필요
- 역할을 관계자, 개인, 조직과 구분해야 할 필요
- 기업이 여러 상황에 적용할 수 있는 패턴을 사용하는 데 관심
- 공감대를 얻기 위해 데이터모델을 이해하기 쉽도록 개별 역할들이 어느 정도는 구체적일 필요
- 관계자에 연관된 모든 정보에 대해 더 완전한 그림을 볼 필요가 있을때
이 패턴의 약점은?
- 어떤 기업은 선언적 역할이 관계자와 의미적으로 다른 것임을 느끼지 못한다.
- 이 패턴은 관계자가 특정 유형의 역할을 한 번만 수행할 것이라고 제시한다.
- 레벨 1 패턴과 매우 유사하게, 이 패턴은 새로운 유형의 역할이 빈번하게 추가되는 변화 가 많은 환경에는 적합하지 않다.
- 이 패턴은 역할 유형에 대한 데이터 관리와 유지보수를 지원하지 않는다
레벨 3 선언적 역할 패턴
이 패턴이 필요한 이유는?
레벨 3 선언적 역할 패턴 Level 3 Declarative Role Pattern
- 다양한 역할 유형에 대한 관리뿐만 아니라 선언적 역할을 추가하거나 변경하는 데 유연한 접근법으로서 사용
- 기업의 선언적 역할을 PARTY ROLE이라는 슈퍼타입으로 모아준다.
- 선언적 역할이 그것과 연관된 특정한 데이터 또는 릴레이션쉽을 갖고 있고 그 선언적 역할이 기업에 의해 중요한 역할로 식별될 때,PARTY ROLE의 서브타입 으로서 추가
- 그리고 선언적 역할이 변경된다면,PARTY ROLE의 맥락에서 변경 된다.
- ROLE TYPE 엔티티가 역할 유형에 대한 데이터를 관리한다
- credit limit는 CUSTOMER라는 특정한 역할의 속성이지만 AUTHOREATION(즉, 읽고, 수정하고,갱신하고, 삭제하는 권한)은 ROLE TYPE에 연관
이 패턴은 어떻게 작동하는가?
레벨3 선언적 역할 패턴
선언적 역할(DECLARATIVE ROLE 1,2,3)
- PARTY ROLE의 서브타입
- 기업이 수행하는 모든 활동들의 맥락에서 기업이 정의하는 역할
PARTY ROLE
- 모든 선언적 역할에 존재할 수 있는 공통적인 속성과 릴레이션쉽을 포함
ex) from date와 thru date는 역할이 유효할 때와 역할이 더는 유효하지 않을 때를 명시
- PERSON 이나 ORGANIZATION이 많은 선언적 역할을 동시에 수행할 수 있으며 선언적 역할들은 반드시 하나의 PARTY(PERSON이나 ORGANIZATION)에 대한 것이어야 함
레벨 3 선언적 역할 패턴 활용 사례
레벨3 선언적 역할 패턴 활용 사례
역할 유형의 계층구조
역할 유형의 계층구조
- ROLE TYPE의 재귀 릴레이션쉽은 역할 유형들이 어떤 비즈니스 맥락에서 어떻게 사용되는지에 관한 범주화를 다루는 데 사용 가능
- 역할이 개인 역할인지 조직 역할인지 뿐만 아니라 비즈니스 내의 역할들의 맥락
(ex)주문 처리, 상품관리,또는 배송 실행계획에 필요한 모든역할) 에 의해서 여러 가지 방법으로 분류가능
-> 패턴에 추가될 수 있고 ROLE TYPE 에 대한 분류를 향상시키는 데 사용될 수 있는 분류에 대한 패턴은 5장 에서 다룸
역할 유형의 대안 계층구조
이 패턴은 언제 사용하는가?
- 기업이, 시간이 경과함에 따라 새로운 요구사항의 등장으로 선언적 역할이 추가되고 변 경되는 역동적인 비즈니스 환경을 가질때
- 모든 역할을 효율적으로 유지하고 관리할 필요가 있을대
- 기업이 ROLE TYPE의 추가를 통하여 PARTY ROLE 내의 다양한 선언적 역할을 범주화 하는 유연한 방식을 원할때
- 데이터 전문가는 PARTY ROLE 레벨에서 공통적인 릴레이션쉽과 속성을 관리하고, 관계자가 여러 역할을 수행할 수 있더라도 PARTY에서 데이터를 관리함으로써 속성의 반복 과 릴레이션쉽의 반복을 피하고자 할때
- 각각의 역할에 연관된 데이터, 각각의 관계자가 수행하는 모든 역할, 각각의 관계자에 대한 더 완전한 그림을 관리할 필요가 있을때
- PARTY ROLE 슈퍼타입에 다른 엔티티를 연관시킬 필요가 있을때
이 패턴의 약점은?
- PARTY ROLE 개념을 추가하는 것은 많은 기업이 불편해 할 수도 있는 일반화의 레벨을 추가한다는 점
- 특정한 역할이 개인을 위한 용도인지, 조직을 위한 용도인지, 관계자를 위한 용도인지가 불분명
- 관계자가 하나 이상의 역할을 수행하지 않는다면 데이터 중복을 제거한다는 이점은 중요
- 한 요소가 될 수 없음
- 데이터 모델 리소스 북 Vol.3 (bysql.net 2013년 1차 스터디)
- 작성자: 남송휘 (tofriend)
- 최초작성일: 2013년 4월 27일
- 본문서는 bysql.net 스터디 결과입니다 .본 문서를 인용하실때는 출처를 밝혀주세요. http://www.bysql.net
- 문서의 잘못된 점이나 질문사항은 본문서에 댓글로 남겨주세요. ^^
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
13 |
01 이 책의 소개
![]() | 남송휘 | 2013.04.15 | 12335 |
» | 02 역할의 설정: 관계자는 어떤 역할을 수행하는가 | 남송휘 | 2013.04.15 | 4799 |
11 | 03 역할의 활용: 관계자는 맥락에 어떻게 관련되어 있는가 | 남송휘 | 2013.04.15 | 9618 |
10 |
04 계층, 집합, 동료간 릴레이션쉽: 유사 데이터의 조직화
![]() | 운영자 | 2013.04.15 | 14395 |
9 |
05 유형과 카테고리: 데이터의 분류
![]() | 운영자 | 2013.04.15 | 10799 |
8 | 06 상태: 데이터의 상태 | 운영자 | 2013.04.15 | 6373 |
7 | 07 컨택 메커니즘: 연락 방법 | 운영자 | 2013.04.15 | 2335 |
6 | 07 컨택 메커니즘: 연락 방법-1 | 남송휘 | 2013.04.15 | 17615 |
5 | 07 컨택 메커니즘: 연락 방법-2 | 천리향1 | 2013.04.15 | 4797 |
4 |
08 비즈니스 룰: 비즈니스가 수행되는 규칙
![]() | 시그너스7000 | 2013.04.15 | 18146 |
3 |
09 패턴의 활용
![]() | 정재훈 | 2013.04.15 | 21419 |
2 | 10 패턴의 사회화 | 케를로스 | 2013.04.15 | 3680 |
1 |
Front Page
![]() | 운영자 | 2013.04.15 | 109242 |