3.料理の栄養計算で学ぶリレーション

3.料理の栄養計算で学ぶリレーション
  3.1 1対1のリレーション
    1)リレーションの定義
    2)リレーションを使った計算


リレーショナル・データベース

KeyWord:リレーション、リレーションを使った計算フィールド

3.1 1対1のリレーション

食材データベースでは、「料理No.、料理名、食材の食品番号、食材の食品名、量」以外に、

(指定した量に対する)その食材の各栄養素

も計算しよう。人が計算する場合、本「5訂食品成分表」から食品名か食品番号で探し出し、その値を使って計算しますが、データ−ベースでは、成分表が全て入っている食品成分データベースから検索させてその結果を使う方法をとります。機械ですから、テキストである食品名よりも、

数字である食品番号の方が、検索に適しています。
また、食品データベースにおける検索に使うどのフィールドが、食品成分データベースのどのフィールドに相当するかの指定をしてあげる必要があります。

これをリレーションを使うといいます。

1) リレーションの定義

i)ファイル(F)→定義(D)→ファイル参照(F)をクリックします。
ii)「ファイル参照を定義」のウインドウが現れるので、「作成(N)」ボタンをクリック。
iii)「ファイルの追加(A)」ボタンをクリックし、現れる「ファイルを開く」ウインドウで、食品成分データベースのファイル「食品成分DB.fp7」を選び、「開く(O)」をクリック。 「ファイル参照の編集」ウインドウで、「OK」をクリックする。 「ファイル参照を定義」のウインドウに戻るので、ここでも「OK」をクリックする。

C)次に、ファイル(F)→定義(D)→データベース(D)をクリックし、

「「食材DB」のデータベースの定義」ウインドウで「リレーションシップ」を選び、左下「テーブル/リレーションシップ」の左端のウインドウ(下図の赤丸をつけたアイコン)をクリックする。すると、左図のように「テーブルを指定」ウインドウが現れるので、上で定義した「食品成分DB」を選び、「OK」をクリックする。現在のデータベース「食材DB」と参照した「食品成分DB」の2つのデータベースのフィールドが下図のように表示されている。ここで、食材DBのフィールド「材料の食品番号」が食品成分DBでは「食品番号」に相当(リレーションシップ)することを、以下の一連の操作によって、示そう。

  1. 上図の赤丸で囲ったアイコンを押す。下図のような「リレーションシップ編集」ウインドウが現れる。
  2. 左側に、現在のデータベース「食材DB」[下図 1)]を、右側に参照データベース「食品成分DB」[下図 2)]を、それぞれ下向きの矢印を押して選ぶ。
  3. 左側は、フィールド「材料の食品番号」[下図 3)]を、右側は、フィールド「食品番号」[下図 4)]をクリックして選ぶ。
  4. 「追加(A)」ボタン[下図 5)]をクリックする。
  5. 真ん中に、上で選んだ2つのフィールドの等号(リレーションシップ)が表示されていることを確かめて、「OK」ボタン[下図 6)]をクリックする。

すると、上で定義したリレーションが、「食材DB」のデータベースの定義」ウインドウでも、下図のように確かめられる。「OK」をクリック。

  こうやってリレーションを作っておけば、次のように、レイアウトモードで「フィールド」アイコンをドラッグし、
リレーションを選ぶことにより、関連フィールドを表示させることが出来る。例えばフィールド「食品名(正式名称)」や「エネルギー」を表示させて、ちゃんとその食材が検索されているか、100gあたりのエネルギーが表示されているかどうかチェックしてみよう。

2)リレーションを使った計算

  STEP1で定義したリレーションを使って、使った食材量に対する栄養素を計算し、フィールドとして定義しよう。

i)ファイル(F)→定義(D)→データベース(D)で、新しいフィールド(使った食材量に対する栄養素)を定義する。
フィールド名:「エネルギー」、フィールドタイプ:「計算」と指定し、「作成」ボタンをクリックすれば、
「計算式の指定」ウインドウで、@リレーション「食品成分DB」を選んで現れる(食品成分データベースの関連フィールド)「::エネルギー」をダブルクリックしてえらび、すぐ下の欄に、表示されたら、次に「演算子」の欄から*(かけ算)を選び、さらに
現在のテーブル(「食材DB」)を選び直してから、フィールド「量g」を選ぶことで、
現在のフィールドとリレーションの定義で使った関連ファイルのフィールドを組み合わせ、エネルギー(=):の下の欄に、

食品成分DB::エネルギー * 量 / 100

という計算式を代入、OKをクリックする。食材量あたりの他の栄養素も同様に、リレーションを使った計算フィールドとして、定義する。
「OK」ボタンクリック後は、右図のように「フィールド定義」ウインドウに戻るので、必ず計算式を確認後、「終了(E)」ボタンを押し、さらにブラウズモードで現れる計算結果もチェックすること。