[ 실무 ] DB의 분석 및 설계
개발자가 프로젝트에 대해서 분석을 할 때 해야할 순서!
1. 회사의 업무 프로세스를 물어본다.
하나의 일이 있으면 그 일의 처음과 끝을 물어본다.
그 일의 결제 라인 이라던지 절차를 물어보는 것이다.
2. 회사 업무에 쓰이는 데이터를 받는다.
3. 데이터와 업무 프로세스를 기반으로 화면을 구성한다.
메뉴 이런것들에 대한 배치나 목록이 나오는 것
업무 프로세스 단계가 나눠지지만 하나의 화면에서 전부 된다면 그렇게 구성해도 상관 없다.
4. 화면을 기반으로 테이블을 어떻게 구성할 것인지 작성한다.
화면하나당 테이블 하나씩 나오는게 아니라 로직에 따라서 하나씩 나온다.
-> 한 화면을 구성하는 테이블이 여러개일 수있다.
----> 이과정이 끝나면 메뉴구조도 , 기능 구조도, 화면설계서, 테이블목록, 테이블 정의서가 나온다.
이때 ERP는 업무프로세스를 최적화 하고 효율을 향상시켜 이익을 창출하는데 목적이 있다.
따라서 BPM이라는 업무 프로세스를 효율적으로 만들기 위해 개선하고 최적화하는 작업이 필요하다.
BPM(Business Process Management)
조직 내의 비즈니스 프로세스( work flow )를 관리, 개선 및 최적화 하기 위한 접근 방법이다.
BPM의 핵심 단계
1. 프로세스 모델링
플로우 차트로 프로세스 단계별로 결정까지의 흐름을 시각적으로 나타낸다. 나중에 최적화를 위해 업무 프로세스의 흐름을 명확하게 설명하고 문서화하려는데 목적이 있다.
2. 프로세스 실행
실행 엔진이나 워크 플로우 엔진을 활용해서 프로세스를 실행하는 과정에서는 예외상황이 발생하는지 확인하고 프로세스의 각단계에서 업무를 수행하기에 적절한 사람을 찾아 업무를 배정한다. 업무 프로세스의 다음단계로 향할때 다음 참여자에게 작업에 대한 알림을 받고 진행가능하다.
3.프로세스 모니터링
ERP와 같은 프로그램을 쓰므로써 진짜 업무의 효율성이 향상되었는지 확인하기 위해서 계속해서 모니터링하여 사용되는 자원, 작업 비율 이런걸 측정해서 프로세스의 효율성을 측정한다.
4.프로세스 최적화
프로세스 최적화는 프로세스 분석과 개선을 통해서 조직의 효율성을 향상시킨다. 즉 프로그램을 통한 자동화를 통해 작업의 불필요한 부분을 줄인다.
프로젝트의 설계 부분
이제 분석이 끝났으면 설계를 해야한다.
설계는 단지 테이블이라는 단어가 엔티티로 바뀔 뿐이다. 분석을 잘했다면 설계는 별일 없다
나온 테이블을 통해서 테이블을 물리적으로 DB에 넣는 과정일 뿐이다.
분석과정이 늦어져서 설계시에 넣을 테이블을 구성하는 기간이 늘어진다면?
기존의 다른 프로젝트 들에서도 이러한 테이블을 구성해 봤을테니 그러한 기본적으로 이런 컬럼과 테이블은 들어가 야 한다는 전자정부 프레임워크에서 제공하는 표준을 통해서 메타데이터를 구성해 둔다. 그러면 나중에 분석이 끝났 을 때 대부분에 대한 내용은 같고 DB가 다를테니 dB에 대한 자료형 변경 정도만 해주면 된다.
데이터 베이스의 테이블을 구성할때에는 pk가 두개인 경우가 나을 때가 있다
어떤 두 테이블이 공통적으로 사용해야하는 컬럼이 있다면 이제 테이블 따로 빼서 관리를 할텐데 이때 join을 통해 데이터를 빠르게 찾기 위해서는 두테이블의 pk가 복합키로 들어가 있는 편이 낫다.
왜냐하면 pk로만 지정되어있는 테이블의 어떤 컬럼값을 가져와야한다면 pk를통해서 검색할때 fk로 조인해서 그 데이터를 가져와야하는데 pk가 되어있다면 "콕 찝어서 한번만 조인하고도" 혹은 "아예조인을 하지 않고 pk로만으로" 가져올 수있기때문이다.