Data Synchronization のためのデータベース デザインの例
Data Synchronization のためのデータベース デザインに関する考慮点の理解
Data Synchronization のためのデータベース デザインを理解する効果的な方法は、例をよく見て学ぶことです。Pervasive DataExchange ではデータベースのバックアップと同期化のためのレプリケーション ソリューションを提供しますが、この章では、Pervasive DataExchange が提供するサンプル データベースの Tracker を使用した Data Synchronization デザイン例について詳しく説明します。このデータベースを使用して Pervasive DataExchange Data Synchronization Edition で使用できる機能について実例を挙げて説明します。
この章では、以下の項目について説明します。
Data Synchronization デザインの考慮点
このセクションでは、Data Synchronization を使用して新規データベース スキーマを作成する際のデータベース デザインの考慮点について説明します。これらの考慮点は、既存のデータベースをレプリケートする場合も当てはまります。このデザインでは、サンプル データベースの Tracker を使用します。
メモ: Tracker データベースがお使いのコンピューターから削除されてしまっている場合は、サンプルの Tracker.SQL スクリプトを使用して再作成することができます。
Tracker サンプル データベースを参照してください。
アプリケーションの概要
ある販売会社は、Tracker という追跡プログラムを使用して顧客と製品の情報を蓄積し、注文書を通じて販売を追跡しています。この業務の規則は以下のようになっています。
•この会社には、地理的に割り当てられた多数の販売区域があります。
•この会社の従業員は、それぞれ特定の販売区域に所属しています。
•従業員は顧客登録を編集し、顧客をそれに割り当てることができます。
•従業員は、注文書を作成する責任があります。
•1 つの製品リストがすべての区域で共有されています。
上記の業務の規則に基づき、以下のデータベース スキーマが使用されます。
Purchase および PurchDet テーブルは多対多のリレーションシップを回避するのに役立ちます。1 つの注文書には多数の注文明細が含まれ、明細は本質的に 1 つの注文書の細目です。つまり、注文は一定の日に存在し、その注文書によって購入されるすべての品目は PurchDet テーブルにリストされます。
テーブルには以下のフィールドが含まれます。アスタリスク記号は主キー フィールドを表し、2 つのアスタリスクは外部キー フィールドを表します。構造に関してはこれが最初の試みであり、レプリケーションにとって望ましいデザイン要素を考慮した後に変更を行う場合があります。
図 6‑1 Tracker のスキーマ
Region テーブル
フィールド | データ型 | 説明 |
RegionID* | Long Integer | Region テーブルの主キー |
NameStr | Char[100] | 区域の名前 |
Employee テーブル
フィールド | データ型 | 説明 |
EmpID* | Long Integer | Employee テーブルの主キー |
FName | Char[30] | ファースト ネーム |
Initial | Char[5] | ミドル イニシャル |
LName | Char[30] | ラスト ネーム |
RegionID ** | Long Integer | 区域名へのインデックス |
Customer テーブル
フィールド | データ型 | 説明 |
CustID* | Long Integer | Customer テーブルの主キー |
NameStr | Char[100] | 会社名 |
Street | Char[100] | 街路の名前 |
City | Char[30] | 市の名前 |
State | Char[50] | 州、省、または国名 |
ZIP | Char[10] | ZIP コードまたは郵便番号 |
Phone | Char[20] | 電話番号 |
CntEmail | Char[100] | 会社代表連絡先の電子メールアドレス |
CntName | Char[50] | 会社代表連絡先の名前 |
Comments | Char[255] | 会社に関するコメント |
SlsRepID ** | Long Integer | その会社に勤める従業員へのインデックス |
Purchase テーブル
フィールド | データ型 | 説明 |
PurID* | Long Integer | Purchase テーブルの主キー |
PurDate | Date/Time | 発注書の日付と時刻 |
CustID ** | Long Integer | 注文した顧客の名前へのインデックス |
EmpID ** | Long Integer | その注文を受けた従業員へのインデックス |
DelInst | Char[50] | 配達指示 |
PurchDet テーブル
フィールド | データ型 | 説明 |
PurDetID* | Long Integer | PurchDet テーブルの主キー |
PurchID ** | Long Integer | 注文書へのインデックス |
ProdID ** | Long Integer | 注文された製品へのインデックス |
PurchQty | Integer | 注文数量 |
Cost | Char[12] | 注文明細の総額 |
Product テーブル
フィールド | データ型 | 説明 |
ProdID* | Long Integer | Product テーブルの主キー |
ProdName | Char[50] | 製品名 |
ProdDesc | Char[248] | 製品の説明 |
Price | Char[12] | 製品の価格 |
基本の Data Synchronization デザイン
Pervasive DataExchange Data Synchronization Edition は、分散型の業務の性質を反映するデータベース デザインを簡単に構成できる機能を提供します。データ同期のデザインは、業務の必要性と要求により簡単にも難しくもなります。
DataExchange Deployment Wizard は、データ同期をデザインする手続きを順を追って案内します。Deployment Wizard は、第 1 サイトおよびパートナー サイトにレプリケーションを配置する段階的なウィザードです。また、これにはレプリケーション スケジュールを作成する方法も含まれます。
Deployment Wizard を使用したレプリケーション配置を参照してください。
簡単に説明すると、データ同期のデザインには、デザインするプロジェクト、ネットワーク、およびリリースと、レプリケートしたいデータ ファイルの識別が含まれます。
プロジェクト、ネットワーク、およびリリース
プロジェクトは、レプリケートされる 1 つのデータベースを表し、1 つ以上のレプリケーション ネットワークと関連付けることができます。レプリケーション ネットワークは、レプリケーションに参加しているレプリケーション サイトをグループ化したものです。リリースは、レプリケーション データベース デザインのためのバージョン番号のようなものです。
プロジェクト、ネットワーク、およびリリースは、レプリケーション エンジンが使用するシステム データベースに追加されます。レプリケーション ユーティリティは、それらを使用して特定の操作を許可または拒否します。たとえば、複数のデータベースでリリースのみが異なる場合は、それらを一緒にレプリケートすることが許可されます。レプリケーションを許可するには、プロジェクト名とネットワーク名が一致する必要があります。
レプリケートするデータ ファイル
Deployment Wizard でも、レプリケートしたいデータ ファイルを選択することができます。レプリケーション用と識別されないデータ ファイルは、データ同期から除外されます。
セキュリティ
Pervasive DataExchange は 2 つのサイト間で転送されるすべてのデータを自動的に暗号化します。レプリケーション エンジンはあなたに代わって暗号化を制御します。
Pervasive PSQL セキュリティの詳細については、Pervasive PSQL データベース エンジンに含まれる『What Is New in Pervasive PSQL』を参照してください。
Tracker サンプル データベース
Tracker データベースが Pervasive PSQL Control Center の一覧にない場合は、Tracker.sql ファイルから作成することができます。Tracker.sql は Pervasive DataExchange のインストール(<インストール ディレクトリ>\Replication\Demodb ディレクトリ)にあります。このファイルには Tracker デモ データベースを再作成する SQL ステートメントが含まれています。
►Tracker.sql を使用して Tracker データベースを作成するには
1 まだ実行していない場合は PCC を起動します(オペレーティング システムの[スタート]メニューまたはスタート画面から[Control Center および PSQL ドキュメント]を選択します)。
2 [データベース]を右クリックし、次に[新規作成|データベース]を選択します。
[データベースの新規作成]ダイアログ ボックスが表示されます。
3 データベース名およびデータベース ディレクトリのオプションを次のように入力します。
•データベース名:Tracker
•場所:C:\Program Files\Pervasive Software\PSQL\Replication\DemoDB
フォルダーが既に存在して、Pervasive PSQL データベース ファイル(.ddf または .mkd の拡張子を持つファイル)を含まない場合は、別のディレクトリを指定することができます。
4 [完了]をクリックします。
空のデータベースが作成され、Tracker.sql で SQL ステートメントを実行する準備ができます。
5 PCC で[ファイル|開く]をクリックします。
[ファイルを開く]ダイアログ ボックスが表示されます。
6 C:\Program Files\Pervasive Software\PSQL\Replication\DemoDB を参照して tracker.sql ファイルを開きます。
SQL Editor が起動します。
SQL ステートメントを実行するデータベースを選択する画面が表示されます。
7 [OK]をクリックします。
SQL Editor は Tracker.sql で SQL ステートメントを表示します。
8 [SQL|すべての SQL ステートメントを実行]を選択します。
この SQL ステートメントは Tracker データベース テーブルを作成し、テーブルにデータを入れます。
9 すべての SQL ステートメントを実行し終えたら、SQL Editor を終了します。
10 [データベース]を右クリックし、[更新]を選択します。これにより、データベースおよびそのテーブルの一覧が再表示されます。