データモデルって、抽象的でわからないな。
〇〇モデルが多すぎて、頭がパンクしそうだよ。
本記事をご覧いただくことで、次のことがわかります。
✅リレーショナルモデル・論理データモデルとは何かがわかる
データサイエンスをより深く学びませんか?
データモデルとは
データモデルの意味
データモデルとは、簡単に言うと「データベースの項目や構成、形式を整理整頓したもの」です。
例えば、業務のデータをデータベース化したい時、まずはどのようなデータが手元にあるのかを知っておく必要があります。
データを整理することをデータモデリングといい、データモデリングの末に出来上がるものをデータモデルと呼びます。
ちなみに、データベースの専門家は、業務のことを「対象世界」と呼びます。
対象世界だなんて、何だかスケールが大きく感じるね
データモデリングの目的
先程も述べたように、データモデリングを実施する目的は、データを整理整頓して、全体概要を把握するためです。
対象世界は、色んなデータを生成させる源泉です。
この対象世界で生まれた多種多様なデータを扱わなければ、データベースにはできないため、まずは全体の把握をする必要があります。
思いつきで設計すると、データベースがごちゃごちゃになって、後で大変になります。
どういったデータを生成しているのかを洗い出し、データをモデル化(図で表すなどみえるか)する必要があるんだ!
なるほど!データベース化する準備として、データモデルは使われるんだね!
でも、データモデルはどういう手順で作られるんだろう?
データモデリングの手順
データモデリングは、次の手順で段階的に行われます。
1. 対象世界を概念データモデルにする
最初に作るモデルが、概念データモデルです。
概念データモデルは、対象世界を抽象化したモデルです。
項目をグルーピングし、各グループ同士の関係をER図で図式化することが多いです。
システム化の対象範囲に限らず、全体的なデータ整理を行うために使われます。
概念データモデルとは、具体的にどんな図なのでしょうか?
「ITの学び」様の下記の図がわかりやすいので、引用させていただきます。
ER図について、詳しく知りたい方は、こちらの記事をご覧ください。
2. 概念データモデルを論理データモデルにする
続いて、概念データモデルをもとに、論理データモデルを作ります。
論理データモデルとは、概念データモデルの内容をより詳細化したものです。
データ要素の詳細な構成と、データ要素間の関係を定義するために利用します。
論理データモデルをもとに、実際にデータベース化されるよ。
論理データモデルは、リレーショナルモデル(関係モデル)を用いてモデリングされることが多いです。
リレーショナルモデルに基づくデータベースを、RDB(関係データベース、または、リレーショナルデータベース)と呼びます。
次の章では、このリレーショナルモデル(関係モデル)について解説するよ
リレーショナルモデル・リレーショナルデータベースとは
リレーショナルモデルの意味
何だか難しそうな横文字だな
大丈夫。要するに、いつも皆さん目にする表のことです!
リレーション(relation)とは、関係という意味です。
関係って、雇用関係や信頼関係の「関係」みたいなイメージかな?
違うよ!
関係とは、表と捉えるとわかりやすいよ。
リレーショナルモデルは、データ構造を表す専門用語です。
データ構造とは、データをプログラミングでどういった形で使うかのこと。
データ構造の例としては、配列・リスト・木などがあるよ。
リレーショナルモデルは、データ構造の一種。つまり、データの格納方法のことを指すんだ!
なるほど。もしかして、リレーショナルモデルは表形式でデータを格納するってこと?
そういうこと!
リレーショナルモデルは、表でデータを扱う点が特徴です。
例題:関係Aに属性a・b・cがある。この場合は、どのようなデータモデルになるか?
関係=表なので、表Aという表があるということです。
そして、属性=項目(カラムとも呼ぶ)のことです。
項目a | 項目b | 項目c |
✕✕✕✕✕ | 〇〇○○○ | △△△△△ |
リレーショナルモデルの名称
基本的な名前は、次の通りです。
- 行:横
- 列:縦
- レコード:件数のこと。(1レコード=1件のデータ)
- タプル:行のこと
それぞれの属性には、取りうる値の範囲があります。
取りうる値の範囲?
例えば、属性1は3文字のローマ字が入っていますね。
この属性1に、属性3にあるような「はい」という文字や、属性2にあるような数字が入るのは、
値として適切ではないと言えます。
このように、属性はデータのグループを示し、このグループには入れる値の種類が限定されているというわけです。
なるほど!
たとえば、都道府県名という属性があったとした時に、市町村名が紛れ込んでいたらNGだってことか。
そう。この取りうる値の範囲のことを、ドメインというよ。
ドメインは、列の項目に検査制約(SQLではCHECK)をつけることで設定できます。
まとめ
いかがでしたか?
データモデルについての概要をご説明しました。
リレーションデータベースに欠かせない概念「主キー」についての詳細は、こちらで説明しています。
合わせてご確認ください。