JBI オンラインスタディR [リレーション]
【準備編】
リレーションの概要
◆ 実践スタディの前に
すぐに実践して頂きたいのはヤマヤマなのですが、その前に準備段階を踏ませてください。
本セクションで、まずはざっとリレーションの概要をお話しします。
【 ご注意事項 】
✻『ながにぃ式リレーション』は、新規で制作するファイルで取り入れる想定であることを最初にお伝えしておきます。
✻ これから行う『ながにぃ式リレーション』は既に運用中のファイルには取り入れないでください。リレーションの変更には事前の調査・分析を充分に行う必要があります。誤って変更すると動作しなくなったり表示されなくなる場合もあります。そのような状態になっても責任は負えませんので予めご留意ください。運用中のファイルでも取り入れたい場合は本実践のサポートでまずはご相談頂くことをオススメします。
✻ 本スタディの内容は予告なく随時変更される場合があります。より良い内容をお届けするため、予めご承知おきください。
◆ リレーションとは
リレーション(リレーションシップ) = 関係性・関連性
文字や数字などを「キー」として、データとデータを紐づけることです。
例えば、販売会社のリストに ID を付与します。A社の ID は「101」だとします。
購入記録テーブルで「接続ケーブル」の購入レコードがあったとして、「販売会社ID」フィールドに「101」と入力しておけば、販売会社リストの「A社」とは概念的に紐づくことになります。「101 番て、会社は何だっけ?」→「A社だよ。」といった紐づきの意味合いです。
◆ そもそもなぜリレーションが必要?
1.一元管理ができる。
2.データの整合性を保てる。
3.入力の手間が減る。
主にこの3つが大きな理由であると考えます。
さて、リレーションをするためにはテーブルの存在が必要です。次にテーブルについて少し触れておきます。
◆ テーブルの2つの型
データベースにはデータを蓄積するという役割があり、その受け皿になっているのがテーブルです。
テーブルには主に2つの型があります。
《 テーブルの2つの型 》
記録型 (ログ型、イベント型、トランザクション型とも。頻繁に増えていく)
マスタ型 (頻繁に増えない)
さて、質問です。
データベースとしてメインのテーブルになるのはどちらだと思いますか?
データベースとしてメインのテーブルになるのは、
記録型
であると考えます。なぜかというと、データを蓄積するのがデータベースの役割として大きく占めるからです。
【注:これは弊社の考えです。世間一般では違う可能性もあります。】
◉ 記録型のテーブル
例えば、これから使用するサンプルファイルの「購入記録」テーブルも記録型です。何か機器を購入する度にレコードがどんどん増えていくテーブルです。(*購入記録ファイルは後のセクションで配布します。)
*データはダミーです。
データベースの役割の一つで大きく占めているは、データ(レコード)をどんどん蓄積していくことです。
とにかくデータとして記録がされていれば、過去データの検索や集計など何とかなる可能性は高まります。(エクセルにエクスポートしてエクセルでどうにかすることもできます)
さて、上のような購入記録のデータを日々入力していくとき、例えば「販売会社」を都度入力することになります。
このとき、「また同じ会社名を入力するのか・・・」と思ったとします。面倒だし、何より入力ミスが発生するかも知れません。(入力ミスが起きると正しく検索できなくなります)
そこで次の順番として マスタ型 のテーブルを作ることを考えます。
※「購入品」もマスタ型のテーブルにしたいと考えてみたいところです。ただ、ここでは販売会社に絞って考えることとします。
◉ マスタ型のテーブル
会社情報は一度データを格納したら頻繁には変更されません。ほかに顧客情報なども似たような感じです。リレーションで参照するときのデータの元になります。
サンプルファイルの「販売会社」テーブルには、会社情報が格納されています。一度登録したら住所等の変更がなければデータはそのままです。レコードもどんどん増えるというわけではありません(場合にもよりますが)。
*データはダミーです。
次の章で、購入記録を例にした具体的なリレーションを使うシーンを見ていきます。
✻ 中間テーブルというもの
(内容をご覧頂くにはお申込みが必要です)
◆ リレーションを使うシーンの例
「購入記録」管理を例に、ここでは概略としてリレーションのシーンをご紹介します。実践は後のセクションで行います。
<想定されるシーン>
機器の購入があると、その都度レコードを追加して入力をします。その際、販売会社を毎度毎度手入力していました。同じ販売会社があり、だんだん手間を感じてきました。うっかり入力ミスをすることもありました。(ミスをしても気づかないことがほとんど・・・)
これをリレーションによって
1.一元管理ができる。
2.データの整合性を保てる。
3.入力の手間が減る。
これらを実現したいと考えます。すると次のような改修をすることをまずは想定してみます。
⇩ ⇩ ⇩
販売会社ID を入力すると・・・・・・
販売会社名をリレーションによって表示することができる。
(この例は、販売会社テーブルからデータを参照して表示しているだけのもの。なお、購入記録のフィールドにデータを格納してしまう方法もある。)
※ 販売会社名は、販売会社マスタ(「販売会社」テーブル)で情報を持っている。
*データはダミーです。
販売会社ID だけを入力・格納することで、販売会社名そのものを入力するという手間を減らします。また、ID で紐づくことになるため一元管理やデータの整合性を保つこともできます。
上の例は比較的シンプルなパターンのリレーションです。まずはシンプルなパターンで理解を深めることが習得の近道だと考えます。
後の実践のセクションでも、シンプルなリレーションを使って理解を深めて頂きます。
このページは以上になります。続きは次のセクションにて。
ここまでお疲れ様でした!
✻ 本スタディは以上となります。ここまでだけでも何かお役に立てていたら幸いです。
✻ 本スタディで不明な点や質問が出た場合は、Q&Aセミナーのリクエストをお送りください。