6 データベースの 理解
この章の内容
ヒント
目 的 デ ー タ ベ ー ス の 理 解 6.1
リレーショナル データベース管理システムを理解する
シナリオ: Jesper は、貴重盤を中心とした中古レコードを扱うレコード店でアルバイトして、学費を稼いでいま す。この店では、何千組ものアーティストのアルバムを何千枚も販売していますが、在庫システムがありませ ん。店主はアーティスト別にアルバムを棚に並べるだけです。これは、顧客から特定のアルバムの在庫をたず ねられた場合、いちいち棚まで行って、そのアルバムがあるかどうかを確認しなければならないことを意味し ます。
Jesper はシンプルな在庫システムを作り、カウンターの後ろのコンピューターで在庫を確認できるようにした いと考えています。情報の格納には、リレーショナル データベースをセットアップすることにしました。
Jesper はまず、各アーティストに一意の Artist ID 番号をランダムに割り当てます。同様に、アルバムには Album ID 番号を割り当てます。
1.
上で説明したリレーショナル データベースにおいて、Artist ID と Album ID はどのような役割を果たし ますか。a. 関係 b. 制限 c. 主キー
2.
Jesper は、Artist ID フィールドを Albums テーブルに追加して、アルバムをアーティ ストに関連付けます。この Albums テーブルでは、Artist ID の役割は何ですか。a. 主キー
b. 外部キー c. リンク キー
3.
次のうち、このプロジェクトでリレーショナルデータベースを使用することに よって発生する結果はどれですか。a. 冗長な (反復的な) データ量の最小化または除去 b. 非効率的なデータの格納による処理時間の増加 c. Web サーバーの使用の必要性
このデータベース には、2 つのテーブル が必要になります。
Artists には、アーティス ト情報を格納し、Albums に は、個別のアルバムに関連 するデータを格納します。
リレーショナル データベース管理システムを理解する 49
の確認
得点 /3 解答
1.
Artist ID と Album ID は、次の役割を果たします。c. 主キー
2.
Albums テーブルにおける Artist ID フィールドには、次の役割があります。b. 外部キー。あるテーブル (Albums) の外部キーは、別のテーブル (Artists) の主キーを参照します。
これにより、2 つのテーブル間の関係が確立されます。
3.
このプロジェクトでリレーショナルデータベースを使用することによる結果は、次のとおりです。a. 冗長な (反復的な) データ量の最小化または除去
重要ポイント
• リレーショナル データベースは、巨大化する可能性のあるデータを保管するためのシステムです。リレー ショナル データベースは、列と行で視覚化できる 1 つ以上のテーブルから構成されます。
• リレーショナル データベースの主な利点の 1 つは、データの冗長性を緩和できることです。複数のテーブ ルに属するデータは、複数回格納する代わりに、リンクすることができます。
• テーブル内の主キーは、各行を一意に識別する列を定義します。
• 関係は、外部キー制約をセットアップすることによって確立できます。店舗内の各アルバムには、対応す る Artist ID が含まれます。外部キーは、アルバムと、それをレコーディングしたアーティストとの間にリ ンクを確立します。
詳 細 情 報
• http://msdn.microsoft.com/en-us/beginner/bb308825.aspx (英語)
• http://www.asp.net/sql-server/videos/designing-relational-database-tables (英語)
50 第 6 章:データベースの理解
ヒント
目 的 デ ー タ ベ ー ス の 理 解 6.2
データベースの照会方法を理解する
シナリオ: Jesper は、店舗内の在庫を追跡するためのリレーショナル データベースの設計と実装を完了しました。
次は、データ自体の読み取りと変更を行えるようにする必要があります。データベース操作には、SQL クエリ を使用することにしました。
このアプリケーションでは、新しいアルバムが入荷したときにこれをデータベースに追加でき、在庫数や価格 などのデータを変更できなければなりません。また、アーティストまたはアルバムの検索、現在の在庫の一覧 表示、在庫切れのアルバムの一覧表示などを行うために、データベースからデータを抽出して取得する必要が あります。Jesper がこのプロジェクトを早く完成できるように、SQL の概念を確認しましょう。
1.
新しいアルバムをデータベースに追加するときに Jesper が使用する SQL コマンドとして、適切なものは 次のどれですか。a. ADD b. INSERT c. UPDATE
2.
Jesper がよく使うクエリを保存するには、次のどれを使用しますか。a. UPDATE ファイル b. データベースメソッド c. ストアド プロシージャ
3.
アーティストのテーブルから「U2」というアーティストを取得するクエリはどれ ですか。a. SELECT "U2" FROM Artists
b. SELECT * FROM Artists WHERE ArtistName = "U2"
c. SELECT * FROM Artists WHERE "U2" IN ArtistName
SQL は、
Structured Query Language (構造化照会言語) の略で あり、リレーショナル データベースに対してご く一般的な操作を実行する
ために使用されます。
データベースの照会方法を理解する 51
の確認
得点 /3 解答
1.
新しい行をデータベースに追加するために使用するコマンドは、次のとおりです。b. INSERT
2.
クエリをデータベースに保存するときに使用するものは、次のとおりです。c. ストアド プロシージャ
3.
アーティストのテーブルから「U2」というアーティストを取得するには、次のクエリを使用します。b. SELECT * FROM Artists WHERE ArtistName = "U2"
重要ポイント
• 構造化照会言語 (SQL) は、リレーショナル データベースのデータを管理するために使用します。
• SQL クエリは、データベースと対話するために使用することも、データベースにアクセスするアプリケー
ション内に実装することもできます。SQL の基本ステートメントには以下のようなものがあります。
• SELECT は、データを取得します。
• INSERT は、行をデータベースに追加します。
• UPDATE は、既存の行を変更します。
• DELETE は、既存の行を削除します。
• 他の節を追加して、テーブルを指定する (FROM) ことも、比較に基づいてデータをフィルター処理する
(WHERE) ことも、並べ替える (SORT BY) こともできます。
詳 細 情 報
• http://msdn.microsoft.com/en-us/beginner/bb308825.aspx (英語)
• http://www.w3schools.com/sql/default.asp (英語)
52 第 6 章:データベースの理解
ヒント
目 的 デ ー タ ベ ー ス の 理 解 6.3
データベースの接続方法を理解する
シナリオ: 確かなデータベース設計と SQL クエリを管理するストアド プロシージャが完成したので、Jesper は ユーザー インターフェイスに取りかかることにしました。Jesper は、Windows フォームを使用して、アプリ ケーションをデータベースに接続するための基本的な要素を用意しました。
Jesper は、「切断状態」アプローチを採用することにしました。つまり、必要なものをデータベースからメモ リにコピーし、データベースから切断するのです。ユーザーがデータを変更したら、アプリケーションをもう 一度接続し、データベースを更新します。
1.
Jesper が切断状態データアクセスモデルを使用するメリットは何ですか。a. データベースサーバーへの負荷が最小になる b. インターネット接続が必要ない
c. データベースへの不正アクセスを防止できる
2.
データベースのメモリ内キャッシュを説明するときに使用する用語はどれですか。a. データセット b. XML
c. OLE DB
3.
データベースに接続するために ADO が必要とする情報が含まれているオブジェク トはどれですか。a. SQL クエリ b. ファイル パス c. 接続文字列
ActiveX Data Objects (ADO) は、データベー ス接続の詳細を気にか けることなく、開発者が データベースに接続する ためのインターフェイス
です。
データベースの接続方法を理解する 53