배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - QA를 통해 본 효율적인 테이블 구성 예제 #3, Access 2000
 


QA를 통해 본 효율적인 테이블 구성 예제 #3

정규화된 테이블을 가지고 근무기간 구해보기

기존 테이블을 좀 더 정규화를 한다면 좋겠습니다.

첨부파일에는 정규화된 테이블이 다음과 같이 구성되어 있습니다.
    4개의 테이블로 구성됩니다. 
    개인자료 테이블: tbl인사정보, tbl인적사항
    조회용 테이블: tblLK발령, tblL부서 
    인적사항 테이블에서 부서나 발령에 관련된 값을 일률적으로 입력할 때 쓰임.
    인적사항 테이블의 두 필드에서 조회 탭의 내용을 확인하십시오.

< 정규화 하기 >
1) 정보를 주제별로 모아 주제별로 테이블을 만듭니다. 
일단 정보가 적지만은 주제별로 구분한다면 인적사항과 인사정보로 나눌 수 있을 겁니다.

[인적사항 테이블]

일련번호 사번 주민등록번호 성명 기타 등등 
1 94-1 993456-1234567 홍길동  
2 94-2 321212-2234543 홍도야  
3 94-3 3 21108-1234555 제갈공명  

[인사정보 테이블]

일련번호 사번 발령일 부서 발령사항
1 94-1 94-08-08 사무원 임직
2 94-1 95-01-30 사무원 퇴직
3 94-1 96-08-05 경리  임직
4 94-1 97-09-30 경리  퇴직

2) 만들어진 두 테이블에서 기본 키를 찾아 봅시다. 
개인당 하나의 사번을 운영하기로 한다면 인적사항 테이블에서는 사번이 기본 키가 됩니다. 인사정보에서는 하나의 필드만으로는 레코드를 구별할 수 없군요. 그러나 사번과 발령일 두 필드를 알면 그 레코드가 고유하다는 것을 알 수 있습니다. 따라서 사번과 발령일 두 필드를 대상으로 다중필드 기본 키를 만들도록 합니다. 일련번호 기본키는 사용하지 않아도 되므로 삭제합니다.

사번 주민등록 번호 성명 기타 등등..
94-1 993456-1234567 홍길동  
94-2 321212-2234543 홍도야  
94-3 321108-1234555 제갈공명  

 

사번 발령일 부서 발령사항
94-1 94-08-08 사무원 임직
94-1 95-01-30 사무원 퇴직
94-1 96-08-05 경리  임직
94-1 97-09-30 경리  퇴직

3) 부서 필드에서 사무원, 경리가 발령사항 필드에서 임직과 퇴직이 반복되고 있습니다.
따라서 필요에 따라 이 부분은 참조테이블로 따로 만들 필요성이 있겠습니다.

< 부서 조회 테이블>

ID  설명 
1 사무원 
2 경리 
3 비서
4 일반
5 기타

<발령사항 조회 테이블>

ID  설명 
1 퇴직
2 이동
3 임직
4 휴직

조회 테이블은 반복되는 자료를 입력할 때 매우 유용합니다. 대개 콤보박스와 연결해서 사용합니다. 
조회테이블에서 값을 조회할 때 실제 값(설명 필드)을 사용하기도 하고 코드 값(ID 필드)을 사용하기도 합니다. 
인적사항_NF 테이블을 디자인 보기로 열고 부서필드와 발령 필드의 조회 탭을 클릭하여 설정된 속성을 확인 하십시오.

다음은 이 테이블을 이용하여 작업을 완수한 내용입니다.

01-03.gif(33337바이트)

01-04.gif(21230바이트)

01-05.gif(11126바이트)

어떻습니까? 잘 만들어진 테이블은 작업을 훨씬 쉽게 해준다는 것을 아시겠지요.

 

  목차 | 이전 | 다음