DB設計(パーティショニング)とは?要求分析→概念→論理→物理の4段階で進める

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

DB設計とは(全体像)

DB設計とは、使いやすく・速いデータベースを作るための段取りだよー。いきなり表を作るのではなく、順を追って決めていくのー。

身近にたとえると、家を建てる流れみたいなもの。①どんな家にしたいか聞く(要求分析)→ ②間取りを考える(概念設計)→ ③くわしい設計図を引く(論理設計)→ ④実際に使いやすく工事する(物理設計)、という順だよー。

押さえるのは、設計の4段階と、物理設計で出てくるパーティショニング(表を分ける技法)だよー。


詳しく:4段階とパーティショニングだけ覚えれば戦える

ここが記事の心臓部。まず設計の4段階を順に見ていこーね。

DB設計の4段階

段階やること
①要求分析どんなデータが必要かを聞き出す
②概念設計データの関係を図にする(ER図)
③論理設計表の形を決める(正規化)
④物理設計速く動くように工夫する(インデックスなど)

「要求 → 概念 → 論理 → 物理」の順番が一番大事だよー。だんだん具体的になっていくイメージなのー。

次に、④物理設計で出てくるパーティショニングだよー。これは大きな表を分けて扱いやすくする技法なのー。

パーティショニングとシャーディング

技法分け方どこに置くか
水平パーティショニング行で分ける(例:年月別)同じサーバーの中
垂直パーティショニング列で分ける(よく使う列と稀な列)同じサーバーの中
シャーディング行で分ける(水平)別のサーバーに分散

ここでひっかけが「パーティショニングとシャーディングは同じもの」という誤解だよー。シャーディングは「別のサーバーに分けて置く」のが特徴で、同じサーバーの中で分けるパーティショニングとは別ものなのー。

なお、日常の取引を扱うOLTPと、分析を扱うOLAPでは設計の方針がちがう(OLTPは正規化、OLAPは非正規化)ことも押さえておくといいよー。

わかりやすく言い換えると

要するに、大きな本棚を整理するイメージだよー。

水平パーティショニング … 本を「年度別の箱」に分ける(行で分ける)

垂直パーティショニング … 「よく見る情報」と「めったに見ない情報」を別の棚に分ける(列で分ける)

シャーディング … 箱そのものを「別の部屋(サーバー)」に置く

つまり、設計は「要求→概念→論理→物理」の順、パーティショニングは「水平=行・垂直=列」、シャーディングは「別サーバー」。ここが試験の急所なのー。


試験のツボ

🔴 一番出る:DB設計の4段階

①要求分析 → ②概念設計(ER図)→ ③論理設計(正規化)→ ④物理設計

②だんだん具体的になっていく順番

🔴 次に出る:水平と垂直の違い

①水平パーティショニング = 行で分ける(年月別など)

②垂直パーティショニング = 列で分ける(よく使う列と稀な列)

🟡 押さえると安定:シャーディングは別サーバー

①シャーディングは行で分けて「別のサーバー」に置く

②同じサーバー内で分けるパーティショニングとは別もの


よくある間違い

「パーティショニングとシャーディングは同じものである」→ ✗  シャーディングは別のサーバーに分けて置く。同じサーバー内で分けるパーティショニングとは別もの。

「水平も垂直もどちらも列で分けることである」→ ✗  水平は行で分ける、垂直は列で分ける。

「DB設計は、いきなり物理設計から始めればよい」→ ✗  要求分析→概念→論理→物理の順で、だんだん具体的にしていく。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(設計の4段階)

📝 オリジナル問題 1 DB設計の4段階

DB設計の進め方に関する次の記述のうち、正しいものはどれか。

  1. DB設計は、画面の明るさを段階で決めるための専用の作業のことだとされているものである
  2. DB設計は、音の大きさを段階で決めるための専用の作業のことだとされているものである
  3. DB設計は、要求分析→概念設計→論理設計→物理設計の順で、だんだん具体的にしていく
  4. DB設計は、保存した文字を全部消すための専用の作業のことだとされているものである
データスラ
データスラ 解答・解説

解答は 3 だよー。

DB設計は、要求分析 → 概念設計 → 論理設計 → 物理設計の順で進めるのー。家を建てるみたいに、だんだん具体的にしていく流れだよー。

選択肢1の「明るさ」、選択肢2の「音の大きさ」、選択肢4の「全部消す」はどれも誤りなのー。

選択肢判定理由
1画面の明るさの作業ではない
2音の大きさの作業ではない
3要求→概念→論理→物理の順
4文字を消す作業ではない

オリジナル問題2(水平パーティショニング)

📝 オリジナル問題 2 水平パーティショニング

水平パーティショニングに関する次の記述のうち、正しいものはどれか。

  1. 水平パーティショニングは画面を必ず点滅させるための専用の設定だとされているものである
  2. 水平パーティショニングは音を必ず二重に鳴らすための専用の機能だとされているものである
  3. 水平パーティショニングは保存した文字を必ず全部消す専用の命令だとされている
  4. 水平パーティショニングは、大きな表を行で分けて扱いやすくする技法のことである
データスラ
データスラ 解答・解説

解答は 4 だよー。

水平パーティショニングは、大きな表を「行」で分けて扱いやすくする技法なのー。たとえば年月別に分けるよ。本を「年度別の箱」に分けるイメージだよー。

選択肢1の「点滅」、選択肢2の「二重に鳴らす」、選択肢3の「全部消す」はどれも誤りなのー。

選択肢判定理由
1画面を点滅させる設定ではない
2音を鳴らす機能ではない
3文字を消す命令ではない
4大きな表を行で分けて扱いやすくする

オリジナル問題3(シャーディング)

📝 オリジナル問題 3 シャーディングとの違い

シャーディングに関する次の記述のうち、正しいものはどれか。

  1. シャーディングは画面の明るさを決める設定で、パーティショニングと完全に同じものである
  2. シャーディングは、表を行で分けて別のサーバーに分散して置く点に特徴がある技法である
  3. シャーディングは音を必ず二重に鳴らす専用の機能だとされているもの
  4. シャーディングは保存した文字を必ず全部消すための専用の命令だとされているものである
データスラ
データスラ 解答・解説

解答は 2 だよー。

シャーディングは、表を行で分けて「別のサーバー」に分散して置くところが特徴なのー。同じサーバーの中で分けるパーティショニングとは、ここがちがうんだよー。

選択肢1の「完全に同じ」、選択肢3の「二重に鳴らす」、選択肢4の「全部消す」はどれも誤りなのー。

選択肢判定理由
1パーティショニングと同じではない
2行で分けて別のサーバーに分散する
3音を鳴らす機能ではない
4文字を消す命令ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る