Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クイック・スタート » Mobile Link チュートリアル » チュートリアル:Adaptive Server Enterprise 統合データベースと Mobile Link の使用

 

レッスン 2:統合データベースの準備

このチュートリアルでは、pubs2 データベースへの接続にデフォルトの sa アカウントを使用します。Adaptive Server Enterprise のインストール時点では、sa アカウントのパスワードは NULL です。このチュートリアルでは、NULL のパスワードが有効なパスワードに変更されていることを前提としています。Adaptive Server Enterprise で NULL のパスワードを変更する方法については、[external link] http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.sag1/html/sag1/sag1615.htm を参照してください。

このレッスンでは、Mobile Link 同期用の統合データベースのサイズを増やし、ユニークなプライマリ・キーを作成します。

統合データベースのサイズの増加

Mobile Link では、同期のためにシステム・テーブルなどのオブジェクトを pubs2 データベースに追加する必要があります。この処理を行うには、pubs2 データベースのサイズを増やす必要があります。

♦  統合データベースのサイズを増やすには、次の手順に従います。
  1. Adaptive Server Enterprise の isql ユーティリティを使用して、pubs2 データベースに sa として接続します。コマンド・プロンプトで、次のコマンドをすべて 1 行に入力して実行します。

    isql
    -U sa
    -P Your password for sa account
    -D pubs2

    Adaptive Server Enterprise にリモートでアクセスしている場合は、-S パラメータでサーバ名を指定します。

  2. データベースのサイズを増やすための所定のパーミッションを得るには、master データベースにアクセスする必要があります。isql で次のコマンドを実行します。

    use master
  3. Adaptive Server Enterprise では、データベースはディスクまたはディスクの一部に保存されます。pubs2 データベースのサイズを増やすには、次のコマンドを実行します (pubs2 が格納されているディスクを指定する必要があります)。

    ALTER DATABASE pubs2 ON disk name = 33
ユニークなプライマリ・キーの追加

同期システムでは、テーブルのプライマリ・キーは、異なるデータベース内の同じローを識別する唯一の方法であり、競合を検出する唯一の方法です。使用する各テーブルには、プライマリ・キーが必要です。プライマリ・キーが更新されることはありません。また、1 つのデータベースに挿入されたプライマリ・キーの値が別のデータベースに挿入されないようにする必要があります。

ユニークなプライマリ・キーを生成する方法は複数あります。このチュートリアルでは、簡単に操作を行うため、複合プライマリ・キー方式を使用します。この方式では、統合データベースとリモート・データベースにまたがってユニークな複数のカラムを使用してプライマリ・キーを作成します。

♦  ユニークなプライマリ・キーを統合データベースに追加するには、次の手順に従います。
  1. Adaptive Server Enterprise の isql ユーティリティを使用して、pubs2 データベースに sa として接続します。コマンド・プロンプトで、次のコマンドをすべて 1 行に入力して実行します。

    isql
    -U sa
    -P Your password for sa account
    -D pubs2

    Adaptive Server Enterprise にリモートでアクセスしている場合は、-S パラメータでサーバ名を指定します。

  2. 次のローは、手順 5 で salesdetail テーブルに対して作成した複合プライマリ・キーを基準とするとユニークではありません。操作を簡単にするために、次のコマンドを実行してこのローを削除します。

    DELETE FROM salesdetail 
    WHERE stor_id = '5023' 
    AND ord_num = 'NF-123-ADS-642-9G3' 
    AND title_id = 'PC8888'
    
    DELETE FROM salesdetail 
    WHERE stor_id = '5023' 
    AND ord_num = 'ZS-645-CAT-415-1B2' 
    AND title_id = 'BU2075'
  3. 次のインデックスは、手順 5 でのプライマリ・キーの作成に干渉しています。このインデックスを削除するには、次のコマンドを実行します。

    DROP INDEX authors.auidind
    DROP INDEX titleauthor.taind
    DROP INDEX titles.titleidind
    DROP INDEX sales.salesind
  4. ユニークなプライマリ・キーを追加します。

    ALTER TABLE au_pix ADD PRIMARY KEY (au_id)
    ALTER TABLE authors ADD PRIMARY KEY (au_id)
    ALTER TABLE titleauthor ADD PRIMARY KEY (au_id, title_id)
    ALTER TABLE titles ADD PRIMARY KEY (title_id)
    ALTER TABLE discounts ADD PRIMARY KEY (discounttype)
    ALTER TABLE stores ADD PRIMARY KEY (stor_id)
    ALTER TABLE sales ADD PRIMARY KEY (stor_id, ord_num)
    ALTER TABLE salesdetail ADD PRIMARY KEY (stor_id, ord_num, title_id)

これらのコマンドを追加すると、Mobile Link サーバでは問題なく統合データベースに接続し、任意の数のリモート・データベースと同期できるよう統合データベースを設定できるようになります。

注意

プライマリ・キーがない統合データベースとデータを同期することも可能です。ただし、他のテーブルでローを一意に識別するよう設計されたシャドー・テーブルで機能する同期イベントを自分で作成する必要があります。

すべてのデータベースに対してユニークなプライマリ・キー

レッスン 4 では、統合スキーマからリモート・スキーマを作成します。このため、リモート・スキーマのプライマリ・キーは統合スキーマと同じものになります。

プライマリ・キーがすべてのデータベースに対してユニークになるようにカラムが選択されています。sales テーブルでは、プライマリ・キーは stor_id と ord_num カラムで構成されています。リモート・データベースの sales テーブルに挿入されるすべての値には、ユニークな注文番号が必要です (stor_id の値は常に同じです)。これにより、リモートの各 sales テーブルで一意性が確保されます。統合データベースの sales テーブルのプライマリ・キーは、複数の書店でデータがアップロードされた場合の競合を防止する役割があります。書店ごとに stor_id の値が異なるため、1 軒の書店からのアップロードはいずれも他の書店に対してユニークです。

salesdetail テーブルでは、プライマリ・キーは stor_id、ord_num、title_id の各カラムで構成されています。1 件の注文に複数の本のタイトルが存在する場合もあります。リモート・データベースの sales テーブルでは、stor_id と ord_num については複数のローで同じ値になってもかまいませんが、title_id の値はローごとに異なる必要があります。これにより、各リモート・データベースの salesdetail テーブルで一意性が確保されます。sales テーブルと同様に、書店ごとに stor_id の値が異なるため、1 軒の書店から統合データベースへのアップロードはいずれも他の書店に対してユニークです。

詳細情報

Adaptive Server Enterprise に関する問題の詳細については、Adaptive Server Enterprise 統合データベースを参照してください。

ユニークなプライマリ・キーを生成する各種の方法については、ユニークなプライマリ・キーの管理を参照してください。