d라이브러리









자료관리는 정보활용의 첫걸음

아무리 많은 자료를 가지고 있어도 언제든지 활용할 수 있게끔 만들어 놓지 않으면 그 자료는 무용지물이다.

어느 사이엔가 우리들은 데이타(data)란 용어를 자연스럽게 사용하게 되었다."데이타가 충분한가?" "그의 데이타는 믿을 수가 없어" "다년간 축적된 데이타를 이용하여…" 등의 말에서와 데이타는 한자어로 자료라는 의미를 가진다. 한편 정보(information)라는 단어도 자주 인용된다. 정보화 사회가 도래한다는 이야기는 요즈음 귀가 따갑게 듣는 이야기가 아닌가?

그렇다면 데이타와 정보는 어떻게 다른가? 흔한 말로 정보는 데이타를 가공하여 얻는 것이라고 한다. 데이타를 가공하는 기술과 방법은 일률적으로 정할 수는 없을 것이다. 경우와 상황에 따라서 얻을 수 있는 자료를 정보로 만들어내는 것이야말로 그 분야의 '노하우'이기 때문이다. 그러고 디베이스는 그런 작업을 도와주는 유용한 도구 중의 하나이다.

지난호에서는 디베이스를 사용하기 위한 준비를 하였으며, 이번호부터는 디베이스를 사용하여 데이타를 처리하는 방법을 설명할 것이다. 그전에 약간의 용어설명이 필요하다고 생각된다.

■데이타베이스란?/사전과 전화번호부

디베이스는 데이타베이스 관리(datebase management) 소프트웨어의 하나이다. 데이타를 자료라고 한다면 데이타베이스는 자료철 정도로 번역할 수 있을 것이다. 그렇다고 자료만 모아 놓은 것이 데이타베이스는 아니다.

한 회사의 인사자료가 보관되어 있는 자료철을 생각해보자. 이 자료철은 그 회사 직원들의 신상명세에 대한 자료를 저장한 것으로서, 단순하게 자료만 모아 놓은 것이 아니라 찾아보기 쉽도록 이름순으로 혹은 부서별로 정리되어 있다. 이와같이 데이타베이스는 단순한 자료의 모임보다는 한 단계 높은 형태로서, 사람이 그 자료를 효과적으로 사용할 수 있도록 정리가 되어 있는 것이다.

컴퓨터를 사용하지 않더라도 우리의 주위에서 데이타베이스는 손쉽게 찾을 수 있다. 단어들을 알파벳 혹은 가나다 순서로 수록하고 있는 사전, 전화번호를 상호순 혹은 이름순으로 보관하고 있는 전화번호부 등이 그 예이다.

이렇게 종이에 기록된 데이타베이스는 여러가지로 불편한 단점을 가지고 있다. 그 내용을 변경하거나 복잡한 조건을 만족하는 데이타를 찾아내기가 어렵다. 다행하게도 컴퓨터의 디스크에 저장된 데이타베이스는 이런 단점들을 가지고 있지 않다. 언제라도 내용을 변경할 수 있으며, 원하는 내용은 순식간에 찾을 수 있다.

■데이타베이스의 구조/필드와레코드
 

(그림1) 종이에 기록된 전화번호부의 예


디베이스에서 데이타베이스는 어떻게 구성되는 것일까?(그림 2)가 그것을 보여준다. (그림 2)는 (그림 1)과 같은 개인의 전화번호 데이타를 데이타베이스의 형태로 저장한 예이다.

전화번호부에서는 전화번호와 그것에 관련된 데이타가 한조를 이룬다. 이렇게 한조를 이루는 데이타를 컴퓨터 용어로 레코드(record)라고 한다. (그림 2)에서는 레코드가 이름 전화번호 주소의 3가지 요소로 구성된다. 이처럼 레코드를 구성하는 요소들을 필드(field)라고 한다. 즉 필드가 모여 레코드를 구성하고, 레코드가 모여 하나의 데이타베이스 화일을 구성하게 된다.(전화번호부가 인명부편, 상호명부편으로 나뉠수 있는 것처럼 데이타베이스도 몇개의 데이타베이스 화일로 구성될 수 있다.

디베이스에서 사용하는 데이타베이스가 불편한 점이 있다면 융통성이 부족하다는 것이다.데이타베이스 화일을 만들려면 각 레코드가 몇개의 필드로 구성되는지, 각 필드는 최대 얼마 만큼의 데이타를 저장할 수 있으며 어떤 종류의 데이타를 저장할 것인지를 미리 결정해야 한다. 이것들이 데이타베이스 화일의 구조를 이루며, 한번 결정된 데이타베이스 화일의 구조는 함부로 바꿀 수 없다.

(그림 2)의 경우에도 이름 필드에 영문은 10자, 한글은 5자까지의 데이타를 넣을 수 있도록 되어 있다. 따라서 이보다도 더 긴 데이타를 저장할 수는 없다. 또 필드에 숫자 데이타를 저장할 수도 없다. 각 필드는 문자만을 저장하기로 약속이 되어 있기 때문이다.


(그림2) 데이타베이스 화일로 저장된 전화번호부의 예


■디베이스 실습의 준비

이제 디베이스에서 직접 실습을 해보자. 그러기 위해서는 우선 독자 여러분이 디베이스를 실행시켜 준비를 해야 한다. 이에 대해서는 지난호에서도 설명하였지만 다시 한번 정리해보기로 하자.

이 연재에서는 편의상 디베이스의 도트 프롬프트 모드상에서 작업을 할 것이다. 다음은 플로피 드라이브에서 디베이스를 사용하는 경우와 하드디스크에서 디베이스를 사용하는 경우로 나누어 설명한 디베이스 실습 준비과정이다. 여기에서 ↲표시는 엔터 키를 누르라는 의미이다.

□플로피 드라이브를 사용하는 경우

①드라이브 A : 에 시스팀 디스크 1을, 드라이브 B : 에 자료를 저장할 데이타 디스크를 각각 넣고 컴퓨터의 전원 스위치를 켜서 부팅을 한다.
②부팅이 된 다음에는
A>;dbase↲
하여 디베이스를 시작한다.
③잠시 후에 디베이스의 저작권에 관련된 메시지가 나타나면 엔터키를 누른다.
④드라이브 A : 의 시스팀 디스크 1을 빼고 디스크2로 바꿔 넣으라는 메시지가 나오면 그대로 한 다음 엔터키를 누른다.
⑤디베이스로 들어오면 어시스트 모드에 있게 되므로 ESC 키를 눌러 도트 프롬프트 모드로 나온다.
⑥도트 프롬프트 모드에서
·set default to b:↲
를 입력하여 디폴트(default) 드라이브 B : 로 지정한다.

□하드 디스크를 사용하는 경우

①컴퓨터의 전원 스위치를 켜서 부팅을 한다.
②디베이스가 저장되어 있는 서브 디렉토리로 들어간 다음
C>;dbse↲
하여 디베이스를 시작한다.
③잠시후에 디베이스의 저작권에 관련된 메시지가 나타나면 엔터키를 누른다.
④디베이스로 들어오면 어시스트 모드에 있게 되므로 ESC 키를 눌러 도트 프롬프트 모드로 나온다.

■데이타베이스 화일의 작성
 

(그림3) 데이타베이스 화일의 구조를 결정하는 초기화면


이제부터 시험삼아서 (그림1)의 데이타베이스 화일을 만들어보자. 데이타베이스 화일을 새로 만드는 디베이스 명령어는 CREATE이다.프롬프트 모드에서 .create↲화면 화면에
Enter the name of file:
이라는 메시지가 나타난다. 만들려고 하는 데이타베이스 화일의 이름을 입력하르는 의미이다. 그러므로 PHONE을 입력하고 엔터키를 누른다. 한글도스를 사용하지 않는 이상 화일의 이름에 한글을 넣어서는 안된다.화일의 이름은
.create phone↲
와 같이 CREATE 명령의 뒤에 바로 입력해도 된다.

디베이스에서는 데이타베이스 화일을 다른 화일과 구분하기 위하여 화일의 확장자로 .DBF를 사용한다. 까라서 우리가 화일의 이름을 PHONE이라고 지정하면 PHONE.DBF가 만들어진다.
하여간 화일의 이름을 알려주면 디베이스는 (그림 3)과 같이 데이타베이스 화일의 구조를 결정하는 화면을 보여준다. 이 화면을 보면 상단에는 사용할 수 있는 키와 그 용도가 표시되어 있고, 중앙은 한 레코드를 구성할 필드의 이름 타입 길이를 지정하는 장소로 사용되며, 하단은 현재의 상태와 사용자에게 도움이 되는 지시사항이 나타나 있다.

현재 커서는 첫번째 필드의 이름난에 있으므로 영어로 NAME을 입력하고 엔터 키를 누른다. 한글 디베이스(주식회사 다우에서 공급하고 있다)를 사용하지 않는 한 필드의 이름으로 한글을 사용할 수는 없다.
이제 커서는 필드의 타입난에 있는데, 이미 문자타입임을 뜻하는 Character가 표시되어 있다. 이 상태에서 스페이스 키를 누르면 그때마다 필드의 타입이 바뀌게 된다. 디베이스가 제공하는 필드의 타입에 대해서는 다음 기회에 자세하게 소개하겠다. 여기에서 NAME 필드는 문자타입이어야 하므로 Character가 표시되어 있을 때 엔터키를 누른다.
커서는 다시 필드의 길이난에 있다. NAME 필드의 길이는 10자이므로 10을 입력하고 역시 엔터키를 누른다. Dec난은 숫자타입의 필드에서만 사용되므로 커서는 두번째 필드의 이름난으로 이동한다.

이와 같은 방식으로 3개의 필드를
NAME Character 10
PHONE Character 10
ADDRESS Character 30
로 정의하면 (그림4)와 같이 될 것이다.
만약 입력을 잘못하였다면 화면 상단에 표시된 편집기능들을 활용하여 고치면 된다. 좌우 화살표 키는 커서를 좌우로 한 문자만큼씩, HOME과 End 키는 한 단어만큼씩 움직이게 한다. Ins 키는 삽입모드와 수정모드를 교대로 선택하게 되며, Del 키는 현재 커서가 놓여있는 곳의 한 문자를 지워준다. 또 앞이나 뒤의 필드를 수정하려면 위아래 화살표 키를 이용하여 커서를 움직이면 된다.
(그림4)와 같이 입력을 모두 마친 다음에는 4번째의 비어 있는 이름난에서 엔터키를 누르거나, 아니면 아무 곳에서나  $\hat {E}$nd 키를 누른다.($\hat {E}$nd 키는 Ctrl 키를 누른 상태에서 End 키를 누르는 것을 의미한다) 그러면
Press ENTER to confirm.
Any other key to resume.
라고 표시된다. 이것은 현재 정의한 필드들에 만족한다면 다시 한번 엔터 키를 누르고, 그렇지 않다면 다른 키를 누르라는 의미이다.
여기에서 엔터 키를 누른다. 그러면 디베이스는 디스크에 PHONE.DBF 화일을 만들어준다.
 

(그림4) 데이타베이스 화일의 구조를 결정한 화면


■데이타의 입력과 확인
 

(그림5) 데이타베이스 화일의 확인


디베이스는 사용자가 새로운 데이타베이스 화일을 만들면
Input data records Now?(Y/N)
라고 물어온다. 방금 정의한 데이타베이스 화일에 데이타를 입력하겠냐는 질문이다. Y를 눌러 바로 데이타 입력에 들어가도 좋겠지만 여기서는 일단 N을 눌러 도트 프롬프트 모드로 빠져나오자. 그리고 DIR 명령을 사용하여 디스크에 화일이 만들어졌는지 확인해본다. DIR 명령은 도스에서와 같이 현재의 디렉토리에 있는 화일들의 리스트를 보여준다. 차이점이 있다면 화일을 지정하지 않은 경우 화일의 확장자가 .DBF인 화일만을 보여준다는 것이다. 모든 화일을 보려면 DIR* . * 와 같이 와일드 카드를 사용해야 한다.

PHONE. DBF화일의 존재를 확인하였으면 USE 명령으로 PHONE. DBF을 선택하고 DISPLAY STRUCTURE 명령으로 데이타베이스 화일의 구조를 확인한다. (그림 5 참조) CREATE 명령에서 정의한대로 되어 있음을 알 수 있을 것이다.

이제 APPEND 명령을 내리면 (그림6)과 같은 화면이 나타난다. 여기에서 각 필드의 내용을 입력하고 엔터 키를 누르면 된다. 내용의 수정은 화면 상단에 있는 편집기능을 이용한다.
 

(그림6) 데이타를 입력하는 화면


한 레코드를 모두 입력하면 그 내용이 데이타베이스 화일에 저장되고, 자동으로 다음 레코드를 입력하는 화면이 된다. 다음을 6개 레코드를 입력해보기 바란다.
윤소라621-3221소라기획
백설영282-3755진성 인테리어
서재식425-5887대성컴퓨터학원
김성주588-2129서초당
박시우375-2383대라상회
이송희988-2188신화컴퓨터
현재 몇번째 레코드를 입력하였는가는 화면 하단의Rec : 뒤에 있는 숫자를 보고 알 수 있다. 만약 3/6 이라고 표시되어 있다면 총 레코드의 수는 6개이고, 현재 3번째의 레코드가 화면에 표시되어 있다는 의미이다.
데이타를 모두 입력하였으면 비어 있는 레코드의 첫번째 필드에서 엔터 키를 누르거나, 아니면 아무 곳에서나$\hat {E}$nd키를 누른다. 그러면 도트 프롬프트가 나타난다. 입력한 내용을 확인하기 위해서는 LIST 명령을 사용한다.(그림7)

 

(그림7) 데이타베이스 화일의 내용을 확인하는 예


■레코드 포인터
 

(그림8) 레코드 포인터의 개념


LIST 명령으로 화일의 내용을 확인하여 수정하고 싶은 것이 있으면 EDIT 명령을 사용한다. 수정하고 싶은 레코드를 지정하는 방법은
.edit 3
과 같이 EDIT 명령의 뒤에 레코드 번호를 붙이는 것이다. 일단 EDIT 명령이 실행되면 (그림6)과 같은 화면에 현재 저장되어 있는 레코드의 내용이 함께 표시된다. 내용을 수정하는 방법은 APPEND 명령에서와 같다.
EDIT 명령이나 APPEND 명령을 실행할 때 보면 디베이스는 한 번에 하나의 레코드만을 다룰 수 있다. 현재 다루고 있는 레코드의 번호는 화면 하단에 Rec : 뒤에 표시된다. 레코드 포인터의 위치를 변경할 수 있는 명령은 GO이다. GO 명령의 형식은 다음의 3가지중 하나이다.
GO TOP
GO n
GO BOTTOM
첫번째는 첫번째 레코드로, 세번째는 마지막 레코드로 레코드 포인터를 이동시킨다. 두번째 형식에서 n은 1보다는 크고, 레코드의 수보다는 같거나 작아야 한다. 이 명령은 지정된 번호의 레코드로 이동하는 것이다.
레코드 포인터의 이동을 확인하려면 DISPLAY 명령을 사용하면 된다. 이 명령은 현재 레코드 포인터가 가리키고 있는 레코드의 내용을 보여준다.

이상으로 이번호의 디베이스 실습을 마치도록 하자. 지난호에서도 강조하였지만 디베이스를 끝낼때는 꼭 QUIT 명령을 사용하기 바란다.

이번호에서는 데이타베이스 화일의 개념과 작성방법을 소개하였고, 디베이스를 통하여 실습을 했다. 그 과정에서 CREATE, DIR, USE, DISPLAY STRUCTURE, APPEND, LIST, EDIT, GO, DISPLAY 명령들을 소개하였다. 이 명령들의 정확한 용법에 대해서는 디베이스 매뉴얼을 참고하여 정확하게 이해해두기 바란다. 그리고 이 글에서의 예와는 다른 데이타베이스 화일을 하나 만들어 데이타를 입력해보는 연습을 할 것을 권하는 바이다.
다음 달에는 만들어진 데이타베이스 화일을 변경하는 방법과 데이타베이스를 소트하는 방법을 설명할 것이다. 특히 레코드들을 소트하는 것은 데이타베이스의 중요한 기능이므로 기대해주기 바란다.

1989년 05월 과학동아 정보

  • 탁연상 컴퓨터전문 자유기고가

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 문헌정보학
이 기사를 읽은 분이 본
다른 인기기사는?