이동 컴퓨터용 응용 프로그램 개발: 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는 이동 컴퓨터용 데이터베이스 응용 프로그램을 개발하는 데 아래와 같은 기본 기능을 제공합니다.

  • 클라이언트와 서버에서 모두 실행할 수 있고 클라이언트나 서버에서 업데이트를 쉽게 동기화할 수 있는 RDBMS 엔진
  • 데이터베이스 관리자가 클라이언트 코드와 데이터를 쉽게 배포하고 여러 클라이언트와 서버 간의 동기화를 관리할 수 있도록 해 주는 관리 도구
  • 개발자가 기존의 클라이언트/서버 응용 프로그램을 이동 클라이언트를 지원하는 응용 프로그램으로 쉽게 마이그레이션할 수 있도록 해 주는 도구

이동 클라이언트를 위한 데이터베이스 응용 프로그램을 평가할 때는 아래와 같은 사항을 확인하십시오.

  • 공급업체가 이동 클라이언트에서 기업급 서버에 이르는 단일 RDBMS 엔진을 제공합니까?
  • 로컬 및 중앙 RDBMS 엔진은 자동 트랜잭션을 지원합니까?
  • RDBMS 엔진은 오프라인 상태에서 데이터 배달을 보장하는 양방향 병합 복제를 지원합니까?
  • RDBMS 엔진은 다른 RDBMS 엔진으로 유형이 다른 복제를 지원합니까?
  • RDBMS 엔진은 여러 이동 클라이언트를 지원할 수 있습니까?
  • 데이터베이스 엔진과 복제 엔진을 클라이언트에서 실행할 때 필요한 시스템 요구 사항을 무엇입니까?
  • 여러 이동 클라이언트에 대한 보안을 관리하기가 쉽습니까?
  • 사용자들이 개별적으로 동일한 레코드를 다른 정보로 업데이트할 때 충돌을 해결할 수 있도록 제공된 도구와 기본 기능은 무엇입니까?
  • 조직의 요구에 맞게 관리 도구를 쉽게 사용자 정의할 수 있습니까?
  • 도구의 기존 기능들이 그대로 유지되었습니까? 아니면 데이터베이스 관리자가 새로운 프로시저와 프로그래밍 언어를 학습해야 데이터베이스를 효율적으로 관리할 수 있습니까?
  • 데이터베이스 관리자가 여러 클라이언트를 하나의 논리 그룹으로 관리할 수 있습니까?
  • 관리 및 시스템 모니터링 도구가 운영 체제에 제대로 통합되어 있습니까?
  • 데이터베이스 엔진과 데이터베이스를 클라이언트에 배포하기가 쉽습니까?
  • 기존 클라이언트/서버 응용 프로그램을 이동 컴퓨터용 응용 프로그램으로 쉽게 변환할 수 있습니까?
  • 테이블, 스키마, 데이터, 참조 무결성 정보를 Microsoft Access나 Microsoft FoxPro® 같은 데스크톱 데이터베이스에서 여러 이동 클라이언트를 지원하는 RDBMS 엔진으로 업사이즈할 수 있는 도구에는 어떤 것들이 있습니까?
  • 성능이 가장 뛰어난 3계층 응용 프로그램을 구축하는 데 사용할 수 있는 도구에는 어떤 것들이 있습니까?

SQL Server 7.0으로 이동 컴퓨터용 응용 프로그램 지원

Microsoft SQL Server 7.0은 Microsoft Windows NT®, Windows NT Server Enterprise Edition, Microsoft Windows 95, Microsoft Windows 98 운영 체제에서 실행되는 완벽한 기능을 갖춘 기업급 RDBMS가 될 것입니다.

확장성과 성능에 대한 고객의 질문은 아래와 같이 요약할 수 있습니다.

  • 랩톱에서 기업급 서버로 응용 프로그램을 이동하기가 쉽습니까?
  • 한 서버에서 특정 온라인 트랜잭션 처리(OLTP)나 의사 결정 지원 시나리오를 지원할 수 있는 동시 클라이언트 컴퓨터는 몇 대입니까?
  • 대용량 데이터베이스에서 복잡한 쿼리를 수행하는 데 걸리는 응답 시간은 어느 정도입니까?
  • RDBMS는 대용량 데이터베이스 백업, 복원, 유지 관리를 지원하도록 디자인되었습니까?

SQL Server는 이동 컴퓨터용 응용 프로그램을 개발할 때 SQL Server에서 작성된 응용 프로그램을 Windows 9x 랩톱에서 Windows NT Server Enterprise Edition, 다중 프로세서 클러스터로 바꾸지 않고 실행할 수 있는 기능을 제공합니다. SQL Server 7.0은 이동 클라이언트에서 고급 엔터프라이즈 클래스 서버에 이르는 단일 코드베이스를 제공하는 첫째 RDBMS 엔진입니다.

mobile01

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에는 이동 클라이언트나 작업 그룹 서버에 있는 소규모 데이터베이스를 지원하는 아래와 같은 기능이 포함되어 있습니다. 이러한 환경에서는 관리의 용이함이 주요 관건입니다.

동적 메모리

동적 메모리는 메모리 할당 및 사용을 최적화함으로써 성능을 개선합니다. 단순한 디자인은 다른 리소스 관리자와의 충돌을 최소화합니다. 이 기능을 사용하면 관리자가 특정 데이터베이스의 캐시 크기를 미리 정의할 필요가 없기 때문에 Windows 9x와 Windows NT Workstation 운영 체제에서 SQL Server를 쉽게 관리할 수 있습니다.

동적 공간 관리

데이터베이스는 구성할 수 있는 범위 내에서 자동으로 늘어나거나 줄어들기 때문에 데이터베이스 관리자가 개입할 필요성을 최소화합니다. 공간을 미리 할당하거나 데이터 구조를 관리할 필요가 없습니다. 또한 동적 공간 관리는 이동 클라이언트의 관리 작업을 용이하게 해 줍니다.

자동 통계 관리

SQL Server는 데이터 분포에 대한 통계를 관리하여 쿼리 성능을 향상시킵니다. 즉, 응용 프로그램 개발자는 Transact-SQL 문에 있는 힌트로 쿼리 최적화 프로그램을 덮어쓰지 않고 쿼리 최적화 프로그램을 사용하여 최신 통계를 얻을 수 있습니다.

확장 가능한 저장 장치

디스크 포맷과 저장 하위 시스템은 아주 작은 규모의 데이터베이스에서 대용량 데이터베이스까지 확장할 수 있는 저장소를 제공합니다. 몇 가지 새로워진 점은 아래와 같습니다.
  • 데이터베이스 개체를 간단하게 파일에 매핑
  • 이 기능은 데이터베이스 개체를 특정 디스크에 매핑하여 I/O 로드 균형을 조정함으로써 관리의 복잡성은 줄이고 융통성은 향상시킵니다.

  • 효율적인 공간 관리
  • 페이지 크기가 2KB에서 8KB, 64KB I/O로 늘어났고, 열 한계가 늘어났으며, 가변 길이 문자 필드는 8KB로 늘어났고, 데이터를 언로드했다가 다시 로드하지 않고도 기존 테이블에서 열을 추가하고 삭제하는 기능이 추가되었습니다.

  • 테라바이트 크기의 데이터베이스 지원
  • 다시 디자인된 유틸리티들은 대용량 데이터베이스를 효율적으로 지원합니다.

대용량 데이터베이스 지원

SQL Server 7.0에는 대개 관리되는 서버 환경에 있는 대용량 데이터베이스를 지원하는 아래 기능이 포함됩니다. 이러한 환경에서는 효율성과 성능이 주요 관심사입니다.

해시 조인과 병합 조인

해시, 병합, 중첩된 루프 조인은 복잡한 쿼리를 처리할 때 사용할 수 있습니다. 하나의 쿼리에서 여러 가지 조인 형식을 사용할 수 있습니다. 쿼리 최적화 프로그램은 스타 스키마 조인 같은 특수한 조인 기능을 지원합니다.

상위 캐시 관리

일반적으로 I/O 용량이 커질수록 처리 속도가 빨라집니다. SQL Server 7.0에서 페이지 크기는 8KB, 확장 영역은 64KB이며, 대부분의 I/O 연산은 64KB 블록을 사용합니다. 스마트 I/O는 성능을 향상시키는 데 중요한 요소입니다. 보다 효율적인 미리 읽기 기능을 비롯하여 실제 행 순서로 스캔, 병렬 I/O 기능도 성능을 향상시킵니다.

병렬 쿼리

SQL Server 7.0은 다중 프로세서에서 인트라 쿼리 병렬 실행 기능을 제공합니다. 단일 쿼리는 병렬로 실행되므로 최상의 응답 시간을 제공합니다. 복잡한 분석에는 SMP(Symmetric Multi-Processor)를 실행하는 하드웨어를 사용할 수 있습니다.

동적 행 수준 잠금

데이터 행과 인덱스 항목에 대해서는 완전한 행 수준 잠금 기능이 구현됩니다. 동적 잠금은 모든 데이터베이스 사용에 대해 자동으로 최적의 잠금 수준(행, 페이지, 여러 페이지, 테이블)을 선택합니다. 이 기능은 최적의 병행성 수준을 제공합니다.

대용량 메모리 지원

SQL Server 7.0 Enterprise Edition은 Windows NT Server 5.0 운영 체제를 실행하는 Alpha 프로세서 기반의 시스템으로 4GB 이상의 메모리 주소 지정 기능을 지원합니다.

미리 읽기

스마트 미리 읽기 로직은 성능을 개선하고 수동 조정의 필요성을 없앱니다.

백업 및 복원

SQL Server 7.0의 병렬 백업 및 복원 유틸리티는 장치 속도에 의해서만 제한을 받습니다. 전체 온라인 백업 도중에도 서버 트랜잭션 처리 속도를 빠르게 유지합니다.

대량 복사 프로그램(BCP)

bcp 유틸리티는 신속한 가져오기와 내보내기 전송 기능을 제공합니다. bcp 유틸리티는 OLE DB를 사용하며 쿼리 프로세서와 함께 데이터를 신속하게 로드 및 언로드합니다.

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 정도의 메모리로도 실행된다고 주장합니다. 그러나 이것은 아래 사항을 고려하지 않은 메모리 용량입니다.

  • 중요한 작업을 수행하는 데 2MB 캐시 메모리가 필요합니다.
  • Java를 사용할 경우 Java Virtual Machine은 데이터베이스마다 2MB의 추가 메모리를 필요로 하며, 데이터베이스 메모리 캐시를 늘려야 데이터베이스에서 Java를 사용할 수 있습니다. 이 메모리는 다시 할당할 수 없습니다.
  • SQL 원격 동기화 엔진에 2MB의 기본 메모리가 필요합니다.

실질적으로 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를 사용하면 게시에 매개 변수를 전달할 수 있으므로 여러 가입자를 지원하는 과정을 단순화할 수 있습니다. 예를 들어, 관리자가 사용자 이름과 컴퓨터 이름을 매개 변수로 게시에 전달하면 각 영업 담당자는 자신의 영업 구역에 대한 데이터만 받아볼 수 있습니다.

mobile04

병합 복제를 지원해야 하는 아키텍처는 아래 요인에 따라 크게 달라질 수 있습니다.

  • 시스템이 지원해야 할 사용자 수
  • 동기화할 때 사용할 회선 종류(전화선, ISDN 회선 또는 LAN)
  • 동기화를 필요로 하는 테이블 크기와 수
  • 예상 업데이트 빈도(예: 매일, 매주, 기타)

신중하게 구성된 아키텍처와 엄격한 운영 절차는 이동 컴퓨터용 응용 프로그램을 성공적으로 구현하는 데 중요한 요소입니다. 예를 들어, 여러 클라이언트가 동시에 하나의 데이터베이스와 동기화되도록 구성하는 것은 실용적이지 못합니다. 이렇게 하면 네트워크의 실제 리소스를 무리하게 사용할 뿐만 아니라 중앙 데이터베이스를 너무 자주 업데이트하게 되어 아무도 최신 버전의 데이터를 사용할 수 없게 될 수 있습니다.

이러한 문제를 해결하려면 위치상 이동 클라이언트와 가능한 가깝게 있는 여러 서버로 중앙 데이터베이스를 분할하면 됩니다. 아래 그림은 여러 클라이언트를 지원하도록 데이터베이스를 분할하는 방식을 나타낸 것입니다.

아래와 같은 방법으로 병합 복제의 성능 및 확장성을 향상시킬 수 있습니다.

  • 최대 사용 시간이 아닐 때 클라이언트와 서버 데이터베이스 간에 복제가 이루어지도록 일정을 세웁니다.
  • 필요할 때만 이동 클라이언트에서 조회 테이블을 새로 고칩니다.
  • 각 이동 클라이언트가 구체적으로 요청한 행과 열만 복제합니다.
  • 여러 클라이언트가 동시에 동기화하지 않는 프로시저를 구현합니다.
  • 익명 가입 사용

SQL Server 7.0은 아래와 같은 여러 가지 통신 방법을 사용하여 업데이트를 동기화합니다.

  • LAN에 기본 연결을 제공하는 원격 액세스 서비스(RAS)
  • 표준 인터넷 연결(FTP)

SQL Server 7.0은 통신 프로토콜에 관계 없이 업데이트가 전달되었는지 확인합니다. 네트워크 라이브러리 지원에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

Sybase 병합 복제

Sybase Adaptive Server Anywhere 6.0은 SQL Remote라는 메시지 기반의 복제 시스템을 사용하여 클라이언트와 서버 간에 업데이트를 동기화합니다. Sybase SQL Remote는 파일, FTP, MAPI, SMTP, VIM 메시지 기반의 프로토콜을 사용합니다.

메시지 기반의 프로토콜을 사용할 때는 아래와 같은 몇 가지 문제가 있습니다.

  • 사용자가 전자 메일을 설치하고 구성해야 합니다.
  • SMTP나 VIM을 사용할 경우에는 Sybase Adaptive Server Anywhere 6.0에서 작성한 메시지가 사용자의 받은 편지함에 나타날 수 있습니다. SQL Remote에서 작성한 메시지를 사용자가 삭제하면 동기화되지 않습니다.
  • 파일 프로토콜은 관리하기 어려울 수 있는 파일 공유 시스템입니다.
  • 관리자는 각 사용자의 메시징 주소를 따로 입력해야 합니다.

대부분의 조직은 여러 공급업체에서 제공하는 데이터베이스를 지원해야 합니다. 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) 구성 요소는 분산 환경에 구성 요소 통합을 위한 토대를 제공합니다. 이는 이동 컴퓨터용 응용 프로그램을 개발할 때 아래와 같은 여러 가지 장점을 제공합니다.

  • COM 구성 요소를 제대로 구성하면 따로 수정할 필요 없이 Windows 운영 체제 클라이언트나 서버에서 실행할 수 있습니다. 즉, 이동 클라이언트는 LAN 기반 클라이언트와 동일한 코드를 공유할 수 있습니다.
  • Microsoft Visual C++, Microsoft Visual Basic®, Microsoft Visual J++™, Microsoft Visual FoxPro® 등을 포함하는 Microsoft Visual Studio 6.0은 Windows DNA 프레임워크용 엔터프라이즈 응용 프로그램을 구축할 수 있는 완벽한 개발 도구입니다. 개발자는 타사의 개발 도구를 사용하여 Microsoft SQL Server 응용 프로그램을 만들 수 있습니다.
  • Microsoft ActiveX® 데이터 개체(ADO)인 OLE DB용 API는 다양한 데이터 원본에 대한 개체 기반의 인터페이스를 클라이언트와 서버 모두에게 제공합니다.

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은 완전히 프로그램 가능한 웹 서버로서, 개발자에게 아래와 같은 기본 기능을 제공합니다.

  • Active Server Page(ASP)
  • Visual Basic Scripting Edition, Microsoft JScript® 또는 PerlScript에서 서버 기반의 스크립트를 작성할 수 있습니다.

  • ADO
  • Visual Studio 도구를 사용하여 ADO 개체 모델을 통해 모든 OLE DB 또는 ODBC 데이터 원본에 액세스할 수 있습니다.

  • COM 및 Microsoft Transaction Server
  • 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는 웹 응용 프로그램을 개발하고 이를 오프라인 상태에서 액세스할 수 있는 기본 기능을 제공합니다. 그러나

  • 프로그래머는 데이터베이스에 연결하고 데이터에 서식을 설정하기 위해 JScript의 고유 확장을 알아야 합니다.
  • PowerDynamo는 COM 구성 요소를 지원하거나 외부 응용 프로그램을 호출하지 않고, PowerDynamo는 응용 프로그램 기능, 호환성 및 확장성을 제한합니다.
  • Sybase Adaptive Server Anywhere 6.0은 트랜잭션 지원을 제공하지만 개발자는 웹 페이지를 단일 트랜잭션으로 정의할 수 없습니다.

대부분의 조직들은 이동 클라이언트를 지원하기 위해 기존 클라이언트/서버 응용 프로그램이나 파일 공유 응용 프로그램을 변환하고자 하지 않을 것입니다. 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 PWS를 설치해야 합니다.
  • 사용자를 위한 보안 설정
  • 병합 복제 구성 및 모니터링
  • 충돌 문제 해결
  • 원격 데이터베이스 백업

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를 Microsoft Excel과 함께 사용하여 서버 그룹 전체의 데이터베이스 크기를 그림으로 나타냅니다.
  • SQL-DMO를 Visual Basic과 함께 사용하여 데이터베이스를 백업하는 프로그램을 만듭니다.
  • 관리자가 입력한 사항을 토대로 복제를 설정하는 ASP 응용 프로그램을 만듭니다.

프로그래머는 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 Central을 확장하기 위한 게시된 API나 COM 인터페이스가 없으므로, 데이터베이스 관리자는 다른 응용 프로그램에서 Sybase Central 관리를 자동화할 수가 없습니다.
  • 데이터베이스 관리자는 Watcom SQL 스크립트를 사용하여 작업을 자동화해야 합니다. Transact-SQL과 마찬가지로 Watcom SQL은 기본 언어입니다. Watcom SQL은 유사한 작업을 수행하는 데 있어서 SQL-DMO보다 많은 코드를 필요로 합니다. 또한, Watcom SQL 프로그래밍 도구 선택이 제한되어 있습니다.
  • Sybase에서 Watcom SQL을 디버깅할 수 없습니다.

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은 데이터베이스 보안 역할을 지원하지 않기 때문에 응용 프로그램 관리 구조를 설정하기가 더 어렵습니다.

원격 사용자를 위해 병합 복제를 구성하려면 아래 단계를 수행합니다.

  1. 이동 클라이언트가 가입을 수신할 중앙 데이터베이스에 병합 게시와 기사를 설정합니다.
  2. SQL Server 엔터프라이즈 관리자에서 이동 클라이언트를 등록합니다.
  3. 이동 클라이언트를 게시에 가입시킵니다.

가능하다면 클라이언트에서 익명 가입을 설정합니다. 일반 가입의 경우 가입자에 대한 세부 정보는 게시자에 저장되며, 각 가입자에 대한 성능 정보는 배포자에 보관됩니다. 그러나 익명 가입자에 대한 정보는 저장되지 않습니다.

여러 가입자가 있거나 세부 정보를 관리하는 오버헤드가 생기지 않도록 하려면 익명 가입을 허용할 수 있습니다. 또한 이 방법은 가입자가 인터넷으로 익명 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 사이의 숫자가 지정됩니다. 충돌이 발생할 때마다 우선 순위가 가장 높은 클라이언트가 변경한 사항이 우선적으로 처리됩니다.

mobile08

이러한 우선 순위 규칙을 사용하면 충돌 문제 해결 메커니즘은 우선 순위가 가장 높은 사용자가 변경한 사항은 취소하지 않는다는 장점이 있습니다. 우선 순위가 낮은 클라이언트가 뒤이어 행을 변경할 수는 있지만, 충돌이 발생하면 우선 순위가 높은 복제가 항상 먼저 적용됩니다.

우선 순위가 같은 경우에는 중앙 데이터베이스 서버의 변경 사항이 먼저 적용됩니다. 전체 동기화의 경우에는 한 사이트가 항상 중앙 데이터베이스 서버의 역할을 합니다.

우선 순위 기반의 접근 방법을 사용하지 않을 경우 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의 차이를 개략적으로 나타낸 것입니다.

항목
Microsoft SQL Server 7.0
Sybase Adaptive Server Anywhere 6.0*
참고
클라이언트 하드웨어 요구 사항    
IBM PC 또는 호환 컴퓨터사용 가능사용 가능 
DEC Alpha사용 가능사용 불가능 
RAM(전체 시스템)32MB 32MBSybase 설명서에는 8-16MB로 나와 있습니다. 이것은 운영 체제가 차지하는 메모리를 포함하지 않은 크기입니다.
디스크 공간(도움말, 예제 포함되지 않음)66MB(공유 구성 요소가 이미 설치된 경우에는 41MB)50MBMicrosoft SQL Server 크기에는 마스터 시스템 데이터베이스 크기가 포함되어 있습니다.
운영 체제 플랫폼  Sybase Central, PowerDynamo 및 기타 도구는 Windows 9x 또는 Windows NT를 필요로 합니다.
Windows 9x사용 가능사용 가능 
Windows 3.1사용 불가능사용 가능 
Windows NT사용 가능사용 가능 
Novell Netware사용 불가능사용 가능 
네트워크 지원   
명명된 파이프(Windows NT전용)사용 가능사용 불가능 
TCP/IP 소켓사용 가능사용 가능 
Novell Netware IPX 사용 가능사용 가능 
Appletalk사용 가능사용 불가능 
Banyan VINES사용 가능사용 불가능 
공유 메모리(로컬 전용)사용 가능사용 불가능 
NetBIOS사용 불가능사용 가능 
SQL ComplianceSQL-92SQL-92 
데이터베이스 기능   
트랜잭션 처리사용 가능사용 가능 
INSERT, UPDATE, DELETE 트리거사용 가능사용 가능 
저장 프로시저사용 가능사용 가능 
확장 저장 프로시저(동적 연결 라이브러리)사용 가능사용 가능 
양방향 스크롤 커서 사용 가능사용 가능 
행 수준 잠금사용 가능사용 가능 
비용 기반의 쿼리 분석기사용 가능사용 가능 
병렬 쿼리 사용 가능사용 불가능 
유형이 다른 조인사용 가능사용 불가능 
온라인 백업 및 복구사용 가능사용 가능 
BLOB(대용량 이진 개체) 지원 사용 가능사용 가능 
대칭적 다중 프로세서(SMP) 실행 지원사용 가능사용 가능 
포함된 SQL 지원사용 가능사용 가능 
유니코드 지원사용 가능사용 가능 
가져오기/내보내기모든 ODBC 데이터 원본xBASE, ASCII, Lotus, DIF 
Microsoft Distributed Transaction Coordinator(MS DTC)사용 가능사용 불가능 
데이터베이스 통계   
서버당 데이터베이스 수32,767255 
인덱스 종류클러스터된 인덱스와 클러스터되지 않은 인덱스클러스터되지 않은 인덱스 
최대 데이터베이스 크기1,048,516TB12TB 
인덱스당 열 수16999 
개체 이름 길이(문자 단위)128128  
테이블 통계   
테이블당 인덱스 수24932,767 
최대 테이블 크기데이터베이스 크기로 제한1,024GB 
쿼리당 테이블 수25632,767 
데이터베이스당 테이블 수 20억32,767 
테이블당 열 수1,024999 
행 크기8,060바이트2GB 
열당 BLOB 크기2GB32,767 
테이블당 행 수데이터베이스 크기로 제한최대 테이블 크기  
보안   
통합 Windows NT 보안사용 가능사용 가능 
Windows NT 그룹 지원사용 가능사용 불가능 
역할에 따른 보안 사용 가능사용 불가능 
복제  Sybase는 확실한 복제를 위해 복제 서버 사용을 권장합니다.
트랜잭션(실시간에 가까운 트랜잭션)사용 가능사용 불가능 
병합(양방향)사용 가능사용 가능 
스냅샷사용 가능사용 불가능 
유형이 같은 복제사용 가능사용 불가능 
관리 도구   
중앙 관리 콘솔사용 가능사용 가능 
프로그램 가능한 관리 콘솔사용 가능사용 불가능 
그룹 관리사용 가능사용 불가능 
DTS사용 가능사용 불가능 
성능 모니터링사용 가능(Windows NT)사용 가능 
쿼리 분석기사용 가능사용 가능 
SQL 네트워크 트래픽을 추적할 쿼리 프로파일러 사용 가능사용 불가능 
마법사사용 가능사용 가능 
경고 알림사용 가능사용 불가능 

* 자료 출처: Sybase Adaptive Server Anywhere Reviewer's Guide

결론

Microsoft SQL Server 7.0은 원격 사용자나 연결되지 않은 사용자가 있는 응용 프로그램을 쉽게 개발하고 관리할 수 있도록 해주며, 단일 클라이언트 컴퓨터나 대형 서버에 설치할 수 있는 확장 가능한 RDBMS입니다. 기업의 개발자와 독립 소프트웨어 공급업체(ISV)는 Microsoft SQL Server 7.0을 사용함으로써 여러 종류의 하드웨어에서 실행할 단일 프로그램을 작성할 수 있습니다.

SQL Server 7.0은 아래와 같은 이유로 이동 컴퓨터용 응용 프로그램에 주로 사용됩니다.

  • SQL Server 7.0은 랩톱에서 고성능 엔터프라이즈 클래스 서버로 확장할 수 있는 단일 코드베이스를 제공합니다.
  • 동적 자체 구성이 가능하므로 클라이언트에서 따로 구성할 필요가 거의 없습니다.
  • 랩톱에서 고성능 SMP 클러스터 서버까지 포함하는 플랫폼에서 응용 프로그램을 변경하지 않고 실행할 수 있습니다.
  • SQL Server는 Microsoft Visual Studio를 사용하여 32비트 및 웹 기반의 데이터베이스 응용 프로그램을 만들고 디버깅할 수 있는 통합 환경을 제공합니다. 타사의 개발 도구 역시 SQL Server 7.0을 사용하여 개발을 지원합니다.
  • 다중 서버를 하나의 단위로 관리할 수 있으므로 여러 사용자 간에 복제를 관리하고 모니터하는 시간을 줄일 수 있습니다. 대규모 조직에서는 관리비를 줄이는 것이 중요한 문제일 수 있습니다.
  • 복제를 모니터할 수 있는 정교한 사전 대처식의 클라이언트 도구를 제공합니다.
  • Visual Studio와 타사의 도구를 사용하여 SQL-DMO로 사용자 정의 관리 도구를 쉽게 만들 수 있습니다.

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