배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - 10강. 비정규테이블의 정규화 - 2, Access 2000


10강. 비정규테이블의 정규화 - 2

자료 다운로드 : 정규화예제.mdb

논리적으로 동일한 여러 필드를 하나의 필드로 운영하기

한 날짜(구입일)에 여러 물건을 구입한다든가, 한 사람이 여러 설문을 작성하고, 학생별 여러 과목의 성적을 관리하는 등에서 동일한 개념의 정보를 입력해야하는 상황이 발생합니다. 이런 자료를 정리할 때 일반적으로 특정한 사건당 관련 정보를 여러 열로 나열하게 됩니다. 관계형 데이터베이스의 개념에서는 이런 경우를 비정규화 되었다고 말합니다.

이번에는 이러한 형태의 비정규화된 구조로 정리된 자료를 정규화하는 방법에 대해 설문지 정보 처리를 위한 테이블을 예로 살펴보도록 하겠습니다. 

예제 파일의 [tblQuest1]은 비정규화된 테이블로 다음과 같습니다.

비정규화된 자료운영 (tblQuest1)

응답자

  질문1

  질문2

  질문3

  질문4

홍길동

 1

 2

 1

  3

장길산

 2

 2

 2

  2

일지매

 1

 3

 2

  4

 …

 …

 …

  …

테이블의 구조

그러나 이러한 설문내용과 관련하여 통계분석을 할 때 그리고 질문을 추가해야 하는 경우가 있을 때 [tblQuest2]와 같이 자료를 운영하는 것이 훨씬 효율적입니다.

정규화된 자료운영 (tblQuest2)

응답자

  질문

  응답

홍길동

 1

  1

홍길동

 2

  2

홍길동

 3

  1

홍길동

 4

  3

장길산

 1

  2

장길산

 2

  2

장길산

 3

  2

장길산

 4

  2

 …

  …

테이블의 구조

참고] 응답자 필드와 질문 필드를 복합해서 기본키로 설정하였습니다.

추가질의를 이용하는 방법과 테이블작성질의를 이용하여 비정규화 테이블인 tblQuest1을 정규화 하도록 하겠습니다.

먼저, 추가질의를 이용하는 방법입니다.

1) tblQuest2와 같은 구조가 같도록 테이블을 작성하여 [tblQuest3]이름으로 저장합니다.

2) 마법사를 이용하여 tblQuest1테이블을 대상으로 선택하여 질의테이블을 만듭니다.
3) 질의메뉴에서 추가질의를 선택하고 이전에 만들어 둔 tblQuest3을 자료를 추가할 테이블로 선택합니다. 

10-3.gif(19297바이트)

4) 아래 그림과 같이 질의디자인 창의 그리드에 입력합니다.

10-4.gif(12355바이트)

5) 느낌표 아이콘을 가지고 있는 메뉴를 눌러 질의를 실행합니다.

6) 2~3을 반복하는데 질의디자인창의 그리드를 다음과 같이 바꾸고 각각을 실행합니다.

10-6.gif(6475바이트)

두 번째는 테이블 작성질의를 이용하는 방법입니다. 중간 과정으로 통합질의를 만들게 됩니다.

1) 먼저 [디자인보기에서 새 쿼리 만들기] 하는데 테이블은 선택하지 않고 빈 질의 테이블을 하나 만들고 질의메뉴에서 [SQL쿼리]-[통합질의]를 선택하여 SQL창을 열고 아래 내용을 복사해 붙입니다.(그냥 SQL창을 열어도 됩니다.)

SELECT tblQuest1.응답자, 1 AS 질문, tblQuest1.질문1 AS 응답
FROM tblQuest1;
UNION ALL
SELECT
tblQuest1.응답자, 2 AS 질문, tblQuest1.질문2 AS 응답
FROM tblQuest1;
UNION ALL
SELECT tblQuest1.응답자, 3 AS 질문, tblQuest1.질문3 AS 응답
FROM tblQuest1;
UNION ALL
SELECT tblQuest1.응답자, 4 AS 질문, tblQuest1.질문4 AS 응답
FROM tblQuest1 
ORDER BY 응답자, 질문;

2) 이것을 [설문 통합 Query] 라는 이름으로 저장합니다.
3) 이제 [디자인보기에서 새 쿼리 만들기]를 하는데 테이블은 질의 탭에서 이전 단계에서 만들어 둔 [설문 통합 Query]를 선택한 다음 질의 메뉴에서 [테이블 작성 질의]를 선택합니다.
4) 새로 만들 테이블을 설정할 다이알로그 창이 뜨면 이름란에 'tblQuest4'라고 입력하고 닫습니다.
5) 역시 느낌표 아이콘의 메뉴를 클릭하여 질의를 실행하면 [tblQuest4] 테이블이 만들어집니다.

이것으로 제1정규화에 대한 강좌를 마칩니다. 관계형 테이블은 최소한 제1정규화는 되어있어야 합니다. 다음 강좌는 제2정규형 테이블에 대한 것입니다.

 

 

  목차 | 이전 | 다음