質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

1回答

3309閲覧

データベース設計でER図を書くときのコツ

hs_kanda

総合スコア34

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2018/11/22 00:59

編集2018/11/22 01:15

他の人の書いたER図を見て、どうやって書いているのか考えています。

おそらく、考えていく順序として、

1.要件にもとづく特定のマスタやテーブルがあれば、hogeできるため、
hogeできることに準じたマスタもしくはテーブルが考えられる
(これを仮にhogeテーブルとします)。

2.hogeテーブルがあるということは、hogehogeできるため、
hogehogeできることに準じたマスタもしくはテーブルが考えられる
(これを仮にhogehogeテーブルとします)。

3.以下、同様に考えていく。

と思っています。

「~できる」の「~」の部分が必ずしもそのままマスタやテーブルの名前
になるわけではないと思いますが、おおよそ以上のような考え方であれば、
要件にもとづいた多重度が現せるものと思います。

考え方の足りない点や、間違っている点などのご指摘をお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ER図(entity relationship diagram)を作成するためには、先ず、エンティティの抽出を行います。
抽出する際には、「~する」というような動詞になるもの(注文する、予約する)を抽出し、関係付けます。
これらが所謂トランザクションデータです。(対比となるのはマスターデータ)

次にエンティティの定義です。エンティティを構成する要素を決めていきます。

最後に正規化です。

第3正規化でトランザクションとマスターとの分離を行いますが、エンティティ抽出段階で決定できるものもあるので、拘らなくても良いかと思います。

エンティティ設計を正しく行うと、業務フローが改善され、業務の効率化に発展する事さえあります。

※アプローチは色々あると思います。
また、最初から完成形となるのは稀で、プロジェクトが進行していく中でのブラッシュアップされて完成形に近づくというのが殆どだと思います。

以下参考。
データベーステーブル設計の基礎の基礎〜エンティティの抽出・定義から正規化まで

投稿2018/11/22 02:00

編集2018/11/22 05:15
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hs_kanda

2018/11/22 02:25

回答ありがとうございます。 動詞を抽出するとのことですが、 動詞でないかつ、マスタでないエンティティについては どのように抽出するのでしょうか (たとえば、契約明細、資産、不具合、欠品、価格、特別売価、売上)。
sazi

2018/11/22 02:33

動詞を比喩にしたのは、トランザクション(動的なデータ)かどうかを判断するのに分かりやすくする為の例えです。 名称は後から付けるものですから、アクション(行動)によって生じるものという観点で行って下さい。
hs_kanda

2018/11/22 03:05

たとえば、「契約」などはトランザクションと言えるのでしょうか。 単に「契約する」と言っても、いろんなことをやっている(分割できる) ように思えます。 どこまで分割して考えるかの問題だと思いますが、 これは業務知識ないし常識で判断することなのでしょうか。 もしそうであれば、そもそも考えようのないことに思えます。
sazi

2018/11/22 03:19

契約は行為ですからトランザクションでしょう。 トランザクションの識別が難しいなら、逆にマスタは名詞です。(社員、会社など)
sazi

2018/11/22 04:27 編集

基本的に業務知識が乏しいと、エンティティの抽出には苦労するでしょうね。(不可能ではない) また、常識というより経験での判断でしょう。 業務知識が無い場合に、使用しているデータからエンティティを炙り出すデータアプローチも手法としては有ります。
hs_kanda

2018/11/22 04:49

参考資料を教えていただき、ありがとうございます。 もう少しやってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問