ER図とデータの流れ

このQ&Aのポイント
  • ER図を使って設計する場合、データの流れはデータフローと併用して設計する必要があります
  • ER図でデータの構造はわかっても、データの流れはデータフローを考慮する必要があります
  • VBAで行っていたCSVフォーマット変換のバッチ処理をファイルメーカーで行う際に、DB設計やトランザクションの扱いについて分からないことがあります
回答を見る
  • ベストアンサー

ER図とデータの流れ

ER図を使って設計したことが無いのですが、 ER図を使ってもデータの流れはわかりません。 ER図を使用して設計する場合はデータフローなども併用して設計するのでしょうか? 例えば トランザクションファイルをどう編集してどう出力するか等はER図ではわからないですよね。 今までバッチ処理(COBOL,VBA等)ばかりやっていたもので どうもデータの流れを中心に考えてしまいます。 ER図でデータの構造はわかっても結局はデータフローをかかなければいけないのですかね。 ※そもそもこの質問は VBAでやっていたCSVフォーマット変換のバッチ処理を ファイルメーカーでやろうとした際に 「DB設計ってどうやんだ?」から発しました。 トランザクションを扱う際にトランザクション用のテーブルを作るべきか・・とかも分からないし・・

質問者が選んだベストアンサー

  • ベストアンサー
  • neko3839
  • ベストアンサー率37% (100/268)
回答No.1

ER図はエンティティ間の関係を表現するものであって、データの流れを表現するものではありませんね。 データ間の関連性(静的)を表現するのにつかうと思います。 データの流れ(動的)を表現したいのであれば、質問者さんがお書きになっているようにデータフロー図(DFD)を使うと思います。表現したい目的に応じた図を作成すると思います。 処理の流れを表現するのであれば処理フロー、データの流れ(動的)を表現するのであればデータフロー、データ間の関連性(静的)であればER図などというように、表現したい対象・目的に応じて使い分けるのでは無いでしょうか。

sakuuuuu
質問者

お礼

早速の回答ありがとうございます。 そうですよね。 ER図は結局は静的な構造なので最終的には動的なデータの流れを 示すような設計が必要なのですよね。 ER図に過度の期待を持ちすぎたせいか ところどころで躓いております。 結局は静的なER図を描き、 それを満足するような動的なデータフローが必要なんですね。。。

関連するQ&A

  • ER図について

    ER図を書く練習をしています。 就職するために会社に申請し、審査後に応募者(申請者)を受け入れる(合格)か拒否するか(不合格)を決めるケースを想定してER図を描きました。焦点は、「合格/不合格の情報をどのテーブルに持たせるのがよいか」です。添付のURLに(1)、(2)の2つのケースを考えて書いてみました。いずれのテーブルもものすごく簡単に書いたので突っ込みどころは満載だと思いますが、あくまでも、合格/不合格の情報をどこに持たせるかだけに特化したものと考えてください。 (1)http://www.dotup.org/uploda/www.dotup.org15911.jpg.html (2)http://www.dotup.org/uploda/www.dotup.org15912.jpg.html 申請書テーブルは、申請者から受け取った書類を管理するテーブルです。受け取った日や、本件のステータス、結果を応募者に送信したかなどの情報を持ちます。イベント系(トランザクション系)のテーブルです。 (1)のやり方 申請者テーブルには申請者の情報そのものを書類から入力するリソース系(マスタ系)のテーブルです。名前、年齢、前職。。その他諸々を保持します。ここに、合格か不合格かをok_ngというbooleanで持たせることとします。 (2)のやり方 (1)と同様、申請者のテーブルはあるのですがok_ngという属性を持たせずに、代わりに別リソース系テーブル「合格者」を作ります。申請者と合格者の関係は1対1です。お互いがお互いのプライマリキーを参照する外部キーを持ちます。申請者テーブルと合格者テーブルのオプショナリティは必須対任意とします。つまり、申請者のうち、合格した人のみが合格者テーブルに登録されるということです。 上記2点の設計は、どちらも有効でしょうか?有効だとするとメリット、デメリットなどありますでしょうか? (2)のやり方を書いた理由は、とある本に飛行機の「乗客テーブル」と「マイレージプログラム加入者テーブル」のER図があり、その関係が丁度本件の「申請者テーブル」と「合格者テーブル」のような関係になっているのを見た事があるからです。コメント等あれば宜しくお願いします。

  • [ソフトウェア設計]処理の流れは、アクティビティ図?フローチャート?どちらで書くべきか。

    VCですでに組まれているソフトの設計を設計書として文書にする作業をしています。 (現状あるソフト設計を別のソフトの設計に継承するため、このような作業が発生しました。すでに組まれているソフトには設計書がありませんので、参照はできません。) この場合、ソースコードに記載されている処理の流れは、UMLのアクティビティ図で書けるのでしょうか? 参考書でアクティブ図を勉強しましたが、プログラムの処理の流れ(基本情報技術者試験の擬似言語で記載されているような処理)をそのまま書いたような図は見つかりませんでした。一般的には、プログラムの処理の流れは、アクティブティ図では、書かないのでしょうか? そのような処理は、フローチャートで書くべきなのでしょうか? シーケンス図も一緒に書いていますので、できたらUMLで統一し、アクティブティ図で書きたいのです。 設計書は、今まで記載していなかったので、ノウハウがありません。 知識がおありの方がおられましたら、ご教授お願いいたします。

  • データベースのER図の作成方法

    教えてください。 SQLで複数のクエリを作りました。 作業用のクエリ(データソースから取得したものを1次加工し、かつ、最終成果物に直接反映しない)をたくさん作ったので、クエリ同士の関係を整理するための図のようなものを作りたいです。 その際、よく使われるのはER図だと思うのですが、 ・ER図は日本語では「実体関連図」というそうですが、作業用に作ったクエリもER図の中に記述するものですか? 記述するルールなら、クエリ同士の関係性が整理できて良いと期待しているのですが… 尚、Accessだとクエリのデザインビューでそれらしいものを簡単に見ることができると思うのですが、使っているのがAccessではない為、デザインビューは使えないです。(使っているSQLはPower Queryです) 宜しくお願いします

  • 簡単なバッチ処理のプログラムを組みたいんですが・・・

    VBAやCOBOLのプログラム経験があります。システムでファイルのコピーをするような、簡単なバッチ処理のプログラムを組みたいんですが、どんな言語でどういうふうにやってよいのかわかりません。 どんな勉強または本を探せばよいのですか?

  • mysqlでCSVインポートでトランザクション管理出来る

    只今、mysqlを使用して開発しております。 行き詰まっておりまして 大変申し訳ありませんが、ご教授の程、よろしくお願いいたします。 要件は以下になります。 ・CSVファイルデータをインポートする。 ・CSVファイルは複数なので、全ての処理が終わった段階でコミット・もしくはロールバックする。 (トランザクション管理が出来ればよいです。) ※LOAD DATA INFILEでトランザクション管理しようとしたのですが LAODのトランザクション管理は5.1系じゃないと出来ないようですので、 出来ませんでした。 mysqlのバージョン :5.0.24

    • ベストアンサー
    • MySQL
  • Commit しなかったデータは、どうなる?

    リレーショナルデータベース管理システムについて確認したいのですが。 バッチ処理とかの途中でシステムがダウンし、Commit しなかったとき データベースは、Commit していないのでトランザクション開始前の状態が 維持されると思うのですがその理解で合っていますか? Commit しなかったトランザクションデータは、破棄されると思うのですが その理解も合っていますか? MySQL の場合について、教えてください。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • ER図 設計 ruby rails データベース

    初めまして私はWEBエンジニアの駆け出しです。 勉強がてら、姉の会社の顧客管理システムを作成しようと思っています。 ですが、ER図を書くのも初めてですし関係性が理解できておりません。 そこでいくつか質問をさせてください。 以下、実現させたい事を下記に記載致します。 ・スタッフ別に売り上げ管理したい ・支店ごとの売り上げ管理したい ・担当するスタッフが変わっても前のスタッフの情報をもっておきたい。 ・顧客とスタッフを紐付けしたい。 ・ユーザーに付与した割引を一回の来店で1~n個使えるようにしたい。 ・ユーザーは一回の予約で複数の施術を予約できる。 上記6つを実現するためには今のER図で実現できますでしょうか お会計までの流れなのですが、 1.ユーザー詳細ページに入る。 2.ユーザーの詳細ページには予約一覧があり、来店されたら、予約のステータスから来店に切り替える。 3.ユーザーが利用できる割引を決定して、料金を決定したい。 1~3までの流れを実現する為には今のER図で実現できますでしょうか 疑問 1ユーザーが誰を紹介したかをわかるようにしたいのですが、 紹介テーブル的なものを作成するかユーザーテーブルに自己結合的なテーブル設計の方がいいのか迷っています。 支店ごとに出来る施術内容(料金表)を選択できるようにしたい(支店と料金テーブルの間に施術内容テーブルを作るべきでしょうか) 以上、たくさん質問してもうしわけないのですが、ご回答いただけると幸いです。

  • CSVデータの文字列置換

    かなり、困っております・・・。 「c:\csv_data」に複数のcsvデータが入っており、csvに含まれている "00ABC"を"00000"に変換させたいです。 (フォルダ内の全てのcsvを変換させたいです) 一度作ってみたんですが、Excel-VBAでCSVファイルを開いて編集をかけると書式が失われてしまう為、だめでした・・・。 そこで ・Excel-VBAでの良い方法 ・BATファイルで拡張子csv⇒txtに開いてからの編集⇒csvへ といった2つの方法(どちらか)がであれば作業工程上、他の処理と同時に 自動化できることからこの2つの方法での文字列変換方法を知りたいです。

  • 大量のCSVデータを1つのエクセルデータにまとめる方法について

    今仕事で、CSVファイルが400ファイル程あり、これを一つの エクセルファイルにまとめなくて加工しなければならないのですが うまいことVBAを活用して効率的にできないか思案中なのですが うまい具合に行きません。 データの持ち方として ○CSVファイル1 1.AAA 2.BBB ○CSVファイル2 3.CCC 4.DDD となっており、これを1つのエクセルファイル上で 1.AAA 2.BBB 3.CCC 4.DDD としたいのですがなにかいい方法はないでしょうか? 1つのブックで外部データの取り込みでCSVを次々に選択して いくVBAなんてあれば教えていただけないでしょうか? よろしくお願いします。

  • CSVデータをDBに移行するには

    Perlを使ってCSVデータをDBに移行して格納したい のですが、流れはCSVファイルを開いて、CSVファイルを連想配列に書き込んで、 DBを開いて、連想配列データをデータベースに書き込んで、DBを閉じるという 流れの考えでよろしいのでしょうか?

    • ベストアンサー
    • CGI