본문 바로가기

Access

2.테이블 구성에 관하여

2. 테이블 구성에 관하여

액세스로 관리 프로그램을 만들고자 할때 제일 첫 관문은 테이블을 어떻게 구성 할것인가이다. 기본적으로 업무에 활용하기 위한 도구를 만들기 위해선 반드시 데이터를 기반으로 모든 로직이 수립이 되고 그에 따라 레이아웃까지 생각해야 한다. 예를 들어 영업사원들의 Forcast 관리 하는 툴을 구상 한다고 하면 각 영업 사원이 취급하는 품목에 대한 데이터가 있을 것이다. 그것이 제품이건 서비스이건 그 품목에 관련된 속성이 존재 할것이고 이제부터 사고의 흐름은 데이터를 중심으로 사람이 어떤 행위를 하는지에 대한 정의를 하나씩 정리 하면 된다. 이러한 과정이 데이터 테이블의 정의와 비즈니스 로직을 결정하는 것이다. 그리고, 최종적으로 그 데이터를 기준으로 우리가 보고자 하는 것이 무엇인지를 생각하게 되면 그것이 바로 레이아웃이 된다.

따라서, 그 직무를 담당하고 있는 사용자가 직접 자신의 상황에 최적화된 데이터를 정의하고 비즈니스로직을 설계하고 그에 따른 레이아웃까지 구성한다면 가장 완벽한 프로그램이 되는 것이다. 일반적으로 외주 또는 개발자들이 만든 프로그램의 만족도가 높지 못하는 이유중에 하나가 사용자의 요구사항이 백프로 전달이 되지 않기 때문일 것이다.  또한 유지보수의 신속성 또한 따라 올 수가 없다.

이번 포스트에선 첫 번째 관문인 데이터 테이블을 정의 하는 것에 대한 방법이다.

예를 들어 다음과 같은 데이터베이스 개념을 설명하는 책에서 수없이 단골로 나오는 이야기를 어쩔수 없이 나도 해야 할것 같다. 이 개념을 토대로 본인 업무에 해당하는 데이터를 어떻게 구조화하고 실질적으로 형상화 할것인지 고민해 보기 바란다.

예를 들어 다음과 같은 연락처 정보를 관리 한다고 했을때

액세스에서 데이터를 담는 그릇이 테이블이라고 정의 했었다. 이 테이블의 구조를 어떻게 디자인 하느냐에 따라 우리가 추후 데이터를 기반으로 비즈니스 로직을 적용할때 쉽게 해결이 될 수도 있고 미궁에 빠질 수도 있게 된다. 위와 같은 형태로 자료를 계속 쌓아나갈 수도 있다. 이것이 나쁘다는 것이 아니라 효율성에 대한 부분이다. 빈 셀이 존재하게 되고 데이터가 통으로 관리 되기 때문에 많은 양의 데이터에서 변환과 수정이 이루어 진다면 불편하게 되는 시점이 발생하게 된다. 불가능 하다는 것이 아니다.

말이 길어 질것 같으니 핵심만 이야기 하면 이러한 테이블의 구조를 좀 더 세분화를 시키고 단순화를 시키면 관리적인 측면에서 효율성이 높아질 수 있다. 그래서 위의 단일 테이블 구조를 아래와 같이 변형하여 설계하게 되는 것이다.


이렇게 테이블을 나누게 되면 생기는 이점은 사용자가 삭제되거나 추가 될때 각 해당 테이블에서 데이터의 수정 작업이 이루어 지게 된다. 그리고, 중간에 빈셀은 존재하지 않게 된다. 물론 엑셀 2013 버전부터는 이런식의 데이터 관계를 기반으로 작업을 확장 할 수 있는 기능들이 포함되기 시작 했다.

그러면 여기서 급하게 정리를 하게 되면

테이블은 단일 속성을 갖는 개체를 대상으로 생성을 한다. 여기서 예를 기준으로 보면 사원과 연락처 두개의 테이블로 구성이 되었다. 간단한 설명을 위해서 최대한 단순하게 표현 했지만, 사원 테이블은 사원에 관련된 속성들만 모아놓은 그릇이 되는것이고 연락처 테이블은 연락처에 관계된 속성들만 모아 놓게 되고 바로 이 속성들이 필드를 구성하게된다. 즉 테이블의 열 항목을 구성하게 된다.

그러면, 이전의 하나의 테이블로 관리 했을때와 잘게 쪼개서 관리를 하게 되었으니 이제 쪼개진 테이블간의 관계를 설정 해 줘야 하는 것이다. 그것이 Key 즉, 참조 값이 되는 것이다. 쪼개진 테이블은 이름ID라는 참조 값을 기준으로 서로 연결이 되어 있는 것이다. 연락처 테이블의 이름 ID를 사원 테이블의 이름ID로 역 추적하면 누구의 어떤 연락처 인지가 나오게 되는 것이고 이렇게 관리를 하는것이 효율적이라는 것이다.

테이블을 생성하는 기본적인 개념과 방법론에 대한 간략한 설명이었다. 이제 이것을 프로그램상에서 어떻게 구현하는 지는 기능이기 때문에 그리 어렵지는 않다. 그리고, 수많은 인터넷 자료들을 통해서 이러한 기능에 대한 학습은 얼마든지 언제든지 할 수 있다. 중요한 것은 개념을 확실하게 잡는 것이다. 우리는 처음 테이블 처럼 생각하고 그렇게 관리한다. 각각의 테이블을 쪼개서 해당 속성의 값을 필드값으로 일목요연하게 정리하지는 않는다. 하지만, 적어도 한번쯤은 본인의 업무에 사용되는 데이터를 위와 같이 도식화 해 볼 필요는 있다. 이렇게 데이터를 중심으로 정리를 하다보면 업무롤에 대한 정의도 생각보다 명확하게 할 수 있다.


'Access' 카테고리의 다른 글