...

データベースの設計 - 広島県立教育センター

by user

on
Category: Documents
6

views

Report

Comments

Transcript

データベースの設計 - 広島県立教育センター
広島県立教育センター
データベースの設計
ver1.0
広島県立教育センター
www.hiroshima-c.ed.jp
- 0 -
広島県立教育センター
第5章
5−1
データベースの設計
設計の目的
データベースを構築するには,何を目的としたデータベースなのかを明確にし,処理する
内容を具体的にかつ系統的に,処理内容を分析・整理する必要があります。この分析・整理
した情報を基にデータベースを設計します。目的に沿って,収集した情報をいかに効率よく
データベースに反映させることができるかが,設計の際に大切なことです。
データベース利用による利点
○
事務処理の軽減と効率化
○
データの蓄積
○
蓄積されたデータの有効利用(検索・置換・抽出などが容易にできる)
5−2
設計作業の流れ
データベースの目的を明確にする。
事
前
準
備
○
処理に必要な情報を収集する。
○
処理内容を系統的に整理する。
○
処理する内容を,作業手順に従って詳細に整理する。
○
既存のテーブルと新規に作成するテーブルの項目名,データの形式等を確認する。
データベースの作成
○
テーブルの項目名,データの形式など具体的な設計をする。
○
フォームのラベル名,入力項目などの決定と,入力レイアウトの作成をする。
○
レポートのラベル名,印刷項目などの決定と,印刷レイアウトの作成をする。
○
ダミーデータの入力をする。
○
テーブル,フォーム,レポートそれぞれのデバッグを行う。
○
マクロ処理をする。
○
統合処理メニューの作成をする。
5−3
テーブルの設計
(1) テーブル設計の留意点
データベースを利用するためには,項目(フィールド)の名前やデータの型,表示幅を
決める必要があります。この項目にデータの型や表示幅を設定した情報を「項目属性」と
呼びます。この「項目属性」を設定する際の留意点は次の通りです。
www.hiroshima-c.ed.jp
- 1 -
広島県立教育センター
○
何を目的とするデータベースなのかを十分検討しましょう。
○
項目名からデータの内容が具体的にわかるように,名前の付け方を工夫しましょう。
○
入力するデータが文字なのか,数字なのかをよく検討しましょう。
○
入力ミスを防止するための対策を考えましょう。
(入力データに,文字数の制限や半角・全角の区別をするなどの制限条件をつける等)
○
入力が簡単にできる方法を工夫しましょう。
(2) データの型
テーブルを作成する際,フィールドに保存できる値の種類を「データ型」として設定して
おく必要があります。Access の場合,次のようなデータ型があります。
データ型(Access の場合)
内
容
テキスト型
文字・数字などの文字列データ(半角最大 255 文字)
メモ型
半角 255 文字以上,最大 64,000 文字までのデータ
整数型
−32,768 ∼ 32,768 までの整数
数
バイト型
0 ∼ 255 までの整数
値
長整数型
−2,147,483,648 ∼ 2,147,483,648 までの整数
型
単精度浮動小数点型
−3.4×10^38 ∼ 3.4×10^38までの数値
倍精度浮動小数点型
−1.797×10^ 308 ∼ 1.797×10^ 308 までの数値
日付/時刻型
日付や時刻のデータ
通貨型
金額のデータ
オートナンバー型
自動で番号を割り振られるデータ(修正不可)
Yes/No 型
2つの選択肢のあるデータ
OLE オブジェクト型
Word や Excel などで作成したデータ
ハイパーリンク型
項目選択することのできるデータ
(3) テーブルデザインビューのフィールドプロパティ項目
設定した「データ型」について,さらにフィールドプロパティで詳細の設定をしましょう。
フィールドプロパティ項目には,主に次ページのようなものがあります。
www.hiroshima-c.ed.jp
- 2 -
広島県立教育センター
設定項目
内
容
テキスト型および数値型フィールドに格納される,データのサイズを設定しま
フィールドサイズ
す。テキスト型の場合は最大文字数を,数値型の場合にはバイト型から十進数
型までをリストで選択します。
オートナンバー型フィールドのみ設定できます。テーブルに新規レコードが追
新規レコードの値
加されるときの値の増加方法を設定します。通常の設定値としては[インクリ
メント]で,新規レコード発生時に自動的に1ずつ増加します。
[ランダム]に
設定すると,無作為に乱数(長整数型の値)が割り当てられます。
数値や日付/時刻,テキストのデータを表示する書式を指定します。選択でき
書
式
る書式はフィールド型によって異なりますが,定義済み書式やカスタム書式を
作成して使用することもできます。
フォーカスがフィールドに移動したときの IME 入力モードを設定します。
[コン
IME 入力モード
トロールなし]を設定すると,フォーカスが移動する前の設定がそのまま使わ
れ,それ以外の設定では,そのコントロールに指定した IME 入力モードへ自動
的に切り替わります。
IME 変換モード
ふ
り
が
な
漢字変換モードを切り替えます。通常の変換モードは[一般]ですが,
[人名/
地名]にすれば人名地名辞書を優先的に使えるように設定されます。
入力された文字列のふりがなを,指定先のフィールドへ自動表示します。
入力された郵便番号に対する住所,または入力された住所に対応する郵便番号
住所入力支援
を指定先のフィールドへ自動入力します。テキスト形式のみ利用できます。
小数点以下表示桁数
数値型フィールドでは,小数点以下の桁数を設定できます。
テキスト型,数値型,日付/時刻型,通貨型のフィールドで設定できます。定
定
型
入
力
型入力はデータ入力を簡単にしたり,間違った入力値を制限したりします。例
えば郵便番号の入力方法を,”〒”000−0000 と設定しておけば,数値を入力
するだけで,指定した形に表示させることができます。
テーブルまたはクエリのデータシートビューで,フィールド名以外のわかりや
標
すい列見出しとして設定することができます。ルックアップウィザード型以外
題
のすべてのフィールド型で設定できます。標題プロパティを指定しなければ,
フィールド名がそのまま使用されます。
既
定
値
入
力
規
新しいレコードが追加されるときに,フィールドに初期値として自動的に入力
される値を設定します。
制
エラーメッセージ
値
要
求
空文字列の許可
入力されるデータに対しての制限条件を設定します。例えば「月」フィールド
に1から 12 までの値をデータとして許可するには,>0 And <13 と設定します。
入力規制プロパティの設定値に違反するデータが入力された場合に表示する独
自のメッセージを設定します。
(例)“入力し直してください”など
フィールドに値が必要かどうか設定します。このプロパティを[はい]に設定
すると,フィールドの値の入力を必須とすることができます。
このフィールドに長さ0の文字列(“
”)を入力してもよいかどうか設定しま
す。
インデックスを設定します。インデックスを設定すると,並べ替えや検索を実
インデックス
行する速度が速くなります。[はい(重複あり)]では重複したデータの入力を
許可します。[いいえ(重複なし)]にすると,すでに入力されているデータの
www.hiroshima-c.ed.jp
- 3 -
広島県立教育センター
値を受け付けません。メモ型や OLE オブジェクト型,ハイパーリンク型では設
定できません。
Unicode とは,世界中のさまざまな言語を含む国際文字コード化システムの規
格です。Unicode は,2バイト文字を使用するために,フィールドに保存され
Unicode 圧縮
る文字は多くの領域を占有します。このプロパティを[はい]にしておけば,
この領域を圧縮することができます。
※
フィールドのデータ形式により,プロパティで設定できる項目に違いがありますので
気を付けましょう。
※
入力規制について
○
入力する値
設定項目「入力規制」による制限
フィールドの入力規制に
入力規制
>0
0より大きい数値を入力できる
>=0
0以上の数値を入力できる
<0
0より小さい数値を入力できる
<=0
0以下の数値を入力できる
=1
1だけを入力できる
< >1
1以外を入力できる
○
Len 関数を利用する。
Len([フィールド名])< =6
入力文字を6文字以内に制限する。
設定項目「定型入力」による制限
あらかじめ設定した入力規則に従った入力を支援します。
000−0000
・・・・
ハイフンで接続された3桁+4桁の数字入力の制限
・0
:
データがない場合は,「0」が表示されます。
・9
:
データがない場合は,「空白」が表示されます。
・固定した文字列を表示させたい場合は,「 “
【
演習
】
“ 」で指定します。
次の条件により演習テーブルを作成しましょう。
フィールド名
データ型
設定条件
会員番号
オートナンバー型
新規レコードは1ずつ増加・主キーとして設定
名前
テキスト型
入力文字数を7文字以内に設定
ふりがな
テキスト型
「名前」から自動表示・全角ひらがな
性別
テキスト型
ルックアップウィザードで「男性」「女性」を表示
郵便番号
テキスト型
定型入力で「〒○○○−○○○○」と表示
住所1
テキスト型
住所入力支援を利用
電話番号
テキスト型
定型入力で「(○○○○)−○○−○○○○」と表示
来店月
テキスト型
入会者数
数値型
規定値として1を表示
投資金額
通貨型
「¥」や「,」を自動表示
入力規制で1から12までの値をデータとして許可
間違ったデータにはエラーメッセージを表示
www.hiroshima-c.ed.jp
- 4 -
広島県立教育センター
(4) テーブルの正規化
リレーショナルデータベースの場合,各テーブルにおけるデータの重複をなくし,データ
の一貫性と整合性を図るために,次の手順により正規化を行います。
【
参考例
】
次のような注文伝票を作成するためのテーブルを設計しましょう。
注 文 伝 票
年 月 日
伝票番号
顧客番号
顧客名
注文金額
顧客住所
No
品番
品名
単価
数量
金額
合計
①
現状分析
伝票番号
:
想定する処理結果から,入力(保存)すべき項目を洗い出します。
顧客番号
顧客名
顧客住所
年月日
No
品番
品名
単価
数量
※「金額」や「合計」「注文金額」など,計算で求めることができる項目は削除します。
②
第一正規化
伝票番号
③
第二正規化
:
データ項目を検討し,固定部分と繰り返し部分とに分割します。
顧客番号
顧客名
顧客住所
年月日
No
品番
品名
単価
:
○
固定部分
「基本テーブル」となります。
数量
○
繰り返し部分
分割したテーブルをつなぐ「キー項目」を設定し,それぞれにテー
ブル名をつけましょう。
○テーブル名
伝票番号
○テーブル名
:
伝票マスタ
顧客番号
:
伝票番号
顧客名
※「伝票番号」をキー項目
顧客住所
年月日
とし,2つのテーブルに
関連性を持たせます。
注文明細表
No
品番
品名
単価
www.hiroshima-c.ed.jp
- 5 -
数量
広島県立教育センター
④
第三正規化
:
テーブルは,項目数ができるだけ少ない方が利用しやすいです。
ここではキー項目以外のデータを検討し,さらに分割していきます。
○顧客マスタ
顧客番号
顧客名
顧客住所
○伝票マスタ
伝票番号
年月日
顧客番号
○注文明細表
伝票番号
No
○商品マスタ
⑤
品番
数量
品番
品名
単価
リレーションシップの作成
①∼④の手続きを経て作成した各テーブルについて,リレーションシップ(関係付け)
をとってみましょう。
5−4
フォームの設計
(1) 目
的
データ入力を補助し,内容を確認することがフォームの役割です。従って,テーブルの項
目(フィールド)の名前やデータの型,表示幅を知り,テーブル全体が把握できている必要
があります。また,データ入力をできるだけ簡単・容易にすることに心がけたレイアウトに
することが大切です。
(2) フォーム設計の留意点
○
入力項目を十分に把握しておきましょう。
○
ラベルから,データの内容が具体的に分かるような名前にしましょう。
○
入力ミスを防止するための対策を考えましょう。
(入力データに,文字数の制限や半角・全角の区別をするなどの制限条件をつける等)
○
入力が簡単にできる方法と,レイアウトを工夫しましょう。
www.hiroshima-c.ed.jp
- 6 -
広島県立教育センター
5−5
レポートの設計
(1) 目
的
検索結果や処理結果などを印刷するためには,レポートの設定を行う必要があります。こ
のレポート作成には,印刷するテーブルの項目(フィールド)の名前やデータの型などを十
分に把握しておく必要があります。
(2) レポート設計の留意点
○
特に留意すべき点はレイアウトです。十分に検討しましょう。
○
単票形式,表形式,伝票形式の3種類の中から,目的の印刷に適した形式でレイアウ
トを考えましょう。
○
ラベルがデータの内容を示すものになるように,ラベル名を工夫しましょう。
○
印刷されるデータの最大文字数,文字位置などを十分検討しましょう。
○
印刷ミスを防止するための対策を考えましょう。
○
印字はプリンタの機種に依存するので,使用するプリンタの仕様を把握しておきまし
ょう。
※
レポート作成は,プリンタの設定がされていないと作成できません。
データベース(Access)活用の留意点
○
文字入力の際の留意点(検索条件,関数などを入力する際には要注意)
・
半角全角,大文字小文字をきちんと区別しましょう。
・
空白も文字列として認識します。(画面上では確認できないので注意しましょう。)
・
関数,計算式などの記述は,項目名以外はすべて半角文字です。
○
データ作成の留意点
・
思いつきでファイル名や項目名,クエリ名を決めないようにしましょう。
・
データベース作成で一番大切なのは,全体構想です。(データベースの設計を!)
・
既存のデータベースは,できるだけ活用しましょう。(作業の効率化を!)
・
項目数最大 255 項目,項目名は 20 文字まで可能です。
・
Access が持っている機能は有効に活用しましょう。(住所支援入力・ふりがな入力
など)
○
関数利用の留意点
・
Excel の関数が利用できるので,有効に活用しましょう。
・
関数が利用できる場合は,積極的に利用しましょう。
○
テーブル間でデータの共有をする
・
リレーションシップを設定しましょう。(キーとなる項目がそれぞれのテーブルに
www.hiroshima-c.ed.jp
- 7 -
広島県立教育センター
5−6
SQLによる操作
(1) SQLとは
SQL(Structured Query Language)は,直訳すれば「構造化された問い合わせ言語」と
なります。データベースに対してデータを取り出したり,更新処理を行ったりするときに,
どういった処理を行うのかを記述するためのものです。
Access の場合,表面上では読みとれませんが,クエリでの作業は実際にSQLに置き換え
られて実行されています。デザインビューを表示し,SQLビューに切り替えれば実際に動
作命令となっているSQLを見ることができます。また,表示されたSQLをコピーしてモ
ジュールに取り込み,必要な部分を修正すれば,簡単にSQL文を作成することができます。
○
選択クエリ
→
SELECT 文
○
更新クエリ
→
UPDATE 文
○
追加クエリ
→
INSERT 文
○
削除クエリ
→
DELETE 文
に相当します。
(2) SELECT 文
表中におけるデータの読みとりは,リレーショナルデータベースの中でもっとも多く発生
するデータ操作です。この場合,「SELECT」を用いて操作します。
①
データの読み取り
○
SELECT
※
○
②
○
「生徒台帳テーブルから,生徒IDと生徒名を表示する」
生徒ID,生徒名
FROM
生徒台帳;
テーブル内のすべてのフィールドを対象とする場合は,
「 *」で示します。
SELECT
条件式照会
:
*
:
SELECT
FROM
生徒台帳; 「生徒台帳のすべてのフィールドを表示する」
ある一定の条件に基づいた特定行の読み取りを指定します。
*
FROM
試験結果
WHERE
国語
>=
80;
「試験結果テーブルから,国語が 80 点以上のレコードを取り出す」
○
SELECT
生徒名
FROM
成績一覧表
WHERE
数学
<=
50;
「成績一覧表から,数学が 50 点以下の生徒名を取り出す」
○
SELECT
生徒 ID,英語 FROM 試験結果 WHERE 英語 >= 60 AND 英語 <= 90;
「試験結果から,英語の点数が 60 点以上でかつ 90 点以下の生徒 ID と英語の
点数を表示する」
www.hiroshima-c.ed.jp
- 8 -
広島県立教育センター
③
集約関数と並べ替え
○
SELECT
:
特定の列をもとにグループの集計や並べ替えをします。
生徒 ID,SUM(点数)
FROM
試験結果
GROUP
BY
生徒 ID;
「試験結果から,生徒 ID ごとの点数合計を求めて表示する」
○
SELECT
生徒 ID,SUM(点数)
FROM
試験結果
ORDER
BY
2
GROUP
BY
生徒 ID
DESC;
「試験結果から,生徒 ID ごとの点数合計を求め,合計点の多い順に表示する」
※
④
結合処理
○
:
SELECT
DESC
:
降順
ASC
:
昇順
複数の表を特定の列で結びつける操作です。
生徒名,合計点
FROM
生徒台帳,試験結果
WHERE
生徒台帳.生徒 ID
=
試験結果.生徒 ID;
「生徒 ID で関連づけられた生徒台帳と試験結果から,生徒名と合計点を取り出す」
これ以外にも多くのSQLステートメント(命令)がありますが,一般的な操作につ
いてはクエリの機能を利用することで十分対応できます。
クエリで設定した操作を[SQL ビュー]で確認することから始めてみましょう。
--------------------------平成15年10月31日
初版発行
発行
広島県立教育センター
〒739-0144
東広島市八本松南1丁目2-1
℡(0824)28-2655(直通)
www.hiroshima-c.ed.jp
- 9 -
Fly UP