실전 데이터모델링 & 데이터베이스 설계와 구축 (4~5.프로세스/상관 모델링) 박승기
4~5. 프로세스/상관 모델링 ◆ 데이터베이스 설계의 3단계 ⇒ 모델링은 크게 개념 설계, 논리 설계, 물리 설계로 나눌 수 있다. 1. 개념 설계 ■ 개념 설계는 비즈니스 스폰서와 사용자, 관리자, 고객을 관련시킴으로써 완벽하고 정확한 요구사항들을 용이하게 한다. ■ 개념 설계를 통해 물리적인 고려 사항을 배제한 가운데 사용자 관점에서 정보에 대한 개념적인 데이터 모델을 구축한다. - 비즈니스 요구를 파악한다. - 사용자가 무슨 일을 하며 그들이 무엇을 요구하는지를 이해한다. - 업무간 연관 관계와 구체적인 업무의 시나리오를 파악한다. - 사용자의 요구사항에 시나리오를 검증하고 확인한다.
2. 논리적 데이터베이스 설계 ■ 논리적 데이터베이스 설계는 개념 설계 과정에서 생성된 데이터 모델을 데이터베이스 종류의 특성에 따른 논리적인 데이터 모델로 발전시킨다. ■ 논리 설계에서 데이터베이스 종류를 관계형 데이터베이스로 선정했다면 RDB의 개념에 부합하는 릴레이션 관계를 설정하고 정규화를 거쳐 논리 설계를 완성하게 된다. 그러나 저장의 구조나 인덱스의 설계와 같은 물리적인 세부사항은 고려하지 않는다. - 실체를 찾아낸다. - 관계를 찾아낸다. - 속성을 찾아내고 연관시킨다. - 기본 키 및 후보 키를 결정한다. - 논리적 ER 모델을 그리고 정규화 과정을 수행한다. - 논리적인 제약 사항을 정의한다.
3. 물리적 데이터베이스 설계 ■ 특정 데이터베이스 제품을 선정하고 해당 제품의 특징을 고려해 논리적인 3. 물리적 데이터베이스 설계 ■ 특정 데이터베이스 제품을 선정하고 해당 제품의 특징을 고려해 논리적인 데이터 모델을 물리적인 데이터 모델로 옮겨 실제 사용할 물리적 데이터 스키마를 정의하는 것. - 논리적 데이터베이스 설계에 산출된 개체와 속성을 대상 데이터베이스 제품의 테이블과 컬럼으로 만들기 위한 기초 테이블을 설계한다. - 확장성과 분산성에 대한 고려를 한다. - 트랜잭션을 분석한다. - 논리적인 제약 사항을 선정 데이터베이스 제품의 무결성 제약 사항으로설계한다. - 물리적 정규화, 비정규 과정을 수행한다. - 인덱스, 뷰, 저장 프로시저 등의 데이터베이스 제품의 개체를 설계한다. ※ 데이터베이스 설계를 효과적으로 수행하기 위해서 케이스 툴을 사용 - 비즈니스 프로세스를 분석하기 위한 툴과 데이터베이스 모델링을 위한 툴. ■ 데이터베이스 모델링 툴의 사용은 정보 요구와 업무 규칙의 논리 모델부터 물리적인 데이터베이스 설계, 스키마 생성, 복잡한 테이블과 테이블간의 관계를 명확히 하고 단순화시켜 데이터 무결성 강화와 시스템 전반적인 수행 속도를 보장할 수 있도록 유도하며, 높은 생산성과 효율적인 유지보수를 지원 하게 된다.
▶프로세스 모델링이란… ◆ 프로세스 모델링의 정의 정보화 시스템을 구축하기 위해, 어떤 일이 그 업무에서 행하여지고 있는지 또는 어떤 일을 그 업무에서 해야 하는지를 분석하는 방법이다. 업무에 필요한 프로세스를 시스템 구축 방법론을 사용하여 분석하고 설계하여 정보화 시스템을 구축하는 것. ⇒ 정보공학에 이론적 근거를 두고 만들어졌다. ◆ 모델링의 3가지 중요한 요소 ① 데이터 관점 : 업무가 어던 데이터와 관련이 있는지? - 데이터간의 관계는 무엇인지에 대해 모델링 하는 방법(What, Data) ② 프로세스 관점 : 업무가 실제하고 있는 일은 무엇인지? - 모델링 하는 방법(How, Process) ③ 데이터와 프로세스 관점 : 업무처리가 하는 일의 방법에 따라 데이터가 어떻게 어떻게 영향을 받고 있는지 모델링 하는 방법(Interaction; 상호작용)
◆ 4장에서 학습할 내용 - 프로세스 관점에 대하여 알아본다. ▶프로세스 모델링이란… ◆ 4장에서 학습할 내용 - 프로세스 관점에 대하여 알아본다. - 업무 기능 분해 - 단위 프로세스 - 단위 프로세스와 데이터와의 관계 - 기타 프로세스 모델링과 관계된 몇 가지. ☞ 프로세스 모델링을 이해할 때 가장 중요한 개념인 단위프로세스, 트랜잭션, 데이터 무결성 보장에 대한 내용은 반드시 기억 해야 한다. ※ 트랜잭션(transaction;처리) : 하나의 작업이 여러 모듈과 연동된 경우(내부적으로 는 DB내의 여러 TABLE 연동의 경우) 이를 한 단위로 일괄성을 유지하는 것을 의미함. 즉, 정보의 교환이나 데이터베이스 갱신 등 일련의 작업들에 대한 연속처리단위를 이름
▶업무기능 분해 정의 1) 업무 기능 분해 - 업무기능분해란 기업의 업무를 정보화 시스템이 구축될 수 있는 단위로 쪼개는 것. ☞ 업무기능분해도의 목적은… 첫번째 정보화 시스템을 구축하는 가장 최저 단위의 단위 프로세스를 도출하기 위함이다. 두번째 전체 업무의 체계를 프로세스를 중심으로 도식화하여 업무에 대한 기능을 파악하는 것이다. ** 단위프로세스는 실제 어플리케이션에서 로직이 구현된 단위이며 데이터베이스에도 영향을 미치는 가장 작은 단위의 업무프로세스이다.
▶업무기능 분해 목적 ☞ 업무기능 분해도의 목적은… 첫번째 정보화 시스템을 구축하는 가장 최저 단위의 단위 프로세스를 도출하기 위함이다. 두번째 전체 업무의 체계를 프로세스를 중심으로 도식화하여 업무에 대한 기능을 파악하는 것이다. ** 단위프로세스는 실제 어플리케이션에서 로직이 구현된 단위이며 데이터베이스에도 영향을 미치는 가장 작은 단위의 업무프로세스이다. ♨ 업무기능 분해는 계층구조 방식 중에서 하향식 접근 방식을 이용하여 업무 프로세스를 분석 하다. 단위 프로세스 업무기능 단위프로세스 ① ②
▶업무기능 분해의 개념 ☞ 업무기능 업무기능이란, 기업의 임무에 대해 한층 더 멀리 조명하여 하나로 표현하는 완벽한 단위 업무기능의 그룹이다. 대부분의 기업의 조직에서는 주요한 업무기능은 영업, 회개, 제조 등 5에서 10개의 업무기능으로 구분이 된다. 업무기능에 대한 설명을 할 때는 업무기능이 무었을 하는지 또 왜 하는지를 반드시 설명해야 한다. 누가, 언제, 어디서 어떤 방법으로의 관한 대한 내용은 서술하면 안 된다(파생적 특징이 된다.). (예) 기업의 조직에서는 주요한 업무기능은 영업, 회개, 제조 등 5에서 10개의 업무기능으로 구분된다. ☞ 업무 기능 분해 작업을 성공적으로 하기 위해서는 계획 단계와 분석 단계에서 작업이 이루어져야 최하위의 근본적인 업무 기능인 단위 프로세스를 도출 할 수 있다.
▶업무프로세스의 개념 ☞ 업무프로세스 프로세스란 입력과 출력이 존재하는 업무기능으로 프로세스를 실행함으로써 데이터의 입력과 출력이 수행된다. 프로세스임을 판단하는 근거 ① 해당 업무기능이 실행단위인지 관리단위인지를 판단한다. ② 업무기능에 입력과 출력의 행위가 이루어지는 지를 확인한다. 프로세스 입력 (INPUT) 출력 (OUTPUT) 실행 프로세스는 실행함으로써 입력과 출력이 수행되는 단위 (예) “접수하다”라는 하나의 프로세스를 실행하면 접수라는 행위에 의해 접수정보가 입력되어 접수 엔티티타입에 접수정보가 생성되게 된다. “접수하다”라는 업무기능은 실행할 수 있는 단위이고 실행에 의해 접수정보가 받아들여(INPUT) 접수 엔티티타입에 출력 정보인 접수정보를 생성함으로써 즉 실행에 의해 입력과 출력이 수행되었으므로 프로세스가 되는 것이다.
▶업무기능의 분해 방법 ☞ 업무 기능의 효과적인 분해 방법 (1) 해당 업무에서 단일 업무 기능으로 정의하고자 하는 큰 구분을 정한다. - Root(뿌리기능) 지정. 예) 인사관리 시스템 : 기본 인사관리, 급여관리, 근태관리 등 뿌리에 해당하는 업무기능을 지정 한다. (2) 단일 기능으로 정의해 놓은 업무 기능을 더 세부적으로 쪼개 나간다. 예) 접수, 자격증, 해외여행, 상벌 등 (3) 기능들을 업무 발생 순서대로 업무 기능 분해도에 배치 한다. (4) 단위프로세스가 도출될 때까지 위 작업들을 반복적으로 수행 한다.
구체적 업무기능 분해 소스(SOURCE) ▶업무기능분해의 소스 1. 해당업무의 구체화하여 기능분해 1. 해당업무의 구체화하여 기능분해 2. 업무기능의 생명주기(LIFE CYCLE)을 분석하여 기능분해 3. 엔티티의 상태를 체크하여 기능분해 4. 업무이벤트에 따라 기능분해 5. 데이터의 구조에 따라 기능분해
▶업무기능분해의 소스 1. 해당업무의 구체화하여 기능분해 1. 해당업무의 구체화하여 기능분해 ☞ 해당업무의 구체화하여 기능을 분해하는 방법은 보통 분해 작업의 첫 번째 단계에서 이용된다. - 업무 구체화에 의한 기능 분해는 항상 해당 업무 조직에서 업무 수행의 모습을 반드시 검증하고 분해해야 한다. ☞ 기능분해 - 업무구체화 공사관리 아파트공사 하수도공사 도로공사 보험사고관리 자동차사고처리 질병사고처리 화재사고처리 ☞ 만약에 보험사고 처리를 할 때 사고 접수부터 보험금 지급까지 자동차 사고나 화재 사고, 질병사고 처리가 동일한 업무 수행 형태이면 업무의 생명주기에 따라 업무 기능을 분해 할 수 있다.
▶업무기능분해의 소스 2. 업무기능의 생명주기(LIFE CYCLE)을 분석하여 기능분해 ☞ 보통 클라이언트-서버 환경의 업무에 많이 이용된다. - 모든 업무는 시간 순으로 진행될 수 밖에 없으므로 항상 시작 업무와 종료 업무를 정의 할 수 있다. ☞ 기능분해 예)- 생명주기분석 제품관리 제품기획 제품생산 제품연구개발 제품판매 제품의 분배 시작 종료
▶업무기능분해의 소스 3. 엔티티의 상태를 체크하여 기능분해 ☞ 엔티티의 상태를 이용하여 업무 기능을 분해한다. - 보통 엔티티타입이 설계될 때 상태 코드라는 속성이 도출 되는데 상태 코드의 용도는 각각의 엔티티가 어느 업무 흐름에서 어느 정도 진행되 었는지 또는 작업상태가 어떤 상태인지 나타내는지 역할을 한다. ☞ 기능분해 예) - 엔티티상태 수강신청 수강을 신청한다. 수강을 취소한다. 수강을 연기한다. 수강을 확정한다. 수강연기 수강취소 수강확정 엔티티의 상태
▶업무기능분해의 소스 4. 업무이벤트에 따라 기능분해 ☞ 업무를 발생시키는 이벤트가 있으면 그 이벤트에 대응하는 업무기능으로 분해하는 방법이다. ☞ 기능분해 예) - 업무이벤트 고객이 보험금을 신청한다. 보험금신청을 접수한다 보험금을 지급한다 자격여부를 판단한다 ←이벤트 발생 : 입력 ←이벤트 발생 : 처리 ←이벤트 발생 : 출력
▶업무기능분해의 소스 5. 데이터의 구조에 따라 기능분해 ☞ 하나의 서브젝트 에리어를 부모 업무 기능으로 하고, 그 안에 포함된 엔티티 타입의 성격에 따라 엔티티타입이 생성되고 변경되는 정보를 이용하여 업무 기능을 분해하는 방법이다. ☞ 기능분해 예) – 데이터의 구조 공급자 관리 공급자 공급자 선임 공급목록 공급관리 엔티티의 생성 공급자 취소 등
▶단위프로세스 ☞ 단위프로세스 도출의 최저 단위는 트랜잭션을 보장하기 위한 단위이다. ☞ 단위프로세스 도출의 최저 단위는 트랜잭션을 보장하기 위한 단위이다. ☞ 단위프로세스는 한 시점에 한 사람이 한 지점에서 작업을 수행하는 단위이다. ☞ 트랜잭션이란 논리적인 작업의 단위(LOGICAL UNIT OF WORK) 이다. 단위 프로세스 규칙 = 단위 프로세스 검증 방법 규칙 1. 단위프로세스가 실행되면 완전하고 의미 있는 결과가 나와야 한다 . 규칙 2. 형제 ( SIBLING) 프로세스는 비슷한 프로세싱이 발생된다 . 규칙 3. 단위 프로세스는 하나 이상의 응답이 존재한다 . 규칙 4. 단위 프로세스는 반드시 데이터와 관련해서 수행된다 .
▶업무데이터 무결성 보장 ☞ 각각의 실행은 업무 데이터를 변형하는 데 모두 필요하고 모든 데이터를 무결성 규칙 1. 단위프로세스가 실행되면 완전하고 의미 있는 결과가 나와야 한다 . ☞ 각각의 실행은 업무 데이터를 변형하는 데 모두 필요하고 모든 데이터를 무결성 규칙을 보장하여 변함 없는 상태를 유지하게 하는 역할. ♣ 무결성을 어긴 프로세스란? - 지나치게 많이 분해된 것으로, 실제 단위 프로세스보다 더 많이 세분화한 것. ◆ 검증 방법 : 데이터 업무 규칙, 데이터 값의 규칙, 업무 트랜책션 무결성 규칙 1) 데이터 업무 규칙 : 만약 [구매]를 하려면 [구매목록]이 반드시 있어야 한다는 업무 규칙 이 있으면 구매와 구매목록 엔티티타입간에 필수 관계가 설정 된다. 구매목록 구매를 신청한다. 구매사항을 접수한다. 구매 동시 데이터규칙에 맞게 동시 생성하므로 적절한 ELEMENT PROCESS 구매목록을 신청. 따 로 데이터규칙에 맞지않게 개별로 생성하므로 부적절한 ELEMENT PROCESS
▶업무트랜잭션의 무결성 보장 2) 데이터 값에 대한 업무 규칙 : 만약 [제품이 팔리면 재고가 줄어든다]는 업무 규칙이 있으면 [제품을 판다]와 [재고량이 감소 한다]를 별도의 단위프로세스로 분리하면 안 되며, 데이터 값의 무결성을 보장하기 위해 하나의 단위 프로세스로 묶어야 한다. 3) 업무 트랜잭션 무결성 규칙 : 만약 [자동차 타이어를 교체한다] 는 업무 규칙 이 있으면 [타이어를 제거 한다]와 [타이어를 부착한다]를 별도의 단위프로세스로 분리하면 단위 프로세스 수행에 의해 타이어를 교체하는 업무는 트랜잭션 무결성을 보장받지 못 한다. ☞ 트랜잭션이란 논리적인 작업의 단위(LOGICAL UNIT OF WORK)로, 일련의 작업들에 대한 연속처리단위 이다. 타이어를 교체하라고 하였더니 분리만 했네!!!??
▶업무데이터 무결성 보장 ☞ 프로세스는 서로 밀접하게 관련이 있는 형제 프로세스와 동시에 데이터 집합에 작용한다. 규칙 2. 형제 ( SIBLING) 프로세스는 비슷한 프로세싱이 발생된다 . ☞ 프로세스는 서로 밀접하게 관련이 있는 형제 프로세스와 동시에 데이터 집합에 작용한다. ♣ 서로 관련 있는 정보를 측정하는 개념을 응집력(Cohesion)이라 한다. - 프로세스와 데이터의 상관관계를 표현한다면 응집력이 높은 곳에서 업무 흐름이 집중된다. - 즉 업무 무결성을 보장하면서 비슷한 프로세스 여러 개가 동시에 동일한 데이터 영역에 대해 작용할 수 있다. 규칙 3. 단위 프로세스는 하나 이상의 응답이 존재한다 . ☞ 모든 프로세스는 스스로 실행될 수 있으며, 반드시 외부 이벤트나 시간에 의한 자동 이벤트 가 발생하여 기동된다.
▶단위프로세스 ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. 규칙 4. 단위 프로세스는 반드시 데이터와 관련해서 수행된다 . ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. ☞ 주문과 주문목록에 대한 부분 ERD 주문 주문목록 포함한다 포함된다 ☞ 고객이 주문하는 프로세스에 대한 업무기능분해도 초기 모습 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문의 기본내용을 기록한다. 주문목록을 기록한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다.
▶단위프로세스 ☞ 고객이 주문하는 프로세스에 대한 업무기능분해도 초기 모습 업무 규칙 : 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문의 기본내용을 기록한다. 주문목록을 기록한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다. 업무 규칙 : 1. 고객이 주문하면 주문목록에 주문된 제품을 기록한 후 모든 주문 기록 정보들이 기록된다. 2. 주문이 정정되어 주문 기본 정보가 변경되거나 주문목록이 변경되면 주문목록 정보가 변경된다. 3. 두 개가 한꺼번에 발생하지 않을 때도 주문내용 변경이 정상적으로 수행되어야 한다.
▶단위프로세스 ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 1. ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 1. 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문의 기본내용을 기록한다. 주문목록을 기록한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다. ① [주문의 기본 내용을 기록 한다]가 단위 프로세스인지 고려해보자? 1. 주문 기본 내용을 기록한다. ⇒ 단독으로 실행할 수 있음. ⇒ 주문목록에 영향을 주지 않음 ☞ 업무 규칙 1이 위반 됨. 2. 처음 규칙을 만족하지 못했기 때문에 [주문의 기본 내용을 기록 한다]는 단위프로세스가 될 수 가 없다. 따라서 [주문 목록을 기록 한다] 도 단위프로세스가 될 수 가 없다. 3. 첫 번째 규칙을 만족하지 못하는 경우는 상위 업무 기능이 단위 프로세스일 확률이 많다.
▶단위프로세스 ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 2. ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 2. 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문의 기본내용을 기록한다. 주문목록을 기록한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다. ② [고객이 주문을 한다.]가 단위 프로세스인지 고려해보자? ◆ [고객이 주문을 한다.]가 단위 프로세스가 되기 위해서는 다음 3지 조건을 만족 해야 한다. 1. “고객이 주문 한다”를 실행함으로 ERD에 관련 있는 업무가 모두 영향을 받는다. 2. “고객이 주문 한다”를 실행함으로 “새로운 주문을 접수한다”, “주문 취소를 알린다” 또는 “주문을 수정한다”는 각 사용자에게 의미 있게 제공되어야 한다. 3. “고객이 주문 한다”를 실행함으로 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적 으로 수행해서는 않 된다. ◆ [고객이 주문을 한다.] 의 단위 프로세스는 독립적으로 수행할 수 있다. 예를 들면 취소 없는 주문을 받을 경우가 있다. ☞ 결론은 단위프로세스 규칙 4번째를 만족하지 못 한다.
▶단위프로세스 ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 3. ☞ 어느 단위 프로세스도 데이터에 전혀 상관없이 독립적으로 수행해서는 않 된다. - 검증 3. 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문의 기본내용을 기록한다. 주문목록을 기록한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다. ② [주문을 하다.]가 단위 프로세스인지 고려해보자? ◆ [주문을 하다.]가 단위 프로세스가 되기 위해서는 다음 3지 조건을 만족 해야 한다. 1. “주문을 하다”를 각각 실행함으로 모순 없이 데이터를 유지 할 수 있다. - 주문과 주문목록이 똑같은 실행에 의해 영향을 받는다. 2. “주문을 하다”를 각각 실행함으로 그 자신이 사용자에게 완전한 의미 있는 결과를 준다. 3. “주문을 하다”에 매달려 있는 하위 단위는 어던 다른 것과도 무관하게 실행할 수 없다. ◆ 이와 같이 “주문을 하다” 는 규칙을 만족하기 때문에 단위 프로세스가 되는 것이다.
▶단위프로세스 ☞ 정정된 업무기능분해도 고객이 주문을 한다. 주문을 접수한다 주문을 취소한다. 주문을 수정한다. 주문 기본내용을 수정한다 주문을 수정한다. 주문목록을 수정한다.
▶단위프로세스 ☞ ELEMENTAY PROCESS 식별 : 인사/급여 시스템 급여를 계산한다 . 세율을 공제금액을 최종급여를 ☞ 적절하게 분해가 되었는가? ◆ 업무 기능을 지나치게 많이 분해 한 것이다. - 세율 계산, 공제금액 계산, 최종 급여 계산을 각각 수행해서는 트랜잭션 무결성이 보장 되지 않는다. ☞ 결론 : 세율 계산, 공제금액 계산, 최종 급여 계산은 한 시점에서 한곳에서 한 사람이 수행해야 하는 것이다. 따라서 “급여를 계산한다.”가 단위프로세스가 된다.
▶단위프로세스 ☞ ELEMENTAY PROCESS 식별 : 입사지원 사원을 모집한다. . 지원자와 면접한다 지원자를 채용한다. 지원자를 탈락시킨다. ☞ 적절하게 분해가 되었는가? ◆ 업무 기능을 적절하게 분해 한 것이다. - 단위프로세스란 한 시점에서 한 사람이 한 곳에서 작업을 수행하는 단위이다. 따라서 “지원자와 면접한다.”, “지원자를 채용한다.”, “지원자를 탈락시킨다.”는 다른 시점에서도 작업이 수행 될 수 있으므로 단위 프로세서이다. 결론 : 만약 “사원을 모집한다”를 단위 프로세스로 지정하면 면접, 채용, 결과가 항상 동일한 시점에서 한번에 처리 되어야 한다. – 실제 업무에서는 동시에 이루어 지지 않는다.
▶단위프로세스 ☞ ELEMENTAY PROCESS 식별 : 납품 납품 받는다 . 납품목록을 점검한다 저장한다 ☞ 적절하게 분해가 되었는가? ◆ 업무 기능을 적절하게 분해 한 것이다. - 단위프로세스란 한 시점에서 한 사람이 한 곳에서 작업을 수행하는 단위이다. 따라서 “납품목록을 점검한다.”, “납품목록을 저장한다.”는 다른 시점에서도 작업이 수행 될 수 있으므로 단위 프로세서이다.
▶단위프로세스 ☞ ELEMENTAY PROCESS 식별 : 신규 고객 서비스 신규고객을 접수한다. 고객 기본사항을 입력한다. 접수사항을 입력한다. ☞ 적절하게 분해가 되었는가? ◆ 업무 기능을 지나치게 많이 분해 한 것이다. - 고객 기본 사항 입력과 접수사항 입력은 따로 분리되어 처리되는 작업이 아니라 한 사람이 한 번의 작업으로 수행해야 할 작업 정보다. ☞ 결론 : 부모 기능에 해당되는 “신규고객을 접수한다.”가 단위프로세스가 된다.
3) 단위프로세스와 데이터 3) 단위 프로세스와 데이터 5장에서 수업 함. 4) 기타 프로세스 모델링의 주요 방법 ◆ 프로세스 모델링 작업에서는 프로세스가 도출되면 각 프로세스가 어떤 이벤트에 의해 발생되었는지에 따라 이벤트를 표현하는 방법과 각 이벤트에 반응하는 프로 세스와 프로세스간에 반응 모습을 표현하는 방법이 있다. (1) 업무처리 종속 분석의 목적 - 프로세스를 기동할 때 필요한 이벤트가 무엇인지 그리고 각 프로세스는 다른 프로세스 에 의해 영향을 받아 실행되는지를 분석하는 것. - 업무 기능 분해가 적절하게 이루어졌는지 검증이 가능하다. - 분석자가 업무 흐름을 명확히 이해할 수 있도록 돕는다. ☞ 종속(Dependency) : 두 업무 기능 사이에 존재하는 것으로 “하나의 업무 기능이 무엇을 하면 다른 업무 기능이 무엇을 한다”와 같이 서로 자신의 작업을 위해 다른 업무 기능이 요구되는 상태를 말 한다.
3) 단위프로세스와 데이터 F A E B C D (2) 업무처리 종속도의 표기법 - 의존도와 이벤트 분석에 사용되는 몇 가지 도식화된 기호와 용어. F A E B C D ◆ 업무처리 종속도의 표기법 설명 - 기능 A, B와 C는 네트워크 의존을 받는 상호의존 관계이다. - A와 B에 그어진 직선은 B가 A에 의존 관계가 있다는 정보를 나타낸다. C도 B에 의존 관계 - 선택적으로 B의 실행은 A에 의존적이거나 활성화된다고 할 수 있다. - A는 B에게 필요한 기능이다. - D와 F는 외부 오브젝트이다. - D에서 A까지의 연결선과 C와 F 의 연결선은 정보 흐름을 나타낸다. - E는 이벤트이다. - E에서 B까지 연결선은 이벤트 E의 어커런스에 대한 B의 의존성을 나타낸다. - B는 E에 의해 활성화 되거나 시작된다고 할 수 있다. - 선택적으로 B는 E에 대한 반응으로 실행된다고 할 수 있다. - E는 B의 기능에 앞서 사전에 필요한 이벤트고, B를 실행하는 업무 기능이라고 할 수 있다.
3) 단위프로세스와 데이터 (3) 이벤트 - 프로세스 모델링에서 이벤트의 의미는 업무 기능이 수행될 수 있도록 시스템에 어떤 일이 일어나는 것을 의미 한다. - 외부 이벤트 : 사람이나 회사와 같이 눈에 보이면서 물리적으로 발생하는 것. - 내부 이벤트 : 시간과 같이 눈에는 보이지 않지만 시스템적으로 이벤트를 발생시키는 것 A B 사람/회사 외부 이벤트 A B 시간 내부 이벤트
5장 상관모델링이란… ♦ 5장에서는 프로세스 관점의 업무 방법과 데이터 관점의 업무가 필요로 하는 것이 어떻게 영향을 주는가를 상호 검증하는 방법을 배운다. ♦ 상관모델링이란 정보화시스템을 구축하기 위해 그 업무에 존재하는 무엇에 대해 무슨 일이 행해지고 있는지를 또는 무슨 일에 의해 무엇이 영향을 받는지를 분석하는 방법이다. ♦ 상관 모델링은 데이터 모델링 작업에서 도출한 엔티티타입과 프로세스 모델링에서 도출한 단위 프로세스를 이용하여 작업을 진행 한다. ♦ 상관 모델링 작업을 진행 함으로써 데이터 모델과 프로세스 모델에 대한 품질을 향상 할 수 있다. 프로세스 데이터
5장 상관모델링이란… ♦ 상관모델링이란 단계에서 검증 할 대상 1. 하나의 프로세스가 엔티티타입과 속성, 관계에 대해 어떠한 영향을 미치는가? 2. 어떤 프로세스가 엔티티타입을 이용하는지 검증 해야 한다. 3. 엔티티타입이 상호 연관되는 관계에 대해 연결되어야 하는지를 검증 해야 한다.
▶CRUD 매트릭스 ♦ CRUD MATRIX는 엔티티타입과 프로세스에 대한 비교뿐만 아니라 아니라 2차원 테이블을 비교할 수 있는 경우에 모두 적용되는 방법이다. ♦ 단위 프로세스가 엔티티타입에 영향을 주는 방법은 신규, 조회, 수정, 삭제의 4가지에 포함되어 있다. ♦ CRUD 는 CREATE(생성)의 “C”, READ(조회)의 “R”, UPDATE(수정)의 “U” DELETE(삭제) 의 “D”를 의미 한다. ☞ 아래는 CRUD MATRIX 상관모델링 표기 방법이다. ELEMENT PROCESS가 엔티티타입에 어떠한 일을 하는지 기술한다.
▶CRUD 매트릭스 ☞ 아래는 CRUD MATRIX 상관모델링 점검 사항 ELEMENT PROCESS가 엔티티타입에 어떠한 일을 하는지 기술한다. ♦ 모든 엔티티타입에 CRUD 가 한번 이상 표시 되었는가?. ♦ 모든 엔티티타입에 “C”가 한번 이상 존재 하는가?. ♦ 모든 엔티티타입에 “R” 이 한번 이상 존재 하는가?. ♦ 모든 단위 프로세스는 하나 이상의 엔티티타입에 표기 되었는가? ♦ 두 개 이상의 단위 프로세스가 한의 엔티티타입을 생성하는가? ☞ 5가지 사항에 모두 적절하다는 판단이 되었다면 도출된 데이터 모델과 프로세스 모델은 적절한 관계가 있다고 할 수 있다.
▶CRUD 매트릭스 ☞ CRUD 없는 엔티티타입 엔티티타입에 발생되는 CRUD가 존재하지 않음 2.엔티티타입
▶CRUD 매트릭스 ☞ CREATE 없는 엔티티타입 엔티티타입에 READ는 존재하는데 데이터를 생성하는 ELEMENT PROCESS가 없다. 2.엔티티타입
▶CRUD 매트릭스 ☞ READ 없는 엔티티타입 주문목록은 생성하고 수정하고 삭제는 하지만 데이터가 읽혀지지 않는다. 2.엔티티타입
▶CRUD 매트릭스 ☞ 표기가 안된 ELEMENTARY PROCESS 2.엔티티타입
▶CRUD 매트릭스 ☞ 엔티티타입 중복생성 제품 엔티티타입이 주문 신청할 때도 발생이 되고 제품등록할 때도 발생이 된다. 2.엔티티타입
▶CRUD 매트릭스 ☞ 속성 CRUD MATRIX – 속성 대 ELEMENTARY PROCESS 고 객 번 호 주 소 전 화 팩 스 등 록 일 자 메 동 이 체 은 행 거 래 횟 수 정 지 여 부 C R U 거래를 중지한다. 고 객 신규고객등록하다 주문신청하다 고객정보를 변경한다 엔티티타입 ELEMENRARY PROCESS 2.엔티티타입
THE POWER OF POSITIVE THINGKING BELIEVE IN YOURSELF(자신을 믿자) A PEACEFUL MIND GENERATES POWER(평화로운 마음이 힘을 창조한다.) TRY PRAYER POWER(기도의 능력을 활용한다.) CREATE YOUR OWN HAPPINESS(행복을 창조하자.) EXPECT THE BEST AND GET IT(최고의 것을 기대하고 그것을 얻자) I DON’T BELIEVE IN DEFEAT(패배는 없다.) BREAK THE WORRY HABIT(걱정하는 습관을 버리라) - Dr. Norman Vincent Peale -