「コンピュータの処理対象となる符号化された情報」の意味でデータを使うと書いている.符号化された情報とはなんだろうか?
符号化とは,情報を記号によって表現することを言う.コード化と言うこともある.この 記号で表現されたものを符号(コード)と呼ぶ.コンピューターは0と1で符号を表す.よう するに,コンピューター内部で0と1のビットで取り扱うことができるものをデータととし て取り扱う.
逆に符号化できない情報があるだろうか? 人間の感情はどうだろうか? 人間の感情を言葉 で表せば符号化は可能である.しかし,そこに言葉で言い表せない何か(情報)があるとす るならば,符号化は非常に困難になる.このようなとき,人間の状態--例えば心拍数, 血圧,体温,脳波など-- を可能な限り測定器で測って符号化しても無駄であろう.この ような情報は,コンピューターで取り扱わないことが得策である.
これ以降は,符号化できる情報のみを取り扱う.コンピューターでは,そのようなものし か取り扱うことができないからである.
モデル化する方法は,一意に決めることができない.同じ対象でもモデル化の方法は,千 差万別である.対象の本質を見抜き,記号で表し,コンピューターで取り扱える形にし なくてはならない.情報処理の達人は,これが上手にできるのである.
データ(対象)をモデル化する課程には,3つのレベルがある.
概念モデル(Conceptual Model) | 処理する対象を人間が認識しているが,記号で 表すことができないモデル.人間の頭の中にあるだけのもの. |
論理モデル(Logical Model) | 処理する対象を記号で表したモデル. |
物理モデル(Logical Model) | 処理する対象をコンピューターで取り扱うことができるモデル. |
モデル化の第一段階(概念モデル)は,モデル化を行う人間(プログラマー)の観察力,あるい は理解力に依存する.これは,学校の講義で教えることは難しい.実際の仕事で訓練を積 まなくてはならない.
モデル化の第二段階(論理モデル)は,ある程度学校の講義で教えることが可能である.こ れまでの人類が経験した知識として,いくつかのモデル化の方法があり,それを図(記号) で表すことができる.代表的なモデル化の方法については,この後の 2.4節での中心的な話題となる.
モデル化の第三段階(物理モデル)は,実際のプログラミングの講義,とくにアルゴリズム とデータ構造の中心的な内容である.データベースの演習があれば,それも含まれる.他 にも対応するものもあるだろう.これらは,学校で基本的な内容を教えることはできる.
完全性 | 対象の全ての要素に対応するモデルの要素がある.全ての対象が表現可能と言 うこと.対象の要素に対して操作(演算)を行った場合,その結果の要素(対象に含まれる) に対応するモデルの要素も存在する必要がある. |
一意性 | 一つのモデルの要素には,一つの対象の要素がある.モデルの一つの要 素に対して,対象の要素があるときあいまいと言う. |
忠実性 | 対象の1つの要素が,モデルの1つの要素のみに対応している. |
整合性 | 対象の要素の間で成り立つ規則(演算)が,モデルの要素間で成り立つ. |
無冗長性 | 同じ情報が表現の複数箇所で表れない. |
拡張性 | データモデルを変更したとき,既存のデータの表現を変更せずに新しい データを表現できること. |
論理モデルは,次のレベルである物理モデル,すなわちコンピューターでの実際の処理に つながる.また,論理モデルは人間の頭の中にある考え(概念モデル)から来るものである. したがって,この段階は人間の概念とコンピューターをつなぐ部分となり,情報処理を行 う上で極めて重要なである.
幸いなことに,論理モデルはいくつかの代表的なパターンに分けることができる.これま で,人類が情報処理を行ってきて経験的に学んだ方法である.諸君が解くほとんどの問題 (情報処理)は,これらのいずれかのパターンが応用できるであろう.