<?xml version="1.0" encoding="x-sjis"?>
<?xml:stylesheet href="AprilTechNetStyle.xsl" type="text/xsl" ?>
<chp><ss1><st type="U">データベースの例</st></ss1>

<p>　この章では、プログラム アプリケーションとコードの例として、大学をモデルにした RDBMS アプリケーションのサンプルを使用しています。このアプリケーションは特に、Oracle 7 のアプリケーションから SQL Server 7.0 のアプリケーションへの変換に伴う多くのポイント、問題、ヒントを説明する目的で作成したものです。

<nl/></p>
<ss2><st type="U">大学用のサンプル アプリケーション</st></ss2>

<p>　このサンプル アプリケーションでは、4 つのテーブルを使用して大学のすべての活動をトラッキングします。DEPT テーブルは大学内の学部のトラッキング用です。CLASS テーブルは、各学部での講義のトラッキング用です。STUDENT テーブルは大学内の各学生のトラッキング用です。GRADE テーブルは各クラスの学生の登録状況のトラッキング用です。

<nl/></p>
<art id="p541" type="bmp" pos="C"/>


<p>　ここでは、STUDENT テーブル用の主キーとして社会保障番号（ssn ）を使用しています。DEPT テーブルの主キーは学部コード（dept）、CLASS テーブルの主キーは講義コード（ccode）です。社会保障番号（ssn ）と講義コード（ccode）の組み合わせで GRADE テーブルの主キーが構成されます。

<nl/>　列major は、STUDENT テーブルの外部キーとして定義されます。major を選択するときは、学生は有効な学部コード（dept）を DEPT テーブルから選択する必要があります。CLASS テーブルの学部（dept）列は、外部キーとしても定義されます。このテーブルに講義を追加する場合、DEPT テーブルの有効な学部コード（dept）と関連付ける必要もあります。

<nl/>　GRADE テーブルには 2 つの外部キーがあります。学生を講義に登録する場合、社会保証番号（ssn ）が STUDENT テーブルに存在し、かつ講義コード（ccode）が CLASS テーブルに存在していなければなりません。これによって、学生が存在しないクラスに登録されることはなくなり、かつ、存在しない学生がクラスに登録されることもなくなります。

<nl/></p>
<ss2><st type="U">サンプル アプリケーションとコードの一覧</st></ss2>

<p>　この章全体をとおして、次のサンプル アプリケーションを使用しています。

<nl/></p>

<l2>
<li/>
<p>Orademo.cpp

<nl/>Oracle 7.3 データベースの大学用のサンプル表にアクセスする Oracle ODBC アプリケーション。このプログラムは、変換処理の始点になります。これによってユーザーは、大学用サンプル アプリケーションにデータを入力し、レポートを作成できます。</p>

<li/>
<p>Ssdemo.cpp
<nl/>ODBC を使用して書き込まれる SQL Server ODBC アプリケーション。このプログラムは、変換処理の終点になります。Oracle の SQL コマンド、プロシージャ、パッケージ、関数がすべて SQL Server の Transact-SQL ステートメントとプロシージャに変換されています。SQL Server 7.0 に関連した利点の多くは、このプログラムで示されます。</p>

<li/>
<p>Common.cpp
<nl/>Oracle と SQL Server の両方で機能する ODBC アプリケーション。ユーザーは、ODBC Data Source Name（DSN）を指定するだけで Oracle または SQL Server に接続できます。プログラムは要求された RDBMS にログオンします。このプログラムには、マルチ RDBMS プログラムの開発に活用できる優れたプログラミング手法の例が含まれています。</p>

<li/>
<p>Orauser.sql
<nl/>Oracle のサンプル プログラムで必要な データベース ユーザー アカウントとデータベース ロールを作成します。</p>

<li/>
<p>Oratable.sql
<nl/>Oracle のサンプル プログラムで必要な表とビューを作成します。</p>

<li/>
<p>Oraproc.sql
<nl/>Oracle のサンプル プログラムで必要な Oracle のストアド プロシージャ、関数、パッケージを作成します。</p>

<li/>
<p>Oracommn.sql
<nl/>Common.cpp プログラムのサポートに必要な 他の Oracle データベース オブジェクトをすべて作成します。</p>

<li/>
<p>Oradata.sql
<nl/>Oracle のサンプル プログラムで必要な表にサンプル アプリケーションのデータをロードします。</p>

<li/>
<p>Ssuser.sql
<nl/>SQL Server のサンプル プログラムで必要な SQL Server のユーザー アカウントとデータベース ロールを作成します。</p>

<li/>
<p>Sstable.sql
<nl/>SQL Server のサンプル プログラムで必要な SQL Server のテーブルとビューを作成します。</p>

<li/>
<p>Ssproc.sql
<nl/>SQL Server のサンプル プログラムで必要なストアド プロシージャを作成します。</p>

<li/>
<p>Sscommon.sql
<nl/>Common.cpp アプリケーションのサポートに必要なほかの SQL Server データベース オブジェクトをすべて作成します。</p>

<li/>
<p>Ssdata.sql

<nl/>SQL Server のサンプル プログラムで必要なテーブルにサンプル アプリケーションの データをロードします。
</p>
</l2>
<ss2><st type="U">サンプル スクリプトの実行</st></ss2>

<p>　サンプル アプリケーションを目的の RDBMS プラットフォーム上に作成するには、次の順序でサンプル スクリプトを実行する必要があります。

<nl/></p>
<art id="p543" type="bmp" pos="C"/>


<p>　SQL Server データベース用のスクリプトを実行する前に、これらスクリプトと SQL Server サンプル プログラムが稼動するアプリケーション データベース（USER_DB）を作成してください。このデータベースを作成するには、SQL Server Enterprise Manager または Transact-SQL CREATE DATABASE ステートメントを使用します。データベースを作成したら、SQL Server 7.0 にシステム管理者（SQL Server ユーザー sa または sysadmin 固定サーバー ロール）としてログインし、SQL Server クエリ アナライザを使用し、指定された順序でスクリプトを実行します。

<nl/>　Oracle 7.3 データベース用のスクリプトを実行する前に、サンプル スクリプトでは USER_DATA と TEMPORARY_DATA のテーブル スペースが存在することを想定しています。これらのテーブル スペースが存在しない場合は、テーブル スペースを追加するか、あるいはサンプル スクリプトを修正して他のテーブル スペースを使用する必要があります。

<nl/>　必要なテーブル スペースが存在することを確認した後、SYSTEM アカウントを使用して SQL<sup>*</sup>Plus にログオンします。パスワードが MANAGER（デフォルト値）でない場合には、Oracle SQL スクリプトのパスワードを変更します。

<nl/></p>
<ss2><st type="U">RDBMS ユーザー アカウント</st></ss2>

<p>　このアプリケーションでは 3 つのユーザー アカウントが作成されます。

<nl/></p>

<l2>
<li/>
<p>STUDENT_ADMIN

<nl/>このアカウントは、STUDENT と GRADE テーブルのシステム管理上の所有者です。</p>

<li/>
<p>DEPT_ADMIN
<nl/>このアカウントは、DEPT と CLASS テーブルのシステム管理上の所有者です。</p>

<li/>
<p>ENDUSER1

<nl/>このアカウントは、STUDENT、GRADE、DEPT、CLASS の各テーブルにアクセスできるクエリ オンリー アカウントです。
</p>
</l2>

</chp>
