【36】【データベース】データベースの論理設計って何?
この記事を読むと、データベースの論理設計、エンティティ、正規化、ER図について理解を深めることができます。
概念スキーマを定義することを論理設計といいます。
概念スキーマについてはこの記事で
データベースの論理設計
「論理」という言葉の意味に釣られちゃいますが、論理設計とは論理的に設計するという意味ではありません。
データーベースの論理設計とは、物理層の制約にとらわれず設計するということです。
物理層の制約
物理層の制約とは何でしょうか?
具体例を挙げます。
データーベースサーバーのCPUパワー、
ストレージの格納場所、
データ型、
SQL構文などです。
Rails初学者なら、論理設計は、ひとまずデータ型などを無視して考えてみること、とすれば理解しやすいでしょう。
論理設計の4つのステップ
論理設計は4のステップに分かれます。
エンティティの抽出
エンティティの定義
正規化
ER図の作成
エンティティの抽出
エンティティの抽出は要件定義のタスクと重なります。
システムの要件において、「顧客」、「商品」、「管理者」、「自転車」などを抽出することです。
「実体」だけでなく、「注文履歴」、「税」など「非実体」もエンティティに含まれます。
エンティティの定義
エンティティを定義するとはエンティティの属性を決めることです。
属性とはテーブルの列と言い換えることもできます。
例えば、Userエンティティにnameという属性を決めることです。これは、Userテーブルにnameという列名があることを指します。
正規化
エンティティを抽出し属性を決めるだけでは、システムの利用に対応できていません。
システムの利用に対応するために、正規化をしていきます。
主に、正規化とは、エンティティを細かく分割していく作業です。
例えば、Userというエンティティに、住所という属性があるとします。住所という属性にするより、分割して住所テーブルにした方がシステムの柔軟性が保たれます。
リレーショナルデーターベースの論理設計においては、この正規化は最も重要な土台をなします。
(正規化についての記事を後日書く予定です。)
ER図
正規化していくと、物理的な点で、エンティティが増えていきます。数十、数百となると、エンティティの関係性が分かりにくくなります。
この問題を解決するためにER図が考案されました。
いわば、エンティティ同士の関係性の見取り図です。
データーベースに関する記事の一覧
参考文献
達人に学ぶDB設計 徹底指南書 ~初級者で終わりたくないあなたへ
最後に
私がブログを書く目的は、素晴らしい本や、素晴らしい方々の技術記事を知って頂きたいからです。ぜひ、上記の参考文献を見て下さい。(noteなので広告とかは一切ありません。)
現在、株式会社grabssに行くために最後の悪あがきをしています!!
現在の進行状況
この記事は36件目の投稿。目標まで後14件。
よろしければ、スキボタン及びサポートお願いします。勉強の励みになります。