Web教材一覧>
情報技術の基礎>
データベース
ファイルの概念
学習のポイント
データベースを理解するための前提として,通常のファイルの概念を理解します。
- ファイルに取り込むべき項目と,ファイル,レコード,項目の意味を理解します。
- イベントファイルとマスタファイルの概念を理解します。
キーワード
コード,ファイル(表,テーブル),レコード(行),項目(列,属性),イベントファイル(トランザクションファイル),マスタファイル,ユニークキー(主キー)
★
参考動画:メディアリンク「ビジネスパーソンIT道場」
ファイルの構造
本節では,次の事項を学習します。
- 入出力帳票を調べて,ファイルに入れるべき項目を決定する。
- 項目(フィールド),レコード,ファイルの概念を理解する。
伝票・帳票とファイルの関係
簡単な例(例題1)により,ファイルに入れるべき内容を検討します。
売上伝票と請求書
当社では,売上が発生するたびに売上伝票が起票して,コンピュータに入力され,売上ファイルとして蓄積されます。毎月末になると,売上ファイルから請求書を出力して得意先に請求します。このときの売上ファイルのデザインを設計することを例にします。
ファイルで持つ項目の列挙
ここでは,売上伝票の入力方法や請求書の出力方法は考慮しないで,請求書を出力するためにはどのようなデータ項目がファイルに入っていなければならないかだけに注目します。
- まず最初に,請求書に印刷されている事項を,すべての請求書に共通な部分(コダマ電器あての請求書でもリラックスあての請求書でも同じ部分)と,個々の請求書で異なる部分(コダマ電器の××年10月分の請求書に特有な部分)に区分します。
- 請求書の「請求書」,「下記の通り〜」,「商品名」などの文字や罫線は,すべての請求書に共通な部分である。これらは,事前に用紙に印刷しておくことができます(プログラムでフォームを作ることもできます)。それで,これらは売上ファイルのデータとして持つ必要はありません。
- それに対して,「コダマ電器」などの得意先名,「目立テレビ」などの商品名,数量,単価などは,個々の請求書によって異なる部分ですから,売上ファイルのデータとして持っておき,それをプログラムで読んで請求書に出力する必要があります。
- ファイルに入れておかなければならない項目と,それらの項目から計算できる項目を分離します(後者はファイルに入れません)。
- 金額は,数量と単価から計算できますし。合計金額は,個々の金額を集計できます。このように,他のデータからプログラムで計算できるものは,それをデータには入れません。
- 請求書の日付や「ただし○○分」の日付は,これ自体は出力処理時にオペレータがプログラムに指示するものであり,もし売上ファイルが当月分のデータしか持たないのであれば不要だといえます。しかし,用途によっては月をまたがって持つ場合もあるし,伝票発行の日付が必要になることもあるので,ここでは年月日もデータとして持つことにします。
(注)コードについて
請求書には,得意先コードや商品コードがないのに,売上伝票にはそれらをつけています。コンピュータ処理では,コードをつけることが重要になります。
- 得意先名には,異なる会社なのに同じ名称なときがあります。コードをつけることにより,それを防ぐことができます。
- 会社や商品の正式名称には長々しいものもあります。「グローバル・インターナショナル・デジタルイクイップメント・サービス株式会社」などを,取引のつど入力していたのでは非効率ですし,ミスも発生します。
- それに対してコードは通常は4〜8桁で長いものでも13桁程度です。コンピュータの保管する容量が少なくなるし,処理効率もよくなります。
一般にはコード順で出力されます。また,似たものを並べることにより,区分けをするのが容易になります。適切なコード体系にすることが重要になります。
得意先や商品は多様な切り口で分類することが必要になります。それを得意先コードや商品コードの体系でカバーしようとすると複雑になりますし,新しい切り口を作ろうとするとコードを変更しなければならなくなります。コードを変更すると,多くのプログラムに影響しますし,過去のデータとの整合性がとれなくなります。
それを解決するには,得意先区分(ランク別,資本関係別,地域別などの区分)や,商品区分(商品系列,商品特性,管理区分など)を設定するのが便利です。ここでは,商品系列による「商品区分」を設けました。
このような分析により,売上ファイルに必要な項目は次のようになります(実際にシステムを設計するには,単に一つの帳票を得るためではなく,非常に多くの帳票を調べる必要があります。また,既存の帳票だけでなく,将来どのような情報が必要になるかも調査します。ですから,数百・数千におよぶ項目が列挙されるのが通常です)。
なお,ここでは次のような表記法をします。
売上ファイル=年月日
+得意先コード+得意先名
+商品コード+商品名
+商品区分コード+商品区分名
+数量+単価
項目,レコード,ファイル
売上ファイルのデザインは下表のようになります。
- 項目
- 年月日や商品コードなど,縦に並んでいるものを項目といいます。そして「年月日」や「商品コード」などの項目の名称を項目名といいます。
- レコード
- 1組の全項目を並べた1件のデータのことをレコードといいます。よく「〇〇件のデータがある」というのは「レコード数が〇〇である」ことになります。
- ファイル
- 同じデザインのレコードを集めたものをファイルといいます。すなわち,ここでの売上ファイルは同じ項目を持つ売上レコードを集めたものです。
これらは,いろいろな用語で呼ばれています。
一般的用語として ファイル レコード 項目
RDBでの用語 (日本語) 表 行 列
同上またはAccessで(英語) テーブル レコード フィールド
その他 属性
過去問題:「データベース一般」(
database.html)
イベントファイルとマスタファイル
前節では単一のファイルを検討しましたが,現実には,得意先マスタや商品マスタなどのマスタファイルと,売上ファイルのようなイベントファイル(トランザクション・ファイルともいう)にわけて持ちます。本節を学習することにより,イベントファイルとマスタファイルの特徴を理解して,そのようにわけるメリットを理解します。
(1)マスタファイルの分離
上の表を見てください。同じ値がいくつも重複していることがわかります。特に得意先名や商品名は「グローバル〜」のように長いものもあるので,かなり無駄が生じています。
手作業でも,得意先や商品に関する特性を台帳にしていますが,システムでも得意先台帳や商品台帳に記載する項目は,得意先マスタや商品マスタなどのマスタファイルとして持ち,個々の取引により発生する売上ファイルとは別のファイルにするのが通常です。すなわち,売上ファイルには得意先や商品のコードだけを持ち,名称などのマスタファイルの属性である項目は持たないようにするのです。これにより,上のファイルは次の4つのファイルに分解することができます。
これを次のように図式するのが通常です。得意先マスタでは一つの得意先コードに一つのレコードが対応しているので,得意先コードが決まれば,得意先名が一意に決まります。このとき,得意先コードのような項目をユニークキーあるいは主キーといいます。得意先コードを「ユニーク」キーというのは,このファイルには同じ得意先コードを持つレコードは1つしか存在しない(ユニークである)からです。それに対して売上ファイルでは,同じ日に同じ得意先に同じ商品を売り上げることもあるので,ユニークキーに相当する項目は存在しないことが多いのです。
実際のファイルの内容は次のようになります。これから,前節のファイルが復元できることを確かめてください。
これは次のように表現できます。
売上ファイル=月日+得意先コード+商品コード+数量
得意先マスタ=得意先コード+得意先名
商品マスタ=商品コード+商品名+商品区分コード+単価(注)
商品区分マスタ=商品区分コード+商品区分名
(注)ここでは,商品の単価はどの得意先に対しても同じ(商品が決まれば単価が決まる)としたので,単価が商品マスタの項目になりました。もし各取引ごとに単価が異なるのでしたら,単価は売上ファイルの項目になります。また,単価が得意先により異なり,同一得意先との取引では各取引で同じだとするならば,「単価マスタ=得意先コード+商品コード+単価」の単価マスタが必要になります。
(2)イベントファイルとマスタファイルの特徴
イベントファイルは,個々の取引によってデータが追加されたり更新されたりするファイルです。ここでは売上ファイルがそれにあたります。それに対して,得意先マスタや商品マスタなどのマスタファイルとは,得意先台帳や商品台帳のようなもので,通常ではあまり変化のないファイルです。イベントファイルとマスタファイルの違いを示します。
イベントファイルとマスタファイルの特徴
┌──────┬────────┬───────┐
│ │イベントファイル│マスタファイル│
├──────┼────────┼───────┤
│レコード数 │比較的多い │比較的少ない │
│更新頻度 │非常に多い │あまりない │
│ユニークキー│通常は持たない │通常は持つ │
│項目の個数 │比較的少ない │比較的多い │
│項目の追加 │あまりない │ときどきある │
│他目的利用 │比較的少ない │共有して利用 │
└──────┴────────┴───────┘
- レコード数と更新頻度
- 売上ファイルのようなイベントファイルは,売上が発生するたびにレコードが入力されますので,ファイルのレコード数は非常に多く,ファイルは頻繁に更新されます。それに対して,得意先マスタのようなマスタファイルは,得意先の数がレコード数になりますから,レコード数は比較的少なく,新規の得意先ができたり,住所などに変更が起こったりしたときだけに更新されるのですから,更新頻度は少ないといえます。
- ユニークキー
- これに関しては前述しました。
- 項目の個数とその追加
- 売上ファイルでは,基本的にはいつ・どこへ・何を・どれだけ売り上げたかを示す項目があればよいのだから,項目の個数はあまり多くはなりません。項目追加も原則としては起こりません。それに対して,得意先マスタは得意先台帳のようなものですから,住所,取引開始年月日,得意先区分など多様な項目があります。
そもそも帳票出力では,イベントファイルのレコードをマスタファイルの項目で選択したり集計したりして加工する処理だともいえます。その選択・集計の切り口は多様でするから,マスタファイルの項目数は多く,ニーズの変化に応じて追加されることが多いのです。
- 他目的への利用
- 売上ファイルは,売上の分析以外に使われることはあまりありません。それに対して,得意先マスタは,売掛金管理にも利用されるし,商品マスタは仕入業務でも会計業務でも利用されます。このように,マスタファイルは他のシステムと共有して利用されることが多いのです。
理解度チェック
第1問
システムを設計するときには,そこで用いられる伝票類を調査して,ファイルで持つべき項目を決めることが必要であるが,図1−2を例にして次の問に答えよ。
- 「コグレ流通株式会社」とか「下記の通り請求申し上げます」という文字列はファイルに持つ必要がない理由を示せ。
- 「コダマ電器」や「目立テレビ」などをファイルに持つ必要がある理由を示せ。
- 金額や合計金額はファイルに持つべきかどうか。理由も示せ。
第2問
次の仕様のとき,分離前と分離後のデータ容量を計算せよ。ただし( )内の数字はバイト数である。
売上件数 10万件 年月日(8)
得意先数 2千件 得意先コード(6),得意先名(32)
商品数 5千件 商品コード(8),商品名(32),単価(6)
商品区分数 50件 商品区分コード(2),商品区分名(16)
本シリーズの目次へ