기타

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

DDBMS의 파트너 MMDBMS가 뜬다

기타 가이드
MMDBMS 가이드
DDBMS의 파트너 MMDBMS가 뜬다
작성자
admin
작성일
2021-02-19 15:13
조회
1293

제 1 장 DDBMS의 파트너 MMDBMS가 뜬다

메인 메모리 데이터베이스 관리시스템(Main Memory Database Management System; MMDBMS)이 최근의 이동통신 기술과 모바일 기술, 인터넷 쇼핑몰, 콜 센터, 게임 등의 첨단 기술 산업의 발달과 더불어 크게 위력을 떨치고 있다.
2004년도 시장 규모가 2백억을 상회할 기세이고, 전체 DBMS시장에서는 5% 이상 시장 점유를 할 것이며, 가파르게 시장점유율 및 매출액 규모가 확대될 것으로 예상되고 있다. 특히 아성인 통신 시장을 벗어나 증권과 일반 금융과 제조, 유통, 공공 등에 널리 그 사용이 확대되고 있는데 비하여 의외로 많이 알려지지 않았거나, 잘못 알려져 보급을 저해하고 있는 것이 현실이다.
MMDBMS는 대용량 데이터베이스인 오라클이나 인포믹스, 사이베이스와 같은 디스크 데이터베이스 관리 시스템(Disk Database Management System; DDBMS)과 같이 사용하면, DDBMS의 약점을 보완해주는 훌륭한 파트너이다.
따라서 MMDBMS의 보급을 돕고, 도입 및 올바른 사용을 위한 사용자의 이해를 돕기 위하여, DDBMS의 파트너로서의 MMDBMS의 현재 상황 및 실무적인 활용 방법들에 대하여 연구해 보기로 한다.
1.1 MMDBMS의 개요
MMDBMS(Main Memory DataBase Management System, 메인 메모리 데이터베이스 관리시스템)은 데이터베이스 관리시스템 시장에서 3% 이상의 높은 시장점유율을 차지하고 있고, 통신 업종을 주력으로 하여 금융 업종으로 빠르게 성장세를 이어가며, DDBMS(Disk-based DataBase Management System, 디스크 기반 데이터베이스 관리시스템)의 부족한 기능을 보완 또는 부분적으로 대체하고 있는 중이다. 이렇게 중요한 MMDBMS이지만 정작 사용자들은 잘 모르는 경우가 많고, 또 정확한 이해를 하지 못하고 있는 경우가 대부분이다. 따라서, MMDBMS에 대해서 정확한 이해를 함으로써 정보시스템을 구축하는데 있어서 DDBMS의 기능을 보완하는 MMDBMS의 활용방법을 연구하고자 한다.

MMDBMS는 데이터베이스의 일부 또는 전부를 메인 메모리 상에서 관리하는 것인데, 이는 디스크에 대한 접근없이 직접 메인 메모리 접근을 통해 데이터를 관리함으로써 고성능 트랜잭션 처리를 가능하게 한다. Virtual Memory와 Main Memory를 혼동하는 경우가 많은데, Virtual Memory는 자료를 처리하는 데에 있어서 실제의 메모리를 사용하는 것이 아니고 가상 메모리를 사용하는 것으로서 IBM의 독특한 자료처리 방식이다. 현재 메인메모리 데이터베이스(MMDB), 주기억장치 상주 데이터베이스(MRDB), 또는 인-메모리 데이터베이스(IMDB) 등의 이름으로 불리는데 데이터베이스를 메모리에 위치시켜 놓고 사용한다는 동일한 개념을 내포한 이음동의어들이다.

그림1
<그림> 디스크 기반 DBMS와 메모리 DBMS의 데이터 처리 개념도

메인 메모리 DBMS는 64비트 컴퓨팅 환경으로의 진입과 보다 빠른 처리를 요구하게 될 전산환경, 그리고 메모리가격의 가격하락 등으로 인하여 급속한 시장확대가 예상된다. 마찬가지로 이와 관련한 판매회사, 마케터, 개발자, 컨설턴트들이 많이 필요할 것으로 예상되는데 오라클, 인포믹스, 사이베이스와 같은 DDBMS의 포화상태인 개발자나 컨설턴트들이 눈 여겨 볼 만하다.

DDBMS를 사용하면서 가격이나 데이터베이스 규모, 시스템 성능면에서 문제를 가지고 있는 기업이나 기관의 사용자들이 크게 도움을 받을 수 있는 분야이다. 특히 대용량 데이터베이스가 필요한 부분에는 DDBMS를 사용하고, 중소 데이터 용량 데이터베이스에서 고속처리가 요구되는 시스템은 MMDBMS를 사용한다면 가격이나 성능면에서 최적의 시스템을 구축하고 운영할 수가 있을 것이다. 더구나 DDBMS와 MMDBMS는 게이트웨이를 이용하여 상호간 데이터 호환이 가능한데, 이러한 기능을 활용하면 기존의 대용량 DDBMS를 사용하면서 감수해야 하는 높은 가격과 비용을 절약하고 시스템 운영이 매우 효율적으로 되는 전략적인 이점도 가지게 될 것이다
1.2 DDBMS의 기술 향상 추세
오라클, 인포믹스, 사이베이스, IBM DB2 등 상용화되어 활용되고 있는 DDBMS는 매우 많지만, DDBMS의 보완 또는 부분적인 대체관계로서의 MMDBMS를 설명하기 위해서 DDBMS중 시장점유 1위를 차지하고 있는 오라클을 예로 들어 살펴보기로 한다.

다른 DDBMS와 마찬가지로 오라클의 발전방향을 보면 IT발전 동향에 발을 맞춰서 변화해 온 것을 알 수가 있다. 그 변화의 방향은 기본적으로 데이터베이스 활용 측면의 성능향상을 위한 기술과 기법의 보완 및 이를 적용한 제품 기능의 개선과, PC에서 대형 기종에 이르기까지 다양한 하드웨어와 OS 플랫폼을 지원하는 식으로 다른 도구나 운영체제와의 병용 측면을 강조하여 통합된 다양한 제품군으로써 발전해 왔음을 알 수 있다.

오라클 7 버전에서는 방대한 데이터 처리를 위한 질의어와 서버의 기능 보완에 역점이 두어졌고, 웹서버가 포함되어 인터넷, 인트라넷 환경과 중소기업 규모에 알맞은 분산환경에 적합한 기능을 갖추었다.

오라클 8i 버전에서는 객체관계형 데이터베이스로서, 대용량 데이터베이스(VLDB)로 무한대의 사용자를 지원하며, 다양한 데이터형을 지원하고 기존의 오라클 7의 장점을 그대로 가지면서 네트워크 환경에 맞게 설계되었다. 대기업이나 대형조직에 걸맞는 엔터프라이즈급 서버에서 자바(JAVA) 개발 툴들과의 완벽한 인터페이스를 제공하는 인터넷 컴퓨팅 서버인 오라클 8i, 비교적 저렴하고 성능도 우수한 데스크탑용 워크 그룹 서버 그리고 퍼스널 오라클 등이 있어서 엔터프라이즈 서버에서 모빌 컴퓨터까지 정보의 흐름을 하나로 연결할 수 있게 한다.

오라클 9i 버전에서는 8i 버전에 새로운 기능들이 크게 추가되고 확장되었는데 데이타베이스 환경과 생산성 전체에 상당히 좋은 영향을 미치게 된다. 서버의 향상된 기능을 기준으로 설명하면, 향상된 장애 방지 기능(RAC(Real Application Clusters)), 보다 쉽고 안전한 파일 관리(OMF(Oracle Managed Files)), 데이타베이스 외부의 플랫 파일(flat-file) 이용, 데이타에 대한 쉬운 읽기 전용 액세스(외부 테이블 (External Tables)), 데이타베이스 복구에서 실행 취소/롤백(undo/rollback) 작업의 보다 쉬운, 새로운 사용자를 위한 임시 테이블스페이스 자동 생성(임시 테이블스페이스 기능), 용이한 데이타 전송과 데이타 관리를? 데이타베이스 워크로드를 자동으로 관리(9i Database Resource Manager(DRM)), 빠르고 편리한 데이타 복구 기능(9i Data Guard), DML(Data Manipulation Language) 기능과 관련해 사람의 실수를 회복할 수 있는 방법을 제공 (Flashback Query), 데이타 보안을 강화하고 데이타 남용을 쉽게 파악(Fine-Grained Auditing(FGA))의 기능들을 들 수 있다.

Oracle 10g는 기업의 IT 환경을 그리드 컴퓨팅 모델로 진화시킬 수 있도록 지원한다. 스토리지에서 데이타베이스, 애플리케이션 서버 및 애플리케이션에 이르기까지, 오라클의 새로운 기술은 그리드 컴퓨팅에 필요한 모든 사항을 해결할 수가 있다. 오라클 데이터베이스 10g, 오라클 리얼 애플리케이션 클러스터 10g, 오라클 애플리케이션 서버 10g, 오라클 엔터프라이즈 매니저 10g 등이 오라클 10g의 주요 구성 제품군이다. Oracle Database 10g는 Enterprise Grid Computing을 위해 설계된 최초의 데이타베이스로서, 비용을 대폭 줄이면서도 비즈니스 요구조건에 신속히 대응할 수 있도록 하는 기능을 제공한다.
Oracle Application Server 10g는 표준 통합 소프트웨어 플랫폼으로서, 자동화된 소프트웨어와 프로비저닝을 통해 비즈니스의 유연성을 높여주며 적은 비용으로 메인프레임이 주는 안정성과 보안성을 제공한다. 그리드 컴퓨팅의 장점을 결합시킨 통합 애플리케이션 인프라로서 Oracle Application Server 10g가 있고, 트랜잭션과 비즈니스 인텔리전스 기능이 결합된 비즈니스 애플리케이션 및 서비스 개발을 위한 개방형 통합 개발 환경을 지원하는 Oracle Developer Suite 10g가 있다.
1.3 DDBMS의 장점, 약점 분석
오라클, 인포믹스, 사이베이스와 같은 DDBMS는 동시 사용자 지원(Concurrent User Support), 로깅(Logging), 복구(Recovery), 질의 처리기(Optimizer)의 다양한 기능, SQL 언어의 다양성, 트랜잭션 처리의 완벽성, 다중처리 기능, 다중 버전 기능, 다양한 프로그래밍 인터페이스, 다양한 네트워크 호환성, 이중화(Replication), 타 개발도구들과의 연계성 등에서 탁월한 기능적인 우수성이 있다. 특히 많은 개발자나 성능튜닝 컨설턴트들이 현직에서 활동하고 있으며, 대부분의 기관이나 기업에서 자료를 저장하고 활용하는 정보저장소로서 채택하여 사용하고 있는 중이다.

그런데 DDBMS는 사용자인 고객을 난처하게 하는 것이 몇 가지 있는데, 예를 들면 높은 제품가격, 높은 유지보수 비용, 응용 프로그램 등 시스템을 제작하는데 있어서의 목표 성능 달성 실패로 인한 시스템 전체의 실패 가능성이 늘 존재한다. 일단 개발이 완료되어 운영중인 시스템도 목표성능의 유지를 위하여 DBA(DataBase Administrator)가 필요하고, 응용 프로그램을 비롯한 시스템 전체에 대하여 최적의 상태를 유지하기 위하여 상당히 높은 비용을 지불할 각오를 해야 한다.

DDBMS의 특성 때문이기도 하지만, 하드 디스크에서 데이터를 읽어서 메모리로 적재한 후에, 메모리에서 클라이언트의 정보제공 요구를 처리하게 됨으로써 성능에 문제를 일으키는 구조적 문제를 치유하고, 미래의 위험에 대비하기 위하여 고비용의 대가를 치를 준비를 고객은 늘 하고 있어야 하는 것이다. 특별히 소 용량 데이터베이스를 보유하면서 실시간으로 대량의 트랜잭션을 처리해야 하는 업종에서는 구입가격과 훈련비용, 제품 유지보수 비용, 개발 비용 및 전문가 초빙 비용이 크게 부담이 되지 않을 수 없게 된다
1.4 DDBMS의 약점을 보완하는 MMDBMS
UNIX 환경하에서 대용량 데이터베이스를 가지고 공급자 중심의 제품이나 마케팅, 서비스 등을 고객에게 수행하였던 기관이나 기업들이, 인터넷이나 모바일 기술 등의 보급으로 급속하게 고객중심으로 변화된 경영환경에 대응하고 있다. 따라서, 대용량 데이터의 고속 트랜잭션 처리와 다양한 서비스가 지원되는 유연한 구조의 DBMS를 요구하게 되었는데, 지금까지의 오라클, 인포믹스, 사이베이스 등의 DDBMS는 데이터베이스를 디스크에 두고 사용함으로써 복잡한 알고리즘 처리와 과도한 디스크 I/O로 인하여 성능에 한계를 보이며, 고속의 정보 검색과 인증 처리가 요구되는 인터넷, 통신, 금융 등의 업종에 적용하는 데에 한계를 보이고 있다. 이에 대한 대처 방안으로 각 기관이나 기업에서 시스템의 증설을 시도하기도 하지만 근본적인 해결 방법이 되지는 못한다. 따라서 구조적으로 빠른 처리와 CPU의 효율적 운용을 가능케 하고 현재의 DDBMS를 기반으로 하는 시스템과 연동이 가능한 솔루션을 찾게 되었고, 그에 대한 적절한 해답으로 점차 MMDBMS가 관심의 대상이 되고 있다.

DDBMS에서의 목표성능 달성을 유지하는 중요한 요소는, 응용 프로그램 실행 시에 하드 디스크에서 응용 프로그램에서 필요한 양만큼의 데이터를 가져오고, 가져온 데이터와 사용된 SQL들을 메모리에서 재사용할 수 있는 가에 초점이 맞춰진다.

DDBMS는 대부분의 데이터가 하드 디스크에 저장되어 있고, SQL(Structured Query Language, 구조적 질의어) 및 SQL을 내장하고 있는 응용 프로그램이 실행이 될 경우에만, 메모리로 적재되어 사용이 되게 된다. SQL에서 호출한 모든 데이터들이 하드 디스크에서 메모리로 적재되는데, 적재된 데이터들은 다시 메모리에서 조인이라는 대량의 데이터 조합처리를 거쳐 원하는 형태로 데이터들이 가공되게 되는데 상당히 많은 메모리를 사용하게 된다.

응용 프로그램 실행이 종료되었을 경우에는 DDBMS가 Shut-Down되지만 않는다면, 사용된 SQL들과 데이터들은 메모리에 상주하게 되는데 이러한 데이터들과 SQL들을 재사용하는 또 다른 응용 프로그램들이 재사용할 수가 있다. 만일 재사용 가능한 SQL이나 데이터들이 없을 경우에는 하드 디스크에서 데이터들을 다시 가져와야 하는데, 메모리에서 데이터들을 읽는 속도와 하드 디스크에서 데이터들을 가져오는 속도 차이로 말미암아 시스템 성능 문제가 발생하게 되는 것이다. 특히 많은 수의 클라이언트들이 정보를 요구할 경우에는 전체 시스템의 성능은 극도로 저하될 것이다.

이러한 구조적인 모순을 극복하기 위해 SQL의 최적화기(Optimizer)가 데이터 작업 계획을 수립하는데 이렇게 수립하는 작업계획은 수시로 데이터베이스 환경에 따라 달라지게 되어 사용자들의 골치를 썩이는 일이 되고 경우에 따라서는 대가에 대한 높은 비용을 지불해야 하는 근본적인 원인이 된다.

응용 프로그램에 필요한 데이터가 하드 디스크에 있지 않고, 데이터베이스의 Shut-down에 관계없이 메모리에 상주해 있다면, 시스템 성능튜닝의 적중율(Hit Ratio)을 높이는 작업이 무의미하게 될 것이고, 하드 디스크에 있는 모든 데이터들을 메모리로 올리지 않?템의 속도는 매우 빠르게 될 것 그대로 유지하기만 하는 솔루션의 뒷받침이 이루어진다면 DDBMS의 치명적인 약점을 보완하면서 장점을 그대로 살리게 됨으로써 목표 시스템의 성능을 안정되게 유지하고, 미래의 예측 불가능한 사건들에 대하여 예측가능하게 시스템을 관리하게 될 것이며 이로 인한 비용의 절약은 기관이나 기업의 경쟁력을 한층 더 향상시키게 될 것이다.

<표> MMDBMS와 DRDBMS의 비교

그림2