본문 바로가기

김탱 개발자/윈도우프로그래밍

데이터베이스 관련


회사의 클라이언트 DB가 MS Access 의 mdb인데, 여기저기 들리기로는 문제점이 많은 DB라 한다.

물론, 네트워크의 연결되어봤자 4~5개 PC정도의 네트워크 공유 수준인데다가, 그리 큰 규모의 데이터복잡성이 없다.

(A/S 담당자님의 말로는 DB문제 얘기하면 날을새도 모자란다고....)

만약 새 프로젝트를 작업하게 되면은 DB를 교체해볼까해서 정리해본다.


필요와 수준에 맞는 DB를 사용하면 되지만, 멀티플랫폼 세상에서 Local로만 이용하는 클라이언트는 한계가 있을듯 싶다


1. 데이터베이스의 분류와 종류(링크)


2. MS Access (mdb)의 장단점

Access vs SQLite(링크)

장점

- 인터페이스의 편의성(DB관리 용이)

- 데이터 엑세스에 대한 접근을 레이어 단위로 분리

- 비즈니스 객체에 대한 코드 복잡성 절감효과

- 확장성 , 계층형 구조디자인 가능

- 소규모의 단일클라이언트 접속일 경우 구축용이 (단일 mdb파일 배포)

- mdb의 장점(링크)

단점

- 다중접근시 DB가 엉키는 문제 발생

- 원격연결 안됨

- 느린 자료처리 속도

- 안정성 문제(뻗음)

- DB용량의 한계 


3. ODBC, ADO, OLE DB

* ODBC

MS가 최초로 시도한 데이터베이스 연결을 위한 표준입니다지금도 많이 사용하죠. ODBC는 데이터 액세스를 위하여 C 언어에서 사용하도록 설계된 표준 하위 애플리케이션 프로그래밍 인터페이스(API)이며, Structured Query Language(SQL)를 그 데이터베이스 액세스 언어로 사용합니다데이터 소스 이름(DSNs)은 제어판을 통하여 특정 ODBC 드라이버를 사용하도록 지정할 수 있습니다. ODBC는 단일 애플리케이션을 사용해서 동일한 소스코드를 가진 다양한 DBMS를 액세스할 수 있도록 설계되었습니다. ODBC를 사용하는 데이터베이스 애플리케이션은

ODBC 인터페이스에서 함수를 호출합니다그 인터페이스는 데이터베이스-특정 모듈(드라이버)와 함께 실행되도록 구현되어 있습니다이것은 여러분의 데이터베이스 액세스 코드를 특정 데이터베이스의 특성과는 상관없이 독립시키는데 도움이 됩니다이것은 프린터에 작성하는 애플리케이션을 작성하는 것과 비슷합니다. Win32 API를 사용해서 프린터 드라이버를 불러들입니다여러분이 작성하는 코드는 모든 프린터에 일반적인 코드이지만 그 드라이버는 특정 프린터가 이해하는 코드로 번역해줍니다이러한 원리로 ODBC를 이용하면 ODBC 드라이버가 있는 모든 애플리케이션의 (로컬이나 원격)데이터 소스를 액세스할 수 있습니다.


* DAO

원래 DAO UDA의 구성군에 포함되어 있지는 않습니다하지만 빼놓고 설명할 수 없으며 아직도 꽤 많은 분들이 사용하시는 듯 하더군요. DAO ODBC 이후에 발표된 것으로 개념은 ODBC와 유사하나 몇가지 차이가 있습니다. ODBC가 광범위한 종류의 데이터베이스 시스템에 접근할 수 있는 공통적인 방법을 제공하는 것이 목적이라고 하면DAO는 로컬 머신에 존재하는 데이터베이스에 빠르게 접근하는 방법을 제공하는 것이 주요한 목적입니다. DAO Jet Database Engine에 접근하기 위한 프론트 엔드 애플리케이션 개발에 필요한 C++ 인터페이스를 제공하고 있습니다Jet 엔진을 사용하는 MS Access 데이터베이스에의 접근에 가장 좋은것이 DAO입니다물론 DAO를 통해서도 ISAM이나 오라클, Btrieve 같은 Access 외의 데이터에 접근할 수 있기도 합니다만어쨌든 DAO는 로컬 DB용으로 많이 사용된다고 알아 두시면 되겠습니다.


* RDO(Remote Data Objects)

서버에 기반을 둔 데이터베이스를 위한 기술입니다현재는 잘 사용되지 않으며RDS

RDO의 뒤를 이어 받았습니다.


* OLE DB

데이터베이스용 OLE(OLE for Database)이라고도 불립니다. MS COM 기술을 데이터베이스에 적용한 산물이라고 할까요? OLE DB는 엔터프라이즈 환경 전체의 다양한 데이터 객체를 액세스하는 COM 인터페이스의 집합체입니다. OLE DB는 가장 기초적인 데이터 연결 서비스를 제공하는 소수의핵심 컴포넌트로 구성되어 있습니다. OLE DB는 한 컴퓨터에서 여러 프로세스에 걸친 통신은 물론이고 네트워크 전체에 걸쳐서도 통신할 수 있도록 설계되었습니다말하자면 웹 서버나 LAN의 다른 PC내의 데이터베이스에서 데이터를 액세스할 수 있다는 뜻입니다.OLE DB COM을 바탕으로 ODBC와 함께 SQL 기반 시스템에 접근할 수 있으며 파일시스템스프레드쉬트,익스체인지, ASP에 이르는 다양한 문서를 사용할 수 있죠.


ADO

웹 기반의 애플리케이션이나 데이터 기반의 애플리케이션에서 사용할 수 있는 객체기반의 데이터 인터페이스 세트입니다. ADO OLE DB를 바탕으로 만들어진 일종의 오토메이션 서버입니다 ADO OLE DB가 제공하는 여러 인터페이스에 대하여 함께 묶어주는 역할을 하므로써 스크립트를 비롯하여 COM이 가능한 모든 언어에서 모두 데이터를 이용할 수 있습니다이들 인터페이스를 이용하면 클라이언트 PC나 웹서버에 상주하는 다양한 데이타 유형을 LAN의 네트워크 상에서 조작할 수 있게 됩니다. ADO 인터페이스는 Microsoft Internet Information Server(IIS), Visual C, Visual Basic, Microsoft Visual InterDev에 포함되어 있으며 MDAC 웹 사이트에서 구할 수도 있습니다이들 툴을 갖고 있다면 자기도 모르는 사이에 이미 ADO가 설치되어 있을겁니다ADO의 장점은 속도가 빠르고 VB, VC++, VB 스크립트자바 등 다양한 언어를 사용하여 호출될 수 있어 사용이 간편하며 메모리 사용이 적고 컴퓨터에차지하는 공간이 거의 없습니다.