データベースについて(入門)

データベース入門

データベースとは

サイトの顧客情報や商品情報などのデータを管理する場所

DBの種類

RDB

  • MySQL
  • 無料で使えて、実際の仕事現場でもよく使われている

  • PostgreSQL
  • Oracle

どれを使っても基本的な役割は一緒

テーブル/カラム/レコード

  • テーブル
  • エクセルで言うところのシート

    データの種類でテーブルごとに管理をする

  • カラム
  • エクセルで言うところの

  • レコード
  • エクセルで言うところの

SQLとは

データベースはコマンドで操作する

このデータベースを操作するコマンド(言語)をSQLという

追加、変更、削除など

例:select * from users limit 2 ;

DBの設計#1

DBのリレーション

  • 1:n(1:多)
  • 会社情報 : 社員情報

    一つの会社に複数の社員が入ることができる

  • n:n(多:多)
  • 社員情報 : サークル

    社員一人につき複数のサークルに所属できる

    サークルは複数の社員をかかえることができる

  • 1:1
  • 社員情報 : 個人情報

    社員一人につき一つの個人情報

ER図

IE記法

 テーブル同士のリレーション(関係)を表現する

【○】・・・0

【|】・・・1

【鳥の足】・・・n

リレーション関係で親と子の関係がある場合角を丸く表現する

中間テーブル

  • n:nのリレーション設計する場合に中間に置くテーブル
  • 中間テーブルには余計なカラムを持たせない
  • リレーションの橋渡し役

SQLアンチパターン

やってはいけない設計パターンを解説した書籍

【Amazon】https://www.amazon.co.jp/gp/product/4...

ツール

  • Cacoo
  • MySQL Workbench

DBの設計#2

正規化

データの繰り返しをなくして整理すること

手順は2つ

  • 横方向の繰り返しをなくす
  • 縦方向の繰り返しをなくす

例:青いカラムのデータが横方向に重複しているデータ

このデータを縦方向に伸びるよう並べ替えて横方向の繰り返しをなくす

項目がグレーのカラムは縦に繰り返しが発生している

この縦方向の繰り返しをなくすために、青いカラムのデータを別テーブルに切り出す

注文番号に紐付けて管理するようにテーブルを分けている

上記のように縦方向の繰り返しをなくすには1:nの関係のテーブルに切り出す

その他の縦の繰り返しをそれぞれ切り出す

DBの設計#3

テーブル設計の手順

  • システム要件を把握
    • システムの要件と機能を明確にすること
  • テーブルの概要設計(ラフスケッチ)
    • テーブルの一覧と主要なカラムを書き出す
    • 闇雲に出さず,機能一覧をみながらシナリオを思い浮かべながら洗い出す
  • テーブルの詳細設計(最終調整)
    • 日本語(論理名)を英語名(物理名)に変換(命名規則参照
    • カラムに型を付ける

命名規則

  • 半角アルファベット、半角数字、アンダーバー
  • テーブル名は複数形、カラム名は単数形
  • text1,text2のような雑な名前にしない

予約後

  • If
  • Null
  • Limit
  • Date など

予約後はテーブル名やカラム名には使わない

このほかたくさんあるので、一覧を見ておくとよい

制約

  • NOT NULL制約
  • 入力必須になる場合の制約

  • ユニークキー制約
  • 値の重複を防ぐ制約

  • 外部キー制約
  • リレーション先にレコードがあることを保証する制約

← Go home
;