WebMatrix で正規化されたテーブルを作ってみよう

2011年8月16日の『WebMatrix夏休み特番&勉強会』のネタを考えていた時にふと思いついたので、忘備録としてブログに書きたいと思います。

WebMatrix の特長の一つに 「Excel 感覚でデータベースを編集できる」 事があります。データベースの基礎を学ぶ際にこの機能を活用する事で、効率よく学習いただけるのではないかと思います。今回は WebMatrix のデータベース編集機能を活用して、正規化されたデータベースを作成したいと思います 。

本ブログ記事の構成は下記のようになっています。WebMatrix をインストール済みの方は、2. 以降をご覧ください。

  1. WebMatrix のインストール
  2. テーブルを作成する
  3. 第3正規形のテーブルを作成する

なお、今回は WebMatrix と一緒にインストールされている SQL Server Compact を使用します。
WebMatrix では下記のデータベースソフトウェアが対応していますので、他のデータベースソフトウェアを使っていただく事も可能です。

<WebMatrix に対応しているデータベースソフトウェア>

  • SQL Server Compact Edition
  • SQL Server 2005 / 2008 (Express Edition にも対応)
  • MySQL 5.x / 6.x

1. WebMatrix のインストール

WebMatrix のインストールには Web Platform Installer 経由でのインストールをお勧めしています(お勧めの理由はこちらをご覧ください)。
本ブログでも Web Platform Installer 経由での WebMatrix インストール方法をご紹介します。

注意: Windows Update の自動更新は “OFF” にしてください。インストールが途中で止まる可能性があります。

(1) Web Platform Installer をインストールします。インストール方法はこちらをご覧ください。

(2) Web Platform Installer を起動し、画面上部の[プロダクト]をクリックすると、リストの中に「WebMatrix」があります。
WebMatrix の「追加」ボタンをクリックしてから[インストール] ボタンをクリックしてください。
image_thumb1[1]

(3) インストールされるソフトウェアの一覧が表示されます。ライセンス条項をご確認のうえ、[同意する] ボタンをクリックしてください。
image_thumb2

WebMatrix と一緒にインストールされるソフトウェアは下記になります。
これらのソフトウェアは WebMatrix を動作させるためのテスト開発環境構築に必要なコンポーネントになります。

<WebMatrix と一緒にインストールされるソフトウェア> * は Windows XP 環境でのみインストールされます

WebMatrix
IIS Express 7.5

ASP.NET Web Pages

ASP.NET Web Pages 言語パック
.NET Framework 4
Windows インストーラー (*)
.NET Framework 2.0 SP2 (*)
SQL Server System CLR 型
SQL Server Native Client
SQL Server Compact 4.0
SQL Server Compact 4.0 Tools
SQL Server 2008 R2 管理オブジェクト
Web 配置ツール

(4) (3) で表示されたソフトウェアがダウンロードおよびインストールされます。
途中、.NET Framework のインストールが完了すると再起動を要求されますので、再起動してください。
image_thumb

(5) 全てのソフトウェアのインストールが完了すると下記のような画面が表示されます。image_thumb1

(6) WebMatirx で PHP ファイルを編集する場合、デフォルトの文字コードを UTF-8 に設定する必要があります。
設定方法はこちらをご覧ください。

以上で、WebMatrix のインストールは完了です。
Windows Update の自動更新は “OFF” にした場合は、”ON”に戻すのをお忘れなく。


2. テーブルを作成する

WebMatrix のデータベース編集機能を使えば簡単にテーブルを作成できます。
ここでは、WebMatrix を使ったデータベースのテーブル作成方法をご紹介します。

(1) WebMatrix を起動し、[テンプレートからサイトを作成する](赤枠で囲まれた箇所)をクリックします。
image

(2) テンプレートの一覧が表示されますので、[空のサイト(英語)]をクリックします。
サイト名を半角英数字に変更してから[OK]ボタンをクリックしてください。
image

(3) サイトが作成されると下記の画面が表示されます。画面左下の [データベース] をクリックします。
image

(4) データベースの編集画面が表示されます。
画面上部の [新しいデータベース] をクリックすると、「xxx.sdf」というデータベースが作成されます。
image

(5) 作成したデータベースにある [テーブル] の文字をダブルクリックします。
メニューに「テーブル」タブが表示されますので、[新しいテーブル] をクリックします。
image

(6) テーブルの列名の設定画面が表示されます。列の名前の入力と、今回は文字列の入力を行いたいのでデータ型は「nchar」にしてください。
image

(7) 列を追加する場合は、画面上部の「テーブル」タグにある [新しい列] をクリックしてください。
image

(8) (6) と (7) を繰り返して第1正規形のテーブルを作成します。
image

(9) テーブルの作成が完了したら、画面上部の [保存] アイコンをクリックしてください。
image

テーブルの保存にあたり、テーブル名の入力を求められますので、お好みの名前を入力して [OK] ボタンをクリックしてください。
image

テーブルが保存されましたので続いてデータを入力します。

(10) 先程作成したテーブル名をダブルクリックすると、Excel のようなデータの入力画面が表示されますので、セルに直接文字を入力します。
他のセルに移動するとデータは自動でデータベースに保存されます。
image

以上で、テーブルの作成が完了しました。


3. 第3正規形のテーブルを作成する

第3正規形のテーブルを作成する場合はリレーションの作成が必要です。
ここでは、先程作成したテーブルを第3正規形にした場合のテーブルとリレーションの作成方法をご紹介します。

(1) 先程ご紹介した方法で、下記のようなテーブルを 2つ 新規作成します。image
image

(2) 「必殺技」テーブルの「必殺技」列の「主キーかどうか」の項目を「True」にしてください。
image

(3) 「テーブル」タグ内のテーブルビューが「定義」になっていると、「関係」(リレーション)の [新規]がクリックできます。
「ヒーロー名」のテーブルビューを「定義」状態で、[新規] (赤枠で囲まれたところ)をクリックします。
image

(4) 関係(リレーション)の新規作成画面が表示されます。下記のように設定して [OK] ボタンをクリックします。
image

以上で、第3正規形のテーブルとリレーションの作成が完了しました。リレーションを作成すると、他のテーブルに関係するデータの削除ができなくなります。試しに「必殺技」テーブルのデータを削除しようとしてください。下記のエラーが表示されてデータの削除が拒否されます。
image


いかがでしたでしょうか?
テーブルとリレーションが「かんたん」に作成できることがご理解いただけたのであれば幸いです。

武田正樹