1. リレーショナルデータベースとは ビジネスコンピューティングではリレーショナルデータベースを扱っていきます データベースの概略については情報処理概論の授業で説明しましたので ここでは簡単に復習しながら まずはデータベースの実例を体験してイメージをつかむことにしましょう データベースとはある共通した目的をもって集められたデータの集まりで データベースに対してデータを登録したり参照したりする機能を果たすのがデータベースソフトです データベースソフトとしては MS ACCESS を使用し 実例としてはサンプルとして含まれているファイル Northwind.mdb を利用します 1-1 アクセスの起動と終了 画面説明アクセスの起動と終了は すでに使ってきたアプリケーションソフトとまったく同じです 念のために確認しておきましょう 起動 1デスクトップのアクセスのアイコンをダブルクリックする 2 スタート プログラム Microsoft Access とクリックする終了 1アクセスウィンドウ右上外側の ボタンをクリックする 2メインメニューで ファイル 終了 とクリックするアクセスを1あるいは2の方法で起動すると新規データベースの作成画面になります では サンプルデータベースを呼び出します メインメニューの ヘルプ サンプルデータベース ノースウィンドウサンプルデータベース とクリックして Northwind.mdb を開いてください 最初にフォームで OK をクリックして 次の メインスイッチボード で データベーステーブルの表示 を選んでください すると 以下のような画面が現れます 図 1-1 アクセスの画面 1
この画面は ワードやエクセルともかなり異なっていますね 中央に島のように浮かんで見えているものは データベースウィンドウ で データベースの作成と環境整備に必要な 6 つの基本機能である テーブル クエリー フォーム レポート マクロ モジュール への入り口でもあり 作成された機能要素の格納庫でもあるものです それでは これらの基本機能を体験していきましょう 1-2 テーブルデータベースのデータは表計算ソフトと同様の形式とファイル構造をもった表 すなわちデータベーステーブルに収められています アクセスでは データベーステーブルの事を単にテーブルと呼んでいます テーブルは 最上段の行に項目名が並び その下に行ごとに同じ形式でデータが続く形をしている必要があります ( 下図参照 ) データ構造がこのような 2 次元の表構造をもっているとき 第 1 正規形といい 列をフィールド 項目名をフィールド名 行をレコードと言い換えます 図 1-2 データベーステーブルの例 では 今開いている Northwind.mdb のテーブルを見ていきましょう まず テーブル名 運送会社 をクリックしてから左上の 開く ( テーブル名をダブルクリックしてもよい ) をクリックしてテーブルを開き テーブルの構造を確かめてください 最後に ボタンをクリックしてこのテーブルを閉じます 次のテーブル名 仕入先 以下 得意先 までを同様に確認していきましょう このような表形式にテーブルが見えるウインドウを テーブルデータシートウィンドウ と呼んでいます 図 1-3 テーブル 運送会社 ここで テーブルを構成する各フィールドがそのデータの種類や最大値などで定義され その結果としてテーブル自体も定義され 設計されていることに注意しましょう テーブルの定義と設計はデータベースを作っていく上で最も重要な要素の一つです フィールドの定義を確認するには 2
データベースウィンドウ で対象とするテーブル名をクリックして選択し 上にある デザイン ボタンをクリックします すると 下図のような テーブルデザインビュー が現れ それぞれのフィールドのデータが オートナンバー型 や テキスト型 であり そのフィールドサイズなどの細部にいたるまで事前に定義されていることがわかります 図 1-4 テーブル 運送会社 のデザイン 1-3 テーブルの正規化とリレーションシップデータベースファイル Northwind.mdb では 合計 9 個のデータベーステーブルがあります ただし これらのテーブルうち 8 個ははそれぞれ独立に存在しているわけではなく 相互にある特定の関係で結ばれています このように多くの表に分かれているのには理由があって なるべくフィールドとレコードに従属関係が存在しないように すなわち重複する関係があってデータの一意性が損なわれないようにする ( 矛盾するレコードの作成 削除 引用を妨げる ) ためなのです これを第 2 正規化といって 重複するデータは種類ごとに別の表にまとめるわけです そうすると これらの表は全体として一つのデータベースを表現していることになるので 当然無関係に独立して存在できるわけはなく 相互に関連付けられ 芋づる式に絡み合いながらもデータの一意性を保障して 機能するリレーショナルデータベースを作っているわけです この 芋づる式に相互に関係付けられている という表現を体現しているのがテーブルとテーブルを結び付けている リレーションシップ なのです では この Northwind.mdb でどのようなリレーションシップが定義されているのか 確認してみましょう どのような データベースウィンドウ の状態でも メニューバーで ツール リレーションシップ とクリックすると 下図のようなリレーションシップの構成図が図示されます 3
図 1-5 リレーションシップ テーブルとテーブルの間に 1 対 の定義とともに引かれている線が リレーションシップを表しています 1 対 の意味は 1 に当たる表が重複のない定義のための表で に当たる表はおなじコードを重複して使用する可能性のある表ということです このように 二つの表がリレーションシップで結ばれているというとき 同じ意味をもつ ( フィールド名は異なっているかもしれない ) コードがそれぞれに存在し それが重複するかしないかの区別とともに同一視されることなのです 1-4 クエリーこのようにして作成されたデータベースを活用するのに重要な役割を果たすのは クエリー と呼ばれる機能です クエリーとは 問い合わせ という意味で データベース管理システム (DBMS: Data Base Management System) である Access では 関係付けられた複数のテーブルを結合した問い合わせ結果を得ることができます 基本クエリーである選択クエリーやアクションクエリーと呼ばれるテーブルの作成 追加 更新 削除クエリーなど様々なクエリーが 現在使用している Northwind.mdb でも定義されていますので 実際に データベースウィンドウ の クエリー タブをクリックして それぞれのクエリーを実行してみましょう そのためには クエリーを選択して 開く をクリックします 実行された結果が表示されるでしょう Access は一般データベース言語である SQL(Structured Query Language) に準拠しており Access の方法でクエリーを作成すると SQL 文が内部で自動作成されて実行されるようになっています 例えば 五十音順商品リスト クエリーを選択して デザイン ボタンをクリックしてみましょう すると 下図のような SQL 文が出てきましたね 4
図 1-6 選択クエリー 五十音順商品リスト の SQL 文 次に このウィンドウのタイトルバーで右クリックし クエリーデザイン を選択すると 以下 のような同じ内容をもつ定義テーブルが出てきます 図 1-7 選択クエリー 五十音順商品リスト この定義では 並べ替え のところに条件が提示されていないので 元の商品コードによる順番のままで表示され 生産中止がないレコードのみが抽出されることに注意して下さい さらに このクエリーのデザインビュー上段のテーブルリストのところで右クリックしてショートカットメニューを表示させ SQL ビュー をクリックすると 再び SQL 文に戻ります 色々なクエリーをデザインビューで確認してみましょう 情報処理概論 で学んだ SQL 文を思い出して その意味を読み取るように努力してみてください 1-5 フォームでは データを実際に入力するにはどうすればよいのでしょうか 表計算ソフトと同じように テーブルに直接入力することも可能です ただし 間違った型のデータを入力したり 消したり変更すれば他のテーブルにも影響の出る操作を誤って実行したりする危険性があります そこで フォーム機能を使って データの入力や表示を効率よく行い 入力ミスを少なくする操作性の良い入力画面を作成するようにします 実際に 社員 フォームを使用して どのようにデータを入力するのか体験してみましょう デ 5
ータベースウィンドウ の フォーム タブ 社員 開く とクリックしてください( 社員 をダブルクリックしてもよい ) このフォームは良くできていて 写真まで掲載できるようになっていますね まず 会社情報と個人情報を確認してください 前後の社員情報に移動するには 一番下のレコード番号の左右にある矢印ボタンで行います 図 1-8 社員データ入力フォーム * ボタンをクリックすると以下のような追加入力画面になります 自分のデータを 写真を 図 1-9 社員データ追加 除いて入力してみましょう 入力が終わったら 社員 フォームを終了し 実際に追加されているかどうか 社員 テーブルで確認します なお フォーム機能は入力画面だけではなく 他の様々な画面作成にも利用できます 他のフォームも開いて どのようなフォームが作成されているのか見ておきましょう 6
1-6 レポートテーブルやクエリーで作成されたビューテーブルなどから必要なデータを抽出し それらデータの表示形式や配置までをレイアウトした文書をレポート その作成機能をレポート機能といいます レポート機能によって 単票形式や表形式やグループ形式などのレポートから グラフ 宛名ラベル はがきの表書きなど 様々な形式のレポートを比較的容易に作成することができます データベースウィンドウ で レポート タブをクリックし 様々なレポートのプレビューを見ておきましょう レポートウィンドウは最大化してみると全体がわかります また デザイン ボタンをクリックして レイアウトデザインの形式も確認しておいてください データベースの有効利用には 結局 望むレポートを効率よく作ることができるようになっている必要があります そのためには データベース全体のデザインを考えるとき 最終的にどのような情報をどのような形で必要とするのかを見据え その目的を実現するべき構造を最初にはっきりと捉えておくことが重要です さらには 今後の展開を予想し その方向での拡張や変更が容易な構造にしておくことも欠かせません 1-7 マクロとモジュール一般にマクロとは アプリケーションソフトの操作を自動的に処理するための簡易プログラムのことです Access では フォーム機能によってメニュー画面を作り そこにボタンを配置し そのボタンをクリックしたときの動作などを制御するのにこのマクロ機能を使用したりします データベースウィンドウ で マクロ タブをクリックし 様々なマクロのデザインを確認してください 例えば下図は 得意先電話リスト フォームのマクロデザインです 図 1-10 マクロデザインの例 なお マクロを実行しても目には何も見えません 7
モジュール 機能は VBA(Visual Basic for Application) というプログラミング言語により ユーザ定義関数を作成したり マクロ同様 フォームやレポートをコントロールする機能を作成したりできるものです 実際に データベースウィンドウ で モジュール タブをクリックして 実例のデザインを見ておきましょう 1-8 データベース操作データベース Northwind.mdb の構成を概観したところで この章の最後にメインメニューからできるデータベース操作についても体験しておきましょう テーブルとしては 社員 テーブルを使用しますので 開いておきましょう 並べ替え 1 該当のフィールドを選択例 : フリカ ナ 2メインメニューで レコード 並べ替え とクリックし 昇順か降順かを選択 あるいはツールバーの 昇順で並べ替え アイコンか 降順で並べ替え アイコンをクリック 選択フィルタによる抽出( 等しい 条件のみ) 1 該当のフィールドとレコードを選択例 : 在籍支社 北九州支社 2メインメニューで レコード フィルタ 選択フィルタ とクリックあるいはツールバーの 選択フィルタ アイコンをクリック 3 元へ戻すのは レコード フィルタ/ 並べ替えの解除 とクリックあるいは フィルタの解除 アイコンをクリック フォームフィルタによる抽出 1メインメニューで レコード フィルタ フォームフィルタ とクリックあるいはツールバーの フォームフィルタ アイコンをクリック 2 抽出するレコードの値を選ぶ以外は 必要なセルに条件を入力する 図 1-11 抽出条件 3 元へ戻すのは レコード フィルタ / 並べ替えの解除 とクリック あるいは フィルタの解除 アイコンをクリック 条件式については 以下の比較条件式 ワイルドカード 論理条件式を参考にしましょう そし て 必ず実際に具体例を自ら考えて実行しながら確認していってください 大体は表計算ソフト [ エ 8
クセル ] と場合と同じですね 比較条件式 記号 ( 半角 ) 意味 実例 = 等しい =5 <> 等しくない <>5 > より大きい >5 >= 以上 >=5 < より小さい <5 <= 以下 <=5 Between A and B A と B の間 Between 3 and 5 表 1-1 比較条件式 ワイルドカード 記号 ( 半角 ) と機能 使用例と抽出例 * 任意の文字列 Like * 井 * 高井戸 新井薬師前 中井 井荻? 任意の1 文字 Like 新宿区? 新宿 新宿区西新宿 新宿区北新宿 # 任意の1 桁 Like 5#000 51000, 52000, 53000,,59000, 50000 [ ] [ ] のいずれか1 文字 Like [12]DK 1DK, 2DK [!] [!] 内の文字以外 Like [!2]DK 1DK, 3DK, 4DK, [-] [-] 内での範囲 Like 5[4-6] 54, 55, 56 ( ワイルドカードを含む文字列の前には Like をつけます ) 表 1-2 ワイルドカード 論理条件式記号 ( 半角 ) と意味 在籍支社 フィールドでの使用例と抽出例 Or 複数の条件の1つでも満たす 東京本社 Or 大阪支社 東京本社か大阪支社 And 複数の条件をすべて満たす 東京本社 And[ 部署名 ]= 営業二 東京本社で営業二 表 1-3 論理条件式 データがないフィールドの検索機能使用例フィールドが空白のレコードの検索 Is Null フィールドが空白でないレコードの検索 Is Not Null 表 1-4 データの有無によるフィールドの検索 以上で データベースソフト MS ACCESS( 以下アクセスと表記 ) の基本機能とデータベースの実例を体験してきました データベースを学ぶとき スキルだけを追っていると 何のために何を学んでいるのかが良く見えないことがあります それを避けるために まず最初に実例を体験したのです 9