Web/ASP & ASP.NET2009. 4. 8. 19:57

< 출처 : korea.internet.com, 지은이 : 최현진 >

ActiveX Data Object

ActiveX Data Object(ADO)는 마이크로소프트의 새로운 데이터 접속 개체로서 대부분의 데이터 형태를 접속해서 처리할 수 있도록 지원하고 있다. ADO는 로컬 데이터베이스 처리에 주로 사용된 DAO (Data Access Object)와 관계형 데이터베이스 처리에 주로 사용된 RDO(Remote Data Object)의 대부분의 기능을 지원하고 있으며, 기존의 데이터 관련 개체에서 지원하지 못하던 새로운 기능들도 추가로 지원하고 있다.

ADO는 MDAC(Microsoft Data Access Component)에 포함되어져서 배포되며, 비주얼 베이직 6에는 기본으로 ADO 1.5가 탑재되어 배포된다. ADO 1.0 버전은 RDO의 부분 기능만을 지원했으며, 주로 웹 프로그래머들에 의해서 사용되었다. 대부분의 웹 프로그래머들은 CGI(Common Gateway Interface)나 PERL(Practical Extraction and Report Language)을 이용해서 데이터베이스 관련 기능을 처리했으며, 일부 마이크로소프트의 SQL 서버를 사용하는 웹 개발자들은 IDC(Internet Database Connector)를 사용해서 데이터베이스를 처리했다. 하지만, IDC의 기능이 미비해서 웹 어플리케이션을 개발하는데 어려움이 많았으며, 이런 상황에서 ADO의 출현은 웹 프로그래머들에게 희소식이었다. 이렇게 ADO는 웹 개발자들에 의해서 처음 사용되어져 왔으며, ADO 1.5 버전은 DAO와 RDO의 대부분의 기능을 지원하게 되었고, 비주얼 스튜디오 6에 포함되었다. DAO와 RDO의 기능에 새로운 기능을 추가한 ADO 2.0은 98년 말에 발표되었으며, 마이크로소프트 SQL 서버 7.0에 포함되었다. 그리고 2000년 2월에 발표된 Windows 2000에 포함된 ADO 2.5는 Record와 Stream이라는 새로운 개체를 추가해서 새로운 모습으로 발표되었다.

[그림] ADO와 DAO/RDO 구조의 비교

ADO는 기존의 데이터 관련 개체에 비해서 다음과 같은 장점들을 가지고 있다.

  1. 적은 메모리를 요구하기 때문에 서버의 자원을 적게 사용한다.
  2. 인터넷과 인트라넷을 통한 데이터 접근에 최적화 되도록 구현되었기 때문에 네트워크에 부하를 적게 준다.
  3. 배치 커서(Batch Cursor), 클라이언트 커서(Client-Side Cursor), 서버 커서(Server-Side Cursor)를 포함해서 복합적인 커서를 지원한다.


ADO를 이용하면 DAO나 RDO 보다는 간단하게 어플리케이션을 구축할 수 있다. 이유는 DAO나 RDO 는 계층적 구조로 이루어진 반면에 ADO는 내부의 개체들이 각각 독립적으로 존재하기 때문에 다른 개체와의 연결 없이도 데이터를 처리할 수 있기 때문이다. 하지만, 그런 ADO의 구조로 인해 적절한 방법을 선택해서 어플리케이션을 구축하기 위해서는 많은 노력과 지식이 필요하게 된다.

ADO는 마이크로소프트 비주얼 베이직, 엑티브 서버 페이지(Active Server Pages), 마이크로소프트 비주얼 C++, 마이크로소프트 엑세스(Access), 마이크로소프트 엑셀(Excel), 마이크로소프트 워드(Word) 그리고 ADO와 OLE DB를 지원하는 여러 개발 환경에서 사용할 수 있다.

ADO는 확장된 형태의 ADOX와 ADO MD를 지원한다. ADOX는 Data Definition Language와 Security를 처리하는 ADO의 확장된 형태로서 테이블과 저장 프로시저 같은 스키마 개체를 조작하고 개체에 대한 권한을 부여(Grant)하거나 회수(Revoke)한다. 비주얼 베이직과 같은 개발 도구에서 ADOX를 사용하려면 형식 라이브러리를 참조해야 한다. ADOX의 형식 라이브러리는 "Microsoft ADO Ext. for DDL and Security"이며, ADOX 라이브러리 파일 이름은 Msadox.dll이다. 그리고 프로그램 ID (ProgID)는 "ADOX"이다. 다음 그림은 비주얼 베이직 참조 메뉴에서 ADOX를 참조하는 화면이다.


[그림] ADOX 참조 화면

ADO MD의 MD는 Multidimensional Data의 약어이며, ADO MD는 OLAP 데이터와 같은 다차원의 스키마 또는 큐브(Cube)를 조회하거나 결과를 검색하기 위해 사용되는 구성요소이다. ADO MD를 사용하기 위해 OLE DB Provider는 OLAP(On Line Analytic Processing)을 지원하는 Multidimensional Data Provider(MDP)이어야 한다. 비주얼 베이직에서 ADO MD를 사용하려면 ADO MD 형식 라이브러리를 참조해야 한다. ADO MD의 라이브러리 파일 이름은 msadomd.dll이며, 프로그램 ID(ProgID)는 "ADOMD"이다. 다음 그림은 비주얼 베이직 참조 메뉴에서 ADO MD를 참조하는 화면이다.


[그림] ADO MD를 참조하는 화면


ADOX와 ADO MD에 대한 내용은 이 책에서 다루지 않으며, 자세한 정보는 Windows 2000의 Microsoft Platform SDK의 Data Access Services를 참조한다.

ADO 개체 모델

ADO는 DAO나 RDO처럼 계층적 구조를 가지고 있다. 하지만, 각각의 개체들이 독립적으로 존재할 수 있기 때문에 상위 개체인 Connection 개체가 존재하지 않더라도 Recordset 개체만으로도 데이터베이스에 접속해서 테이블의 레코드를 가져올 수 있다. 이런 이유로 인해서 ADO는 랜 환경의 개발자들 보다는 웹 환경의 개발자들에 의해서 먼저 사용되어져 왔다.

ADO의 개체 모델은 다음과 같다.

[그림] ADO 개체 모델


ADO 개체 모델은 개발자들이 데이터에 접근하기 위해서 사용하는 세 가지의 핵심 개체인 Connection, Command, Recordset과 Field, Property, Parameter 등의 개체들로 구성되어져 있으며, ADO 2.5에서 Record 개체와 Stream 개체가 추가되었다.

비주얼 베이직에서 ADO를 사용하기 위해서는 프로젝트 메뉴의 참조(References)에서 Microsoft ActiveX Data Object 2.5 Library (msado15.dll)을 선택해야 한다.


[그림] ADO를 참조하는 화면


비주얼 베이직 프로젝트 메뉴의 참조(References)에서 ADO를 추가했다면, 개체 찾아보기(Object Browser, F2)에서 ADO 개체에 관련된 정보를 볼 수 있을 것이다.


[그림] 개체 찾아보기(Object Browse)


이제 ADO를 사용하기 위해서 ADO를 설치해 보도록 하자.

Posted by Huikyun