以下は当記事に関連する動画です。本動画に関連する動画はすべてニコニコチャンネルにて閲覧可能です。
https://ch.nicovideo.jp/ai-light
1)初めに
今回はモデリング手法の1つであるER図について解説をします。
前回までの説明ではDFDについて説明しました。DFDというのは処理の流れを記載していくツールで、これによって最終的にはプログラムの処理の流れを考えていくことになります。それに対して、ER図というのは何かというと、データベース(テーブル)の設計を行っていくことになります。
業務システムでは、大量のデータを扱うことになります。例えば、業務システムの中では売上伝票とか仕入伝票などを扱うことになります。売上伝票をデータとして入力できると、それらを加工して売上集計などを行うことが出来る分けです。さらに、得意先別売上だとか担当者別売上など会社経営の中では、多数の集計表を作成することが多いです。それらをexcelなどを使用して作成しようと思うと、元データは売上伝票という1種類にも関わらず「得意先別売上」「担当者別売上」など帳票毎にデータを再入力したり再計算したりしないといけなくなります。
しかし、業務システムとしてシステム開発を行うと、帳票毎に毎回作成作業を行う必要がなくなり、プログラム上で集計の単位を変えることによって簡単に集計表が作成できます。業務システムというものを考えると、売上伝票などのデータがあって、それを加工(プログラム)することにより様々な形でデータを表現したり、excelで管理するように他の管理表に転記作業を行うことを自動で行えるようになります。
つまり、業務システムを考える時には、処理をどうするかということと、データをどうするかという、この2点を考えればいけばよいことになります。「処理をどうするかということ」はDFDを使ってまとめていくことになります。「データをどうするかということ」はER図を使ってまとめていくことになります。
ER図を含めて設計というものは、設計だけを勉強しても正直ピンとこないということが多いです。DFDをある程度分かろうと思えばプログラミングを勉強した方がいいですし、ER図を分かろうと思ったらデータベースを勉強すると理解がしやすくなるにではないかと思います。
2)ER図とは
ER図とはデータベース(テーブル)の設計図です。下記のサイトにもER図の説明が記載されていますので、よろしければ、ご参考にして下さい。
出典:http://it-koala.com/entity-relationship-diagram-1897
モデリングというのは、抽象化した概念を表現したものです。ER図は、下図のような形で最終的には表現されます。下記でエンティティと書かれている部分があります。エンティティとは、簡単にいうとテーブルのことです。テーブルは食卓のことではありません。データベースで出てくるテーブルに該当するものです。
テーブルとはデータ群のかたまり、つまり、データ群をある意味のあるかたまりにまとめたものです。例えば、下図では左上に顧客マスタと書いています。これは、顧客マスタというデータ群のかたまりを表しています。顧客マスタの中には顧客IDという項目があり、顧客名があり、顧客の郵便番号があり、住所があり、電話番号があり、FAXがあるというわけです。
下図にはアトリビュートという言葉が登場しています。アトリビュートというのは、項目のことです。顧客マスタという1つのかたまりを考えたときには、例えば顧客名とか郵便番号とか住所とかが項目のことであり、アトリビュートに該当します。
出典:http://it-koala.com/entity-relationship-diagram-1897
上図で、青色の背景色の部分は主キーといいます。エクセルでいう1行のことをデータベースの用語でレコードといいますが、主キーはその1レコード(1行)を特定するものです。例えば分かりやすくいうと、会社でいうと社員番号であり、学生でいうと学生番号に該当するものです。
学生番号というのは基本的にはだぶらない番号です。つまり、学生番号が1つ決まると、ある人が特定されます。社員番号も同様で、社員番号が1つ分かるとその社員番号を持つ特定の一人が決まるということです。
学生番号でも社員番号でもそうですが、主キーというのはある意味システム的に採番されている番号である場合が多いです。例えば、顧客名を主キーにしたとします。主キーは重複しない値なので、顧客名欄に同じ値が入ってはいけません。確かに、小さい会社であればお客様の名前が被るというのはないかもしれないですが、データが大量にあるとダブる可能性があります。
ダブらない値を選ぶために、例えば、顧客名と住所という2つの項目を主キーとしてはどうでしょうか。この場合には、恐らくだぶらないでしょう。つまり、同じ住所でかつ同姓同名というのは考えにくいからです。
顧客名というのお客さんの名前ということで意味を持つ項目です。住所もそうです。そのような項目を主キーに選ぶのは結構大変です。というのは、夫々の項目の意味を考えて値が重複しないかを検証していかなければなりません。しかし、その想定が外れると値が重複する可能性が出てきます。
例えば先ほどの、同じ住所で同じ名前の別人が住んでいる可能性はほぼありません。しかし、絶対にあり得ないかというとそうとは言い切れません。そのため、顧客マスタに顧客番号という項目を追加して、その項目を主キーとしたり、学生マスタに学生番号を付けたり、社員マスタに社員番号を付けたりするのです。
学生番号も社員番号もよくよく考えるとシステム化しないのであればいらない項目かもしれません。このER図というのはデータベース(テーブル)設計を行っていく作業です。
出典:http://it-koala.com/entity-relationship-diagram-1897
ちょっと脱線しましたけど、ER図といった時にはエンティティと、アトリビュート、さらにテーブル間の関係性を表すリレーション(関連性)から構成されています。リレーション(関連性)は下図の通り線で引いて表現します。意味は注文と注文明細には関連があるということを示しています。カーディナリティというのは関連性の種類を表しています。
出典:http://it-koala.com/entity-relationship-diagram-1897
ちなみに下図の左側に3本の小さい線が引かれていますが、これが1対多という意味です。1対多というのは1つのレコードに対して、それに関連するレコードが複数件あることを示しています。
出典:http://it-koala.com/entity-relationship-diagram-1897
例えば、1つの注文が入った時に、1つの注文の中に複数の商品が入っている場合があります。1つの注文に対して複数の注文があるという意味で、1対多になるということです。
3)おわりに
ER図を作成する場合には、エンティティ(テーブル)、主キー、アトリビュート(項目)、それとリレーション(関連性)でもって表現するのがER図です。ER図を書こうとしたときに、実はいきなりER図を書くことは難しいです。
具体的には、いわゆるデータベースの正規化という作業が必要になってきます。正規化というのは、それぞれの項目を抽出してテーブルにまとめていく作業です。正規化したテーブルををまとめていくことでER図が作成できるのです。次回では正規化についてご説明をしたいと思います。
弊社は、主に中小企業様向けの業務システム開発、ホームページ制作、パソコンサポート、コンサルティングなど、ITに関する様々なサービスを格安で提供しております。
特に小規模な業務システム開発の分野では、主にAccess(アクセス)を利用した柔軟で効率的な開発を得意としており、関西でダントツの実績があります。
業務システム開発に関しては、以下のような内容で対応しております。
・顧客管理などの単機能なシステムは20万円~50万円が多い。
・受注から入金まで業務全体システムで100万円~350万円ぐらいが多い。
・Access(アクセス)-SQLserverで大規模システム開発は350万円~1500万円が多い。
詳細は、Access(アクセス)、Excel(エクセル)、WEBサイト製作による小規模システム開発のページをご参考ください。
大阪商工会議所からの推薦を受けて、中小企業庁運営の中小企業支援事業に専門家として登録されました。
通称ミラサポ。3回まで無料でのコンサルティングが可能です。ご興味がある方はご連絡ください。
https://www.mirasapo.jp/
(近畿大学にて非常勤講師も務めたバリバリの技術屋が経営する会社)
Access(アクセス)Excel(エクセル)SQL server バーコード Webシステムを使った業務システムのシステム開発の無料相談を受付中
株式会社 アイライト 担当:内藤 響(Naito Ko)
〒550-0005 大阪市西区西本町1丁目5番9号 日清ビル 5F
(四つ橋線 本町駅 24番出口すぐ)
まずは、メール・電話でご相談ください。
TEL : (06) 6599-8890 E-mail : info@ai-light.com
お電話が混んでいる場合が多いので、つながりにくい場合は
TEL : (06) 6535-5117までお願いします。
株式会社アイライト公式HP
https://www.ai-light.com/
(Access・Excelでシステム開発会社を探されている法人様はこちら)
Access・Excelに関する情報を掲載(Access・Excel倶楽部)
https://www.ai-light.com/accessclub/
ITでお困りのことがございましたら、まずはご相談(コンサルティング)
https://www.ai-light.com/itconsulting.html
格安ホームページ制作所
https://www.ai-light.com/hp2
YouTubeチャンネル(無料動画配信中)
https://www.youtube.com/user/ailightcom
ニコニコチャンネル(月額固定で見放題)
http://ch.nicovideo.jp/ai-light