C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 FAQ
C++Builder Programming FAQ
[55] 데이터 저장과 데이타베이스에 대한 간단한(허접한?) 설명
김백일.cedar [cedar] 31439 읽음    2003-02-12 19:44
강영준 님이 쓰신 글 :
: 10가지 넘는 데이타를 시간별로 저장을 하고 필요할때 마다 챠트를 만들거나.

: 프로그램상에서 입력되는 데이타를 저장도 하면서 챠트도 그리고..

: 그런 프로그램에서 데이타 베이스를 사용하여 자료를 파일로 저장해 놓는것이 나을지.

: 아니면 배열을 무진장 크게 잡는것도 상관이 없을지..

: 프로그램 혼자서 데이타 배이스를 엑세스 할껀데..

: 음.. 뭔소리 하는지 모르것네.

흠... 저도 정확히 무슨 질문을 하시는 지 모르겠군요. :)
일단 제가 알고 있는 내용을 정리해보죠.

처리해야 할 데이터의 크기가 물리적 메모리보다 작은 경우는
그냥 파일 입출력으로 처리하시는 게 편리합니다.

물론 배열보다는 ANSI C++ STL에 포함된 컨테이너인 
vector, deque(가변 크기 배열), list(연결 리스트), 
set, map(이진 트리), hash_set, hash_map(해쉬 테이블) 등의 자료구조를 쓰면 좋지요.

한편, C++빌더6 VCL에는 MyBase라 하는 XML 파일 기반의 일종의 간단한 메인 메모리 RDB를 포함하고 있습니다. 파일에서 데이터를 전부 로드해서 메모리에 올리는 것은 같지만,
기존에 VCL에서 제공하는 데이터베이스 API를 사용하는 방법과 동일하게 사용할 수 있습니다.
물론 기본적인 데이터베이스와 SQL, XML에 대한 지식이 필요합니다.

: 그리고 가장 쉽게 접근할수 있고, 사용할수 있는 데이타 배이스는 어떤게 좋을까요?

: ms sql이 좋을까요?

데이터의 양이 커서 메모리에 전부 로드할 수 없는 경우에는
데이터베이스를 사용해야 합니다.

보통 DB라고 하면 RDB(관계형 데이터베이스)를 말하는데, 
말 그대로 여러 테이블간의 복잡한 관계를 표현할 수 있습니다.

이러한 복잡한 관계가 필요없이, 단지 독립적인 레코드만 저장하려면
그냥 파일 시스템을 쓰시는 것이 가장 성능이 좋은 방법입니다.
대표적으로 GDBM(C API 전용)이나 Berkley DB(C/C++ API 모두 지원) 등이 있습니다.

나타내려는 관계가 복잡한 경우는 RDB를 사용해야 합니다.
동시 사용자가 한 명인 경우는 로컬 RDB를 사용하는 것이 좋습니다.

추가 비용 없이 그냥 C++빌더/델파이에 번들된 BDE(Borland Database Engine)만 설치하면 
쓸 수 있는 로컬 RDB로는 패러독스(Paradox)가 있습니다. 조금 오래된 빌더/델파이 책에서 기본으로 설명하고 있어서 자료 찾기는 어렵지 않습니다. 
시작 메뉴의 C++빌더 폴더의 Database Desktop과 BDE Administrator 프로그램으로 관리하면 됩니다.

한편, DB에 대한 지식이 별로 없고, 쉽게 DB를 작성해서 사용하기 위해 한글화된 프로그램이 필요하시다면, MS Access(MDB)를 쓰실것을 권합니다. 패러독스보다는 느리지만, 제공하는 기능은 훨씬 많습니다. C++빌더에서는 ADO 컴포넌트를 사용하여 쉽게 연결할 수 있습니다.

사용자가 여러명인 경우는 다중 사용자 RDBMS를 사용해야 합니다.
대표적으로 오라클, MS SQL 서버, 인포믹스, DB2 등이 있습니다.
이중에서 사용이 제일 쉽고 가격이 비교적 싼 것은 MS SQL이지만,
윈도에서만 사용할 수 있으며, 최근의 '인터넷 대란'에서 본 것과 같이 잠재적인 보안 위험성이 있습니다.

위의 DB들은 가격이 비싼만큼, 엔터프라이즈급의 환경(사용자수 천명 이상)에서 사용하는 것이 좋습니다.
사용자가 많아야 수백명 정도인 중소기업 규모라면,
볼랜드의 Interbase(상용)/Firebird(오픈소스), MySQL, PostgreSQL, SAPDB 등의 저가나 오픈소스 RDBMS를 쓰실 것을 권합니다.
이중에서 Interbase/Firebird는 C++빌더/델파이로 개발할 때 최적의 DB입니다.
전용 연결 컴포넌트인 IBX(Interbase Express)를 사용하면 엄청 편리하고 속도도 빠릅니다.
로컬 DB로 사용해도 상당히 빠른 속도를 보이더군요.

+ -

관련 글 리스트
55 데이터 저장과 데이타베이스에 대한 간단한(허접한?) 설명 김백일.cedar 31439 2003/02/12
(링크)     Delphi FAQ > 데이터 저장과 데이타베이스에 대한 간단한(허접한?) 설명
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.