データは、その構造そのものにも情報を持つ

データは、構造そのものにも情報を含んでいます。

例えば「田中 太郎」という氏名は、苗字が「田中」で名前が「太郎」です。なぜなら、区切りであるスペースの前にある情報が苗字で、後にある情報が名前だからです。

このようにデータは、構造そのものに情報を持ちます。データ構造に情報を持たせる事も可能です。

無駄の多いデータベース

データ構造が情報を持っている事を知らないと、無駄の多いデータベース、アルゴリズムを作ってしまいます。

例えば、「苗字」のフィールド(列)と、「名前」のフィールドをもつデータベースは無駄が多くなります。下記の通り、様々なデメリットを招きます。本来は「氏名」のフィールド1つで十分です。データ構造で苗字と名前が区別できるからです。

 

検索しにくい

「苗字」のフィールドと、「名前」のフィールドをもつデータベースでは、情報の検索が大変です。「田中 太郎」の検索は、「田中」を抽出し、その後「太郎」を抽出するなど、手間がかかります。もしも「氏 名」のフィールドがあれば、「田中 太郎」を1回検索すれば済みます。1回の検索の方が効率的です。

 

資源の無駄

「苗字」のフィールドと、「名前」のフィールドをもつデータベースでは、2つのフィールドが必要です。長い苗字・長い名前をそれぞれ想定する必要があるため、2つのフィールドはそれぞれ長い文字列を格納するキャパシティーが要求されます。

一方で「氏 名」の場合は、フィールドは1つで十分です。キャパシティーの問題も、多少軽減されます。

 

その他、構造が持つ情報

先程は、順序に情報を持つ場合について扱いました。その他、例えば要素の個数や長さも立派な情報です。

例えば、Excelのsum関数について考えます。=sum(a1,a2,a3) とすれば、a1+a2+a3の値が得られます。sum関数に渡した要素の数(セルの数)が3つであるという情報から、Excelは2つの足し算をすれば良いと分かるわけです。

 

関連記事

タグ: , ,

コメントを残す

メールアドレスが公開されることはありません。