Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

Database (データベース)

論理テーブル設計と物理テーブルデータ設計の違いや特徴

投稿日:2021年9月30日 更新日:

 

<目次>

(1) 論理テーブル設計と物理テーブルデータ設計の違いや特徴
 (1-1) 論理テーブル設計とは?
 (1-2) 物理テーブル設計とは?
 (1-3) 両者の違い

(1) 論理テーブル設計と物理テーブルデータ設計の違いや特徴

(1-1) 論理テーブル設計とは?

業務要件を集約して、データモデル(※注1)として表現し、更にデータモデル同士の関係性を定義します。具体的にはオブジェクト(例:顧客、商品、在庫、店舗等々)とその属性(≒カラム相当)を定義し、お互いの関係性をER図として表現していきます。
 
(※注1)現実世界を抽象化して表構造にしたもの
 
(表)
  ■論理設計
目的 データモデルとその関係性を表現する
設計者 アーキテクトや業務SE
設計内容 ・①エンティティ名
・②エンティティの関連性
・③エンティティの属性
・④テーブルの主キー(PK)
・⑤テーブルの外部キー(FK)

●論理DB設計の主なアウトプット

①論理テーブル設計
エンティティ(テーブル相当)や属性(カラム相当)を定義していきます。
 
②ER図
オブジェクト間のリレーション(関係性)を示すものです。

(図111)ER図

③コード値一覧
値をコード値(値に紐づくコード)で保持している場合は、そのコードと対応する文言を一覧化して纏めます。
 
(例)
00 未承認
01 承認済
02 取消

目次にもどる

(1-2) 物理テーブル設計とは?

データベースのテーブルやカラムを実装するためを設計です。
 
論理設計で作ったエンティティ/属性に対して実際のテーブル名/カラム名/データ型などを設計し、テーブルを作成できるようにします。また、インデックス等のDB最適化等、他にもテーブル生成に必要となる情報もこのタイミングで検討設計します。
 
(表)
  ■物理設計
目的 データベースを実際に作成するための設計
設計者 DB管理者、開発者
設計内容 ・④テーブルの主キー(PK)
・⑤テーブルの外部キー(FK)
・⑥テーブル名
・⑦カラム名
・⑧カラムデータ型
・⑨インデックス

(図121)

目次にもどる

(1-3) 両者の違い

整理すると、「論理テーブル設計」は主にエンティティ(テーブル相当)と属性(カラム相当)を設計し、その関連性まで定義する所がゴールです。それに対して、「物理テーブル設計」は実際のテーブル名、カラム名に加え、主キーや外部キー、更にはインデックスといった、実際にテーブルを生成するために必要な細部の設計を行います。
 
(表)
項目 概念 論理 物理 備考
①エンティティ名   DBのテーブルに対応
②エンティティ関連性   ER図
③エンティティの属性     DBのカラムに対応
④テーブルの主キー   主キー=PK
⑤テーブルの外部キー   外部キー=FK
⑥テーブル名      
⑦カラム名      
⑧カラムデータ型     カラムのデータ型
(VARCHAR、NUMBER、DATE、BLOB、LONG)
⑨インデックス     インデックスは、DBにおいてフルスキャン(全検索)せずに目的のデータに素早く到達するための目次のような機能です。

●各断面でのアウトプットイメージ

まず「概念設計」の段階ではエンティティとその関係性のみが定義され、次に「論理設計」でエンティティの属性も定義され、更に「物理設計」で実際のテーブル・カラム名やデータ型も定義されていくイメージです。
 
(図131)概念設計のイメージ
⇒エンティティ名とその関連性を定義


(図111)論理設計のイメージ
⇒概念設計に加え、属性(カラム)や主キー、外部キーも設計

(図121)
⇒物理名(データベースで扱う際の名前)やカラムの型、インデックスなどを決めます

 

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-Database (データベース)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

システム開発におけるデータモデリングの方法とER図描画ツール紹介

(0)目次&概説 (1) 項目を洗い出す  (1-1) 現行システムが存在する場合  (1-2) 新規システムを開発する場合 (2) エンティティを定義する  (2-1) エンティティの作成  (2- …

インピーダンスミスマッチとは?を分かりやすく説明

<目次> (1) インピーダンスミスマッチとは?を分かりやすく説明  (1-1) 概要  (1-2) 具体例 (1) インピーダンスミスマッチとは?を分かりやすく説明 (1-1) 概要 「インピーダン …

SQLでCASE文の結果をWHERE句に指定する方法およびコスト面の考察

本記事では、 ・SQLでCASE文の結果をWHERE句に指定する方法について記述します。 ・CASE文を使う場合のコストについて考察します。 (0)目次&概説 (1) NG例 (2) OK例&解説 ( …

データベースのテーブル定義の検討ポイント及びカラムのデータ型や桁数・バイト数について

(0)目次&概説 (1) テーブル定義の検討項目 (2) データ型について  (2-1) char  (2-2) nchar  (2-3) varchar  (2-4) nvarchar (3) 桁数 …

  • English (United States)
  • 日本語
Top