배움터  
  HOME > 배움터 > 무료강좌
무료강좌
 
액세스 2000, 김규경님의 데이터베이스 기초 다지기 - 5강. 필드 속성을 이용한 신뢰성 있는 자료 구축 (1) #1, Access 2000
  


5강. 필드 속성을 이용한 신뢰성 있는 자료 구축 (1) #1

액세스의 경우 테이블은 데이터베이스 운영의 기본 소스로서 테이블이 직접 노출시켜 작업하는 것을 권장하지 않습니다. 테이블은 대부분 질의를 거쳐 폼을 통해서 작업을 합니다. 폼에서 발생하는 각종 이벤트와 관련하여 자료의 효율적인 입력, 변경, 삭제 등의 작업을 함으로써 유효성과 효율성을 극대화 시킬 수 있습니다. 그러나 테이블과 그 필드에서 지원하는 자료입력과 관련된 관련 기능을 익히는 것은 근본적으로 중요합니다. 많은 분들이 테이블에서는 이러한 설정을 해두지 않고 폼을 만들 때 마다 재설정하는 경우도 보았는데 테이블에 이러한 속성들을 설정해두면 테이블에 기초를 둔 폼을 만들 때 기본 설정값으로 사용되므로 번거로움을 덜게 되므로 일석이조 입니다.

자료저장의 가장 기본적인 요소인 데이터베이스 테이블과 관련하여 액세스가 자료를 온전히 보존하기 위하여 보여주는 노력과 특징적인 기능을 살펴보기로 합니다. 이러한 기능은 테이블의 디자인 보기 창의 필드속성 섹션에 나타나는 여러 속성들을 이해함으로써 가능해 집니다. 여기서 설명되는 모든 테이블의 속성들은 테이블을 기초로 한 바운드 폼을 만들 때 바운드 컨트롤의 관련 속성의 기본값으로 사용됩니다.

다시 강조하지만 자료의 유효성을 추구하는 것은 데이터베이스 관리의 근본입니다. 
신뢰성 있는 자료를 만들기 위한 이 강좌의 내용을 다음과 같이 3단계에 걸쳐서 진행해 나갈 겁니다. 이 주제에 대한 강좌는 반드시 이해해야 하며 또한 익숙해져야 할 것 입니다. 

필드 속성을 이용한 신뢰성 있는 자료 구축 (1) - 일반 속성들
필드 속성을 이용한 신뢰성 있는 자료 구축 (2) - 유효성 검사 규칙 속성
필드 속성을 이용한 신뢰성 있는 자료 구축 (3) - 조회필드와 조회마법사

필드 속성의 요약

액세스 테이블의 필드는 일련의 속성을 가지고 있습니다. 이러한 속성은 자료의 입력과 화면 출력에 대한 속성들입니다. 따라서 이러한 속성을 적절히 설정해 준다면 초보자일지라도 VBA를 사용하지 않고 어느 정도 안정정인 자료관리가 가능할 것입니다. 

이러한 속성은 데이터의 형식에 따라 결정이 된다. 따라서 데이타 형식에 따라 사용할 수 없는 속성도 있으며 디자인 창의 속성 섹션에 보이지 않기도 한다.

필드 속성 설  명
필드 크기
(FieldSize)
자료형식이 Text, Number, or AutoNumber인 경우 FieldSize 속성에 최대 허용값을 설정할 수 있다.
형식
(Format)
numbers, dates, times, and text 경우 Format 속성에 출력, 즉 화면에 보이는 형식이나 프린트 되는 형식을 설정할 수 있다. 정보는 눈에 보인 상태 그대로 저장되지는 않는다.(초보자들은 명심하십시오)
입력마스크
(InputMask)
InputMask 속성은 텍스트필드형식에서 자료입력을 쉽고 유효한 자료만을 입력 허락할 때 사용합니다. 
텍스트박스 입력란 컨트롤에도 이 속성은 지원됩니다.
제목
(Caption)
Caption 속성은 필드의 역할을 사용자에게 설명적으로 보여줄 때 사용합니다. 필드이름을 너무 설명적으로 작성하지 않도록 하며 대신 제목 속성을 이용하도록 합니다.
Caption 속성은 필드뿐만 아니라, 컨트롤(레이블, 명령버튼 등)이나 폼개체에도 있습니다. 
기본값
(Default Value)
새로운 레코드를 추가할 때 기본적으로 입력될 값을 설정할 수 있습니다. 주로 날짜, 지역, 부서 등과 같이 반복적으로 입력될 수 있는 필드에 설정합니다. 
유효성 검사규칙
(ValidationRule)
자료를 저장하기 전에 특별히 요구되는 자료가 입력되었는가 검사할 수 있습니다. 필드, 레코드 수준에서 사용할 수 있습니다.
유효성 메시지
(ValidationText)
유효성 검사규칙에 어긋난 경우 보여주는 메시지입니다.
필수
(Required)
필수 속성을 '예'로 설정하면 이 필드의 값은 Null 값을 가질 수 없습니다. 이런 경우 유효성 검사규칙을 같이 설정해주는 것이 좋습니다. 
사용자에게 왜 안 되는가를 메시지로 보여주는 것이 친절입니다.
빈 문자열
(AllowZeroLength)
AllowZeroLength 속성을 '예'로 설정하면 빈 문자열("")을 입력할 수 있습니다. 
참고> Null, 빈 문자열 모두 눈에는 아무것도 보이지 않지만 실제 데이터로는 구별이 가능합니다.
인덱스
(Indexed)
단일 필드를 인덱스 할 때 사용한다. 인덱스를 만들어준 필드를 대상으로 하는 검색 또는 정렬을 하거나 자료를 그룹화 할 때 속도를 향상시킵니다. 
유니코드 압축
(Unicode
Compression)
액세스 2000 이후 버전은 Text, Memo, or Hyperlink 필드에 대해서 유니코드 문자암호화를 이용합니다. Unicode 는 각각의 문자를 두 바이트로 표현합니다. 따라서 Text, Memo, 또는 Hyperlink 필드에 있는 데이터는 액세스 97버전보다 더 많은 저장공간이 필요합니다. 
Unicode 문자 표현의 단점을 상쇄하고 그 성능을 유지하기 위하여 Unicode 압축 속성을 '예'로 설정하도록 한다. 압축 속성을 '예'로 설정한 경우 모든 문자의 첫번째 바이트인 0은 압축이 되어 저장된다. 
단일 필드에서는 유니코드가 지원하는 어떠한 조합도 저장할 수 있지만 그러나 첫 바이트가 0이 아닌 경우는 그 문자는 압축되지 않는다.

Memo 필드는 압축 후 크기가 4096바이트보다 적은 경우는 압축되어 저장되지 않는다. 따라서 어떤 레코드에서는 압축되어서, 어떤 레코드에서는 압축되지 않고 저장되기도 한다. 
소수 자릿수(DecimalPlaces) 이 속성은 숫자를 보여 줄 때 소소 자리의 위치를 결정한다.
새 값
(NewValues)
일련번호 필드에서 새 값 속성(NewValues) 을 이용하여 새로운 자료가 추가 되었을 때 값의 일련번호 필드가 자동으로 매겨지는 방식을 설정할 수 있다. 임의방식과 증분방식이 있다.

유효성 유지를 도와주는 필드 속성들

필드 속성 섹션의 일반 탭과 조회 탭의 내용입니다.

데이터 형식(DataType)과 크기(FieldSize) 속성
자료의 형식과 크기는 유효한 자료를 유지하기 위한 가장 기본적인 방법이자 계산 및 검색속도와 관련된 중요한 개념입니다. 

초보자들의 질문을 하는 많은 부분이 이러한 필드속성의 사용과 관련되어 있습니다. 대부분이 필드 형식과 크기를 액세스의 기본값으로 그대로 설정하여 사용하고 있었으며, 결국 이것 때문에 발생하는 오류 때문에 다음 작업을 진행하지 못하고 헤메는 것을 많이 보아 왔습니다.

뿐만 아니라 수년씩의 개발경험을 가졌다는 프로그램 개발자 몇 분을 만나보았는데 필드의 운영을 소홀히 하는 경우도 간혹 있었다는 것은 매우 실망스러운 것입니다.

필드의 크기와 형식에 대한 다음 내용을 꼭 알아두십시오.

  • 필드에 넣을 값에 따라 명확한 형식을 설정하면 오류를 줄일 수 있다.
    - 예를 들어, 숫자 데이터 형식의 필드에 실수로 텍스트(문자)를 입력하더라도 저장되지 않으며 경고를 받게 되어 입력 오류를 줄일 수 있다. 
  • 필드 값으로 수행할 연산의 종류를 고려한다. 
    - 숫자나 통화 필드 값으로는 합계를 구할 수 있지만, 텍스트나 OLE 개체 필드 값으로는 합계를 구할 수 없습니다. 
    - 숫자로만 되어 있는 자료가 계산에 쓰이지 않더라도 정렬이나 필드의 크기에 관련된 문제가 있으므로 가능하면 숫자 형식으로 지정한다.
  • 필드를 정렬하거나 인덱스로 지정할지 여부
    - OLE 개체 필드는 정렬하거나 인덱스로 지정할 수 없습니다. 
  • 필드를 사용해서 쿼리나 보고서의 레코드를 그룹화할지 여부 
    - OLE 개체 필드는 레코드 그룹화에 사용할 수 없습니다. 
  • 필드 값 정렬 방법 
    - 텍스트 필드에서 숫자는 숫자 값이 아니라 문자열(1, 10, 100, 2, 20, 200, 등)로 정렬됩니다. 숫자를 숫자 값으로 정렬하려면 숫자나 통화 필드를 사용해야 합니다. 또한 텍스트 필드에 입력된 날짜 형식은 제대로 정렬되지 않으므로 제대로 정렬되도록 하려면 날짜/시간 필드를 사용해야 합니다. 
  • Microsoft Word 및 Microsoft Excel 문서, 그림, 소리, 다른 프로그램에서 만든 기타 형식의 이진 데이터 저장 
    - OLE 개체는 Microsoft Access 테이블에 있는 OLE 개체 필드에 연결하거나 포함시킬 수 있습니다. 그러나 테이블에서는 개체를 볼 수는 없습니다. 대신 OLE 개체를 표시하려면 폼이나 보고서에서 개체를 보여주는 개체 컨트롤을 사용합니다.

텍스트 필드와 메모 필드 사이의 선택
Microsoft Access에서는 텍스트로 된 데이터나 텍스트와 숫자의 조합으로 된 데이터를 저장할 때 사용하는 필드 데이터 형식으로 텍스트 필드와 메모 필드가 제공됩니다.

전화 번호, 부품 번호, 우편 번호와 같이 계산할 필요가 없는 숫자와 이름, 주소 등의 데이터를 저장할 때에는 텍스트 데이터 형식을 사용합니다. 
텍스트 필드에 입력할 수 있는 문자의 최대 크기는 필드 크기/Field Size 속성을 통해서 설정하는데 최대 255자까지 저장할 수 있으며 필드의 기본 크기는 50자입니다.

255자보다 많이 저장할 때는 메모 데이터 형식을 사용합니다. 메모 필드에는 65,536자까지 저장할 수 있습니다. 

서식이 있는 텍스트나 긴 문서를 저장하려면 메모 필드 대신 OLE 개체 필드를 만들어야 합니다.

텍스트 데이터 형식과 메모 데이터 형식은 모두 필드에 입력된 문자만 저장하며, 필드의 빈 자리를 채우는 공백 문자는 저장하지 않습니다.

텍스트 필드나 메모 필드에서 정렬하거나 그룹화할 수 있지만 메모 필드에서 정렬하거나 그룹화할 때는 첫 255 문자만 사용됩니다.

숫자 필드와 통화 필드 사이의 선택
Microsoft Access에서는 숫자 값이 포함된 데이터를 저장할 때 사용하는 필드 데이터 형식으로 숫자 필드와 통화 필드가 제공됩니다.
화폐 계산이나 고도의 정확성을 요구하는 계산이 아닌 산술 계산에 사용되는 숫자 데이터를 저장할 때는 숫자 필드를 사용합니다. 필드 크기/Field Size 속성에서 숫자 필드에 저장할 수 있는 숫자 값의 종류와 크기를 설정합니다. 

예를 들어, 바이트 필드 크기는 0부터 255까지의 정수(실수 값 없음)를 저장할 수 있으며 디스크 공간 1바이트를 차지합니다.

계산 중에 반올림을 방지하려면 통화 필드를 사용합니다. 통화 필드에는 소수점 왼쪽으로 15자리, 소수점 오른쪽으로 4자리까지 표시할 수 있습니다. 통화 필드는 디스크 공간 8바이트를 차지합니다.
숫자 필드와 통화 필드는 미리 정의된 표시 형식을 제공하며, 사용자 지정 서식을 만들 수도 있습니다.

팁 ]
소수점 1자리에서 소수점 4자리까지의 데이터를 포함하는 많은 계산이 필요한 필드에는 Currency 데이터 형식을 사용합니다. Single Double 데이터 형식 필드에는 부동 소수점 계산이 필요하지만, Currency 데이터 형식 필드에는 더 빠른 고정 소수점 계산 방식이 사용됩니다.

증가하는 일련 번호 필드와 임의의 일련 번호 필드 사이의 선택
Microsoft Access에는 레코드를 추가할 때 자동으로 고유 번호를 부여하는 필드를 만드는 일련 번호 데이터 형식이 있습니다. 고유 번호이기 때문에 액세스에서 일련번호의 주 용도는 기본 키로 사용되는 겁니다.
일단 레코드에 번호가 부여되면 삭제하거나 변경할 수 없습니다. 그것은 주민등록 번호와 같은 겁니다. 따라서 한번 부여되면 그 번호는 다른 레코드에서 사용하지 않습니다. 
일련 번호 필드에는 1씩 증가하는 일련 번호, 난수, 복제 ID 일련 번호(GUID, 글로벌 고유 식별자라고도 함) 등 세 가지 형식의 번호가 있습니다. 

일련번호는 1씩 증가하는 일련 번호가 가장 일반적인 일련 번호이고 테이블의 기본 키로 사용하기에 적합합니다. 액세스에서 자동으로 키의 숫자를 증가시키면서 만들어 나가므로 매우 편리하게 사용됩니다. 영문법에서 자주 등장하는 <it> 와 같은 역할을 합니다. It는 특별히 주어나 목적어를 정하기 어려울 때 사용되듯이 특별히 기본 키를 정하기가 어려우면 일련번호필드를 기본 키로 사용하도록 합니다

임의 일련 번호(난수)는 테이블에 있는 각 레코드에 고유 값인 임의의 수입니다. 

복제 ID 일련 번호(GUID)는 복제 데이터베이스를 동기화할 때 사용할 고유 식별자를 만들도록 데이터베이스 복제에 사용됩니다. 다른 복제 데이터베이스에 입력된 새 레코드가 고유한 값을 가질 수 있게 일련 번호 필드 설정이 임의로 설정됩니다.

참고]
많은 분들이 액세스의 일련번호 필드를 정렬된 순서를 나타내는 순번으로 생각합니다. 액세스는 이러한 눈에 보이는 정렬 순서를 나타내는 일련번호를 지원하지 않습니다. 
그러나 눈에 보이지는 않지만 정렬되어 있는 순서는 지원합니다. 테이블이나 폼의 제일 아래에 딸려있는 이동키 구역에 나열된 순서에 입각한 위치를 입력하여 직접 이동할 수 있습니다. VBA코드를 이용하여 이동할 수도 있습니다. DAO나 ADO 레코드셋의 AbsolutePosition 속성을 이용하여 정렬된 순서에 따른 위치를 알아낼 수 있습니다.

 

 

  목차 | 이전 | 다음