1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】データベース設計の流れ

Posted at

データベース設計の流れ

  1. 作りたいものからデータを抽出する
    1. 何をデータとして保存する?
      1. システムで使用するもの
      2. ユーザーが登録するもの(ユーザー名など)
  2. 表の形式を考える
    1. まずは全部のデータをひとつのテーブルに突っ込む
    2. 一つのレコードを検索するときに、一意に特定できるかチェックする。
      1. できない場合は主キーをつけて一意に特定できるように
    3. しかし、一つのカラムがList形式の場合主キーを付けても一意に特定できない例えばこれ
      1. 一意に特定できるようにするために、要素ごとにカラムを作りIDを割り当てると、要素が増えるためにカラムを増やさないといけない
      2. 主キーを2つのIDの組み合わせとみれば、主キーが各カラムの値を一意に特定できる(第一正規化
    4. しかし、更新や削除を行うとき複数のレコードを更新しなければならないことがある。そのときにデータに矛盾が生じるかも?例えばこれ
      1. 重複をなくすためにテーブルを分割する(第二正規化
    5. 一つのテーブルAに、IDとその具体的な値をもつテーブル設計の場合、登録されていないデータの登録をテーブルAでは行えない。例えばこれ
      1. テーブルを分割(第三正規化

重要なポイント

  • 正規形
    • 一貫性と効率性を持った形でデータを保持するためのデータ形式
  • 正規化
    • 一貫性と効率性を持つようにデータベースを設計すること(正規形にすること)
  • 第一正規化
    • 一つのセルの中には一つの値しか含まない。これにより効率よく検索ができる
  • 関数従属性
    • $y = f(x)$: 入力$x$に対して出力$y$が決まる
    • $yはxに従属する$: x → y
    • 1つのセル(入力)に一つの値(出力)の方針も関数従属性
  • 第二正規化
    • 第一正規形から部分関数従属を排除
      • 部分関数従属 = 主キーの一部に対して従属する列がある
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?