情報分析演習 (2009) Access 第 1 回 はじめに データベースソフトにおいて世界市場のトップシェアを占める ORACLE 社に データは 21 世紀最大の資源である という宣伝コピーがあった この言葉に象徴されるように 現代の企業が抱えるデータの重要性はますます増大し 扱うデータ量は増加の一途をたどっている 企業においては こうした大量のデータはデータベースとして保存 管理されており そのため情報システムを構築するにあたっては データベースを使用しない開発はほとんど考えられない また近年では データを安全に管理するためのセキュリティが重要な課題であり 蓄積したデータをもとにしたデータマイニングなどの応用も活発となっている 今後も情報システムにおけるデータベースの重要性は一層増加すると考えられる ここでは 手軽に扱えるデータベース管理システムとして代表的なマイクロソフト社の Access ( 通称 MS-Access) を使用して データベースの基本的な概念を理解し 簡単なデータベースの構築とデータの検索方法などを学ぶ データベースとは 1 つ以上のファイルの集まりであって その内容を高度に構造化することによって検索や更新の効率化を図ったもの (JIS:Japan Industial Standards) 1. データベースの概要 データベースとは データは 情報量が少ない場合やデータ件数が少ない場合は どのような方法でも管理することが可能である たとえば あなたがよく連絡をとる友人の携帯番号の数は 数十人程度であろう この程度の量であれば記憶することも不可能ではないし 住所録にメモしておけば対応することができる しかし 企業が扱う携帯番号の件数は 数万 ~ 数千万人分 ( 例えば Docomo の 2009 年 7 月末時点での契約者数は約 5500 万人 ) にもなる可能性がある 企業において記録しなければならないデータ数は膨大であり 業務で使われる情報システムも大量のデータを扱うことを前提として構築される また その内容も 例えば顧客が商品を購入するとき保存すべき情報をあげれば 携帯番号だけでなく氏名 住所 性別 購入日 購入品目 購入数など 多くの項目がある このように多種多様な情報は 保存後の利用のためには データの内容を整理して 使いやすい形にモデル化していくことが必要となる これらの情報は 顧客の問合せに応じて瞬時に呼び出すなど業務上の目的に合わせて使用されるからである このモデル化をデータモデリングといい モデル化されたデータの集まりをデータベースという データベースの形式で整えられたデータは ただ保存するだけでなく 新規登録 変更 削除などが発生する時に データの整合性を保って処理が行われること ある条件に一致するデータを時間をかけずに検索すること データからわかる情報をレポートとして提出することなどが求められる このためには データ量の大きさや 各種のデータ形式に対応できるように データの管理方法がシステム化されていなければならない このような目的のために作成されたソフトウェアをデータベース管理システム ( DBMS : Data Base Management System ) という 1
データベースの種類 データを正しく更新したり早く検索したりするためにはデータをモデル化することが必要となる モデル化の方法はいろいろあり ネットワーク型データベース カード型データベース 階層型データベース リレーショナルデータベース (RDB) オブジェクト指向データベース (OODB) などが対応するデータベースとして開発されてきた このうち 現在最も多く使用されているのが RDB で ここで学習する Access もリレーショナルデータベース管理システムの 1 つである リレーショナルデータベース (RDB) は データ項目の関係を行と列 ( フィールド ) の 2 次元の表 ( テーブル ) の形式で表したデータベースである テーブルは表計算ソフトである Excel のシートとよく似た表形式になっている また データベースは複数のテーブルから構成される 例えば 販売管理データベースは 売上伝票テーブル 顧客テーブル 商品テーブルなどのテーブルからなる また 異なるテーブルの任意のフィールドのデータを取り出して新しいテーブルを作成したり 複数のテーブルを 1 つのテーブルにまとめたりすることができる さらに テーブルのフィールドは他のテーブルのフィールドと関係付けることができ ( この関係づけを リレーション と呼ぶ ) データの検索などに利用される データベースの使い方 データベース管理システムを通してデータを扱う場合 その方法は 2 つある ひとつは DBMS が提供するユーザインターフェースを通してデータベースを操作するものであり もうひとつは 応用ソフトウェアのなかに SQL(structured query language) という言語を記述してデータベースを操作するものである 今回の演習では 前者の方法を用いてデータを操作する方法を学ぶが この場合も内部では SQL に変換されて処理が行われている 売上伝票テーブル DBMS 提供のインターフェース データベース管理システム (DBMS) 販売管理データベース 伝票 ID 日付 顧客テーブル フィールド商品テーブル 顧客 ID 氏名 商品 ID 商品名 利用者 応用ソフトウェア (SQL を記述 ) SQL 機能 データベース レコード 2
データベースの活用例 住所録 商品カタログ Microsoft Access とは 電子百科事典 生産管理 銀行の預金処理 在庫管理 株取引 チケット購入 予約 大学等における成績管理 よく使われている DBMS Oracle Database Microsoft Access MySQL PostgreSQL カルテの管理 人事管理 Microsoft Access は Microsoft Office の中のデータベース管理システム (DBMS) である ユーザーインターフェースに優れており データの入力やデータ検索 出力帳票のレイアウト設計などが比較的容易にできる それほど大規模ではないデータ用や個人使用のための DBMS として普及している 商品データベースを用いた領収書発行や売上管理の例 データベースはどんな時に便利? 文具店の例 商品番号 :123 手帳 300 商品番号 商品名 単価 : : : 122 筆箱 500 123 手帳 300 124 消しゴム 300 : : : : : : 領収書 123 手帳 1 個 300 124 消しゴム 1 個 300 合計 600 ( 内税 ) 商品番号と数量を入力するだけで領収書を出力するようなしくみも作れる 領収書 123 手帳 1 個 300 124 消しゴム 1 個 300 合計 600 ( 内税 ) すべての項目を手書きまたはワープロ等で作成することにも このしくみがなければ 本来は売上履歴のデータベースも存在するのが一般的であるが ここでは便宜上簡略化したイメージで説明 商品の種類や取り扱い件数が少ない場合は対応できるが 商品の種類 件数が多い時は対応が大変 データベースは多い ( 件数 項目 ) を効率的に扱うのに便利 Accessの機能 Accessの主な機能 ( オブジェクト ) としては以下のものがある テーブル: データの保存場所の作成やデータ同士の関連づけをする クエリ: 必要なデータを検索 抽出する ( クエリ (Query) とは 問い合わせ 照会の意味 ) フォーム: データを効率よく入力する レポート: データを帳票形式で印刷する ( ページ マクロ モジュールの機能は今回は使用しない ) 3
テーブル作成の流れと使用するオブジェクト テーブルにどういう項目を入力できるようにするかを決める ( 設計する ) ( 例 ) 商品番号 商品名 単価 テーブルの設計 テーブル テーブルの 2 つのビュー ビューの切替ボタン データの入力 テーブル フォーム デザインビューでテーブルを設計 データビューでデータを入力 データの関係付け データの検索 データの出力 テーブル クエリ レポート デザインビューで直接テーブル設計する代わりにウィザードを使うことも可能 ( 実際にはウィザードで設定した内容がデザインビューに書き込まれている ) デザインビューで決めた項目の内容を入力する ( 例 ) 122 筆箱 300 ビューについて 各オブジェクトには 操作の内容に合わせて作業に適した表示方法 ( ビュー ) が用意されている 例えば テーブルオブジェクトには各レコードのデータの内容を見るための データシートビュー とテーブルのフィールドや属性などの構造を変更するための デザインビュー がある それぞれの目的に応じてビューを使い分けて作業をしていく 主キーとは テーブル内の各レコードを識別するためのフィールドを主キーという 主キーを設定したフィールドには 重複するデータや空の値を入力することはできない 各オブジェクトの主なビュー オブジェクト ビュー 内容 テーブル データシートビュー データの内容を見る デザインビュー フィールド名や属性を設定する クエリ データシートビュー クエリの結果を見る デザインビュー クエリのデザインを設定する フォーム フォームビュー フォームでデータの入力 更新を行う デザインビュー フォームのデザインを設定する レポート レポートプレビュー 印刷結果を見る デザインビュー 印刷のデザインを設定する 4
操作演習 1 実施する内容 データベースの新規作成 / デザインビューからのテーブルの新規作成 / データシートビューでのデータ入力 / ウィザードを使用したテーブルの作成 データの型 1 起動とデータベースの新規作成 Microsoft Access の起動 データベースの新規作成 ( 作業ウィンドウから )[ 新規作成ー空のデータベース ] ( 作業ウィンドウが表示されていない時は [ ファイル ] [ 新規作成 ] または 新規作成アイコン ) データベースの名前 ( 文具店 ) を入力し 保存 ([ 作成 ] ボタン ) まずデータベースを作成してその後 テーブルなどのオブジェクトを作成していく 1 つのデータベースの中に複数のテーブルを作成できる 2 テーブルの作成 テーブルの作成 ( デザインビューから ) ( オブジェクトで )[ テーブル ] を選択した状態で [ デザインビューでテーブルを作成する ] をダブルクリック フィールドとデータ型を入力 フィールド名とデータ名を入力 主キーの設定 主キーにしたいフィールド名を選択して右クリック [ 主キー ] または ツールバーから [ 主キー ] アイコンを選択 テーブルを保存 主キーを設定しないでテーブル保存すると テーブルに格納されているレコードを一意に識別するため 主キーを設定することをお薦めします というメッセージが現れます データの型を確認 5
3 データシートビューでデータ入力 4 ウィザードを使用したテーブルの作成 ビューの切替 [ 表示 ] [ データシートビュー ]( または ビューアイコン ) でビューをデータシートビューに切り替える データ入力 それぞれのフィールドにデータを入力していく ( 入力し終わったらで自動保存 ) ウィザードを使用したテーブルの作成 ( オブジェクトで )[ テーブル ] を選択した状態で [ ウィザードを使用してテーブルを作成する ] をダブルクリック テーブル一覧から 商品マスター を選択 フィールド一覧から必要なフィールド ( 商品 ID 商品名 単価 在庫数 ) を選択 フィールド選択が終わったら [ 次へ ] をクリック テーブル名と主キーに関する設定方法を選択し [ 完了 ] ( デザインビューから ) テーブルのデータ型を確認 データシートビューで入力 ( 筆箱 500 30 手帳 300 10 消しゴム 300 50) できたテーブル 商品リスト を確認してみましょう ここでは デザインビューからテーブル作成とは別の方法でのテーブル作成を行ってみます ( 通常は同じテーブルを複数の方法のいずれか一つで作成します ) 6
操作演習 2 実施する内容 データシートの操作( 列の操作 データのコピー データの並べ替え 抽出 検索等 ) オートフォーム/ フォームのデザイン 1 データシートの操作 ( 操作演習 1 のデータベースを終了した場合は 既存のデータベース テーブルを開く ) データベース 文具店 の 商品マスター ( 操作演習 1 作成 ) のテーブルを開く 列の挿入 ( データシートビューになっていることを確認して ) 列を挿入したい場所の列フィールドを右クリック [ 列を挿入 ] [ フィールド 1] という新しい列ができる フィールド名の変更 挿入した列のフィールド名をダブルクリックし 列名を変更 商品名 ( かな ) 同様に 商品名 のフィールドも 商品名 ( 漢字 ) に変更 商品名 ( かな ) を入力する 行データのコピー コピーしたい行を選択し 右クリックで [ コピー ] ( またはプルダウンメニューから [ 編集 ] [ コピー ] コピーした行の貼り付け 最終行を選択し 右クリックで [ 貼り付け ] ( または [ 編集 ] [ 貼り付け ] コピーした行の商品名 ( 漢字 かな ) 単価を修正 消しゴム 消しゴム ( 小 ) けしごむ けしごむ ( しょう ) 単価 150 在庫数 50 ID をオートナンバーにしている場合と していない場合のコピーの違い 7
2 データシートの操作 ( 続き ) 列データのコピー 単価 のデータの次に列を挿入 単価 のデータ列を選択し 右クリック [ コピー ] 挿入した列を選択して 右クリック [ 貼り付け ] 挿入した列の名称を 旧単価 に変更 3 フィールドプロパティの変更 ( デザインビューから ) ふりがな入力支援機能の設定 商品名 ( 漢字 ) の行を選択し フィールドプロパティ設定の標準タブの [ ふりがな ] にカーソルを合わせ 入力支援ウィザードボタンをクリック ふりがなの入力先 : 既存フィールドを選択 [ 商品名 ( かな )] ふりがなの文字種を選択し [ 完了 ] データ型の変更 旧単価のデータ型を通貨型に変更 フィールドプロパティの書式も通貨に変更 データシートビューに戻し ふりがな入力支援機能の 動作を確認してみる ( 自動入力されたふりがなは上書き可能 ) ふりがな入力支援ウィザードでふりがなの入力の先フィールドの作成を同時に行うことも可能 入力支援機能には 他に 郵便番号を入力すると住所の町名等を自動入力 郵便番号 電話番号等の定型入力 データ入力日 などの設定が可能 4 データの並べ替え ( データシートビューから ) データの並べ替え 並べ替えの基準にするフィールドを選択 プルダウンメニューから [ レコード ] [ 並べ替え ] [ 昇順 / 降順で並べ替え ] ( またはツールバーの [ 昇順 / 降順で並べ替え ] ボタン 並べ替えの解除 : [ レコード ] [ フィルタ / 並べ替えの解除 ] 8
5 データの抽出 ( 単価が 300 円の商品を抽出したい場合 ) 6 フォームの作成 選択フィルタ 抽出したい条件に合っているデータを選択 ( 価格が 300 円のデータ ) プルダウンメニューから [ レコード ] [ フィルタ ] [ 選択フィルタ ] または [ 選択フィルタ ] ボタン フィルタの解除 : [ レコード ] [ フィルタ / 並べ替えの解除 ] または [ フィルタ解除 ] ボタン フォームフィルタ プルダウンメニューから [ レコード ] [ フィルタ ] [ フォームフィルタ ] または [ フォームフィルタ ] ボタン 単価の欄から 300 円を選択する プルダウンメニューから [ フィルタ ] [ フィルタ / 並べ替えの実行 ] または [ フィルタの実行 ] ボタン フィルタの解除 : [ レコード ] [ フィルタ / 並べ替えの解除 ] または [ フィルタ解除 ] ボタン ( 終了してデータを保存 ) ウィザードを使用したフォームの作成 オブジェクト : フォームを選択し [ ウィザードを使用してフォームを作成する ] をダブルクリック フォームウィザードの内容設定 テーブル / クエリ : 商品マスター 全ての項目を選択し [ 次へ ] レイアウト :[ 単票形式 ] を選択し [ 次へ ] スタイル : 好みのスタイルを選択し [ 次へ ] フォーム名の指定 : ( 今回はそのまま )[ 完了 ] 9
7 フォームのデザイン編集 フォームのデザインビューで表示する ( メニューパスはデータシートのデザインビューと同じ ) ラベルの文字色の変更 商品名のラベルを選択し フォントの色を変更する 単価のラベルも同様にする テキストボックスの大きさの調整 テキストボックスを選択し ドラッグで大きさを調整する ( フォームビューでデータを入力 ) 既存データの編集 新しいレコード レコードの削除 10
情報戦略基礎演習 Access(1) 参考資料 フィールドのデータ型 データ型 用途 テキスト型 文字列の入力 メモ型 長い文字列の入力 数値型 計算用 日付 / 時刻型 日付や時刻の入力 通貨型 金額の計算 計算速度が速い オートナンバー型 自動で整数値の割り当て 入力不可 Yes/ No 型 論理型 OLEオブジェクト型 画像 文書 ワークシート ハイパーリンク型 URL 数値型のサイズ データ型 テキスト型 メモ型 数値型 通貨型 255 文字まで 65536 文字まで サイズ バイト型 (0~255) 整数型 (-32768~32767) 長整数型 (-2147483648~2147483647 ) 単精度浮動小数点型 ( 有効桁数 7 桁の小数点を含む数値 ) 倍精度浮動小数点型 ( 有効桁数 15 桁の小数点を含む数値 ) 小数点以下 4 桁 小数点以上 15 桁 ルックアップウィザード あらかじめ指定したいくつかの値からひとつを入力したい時 11