データベースの学習をしていると「ER図」って言葉が良く出てきます。
何かを表現するための図なのかなー?って思いますが、「概念データモデル」を表現するために使われる図なのです。と言っても、概念データモデルって何じゃ?って話になるかと思います。
今回はこの概念データモデルとその代表的な表記法であるER図に関して解説します!
概念データモデルとは?
データベースを構築するにあたり、どんな情報をどんな形で扱うのは非常に重要となります。なぜなら、一人でデータを管理するわけにはいかず、関係者で認識をしっかり合わせておく必要があるからです。
この情報の意思疎通手段として、対象世界の情報構造を抽象化して表現したものが概念データモデルです。もうちょっと簡単に表現すると「データの見える化」みたいな感じですかね。
この概念データモデルというものは、データベースの種類にも、特定のDBMS製品にも関係無く、フラットにデータの世界を表現することが特徴の一つでもあります。
イメージは以下のようなものです!
そして、概念データモデルを表現する図式手法として、ER図(実体関連モデル図)や、ER図より詳細な要素を含んだEER図(拡張実体関連モデル図)がありますので、今回は代表的なER図に関して、学びましょう!
ER図の説明
先ずERの定義ですが、以下の通りとなります。
ER図とは
実世界をEntity(エンティティ:実体)とRelationship(リレーションシップ:関連)でモデル化した図
続いて、このER図を構成するために必要なエンティティとリレーションシップの役割の説明です。
エンティティ
エンティティとは、情報の対象となる物を概念としてモデル化したものとなります。
エンティティにはいくつかの属性(項目)を持ち、それぞれの属性にはデータ制約(ユニーク制約とか参照制約など)が定義されることがあります。
エンティティ内の属性に値が入ったものを「インスタンス」と呼びます。
言葉だとわかり難いので例を図にしてみました。
エンティティは「概念」、インスタンスは「実体」と覚えると良いかもしれませんね。
リレーションシップ
リレーションシップは業務をする上で発生するエンティティ間の結びつきのことになります。
二つのエンティティに含まれる属性の間で何らかの参照関係が存在すれば、その両エンティティはリレーションシップで結ばれます。
リレーションシップで繋がれたエンティティ間は属性情報を並べて表現することができます。ちょっと分かり難い表現ですが、下の図の例ですと、「担当」エンティティが「社員」エンティティと「顧客」エンティティを繋いでくれるので、例えば「ある顧客を担当している社員の部署名」を導き出すことができます。
つまり、リレーションシップを使うことでリレーショナルな(各テーブルを繋いだ)データベースを作ることができるようになります。
リレーションシップには「1対1」だけではなく、「1対多」や「多対多」などがありますので、それは別の機会に解説できればと思います!
まとめ
今回は概念データモデルとER図に関して学んできました。
ER図、エンティティ、リレーションシップなど一見難しそうな言葉ですが、理解してしまえば、それほど難しいものでも無いですね。
関係データベースの基本となる概念と表現方法なので、しっかり覚えておきましょう!
尚、データベーススペシャリストの試験などでは「エンティティ」の属性を省略した「エンティティタイプ」と呼ばれる、エンティティの構造を定義したものを使っています。(本記事の概念データモデルで掲載した図の感じですね)
以上です!
参考URL)