이동 컴퓨터용 응용 프로그램 개발: MS SQL Server 7.0과 Sybase Adaptive Server Anywhere 6.0 비교 Andrew Coupe 작성 소개랩톱 컴퓨터 사용자 수가 늘어나고 대중성이 높아짐에 따라 이동 컴퓨터용 응용 프로그램 분야가 폭발적으로 성장하고 있습니다. 대부분의 조직에서는 비용을 줄이고 직원들에게 보다 융통성 있는 작업 환경을 제공하기 위해 조직의 규모를 축소하고 있습니다. 또한, 회사 밖에 있을 때도 컴퓨터를 사용하는 직원들이 늘어나고 있습니다. Dataquest가 실시한 1998 Mobile Computing Forecast(gartner12.gartnerweb.com/dq/)에 따르면, 이동 컴퓨팅 시장은 2002년까지 18% 이상 성장할 것으로 예상됩니다. 외부에서 컴퓨터를 사용하는 사람들이 점차 늘어나고 있습니다. 예를 들어, 영업 사원들은 컴퓨터를 사용하여 주문 내용을 입력하거나, 고객 정보를 업데이트하거나, 재정 정보를 관리합니다. 이들이 네트워크에 연결할 때는 새로운 정보나 업데이트된 정보를 회사 데이터베이스에 병합해야 합니다. 마찬가지로, 사용자 컴퓨터가 오프라인 상태였을 때 회사 데이터베이스에서 변경된 사항을 모두 사용자 컴퓨터에 복사해야 합니다. 여러 데이터베이스를 동기화하는 데 필요한 응용 프로그램 로직은 복잡할 수도 있습니다. 예를 들어, 두 명의 원격 사용자가 오프라인 상태에서 동일한 정보를 따로 업데이트하는 경우에 발생하는 충돌을 응용 프로그램이 해결해야 합니다. 이 문서에서는 Microsoft® SQL Server 7.0이 이동 컴퓨터용 응용 프로그램 구현 및 관리를 위해 강제적인 데이터베이스와 개발 아키텍처를 제공하는 이유를 설명하고, SQL Server 7.0 기능과 다른 이동 컴퓨터용 응용 프로그램 제품인 Sybase Adaptive Server Anywhere 6.0을 비교하여 설명합니다. 이동 컴퓨터용 데이터베이스 솔루션 평가대부분의 사용자에게는 올바른 도구나 적절한 인프라를 사용하지 않고 이동 컴퓨터용 응용 프로그램을 개발, 배포 및 관리하는 것이 힘겨운 일이 될 수 있습니다. 기업급 관계형 데이터베이스 관리 시스템(RDBMS)은 대부분 클라이언트/서버 기반의 시스템 환경을 위해 디자인되었습니다. 클라이언트/서버 응용 프로그램은 기본적으로 사용자가 서버에 영구적으로 연결되어 있다고 가정합니다. 따라서 로컬 데이터 저장소가 없으며 오프라인으로 작동하는 기능도 없습니다. 기존의 클라이언트/서버 응용 프로그램을 수정하여 이동 환경에서 사용할 수는 있지만, 클라이언트와 서버의 데이터가 동기화 상태로 유지되는지 확인하는 데 필요한 코드가 상당히 많습니다. 확장 가능한 이동 컴퓨터용 응용 프로그램을 개발하려면, 운영 체제와 RDBMS가 제공하는 서비스를 사용하여 이동 클라이언트나 중앙 데이터베이스에서 업데이트된 데이터를 분배하고 동기화해야 합니다. 운영 체제와 RDBMS는 이동 컴퓨터용 데이터베이스 응용 프로그램을 개발하는 데 아래와 같은 기본 기능을 제공합니다.
이동 클라이언트를 위한 데이터베이스 응용 프로그램을 평가할 때는 아래와 같은 사항을 확인하십시오.
SQL Server 7.0으로 이동 컴퓨터용 응용 프로그램 지원Microsoft SQL Server 7.0은 Microsoft Windows NT®, Windows NT Server Enterprise Edition, Microsoft Windows 95, Microsoft Windows 98 운영 체제에서 실행되는 완벽한 기능을 갖춘 기업급 RDBMS가 될 것입니다. 확장성과 성능에 대한 고객의 질문은 아래와 같이 요약할 수 있습니다.
SQL Server는 이동 컴퓨터용 응용 프로그램을 개발할 때 SQL Server에서 작성된 응용 프로그램을 Windows 9x 랩톱에서 Windows NT Server Enterprise Edition, 다중 프로세서 클러스터로 바꾸지 않고 실행할 수 있는 기능을 제공합니다. SQL Server 7.0은 이동 클라이언트에서 고급 엔터프라이즈 클래스 서버에 이르는 단일 코드베이스를 제공하는 첫째 RDBMS 엔진입니다. SQL Server 7.0은 중소 기업이나 대기업 모두의 요구를 충족시켜 줄 것입니다. TPC(Transaction Processing Performance Council)가 최근 실시한 벤치마크 결과에 의하면, SQL Server 7.0은 Windows NT 운영 체제에 사용할 수 있는 최고의 RDBMS 중 하나입니다. TPC 벤치마크에 대한 자세한 내용은 TPC 웹 사이트 http://www.tpc.org/를 참조하십시오. 소규모 데이터베이스 지원SQL Server 7.0에는 이동 클라이언트나 작업 그룹 서버에 있는 소규모 데이터베이스를 지원하는 아래와 같은 기능이 포함되어 있습니다. 이러한 환경에서는 관리의 용이함이 주요 관건입니다. 동적 메모리 동적 공간 관리 자동 통계 관리 확장 가능한 저장 장치
이 기능은 데이터베이스 개체를 특정 디스크에 매핑하여 I/O 로드 균형을 조정함으로써 관리의 복잡성은 줄이고 융통성은 향상시킵니다. 페이지 크기가 2KB에서 8KB, 64KB I/O로 늘어났고, 열 한계가 늘어났으며, 가변 길이 문자 필드는 8KB로 늘어났고, 데이터를 언로드했다가 다시 로드하지 않고도 기존 테이블에서 열을 추가하고 삭제하는 기능이 추가되었습니다. 다시 디자인된 유틸리티들은 대용량 데이터베이스를 효율적으로 지원합니다. 대용량 데이터베이스 지원SQL Server 7.0에는 대개 관리되는 서버 환경에 있는 대용량 데이터베이스를 지원하는 아래 기능이 포함됩니다. 이러한 환경에서는 효율성과 성능이 주요 관심사입니다. 해시 조인과 병합 조인 상위 캐시 관리 병렬 쿼리 동적 행 수준 잠금 대용량 메모리 지원 미리 읽기 백업 및 복원 대량 복사 프로그램(BCP) Sybase 확장성 및 성능Sybase SQL Anywhere Studio는 Sybase, Inc.의 RDBMS 서버 계열 제품으로, Adaptive Server Enterprise와 Adaptive Server Anywhere 6.0 서버 엔진이 들어 있습니다. 이 두 서버 엔진의 아키텍처는 유사하지만 코드베이스는 서로 다릅니다. 따라서 Sybase Adaptive Server Enterprise에서 작성된 응용 프로그램은 Sybase Adaptive Server Anywhere와 호환되지 않으며, 마찬가지로 Sybase Adaptive Server Anywhere에서 작성된 응용 프로그램도 Sybase Adaptive Server Enterprise와 호환되지 않습니다. 결국, 두 데이터베이스 제품을 사용할 때 응용 프로그램 호환성을 유지하려면 추가 개발, 테스트 및 관리가 필요합니다. Sybase Adaptive Server Anywhere 6.0 서버 엔진은 원래 엔터프라이즈 클래스 데이터베이스로 제공되지 않으므로, 사용할 수 있는 TPC 벤치마크가 없습니다. 따라서 Sybase Adaptive Server Enterprise로 업사이즈해야 비교 대상을 구할 수 있습니다. Microsoft SQL Server와 Sybase Adaptive Server Enterprise 벤치마크 대상을 구하려면 TPC 웹 사이트 http://www.tpc.org/를 방문하십시오. Sybase Adaptive Server Anywhere 6.0은 동적 메모리 할당을 지원하지 않습니다. 일반적으로 이동 환경이나 오프라인 환경의 데이터베이스는 쿼리를 처리하는 잠시 동안만 추가 메모리를 필요로 합니다. Sybase Adaptive Server Anywhere 6.0은 응용 프로그램을 실행하는 동안 고정 메모리를 필요로 합니다. 시작 매개 변수를 사용하여 클라이언트의 캐시 크기를 미리 할당해야 하므로 관리 오버헤드도 있습니다. Sybase는 Adaptive Server Anywhere 6.0이 1MB 정도의 메모리로도 실행된다고 주장합니다. 그러나 이것은 아래 사항을 고려하지 않은 메모리 용량입니다.
실질적으로 Sybase Adaptive Server Anywhere 6.0 사용자는 클라이언트 시스템을 실행하는 데 있어서 SQL Server 7.0의 경우와 마찬가지로 6MB에서 8MB 정도의 메모리를 필요로 합니다. 이동 클라이언트의 경우에는 클라이언트에서 코드를 모두 실행하기 때문에, Windows 9x 기반 사용자에게는 32MB 이상의 메모리가 필요하며 Windows NT Workstation 사용자에게는 48MB 이상이 필요합니다. 이러한 수치는 클라이언트에서 실행하는 응용 프로그램 수와 크기에 따라 다릅니다. SQL Server 7.0은 아래와 같은 세 가지 종류의 복제를 제공합니다.
복제 에이전트는 전체 데이터 뷰를 다른 시스템으로 복사합니다. 그러면 대상 데이터베이스 뷰는 새 버전으로 덮어씌어집니다. 한 컴퓨터에서 실행된 트랜잭션(INSERT, UPDATE, DELETE 문)이 다른 컴퓨터로 복제됩니다. 한 컴퓨터에서 업데이트된 사항이 나중에 다른 컴퓨터로 복제됩니다. 병합 복제는 사용자와 연결되지 않은 응용 프로그램에 가장 많이 사용되는 복제 형식으로, 이동 클라이언트와 중앙 서버 간의 일관성을 유지합니다. 병합 복제는 양방향 업데이트를 지원합니다. 즉, 동기화 과정에서 이동 클라이언트의 새 레코드나 업데이트된 레코드가 서버로 복사되거나 서버의 새 레코드나 업데이트된 레코드가 이동 클라이언트로 복제됨으로써 두 복사본이 동기화된 상태로 유지됩니다. 두 이동 클라이언트가 동일한 데이터를 변경하면 SQL Server는 중앙 데이터베이스의 충돌 문제를 해결하도록 지정한 기준을 자동으로 적용합니다. SQL Server 7.0은 게시 및 가입 메타포어를 사용하여 복제를 설정하고 관리합니다. 게시자는 게시물을 제공합니다. 이 게시물에는 다른 SQL Server 데이터베이스나 개방형 데이터베이스 연결(ODBC) 데이터 원본이 가입할 수 있는 테이블이나 뷰 같은 기사가 포함됩니다. 배포자는 게시자에서 수정된 데이터를 검색하고 저장한 다음 가입자에게 이 데이터를 보냅니다. 병합 복제인 경우, 가입자는 다른 SQL Server 데이터베이스일 수도 있고 Microsoft Access 2000 데이터베이스일 수도 있습니다. 가입이 초기화되면 게시자는 가입자에게 게시의 초기 스냅샷을 제공합니다. 이렇게 하면 가입자에게 필요한 데이터베이스 개체(스키마와 데이터)가 만들어집니다. 사용자 정의가 가능한 이 스크립트는 SQL Server에서 자동으로 생성됩니다. 초기 스냅샷이 설정되면, 전체 게시가 아니라 게시자에서 변경된 사항만 가입자에게 전달됩니다. 레코드가 추가, 수정 또는 삭제될 때마다 SQL Server는 변경 사항이 있는지 확인하고 해당 Transact-SQL 문을 배포 서버로 보냅니다. 여러 클라이언트가 하나의 SQL Server 데이터베이스에 가입하는 경우 관리자는 다른 SQL Server 인스턴스에 배포 서버 역할을 지정하여 성능을 개선합니다. 배포 엔진은 요청이 있는 경우 또는 일정에 따라 가입자에게 업데이트된 사항을 보낼 수 있습니다.가입자가 병합 복제를 초기화할 수도 있습니다. SQL Server 7.0을 사용하면 테이블에서 열과 행의 하위 집합을 게시할 수 있습니다. 예를 들어, 영업 담당자는 대개 특정 지역만을 관리합니다. 이 경우 각 영업 담당자에 해당하는 데이터만 복제할 수 있습니다. SQL Server를 사용하면 게시에 매개 변수를 전달할 수 있으므로 여러 가입자를 지원하는 과정을 단순화할 수 있습니다. 예를 들어, 관리자가 사용자 이름과 컴퓨터 이름을 매개 변수로 게시에 전달하면 각 영업 담당자는 자신의 영업 구역에 대한 데이터만 받아볼 수 있습니다. 병합 복제를 지원해야 하는 아키텍처는 아래 요인에 따라 크게 달라질 수 있습니다.
신중하게 구성된 아키텍처와 엄격한 운영 절차는 이동 컴퓨터용 응용 프로그램을 성공적으로 구현하는 데 중요한 요소입니다. 예를 들어, 여러 클라이언트가 동시에 하나의 데이터베이스와 동기화되도록 구성하는 것은 실용적이지 못합니다. 이렇게 하면 네트워크의 실제 리소스를 무리하게 사용할 뿐만 아니라 중앙 데이터베이스를 너무 자주 업데이트하게 되어 아무도 최신 버전의 데이터를 사용할 수 없게 될 수 있습니다. 이러한 문제를 해결하려면 위치상 이동 클라이언트와 가능한 가깝게 있는 여러 서버로 중앙 데이터베이스를 분할하면 됩니다. 아래 그림은 여러 클라이언트를 지원하도록 데이터베이스를 분할하는 방식을 나타낸 것입니다. 아래와 같은 방법으로 병합 복제의 성능 및 확장성을 향상시킬 수 있습니다.
SQL Server 7.0은 아래와 같은 여러 가지 통신 방법을 사용하여 업데이트를 동기화합니다.
SQL Server 7.0은 통신 프로토콜에 관계 없이 업데이트가 전달되었는지 확인합니다. 네트워크 라이브러리 지원에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오. Sybase 병합 복제Sybase Adaptive Server Anywhere 6.0은 SQL Remote라는 메시지 기반의 복제 시스템을 사용하여 클라이언트와 서버 간에 업데이트를 동기화합니다. Sybase SQL Remote는 파일, FTP, MAPI, SMTP, VIM 메시지 기반의 프로토콜을 사용합니다. 메시지 기반의 프로토콜을 사용할 때는 아래와 같은 몇 가지 문제가 있습니다.
대부분의 조직은 여러 공급업체에서 제공하는 데이터베이스를 지원해야 합니다. SQL Server 7.0은 ODBC나 OLE DB를 사용하여 유형이 다른 데이터 원본과의 복제를 지원합니다. 예를 들어, Microsoft Access 2000은 기본적으로 양방향 병합 복제를 지원합니다. SQL Server 7.0은 유형이 다른 가입자에게 트랜잭션 복제를 지원합니다. 그러나 유형이 다른 게시자는 SQL 병합 에이전트 응용 프로그래밍 인터페이스(API)를 지원해야 양방향 병합 복제에 참여할 수 있습니다. 양방향 병합 복제에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오. SQL Server 7.0에는 유형이 다른 복제를 관리하는 SQL 병합 제어 개체가 들어 있습니다. SQL 병합 제어 개체는 병합 에이전트 기능을 제공하며 게시를 병합할 때 가입과 함께 사용됩니다. SQL 병합 제어 개체를 호출하여 설정할 수 있는 등록 정보를 복제 병합 에이전트 유틸리티를 사용하는 경우에도 사용할 수 있습니다. 아래 그림은 유형이 다른 복제 시나리오를 나타낸 것입니다. 이 예제에서 유형이 다른 게시자는 중앙 SQL Server 데이터베이스의 업데이트를 보내고 받도록 구성되어 있습니다. 그러면 중앙 SQL Server 게시자는 변경 사항을 세 클라이언트 가입자에게 동기화합니다. SQL Server 엔터프라이즈 관리자는 SQL 분산 관리 개체(SQL-DMO)를 사용하여 이러한 게시자와 가입자를 모두 관리합니다. Sybase 상호 운용성Sybase Adaptive Server Anywhere 6.0은 Sybase 개방형 클라이언트 인터페이스를 통해 유형이 다른 복제를 지원합니다. 그러나 유형이 다른 데이터 원본에 액세스하려면 Sybase 복제 서버를 사용해야 합니다. 복제 서버를 Sybase Adaptive Server Anywhere 6.0에 대한 가입자로 사용하려면 Sybase Adaptive Server Enterprise용 복제 서버를 사용해야 합니다. 이동 컴퓨터용 응용 프로그램을 위한 개발 아키텍처 선택성공적인 응용 프로그램 개발을 위해서는 적절한 아키텍처와 최적의 도구를 선택하는 것이 중요합니다. Microsoft Windows Distributed interNet Application(DNA) 아키텍처는 이동 컴퓨터용 응용 프로그램을 개발하는 데 가장 중요한 도구입니다. 대부분의 기업들은 사용자가 정보에 빨리 액세스할 수 있도록 분산 컴퓨팅 및 인터넷 환경으로 바꾸고 있습니다. Windows DNA는 개인 컴퓨팅과 인터넷을 함께 제공하는 새로운 컴퓨팅 솔루션을 구축하기 위한 프레임워크로서, 응용 프로그램 개발에 대한 웹과 클라이언트/서버 모델을 모두 포괄하여 통합하는 최초의 응용 프로그램 아키텍처입니다. 개발자는 Windows DNA 아키텍처를 사용하여 네트워크로 전달할 수 있는 확장 가능한 다중 계층 비즈니스 응용 프로그램을 구축하고, 여러 플랫폼을 통해 다양한 데이터 원본에 개방적으로 액세스하고, 모든 클라이언트 컴퓨팅 플랫폼에서 자유롭게 액세스할 수 있습니다. 조직은 Windows DNA를 사용하여 Windows NT, Unix, Systems Network Architecture(SNA) 기반 시스템을 포함한 모든 서버 환경에서 데이터 원본에 액세스할 수 있는 플랫폼 간 응용 프로그램을 개발할 수 있습니다. Windows DNA 아키텍처를 사용하면 기존 기술 인프라를 그대로 사용하면서 인터넷이나 World Wide Web 같은 새로운 기술을 채택하여 새로운 요구를 충족시킬 수 있습니다. Windows DNA 아키텍처는 아래와 같은 세 계층으로 구성됩니다.
이 계층은 사용자 인터페이스와 기본 유효성 검사 코드를 포함한 계층입니다. 일반적으로 이것은 웹 브라우저 계층 또는 모든 기능을 갖춘 프런트 엔드 클라이언트 계층입니다. 이 계층에는 미들웨어 구성 요소와 시스템 서비스가 포함되며 응용 프로그램 로직을 처리합니다. 이 계층은 데이터베이스 계층 또는 기타 구조화되지 않은 저장소 계층입니다. Microsoft Windows DNA에 대한 자세한 내용은 Windows DNA 웹 사이트 http://www.microsoft.com/dna/ (영문) 를 참조하십시오. 이동 컴퓨팅 환경에서 비즈니스 프로세스 및 통합 저장소 계층은 클라이언트에도 있습니다. Microsoft Component Object Model(COM)과 분산 COM(DCOM) 구성 요소는 분산 환경에 구성 요소 통합을 위한 토대를 제공합니다. 이는 이동 컴퓨터용 응용 프로그램을 개발할 때 아래와 같은 여러 가지 장점을 제공합니다.
Sybase 응용 프로그램Sybase Adaptive Server Anywhere 6.0은 다중 계층 응용 프로그램에 참여할 수 있지만, 유형이 다른 조인은 Sybase OmniConnect를 사용해야 지원됩니다. Sybase Adaptive Server Anywhere 6.0은 데이터베이스 엔진에 Java를 지원합니다. 이론적으로는 데이터베이스 서버에서 실행하도록 작성된 Java 코드를 다른 위치로 이동하여 실행할 수 있습니다. 그러나 이 코드는 데이터베이스 서버에서만 인식되는 Java 확장명에 주로 의존하기 때문에 코드를 다른 위치로 이동하면 깨질 수 있습니다. 이동 컴퓨터용 응용 프로그램에 웹 브라우저를 사용하는 것은 개발자에게 특별한 도전이 될 수 있습니다. 웹 응용 프로그램이 데이터베이스와 상호 작용하거나 서버측 스크립트를 사용하는 경우에는 Microsoft Personal Web Server(PWS)를 클라이언트에 설치하여 오프라인 기능을 제공해야 합니다. PWS는 Windows 98 운영 체제에 포함되어 있으며, Windows 95와 Windows NT Workstation 웹 사이트에서 다운로드할 수 있습니다. PWS를 무인 설치할 수 있습니다. Windows NT Server의 기본 웹 서버에서 작성한 응용 프로그램인 인터넷 정보 서비스(IIS) 4.0은 서버 고유의 API에 대한 참조가 없으면 PWS에서 변경되지 않고 실행됩니다. IIS 4.0은 완전히 프로그램 가능한 웹 서버로서, 개발자에게 아래와 같은 기본 기능을 제공합니다.
Visual Basic Scripting Edition, Microsoft JScript® 또는 PerlScript에서 서버 기반의 스크립트를 작성할 수 있습니다. Visual Studio 도구를 사용하여 ADO 개체 모델을 통해 모든 OLE DB 또는 ODBC 데이터 원본에 액세스할 수 있습니다. Visual Studio 도구를 사용하여 여러 가지 언어로 작성된 COM 구성 요소들을 참조할 수 있습니다. 여기에는 Windows NT Server의 일부인 Microsoft Transaction Server(MTS)의 구성 요소도 포함됩니다. ASP 스크립트를 사용하여 MTS 지원 데이터베이스를 불러올 수 있습니다. 서버에서 세션 수준이나 사용자 수준의 변수를 사용하여 사용자 정보를 저장할 수 있습니다. 클라이언트측 디버깅과 서버측 디버깅웹 기반 응용 프로그램 개발자는 Microsoft Visual Studio 개발 시스템에 포함되어 있는 Visual J++ 6.0과 Visual InterDev 6.0을 사용하여 COM 구성 요소와 SQL Server를 이용할 수 있습니다. 웹 기반 개발자는 Microsoft FrontPage®를 포함함으로써 구성 요소와 사이트 작성 기능 및 컨텐트 개발 기능을 모두 제공하는 RAD(Rapid Application Development)를 위한 일관되고 사용하기 쉬운 도구 집합을 추가할 수 있습니다. Visual J++ 6.0과 Visual InterDev 6.0은 모두 풍부한 서버측 및 클라이언트측 디버깅을 지원합니다. 개발자는 그 중 한 도구를 사용하여 클라이언트측 스크립트에서 ASP 페이지를 통해 COM 및 MTS 구성 요소로 디버깅할 수 있습니다. Sybase 웹 기반 솔루션Sybase Adaptive Server Anywhere 6.0은 Sybase PowerDynamo라고 하는 오프라인 웹 서버에 포함되어 있습니다. 여기에는 웹 페이지를 클라이언트에 배포하는 도구가 들어 있습니다. PowerDynamo는 JScript 상위 집합을 사용하여 서버측 스크립트를 구축합니다. 데이터베이스 액세스 및 데이터 서식 설정은 확장에 의해 JScript에 제공됩니다. PowerDynamo는 웹 응용 프로그램을 개발하고 이를 오프라인 상태에서 액세스할 수 있는 기본 기능을 제공합니다. 그러나
대부분의 조직들은 이동 클라이언트를 지원하기 위해 기존 클라이언트/서버 응용 프로그램이나 파일 공유 응용 프로그램을 변환하고자 하지 않을 것입니다. SQL Server 7.0을 기반으로 한 클라이언트/서버 응용 프로그램은 중대한 변경을 요구하지 않습니다. 예를 들어, 개발자는 중앙 SQL Server 데이터베이스와의 동기화 프로세스를 초기화하는 응용 프로그램에 새로 고침 기능이나 동기화 기능을 추가하려 할 수도 있습니다. 데스크톱과 엔터프라이즈 간의 SQL Server의 기본 병합 복제 기능과 확장성을 이용하려면 응용 프로그램을 SQL Server 7.0으로 변환해야 합니다. 다음은 기존 응용 프로그램을 마이그레이션하는 데 유용한 도구들입니다. 데이터 마이그레이션Microsoft는 SQL Server 7.0으로 데이터를 마이그레이션하는 데 유용한 리소스(도구, 서비스, 설명서)를 제공합니다. Microsoft SQL Server 7.0으로 데이터를 마이그레이션하는 데 대한 자세한 내용은 SQL Server 웹 사이트 http://www.microsoft.com/korea/sql/을 참조하십시오. Microsoft SQL Server 7.0 Data Transformation Service(DTS)는 모든 ODBC 또는 OLE DB 데이터 원본과 데이터를 동적으로 주고 받습니다. DTS에는 데이터 변환을 표시하는 그래픽 도구가 들어 있습니다. 데이터를 SQL Server로 이동하거나 정식 일정에 따라 데이터를 변환할 때 이 기능을 사용할 수 있습니다. Microsoft Access 2000은 Jet 엔진과 MSDE(Microsoft Database Engine)를 모두 지원합니다. MSDE는 Microsoft Office 2000에 포함되어 있으며, SQL Server 7.0과 동일한 코드베이스를 공유합니다. 개발자는 Access 2000을 사용하여 기존 Access 응용 프로그램을 SQL Server로 업사이즈하거나 새로운 응용 프로그램을 개발할 수 있습니다. Access 2000 업사이즈 도구는 모든 테이블과 데이터를 SQL Server로 이동하고, 참조 무결성, Access 뷰, 인덱스 정의를 SQL Server에 마이그레이션합니다. Microsoft Visual FoxPro 5.0을 사용하여 응용 프로그램을 SQL Server로 이동할 수 있습니다. Visual FoxPro의 일부인 SQL Server 업사이즈 마법사는 테이블, 뷰, 참조 무결성, 인덱스 정의, 데이터를 모두 SQL Server로 이동합니다. 응용 프로그램 마이그레이션응용 프로그램을 다른 데이터베이스에서 실행하고 있는 경우, DTS를 사용하여 데이터를 이동하는 데에는 ODBC나 OLE DB만 필요합니다. Microsoft SQL Server 7.0에서 실행할 응용 프로그램 마이그레이션에 대한 자세한 내용은 SQL Server 웹 사이트 http://www.microsoft.com/korea/sql을 참조하십시오. 이동 컴퓨터용 응용 프로그램 관리이동 컴퓨터용 응용 프로그램은 LAN 기반의 응용 프로그램보다 더 많은 관리가 필요할 수 있습니다. 수많은 이동 클라이언트를 지원해야 하는 환경에서는 아래와 같은 관리 작업이 늘어날 수 있습니다.
Microsoft Systems Management Server(SMS)는 SQL Server 7.0, PWS, 클라이언트 응용 프로그램 코드를 여러 클라이언트에 설치하기 위한 기본 솔루션입니다. 여러 기능 중에서 SMS는 시중에서 구입할 수 있는 프로그램과 조직 내에서 사용하는 응용 프로그램을 무인 배포하는 기능을 제공합니다. Microsoft SMS에 대한 자세한 내용은 SMS 웹 사이트 /smsmgmt/를 참조하십시오. SMS를 사용하는 방법 외에 SQL Server와 PWS를 무인 설치하고 구성하는 방법이 있습니다. Visual Studio에서 작성한 응용 프로그램을 무인 설치가 가능하도록 구성할 수 있습니다. 이 응용 프로그램에서는 SQL Server 데이터베이스를 미리 로드하지 마십시오. 복제를 설정하면 SQL Server 스냅샷 에이전트가 무인 설치 기능을 자동으로 수행하기 때문입니다. 관리 도구 아키텍처SQL Server 엔터프라이즈 관리자는 Microsoft BackOffice® 계열과 타사의 서버 제품을 관리하는 범용 도구인 MMC(Microsoft Management Console)의 스냅샷 구성 요소입니다. Windows 9x와 Windows NT 운영 체제가 둘 다 지원하는 MMC는 Visual Basic, Visual C++, PowerBuilder, Delphi 같이 COM을 지원하는 모든 프로그래밍 도구에서 제어할 수 있는 COM 기반의 구성 요소입니다. 또한 SQL Server는 사용자 정의 응용 프로그램을 작성할 때 사용할 수 있는 COM 구성 요소를 제공하므로 SQL-DMO, SQL-Namespace(SQL NS), SQL-DTS 및 복제 구성 요소 같은 SQL Server 데이터베이스를 완벽하게 관리할 수 있습니다. 이들 개체는 Microsoft가 SQL Server 7.0에서 관리 작업을 수행하는 기본 도구인 SQL Server 엔터프라이즈 관리자를 구축할 때 사용했을 정도로 성능이 뛰어납니다. SQL Server 엔터프라이즈 관리자 같은 그래픽 도구를 사용하거나 SQL-DMO 같은 COM 기반의 인터페이스를 사용하여 중앙에서 관리할 수 있는 SQL Server 수에는 제한이 없습니다. Windows 98 및 Windows NT용 Windows Scripting Host(WSH), Microsoft Visual Studio, Microsoft Office Visual Basic for Applications(VBA), IIS 4.0 ASP, PowerSoft PowerBuilder, COM을 지원하는 타사의 도구 등을 포함하여, COM을 지원하는 어떤 프로그래밍 언어로든 SQL-DMO 스크립트를 작성할 수 있습니다. 예를 들면 아래와 같습니다.
프로그래머는 SQL-DMO를 사용함으로써 SQL Server 데이터베이스를 실행하는 등록된 서버 그룹 전체를 백업하기 위해 몇 줄의 코드를 작성할 수 있습니다. SQL-DMO 개체 계층 및 예제 코드는 SQL Server 7.0, Microsoft Developers Network(MSDN) 및 기술 자료에 포함될 것입니다. SQL Server는 서버가 자체적인 모니터링 및 관리를 수행하고 반복 작업을 최소화할 수 있게 하는 동적 자체 관리 기능을 제공합니다. 또한 SQL Server 7.0은 데이터베이스 관리자의 작업을 용이하게 하는 40개 이상의 마법사와 작업 패드를 제공합니다. 다중 서버 관리 기능대부분의 데이터베이스 관리 작업은 반복적이며 많은 시간을 소모합니다. 관리자는 SQL Server 7.0을 사용하여 서버 그룹을 단일 엔티티로서 관리할 수 있습니다. 다중 서버 환경에서 마스터 SQL Server 서버는 작업을 분산시키고 대상 SQL Server 서버의 이벤트(작업 성공 또는 실패 알림)를 수신합니다. 마스터 서버는 대상 서버에서 수행할 모든 중앙 작업 복사본을 저장합니다. 예를 들어, 조직에 있는 모든 서버에 적용할 단일 백업 작업을 기록할 수 있습니다. 모든 작업은 SQL Server 에이전트가 관리합니다. SQL Server 에이전트는 데이터베이스 관리자가 백업, SQL Server 프로그램 또는 외부 프로그램 같은 유지 관리 기능 일정을 작성하는 데 도움을 줍니다. 또한 데이터베이스 관리자와 이들의 작업 일정 목록을 관리할 수 있고 특정 작업의 성공 또는 실패에 관해 호출기나 전자 메일로 알려줍니다. SQL Server는 서버에 예기치 못한 오류가 발생하면 운영자에게 이를 알리거나 수정 작업을 할 수 있는 프로그램을 실행합니다. 이러한 기능은 문제가 발생하기 전에 조치를 취할 수 있는 관리 도구를 제공하므로 여러 SQL Server 관리 비용을 절감할 수 있습니다. Sybase 관리 도구Sybase Central에서는 Sybase Adaptive Server Anywhere 6.0, PowerDynamo, Adaptive Server Enterprise 등을 관리할 수 있습니다. Sybase Central은 MMC와 유사하지만 아래와 같은 중요한 차이가 있습니다.
Sybase Adaptive Server Anywhere 6.0에는 기본 일정 조정 기능과 경고 알림 기능이 없습니다. 따라서 이 제품만 사용하면 서버를 사전 행동적으로 관리할 수가 없습니다. SQL Server 7.0 보안 모델은 Windows NT 기반 사용자와 그룹을 지원하며 SQL Server 사용자 및 역할도 지원합니다. Windows NT와의 통합 기능을 개선하면 SQL Server 7.0의 융통성이 향상됩니다. 데이터베이스 사용 권한을 Windows NT 사용자나 그룹에 직접 할당할 수 있습니다. 또한, Windows NT 사용자와 그룹 및 SQL Server 사용자와 역할이 모두 포함되도록 SQL Server 역할을 정의할 수 있습니다. SQL Server 사용자는 다중 SQL Server 역할 구성원이 될 수 있습니다. 이렇게 하면 데이터베이스 관리자는 개별 사용자 계정을 사용하지 않고 Windows NT 그룹이나 SQL Server 역할을 통해 직접 SQL Server 사용 권한을 관리할 수 있습니다. dbcreator, securityadmin, sysadmin 고정 서버 역할 같은 시스템 정의 서버와 데이터베이스 역할은 융통성과 향상된 보안 기능을 제공합니다. SQL Server 7.0에서 작업할 경우에는 인증 및 사용 권한 확인 단계를 거치게 됩니다. 인증 단계에서는 로그인 계정에 액세스하는 사용자를 확인하고 이 사용자가 SQL Server에 연결할 자격이 있는지 확인합니다. 인증이 통과되면 사용자는 SQL Server로 연결됩니다. 이제 사용자는 사용자 로그인에 매핑된 각 데이터베이스의 계정을 사용하여 서버의 데이터베이스에 액세스할 권한이 필요합니다. 사용 권한 유효성 검사 단계는 사용자가 SQL Server의 데이터베이스에서 수행할 수 있도록 허용된 작업을 제어합니다. Windows NT 그룹이나 사용자에게 직업 사용 권한을 부여함으로써 이 계정의 매핑을 생략할 수도 있습니다. SQL Server에 연결된 사용자가 수행할 수 있는 작업은 사용자의 보안 계정, Windows NT 그룹 또는 이 보안 계정이 속한 역할 계층에 부여된 사용 권한에 의해 결정됩니다. 사용자는 어떤 작업을 수행하든 이에 따른 사용 권한을 갖고 있어야 합니다. SQL Server 엔터프라이즈 관리자, Transact-SQL, SQL-DMO는 로그인을 할당하고 사용 권한을 지정하는 기능을 제공합니다. Sybase 보안Sybase Adaptive Server Anywhere 6.0은 Windows NT 기반의 통합 보안을 위해 제한적인 지원을 제공합니다. 로그인 권한은 Windows NT 사용자에게는 부여할 수 있지만 Windows NT 사용자 그룹에 부여할 수는 없습니다. 즉, 데이터베이스 보안이나 통합 보안 사용 여부에 관계 없이 모든 사용자를 개별적으로 입력해야 합니다. 또한 Sybase Adaptive Server Anywhere 6.0은 데이터베이스 보안 역할을 지원하지 않기 때문에 응용 프로그램 관리 구조를 설정하기가 더 어렵습니다. 원격 사용자를 위해 병합 복제를 구성하려면 아래 단계를 수행합니다.
가능하다면 클라이언트에서 익명 가입을 설정합니다. 일반 가입의 경우 가입자에 대한 세부 정보는 게시자에 저장되며, 각 가입자에 대한 성능 정보는 배포자에 보관됩니다. 그러나 익명 가입자에 대한 정보는 저장되지 않습니다. 여러 가입자가 있거나 세부 정보를 관리하는 오버헤드가 생기지 않도록 하려면 익명 가입을 허용할 수 있습니다. 또한 이 방법은 가입자가 인터넷으로 익명 FTP를 사용할 수 있도록 하고자 할 때 유용합니다. 대부분의 조직은 사용자 별로 데이터베이스를 분할합니다. 예를 들어, 영업 관리자는 자신이 담당하는 지역의 계정만 알면 됩니다. 이런 경우에는 각 사용자에 대해 별도의 게시를 설정함으로써 관련 데이터만 수신하도록 하는 것이 한 가지 방법입니다. SQL Server를 사용하면 게시자에게 사용자 이름과 컴퓨터 이름을 매개 변수로 전달할 수 있으므로 이 과정이 단순해집니다. 즉, 하나의 게시로 여러 사용자를 관리할 수 있습니다. 사용자 정의 게시를 필요로 하는 클라이언트가 여럿인 경우에는 SQL-DMO로 이 과정을 자동화하는 방법이 있습니다. SQL-DMO를 사용하면 긴 시간을 들여 클라이언트를 일일이 설정할 필요가 없습니다. 중앙 데이터베이스와 이동 클라이언트 간에 복제를 사용할 수 있도록 설정한 경우에는 복제 작업을 모니터할 수 있습니다. SQL Server 엔터프라이즈 관리자에는 익명이 아닌 가입자 별로 경우 모든 복제 작업의 성공 여부를 기록하는 복제 모니터가 포함되어 있습니다. 이러한 정보는 SQL Server 테이블에 저장되므로 복제 작업 보고서를 쉽게 만들 수 있습니다. Windows NT는 Windows NT 응용 프로그램 이벤트 로그와 성능 모니터를 지원하므로 관리 콘솔을 위한 기본 운영 체제입니다. 문제가 발생하면 전자 메일이나 호출기로 알림 메시지를 제공하도록 경고 기능을 설정할 수 있습니다. 경고 메시지에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오. Sybase 병합 복제Sybase Adaptive Server Anywhere 6.0은 별도의 모듈을 사용하여 SQL Remote라는 이동 클라이언트를 관리합니다. 데이터베이스 관리자는 운영 체제에 의존하지 않고 각 원격 사용자에 대해 사용자 이름, 전송 프로토콜 및 주소를 지정해야 합니다. 또한 Sybase Adaptive Server Anywhere 6.0을 사용할 때 관리자는 이동 클라이언트에 스냅샷을 설치해야 합니다. SQL Server 7.0은 초기 스냅샷을 자동으로 실행합니다. 데이터가 정확하게 분할되어 있으면 복제 충돌을 최소화해야 합니다. 데이터 소유권을 지정하여 동기화 충돌을 최소화할 수 있습니다. 예를 들어, 영업 담당자는 다른 영업 담당자의 판매 지역 데이터를 변경하지 못하도록 하고 영업 관리자에게는 여러 지역의 데이터를 변경할 수 있는 권한을 주고자 하는 경우가 있을 것입니다. SQL Server 7.0은 기본 규칙이나 사용자 정의 규칙을 사용하여 충돌을 자동으로 관리함으로써 충돌 문제를 처리할 수 있는 융통성 있는 접근 방법을 제공합니다. SQL Server 7.0은 기본적으로 우선 순위를 기준으로 충돌 문제를 해결합니다. 모든 가입자와 게시자에 대해 0에서 100 사이의 숫자가 지정됩니다. 충돌이 발생할 때마다 우선 순위가 가장 높은 클라이언트가 변경한 사항이 우선적으로 처리됩니다. 이러한 우선 순위 규칙을 사용하면 충돌 문제 해결 메커니즘은 우선 순위가 가장 높은 사용자가 변경한 사항은 취소하지 않는다는 장점이 있습니다. 우선 순위가 낮은 클라이언트가 뒤이어 행을 변경할 수는 있지만, 충돌이 발생하면 우선 순위가 높은 복제가 항상 먼저 적용됩니다. 우선 순위가 같은 경우에는 중앙 데이터베이스 서버의 변경 사항이 먼저 적용됩니다. 전체 동기화의 경우에는 한 사이트가 항상 중앙 데이터베이스 서버의 역할을 합니다. 우선 순위 기반의 접근 방법을 사용하지 않을 경우 SQL-DMO를 사용하여 충돌 해결 에이전트를 직접 만들 수 있습니다. Visual Studio, C++ 또는 COM을 지원하는 다른 언어를 사용하여 충돌 해결 에이전트를 작성할 수 있습니다. Sybase 충돌 해결Sybase Adaptive Server Anywhere 6.0은 테이블 트리거로 충돌 문제 해결을 지원합니다. 그러나 게시된 테이블마다 충돌 해결 스크립트를 작성해야 합니다. 우선 순위를 기반으로 한 해결 방법을 지원하지 않으며 기본값도 없습니다. 우선 순위를 기반으로 한 해결 방법을 사용하지 않고는 안정적인 충돌 해결 스크립트를 작성하기가 어렵습니다. Watcom SQL은 Sybase Adaptive Server Anywhere 6.0의 충돌 문제를 해결할 수 있도록 지원되는 유일한 언어입니다. 데이터는 중앙 데이터베이스에서 복제되기 때문에 원격 데이터베이스를 백업할 필요가 없습니다. 로컬 백업이 필요한 경우 관리자는 백업 또는 복원을 수행할 간단한 백업 스크립트를 작성할 수 있습니다. 지정된 시간에 SQL Server 에이전트를 사용하거나 SQL-DMO 인터페이스를 사용하는 응용 프로그램에서 백업 또는 복원 스크립트를 실행할 수 있습니다. 다른 데이터베이스 관리 작업도 유사한 방법으로 관리할 수 있습니다. SQL Server에는 관리 스크립트를 생성할 데이터베이스 관리 마법사가 들어 있습니다. 사양아래 표는 Microsoft SQL Server 7.0과 Sybase Adaptive Server Anywhere 6.0의 차이를 개략적으로 나타낸 것입니다.
* 자료 출처: Sybase Adaptive Server Anywhere Reviewer's Guide 결론Microsoft SQL Server 7.0은 원격 사용자나 연결되지 않은 사용자가 있는 응용 프로그램을 쉽게 개발하고 관리할 수 있도록 해주며, 단일 클라이언트 컴퓨터나 대형 서버에 설치할 수 있는 확장 가능한 RDBMS입니다. 기업의 개발자와 독립 소프트웨어 공급업체(ISV)는 Microsoft SQL Server 7.0을 사용함으로써 여러 종류의 하드웨어에서 실행할 단일 프로그램을 작성할 수 있습니다. SQL Server 7.0은 아래와 같은 이유로 이동 컴퓨터용 응용 프로그램에 주로 사용됩니다.
Microsoft SQL Server에 대한 자세한 내용은 SQL Server 웹 사이트 http://www.microsoft.com/korea/sql/을 참조하십시오. © 1998 Microsoft Corporation.All rights reserved. 이 문서에 포함된 정보는 발행일 현재 논의중인 문제에 대한 Microsoft Corporation의 현재 입장을 대변하는 것입니다. 지속적인 개발 작업의 특성상, 그리고 Microsoft는 변화하는 시장 조건에 부응해야 하므로, 이 문서는 Microsoft의 공식적인 약속으로 해석되어서는 안되며 Microsoft는 발행일 이후 제시되는 어떠한 정보에 대해서든 정확성을 보장할 수 없습니다. 이 백서는 오직 정보를 제공하기 위한 것입니다. MICROSOFT는 이 설명서에서 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다. Microsoft, ActiveX, BackOffice, FrontPage, FoxPro, Visual Basic, Visual Interdev, Visual J++, Windows, Windows NT는 Microsoft Corporation의 등록 상표입니다. Java는 Sun Microsystems, Inc의 등록 상표입니다. 여기에 언급된 다른 제품이나 회사 이름은 각각 그 소유자의 등록 상표일 수 있습니다. Microsoft Corporation One Microsoft Way Redmond, WA 98052-6399 USA Microsoft 부품 번호: 098-81534 |