배움터  
  HOME > 배움터 > Daily Tip
Daily Tip

제품:   Access 버전:   2003
검색어:   다량
제목:   데이터 백만건 만들기
     
 

New Page 2
  STEP> 따라하기


※ 아래 Daily Tip은 최천군님이 제공해주신 내용입니다

그동안 계속 보안에 매달렸더니 지루한 듯 합니다. 머리도 식힐 겸(?) 간단한 팁 하나 올리겠습니다. 오늘은 임의의 데이터를 다량으로 만들어 내는 방법을 알아 보겠습니다.

가짜 데이터 생성하기

데이터를 만들기 위해 먼저 약간의 밑준비가 있어야 합니다. 필드 하나인 테이블에 아래와 같이 약간의 데이터를 기록 하였습니다. 이 데이터들을 반복시켜 데이터를 생성할 것입니다.

쿼리 새로만들기를 실행하여 디자인 보기를 클릭하면 아래와 같은 테이블 추가 대화상자가 열립니다. 위의 테이블을 다섯번 정도 클릭하여 쿼리 디자인 창에 올려 놓습니다.

그리고 아무런 관계설정을 하지 않은 채 필드 하나를 선택하여 디자인 그리드에 끌어 놓습니다.

76만건의 데이터가 생성 되었음을 알 수 있습니다. 여기서 테이블을 한 번 더 추가하면 너무 많은 데이터가 생성되기 때문에 시스템 사양에 따라 오랜 시간이 걸릴 수 있습니다. 여러분의 궁금증을 해소 시켜 드리기 위해 제 컴퓨터를 희생 시켰습니다.

뭐라고 읽어야 되는지 바로 알기 힘든 숫자들이 나열되어 있습니다.

쿼리를 통해 만든 임시 데이터들을 테이블로 저장하기 위해 예의 쿼리를 디자인 보기로 전환합니다.

위와 같이 쿼리 메뉴가 나타나면 테이블 작성 쿼리를 클릭합니다. 적당한 테이블 이름을 기입하고 확인을 클릭한 다음 아래의 느낌표버튼을 클릭하여 테이블을 생성합니다. 필드를 여러 개 만들고 싶다면 각 테이블의 필드들을 한번씩 클릭하면 서로 다른 데이터를 가진 다섯개의 필드가 생성될 것 입니다.

아래와 같이 데이터가 생성 되었음을 확인할 수 있습니다.

왜 이렇게 많은 레코드가 생겨버린 것일까요?
액세스의 데이터베이스도 포함되는 형식인 관계형 데이터베이스(RDB)는 어느 수학자에 의해 수학적인 원리를 기반으로 하여 만들어 졌다고 합니다. 그 원리를 수학적으로 설명할 재주도 없거니와 재미있게 읽어 주실 분도 많지 않을 것 같기에 원리적인 부분만 언급 드리겠습니다.

그 수학적인 원리란 우리가 다 알고 있는 순서쌍 집합입니다.
기억을 환기시키 위해 간단히 설명하겠습니다.

{A,B,C} 집합과 {A,B} 집합이 있습니다.
두 집합간의 순서쌍 집합은 아래와 같을 것입니다.
(A,A) (A,B) (B,A) (B,B) (C,A) (C,B) 총 6개

위의 두 집합을 두 테이블로 생각해 보겠습니다.
Table1 테이블에 레코드가 A, B, C 가 있고 Table2 테이블에 A, B 레코드가 있습니다. 두 테이블을 쿼리에서 조인하지 않고 부른 다음 각각의 필드를 쿼리 디자인 그리드에 끌어 놓습니다.

데이터시트 보기를 하면 아래와 같은 결과가 확인 됩니다.

순서쌍 집합과 똑같은 순서쌍이 만들어 졌으며 레코드 개수도 여섯개 입니다.

다시 예의 순서쌍에서 같은 구성원끼로 묶인 순서쌍만 찾아 보겠습니다.
(A,A) (A,B) (B,A) (B,B) (C,A) (C,B)  2개

위의 쿼리를 디자인 보기를 하고 F1 필드와 F2 필드간 조인을 맺어 줍니다.

결과를 확인하면 아래와 같습니다.

정리하면 이렇습니다.
테이블의 레코드고유인덱스 의해 구분되는 집합의 구성원이며 테이블은 이 구성원들의 집합이다.
테이블과 테이블의 결합은 집합과 집합의 결합
이며 이는 고유인덱스 간의 순서쌍 집합으로 이루어 진다.
조인
순서쌍 집합중 같은 구성원으로 이루어진 순서쌍만을 골라내는 것이다.

데이터를 76만건이나 만들었는데 이것으로 무엇을 하지요? 시스템 성능을 테스트 하는데 사용하십시요.

일련번호 필드를 생성한 후 위의 그림과 같은 쿼리를 만들었습니다. 일련번호가 700000인 레코드를 찾으라는 쿼리입니다. 한 가지 주목하실 것은 찾고자 하는 필드는 기본키 필드가 아니고 인덱스도 설정되어 있지 않습니다. 데이터시트 보기를 하면 제 컴퓨터에서 일초 정도 후에 결과를 보여 줍니다.

테이블 디자인 보기에서 해당 필드에 인덱스를 설정하겠습니다. 인덱스(중복 불가능)을 선택하였습니다.

아까와 같은 쿼리를 실행 시키자 누르자 마자 결과를 보여 줍니다.
엄청난 속도의 차이를 실감할 수 있습니다.