こんにちは、moegi (@moegi_web) です。
FBCのプラクティスで学んだDB設計の基本をまとめました。
データベースについて
DBいろいろ
・リレーショナルデータベース←最も一般的なデータベース✨
・オブジェクト指向データベース
・XMLデータベース
・キー・バリュー型ストア
・階層型データベース
3層スキーマ
1.外部スキーマ(外部モデル)= ビューの世界
ユーザーから見てDBがどのような機能とインターフェースを持っているかを定義するスキーマ。
※スキーマはDBのデータ構造やフォーマットの意味✨
2.概念スキーマ(論理データモデル) = テーブルの世界
DBに保持するデータの要素、データ同士の関係を記述するスキーマ。
3.内部スキーマ(論理データモデル) = ファイルの世界
概念スキーマで定義された論理データモデルを具体的にどのようにDBMS内部に格納するかを定義するスキーマ。※DBMSはデータベースを管理するシステムのこと。
概念スキーマを定義する
・概念スキーマを定義することを「論理設計」と呼ぶ。
・システム開発におけるDB設計は概念スキーマ→内部スキーマの順で行う。
論理設計のステップ
・論理設計では数多くのデータからリレーショナルデータベースにおいて、何をどのようなフォーマットで保存するかを決める。
・以下の4つのタスクで進めていく。
エンティティの抽出
・エンティティは、データの集合体。
・どういうデータを扱いたいか?を考える作業。
・具体的には顧客や店舗。税や注文履歴など単なる概念としてしか存在しないものも含まれる。
・システムのためにどのようなエンティティ(データ)が必要になるかを抽出することが論理設計の第一ステップ。
【★データと情報の違い】
・データは、ありのままの事実である。例:生年月日
・情報は、表示したい内容に合わせてデータを加工した結果である。例:年齢(生年月日を加工した情報)
年齢は毎年カウントアップされ、変化する。それに対して、生年月日は変化しない。これが、データと情報の大きな違いの1つになる。
エンティティの定義
・各エンティティがどのようなデータを保持するか決める。
・エンティティはデータを属性という形で保持する。
・各表がどんな「列」を持つかという「キー」を定義する。
正規化
・正規化はエンティティについてシステムでの利用がスムーズに行えるよう整理する作業である。
・データの登録、変更、削除が整合的に行えるようにエンティティのフォーマットを整理することが重要!
・論理設計においては正規化が最も重要な土台になる。
ER図の作成
・ER図とは、エンティティの見取り図
・エンティティ同士の関係を表現している。
・正規化を行って増えたエンティティを細かく分割していく作業をする。
テーブルとは?
・見た目は表。行と列で構成されている。
・共通点を持ったレコードの集合。
・主キーが必ず含まれる。
・テーブル名はすべて複数形または複数名詞で書く。
まとめ
以上データベース設計の基本についてのまとめでした。
間違っている部分等ありましたら教えてください。
最後までお読みいただきありがとうございました。
コメント