'설계@'에 해당되는 글 3

  1. 2009.09.28 데이터 갱신
  2. 2009.06.29 상태변경 이력 데이터
  3. 2009.05.06 데이터 연동

데이터 갱신

주기적으로 어떤 데이터를 최신 데이터로 갱신을 해야 한다.
없는 데이터는 INSERT를 해야 하고, 있는 데이터는 UPDATE를 해야 한다.
이 때 데이터를 모두 DELETE하고 INSERT해서 최신 데이터를 갱신하는 방법도 있다.
프로그램을 작성하기는 편하다.
그러나 몇가지 고려해야 할 사항이 있다.
  • 기존 데이터가 유지되어야 하는 경우에는 고민을 해봐야 한다. 무조건 DELETE한후 INSERT하는 경우에는 기존에 적용해 놓은 데이터가 사라지게 되므로 데이터를 고려해 볼 것.
  • 얼마나 자주 갱신되는가? 계속 DELETE하게 되면 물리적인 테이블의 크기가 증가하게 된다.
  • UPDATE하는 경우 기존에 있는 데이터가 삭제되는 경우가 있을 건데 이런 경우 처리가 되지 않는다.
그래서 이러한 경우 실제 제공되는 데이터외에 데이터종류에 대한 구분이 있으면 좋다.
이 구분은 C(새로 추가), U(갱신), D(삭제)로 해서 데이터를 처리할 수 있게 해야 한다.

1. 항상 새로운 데이터가 들어오는 경우 처리방법
  1. 없던 데이터는 새로 추가하고
    존재하면 갱신하고(기존 데이터와 동일해서 유지되어야 하는 데이터도 포함됨)
    새로 들어오는 데이터에 존재하지 않으면 삭제한다.
  2. DELETE 후 INSERT한다.
2. 구분자가 있는 경우 처리방법
  1. C, U, D에 따라 처리하고
    기존 데이터와 동일해서 유지되어야 하는 데이터는 처음부터 제공되지 않는다.








상태변경 이력 데이터

데이터의 상태가 수시로 변경되는 경우 상태변경 이력 데이터를 관리해야 한다.
문제가 발생되는 경우 로그를 가지고 데이터를 변경 이력을 추적할 수 있지만 쉽지 않다.(여러 로그파일을 뒤져야 하고 언제인지도 잘 모른다.)
상태가 변경될 때마다 이력 데이터(상태, 변경자, 변경일시, 기타 추가 정보)를 저장해두면 이력 추적이 쉽다.
여러모로 쓸데도 많이 생긴다.(통계, 이력 조회 등)

- 2010-08-04 추가

비고 같은 컬럼이 있으면 좋을듯, 아닌가?

데이터 연동

전사시스템이나 포털시스템은 규모가 크고 데이터 연동이 많이 된다.
서로 간에 데이터가 공유되는데, 이에 대해서 전체적으로 파악을 하고 있어야 한다.

Z사 포털시스템에서 전자계약시스템만 하더라도 다른 메뉴와 유기적으로 연동되는게 부족하다.
C시스템을 포털시스템으로 이관하는 작업을 진행하면서 공유되어야 하는 데이터에 대해서 고민없이 진행했다.
C시스템은 기업정보를 환경설정파일에서 가져오는 다른 메뉴에서는 데이터베이스에서 가져온다.
이런 부분에 대한 고민도 없이 진행했다.