この記事はYouTubeで配信中の「【令和6年】ITパスポート1番わかるオンライン講座」を記事にしたものです。動画でご覧になりたい方は、下記からご確認ください。
※前回の記事(#60 データベース方式、データ操作)はこちら
今回は、令和6年ITパスポート1番わかるオンライン講座
第61回「データベース②データベース設計」をお伝えします。
データベース設計は、データを効率的に管理し、重複や不整合を防ぐための重要な技術です。
特に関係データベースの設計について詳しく説明します。
今回は、主キー、外部キー、そして正規化についてしっかり押さえていただきたいと思います。
主キー
まず、主キーについて説明します。主キーとは、関係データベースの表内の行(レコード)を一意に判別するための項目(列)のことです。
主キーは重複しない性質を持ち、試験では『行を一意に識別する』などの表現で出題されることがあります。
具体例として、会員番号表を考えます。
会員番号表の一行一行がレコードで、会員番号を主キーとして、それぞれ名前、年齢、住所が入っています。
この会員番号は一意で、必ず重複がありません。
例えば、会員番号が同じA001の山田さんと鈴木さんがいたら、管理が破綻してしまいます。
このように、関係データベースの表内の行(レコード)を一意に判別するための項目が主キーです。
リレーション
次にリレーションと外部キーについて説明します。リレーションとは、表と表の関連付けのことです。それぞれの表の特定の項目(列)同士を関連付けます。
外部キー
外部キーは、他の表の主キーを参照している列のことです。参照先の列に存在しない値は入力できません。実際に見てみましょう。
商品表と生産工場表を考えます。
商品表では商品番号が主キーで、それぞれの商品に生産工場コードが入っています。
生産工場表では生産工場コードが主キーで、それぞれの工場情報が入っています。
商品表の生産工場コードは生産工場表の主キーを参照しています。
このように、他の表の主キーを参照する項目を外部キーと言います。外部キーには参照先の主キーに存在しない値は入れられません。
リレーションを使う理由
では、なぜリレーションを使うことが必要なのでしょうか。
リレーションを使わずに作った商品表を見てみましょう。
この表では、同じ内容が繰り返し書かれています。例えば、千葉工場の情報が何度も出てきます。
このようにリレーションを使わないと、記憶装置の容量を多く取ってしまいます。
また、千葉工場の担当者が変更になった場合、全ての該当レコードを手作業で書き直す必要があり、非常に手間がかかります。
これがリレーションを使う理由です。
正規化
次に、正規化について説明します。正規化とは、データの重複や不整合を防ぐために表を複数に分割することです。
リレーションを使うことで、表を分割し、データの一貫性を保つことができます。
複合キー
続いて、複合キーについて説明します。
複合キーとは、複数の項目(列)の組み合わせから構成される主キーのことです。
例えば、注文表では注文番号と明細番号を組み合わせて一意のキーとします。注文番号だけでは重複する可能性があるため、明細番号と組み合わせることで一意性を保ちます
注文番号と明細について具体的に説明しましょう。
例えば、マクドナルドでコーラとハンバーガーを頼む場合を考えます。私がコーラとハンバーガーを頼むと、注文は1回ですが、その1回の注文の中に「コーラ」という明細と「ハンバーガー」という明細があります。これをイメージしてください。
注文は1回ですが、その1回の注文で、例えば注文番号001がコーラ、注文番号002がハンバーガーといった具合です。この場合、注文番号と明細番号を組み合わせることで、その行が一意(ユニーク)になります。
注文番号は複数入ることがあります。なぜなら、1回の注文でコーラ、ハンバーガー、ポテトなどをたくさん頼む人がいるからです。そして、1回の注文で何個頼んだかによって明細が分かれます。そうすることで、主キーは注文番号プラス明細番号でないと、この表がユニーク(一意)になりません。
インデックス
ここで出題用語のインデックスについて説明します。
インデックスは索引と訳され、データベースの検索を高速にするために設定されます。
関係データベースの表に対して、主キーは1つだけですが、外部キーやインデックスは複数設定できます。
これも過去に出題されたので覚えておきましょう。
E-R図
最後に、E-R図について説明します。
E-R図とは、データベースを設計する際に使う図表で、Eはエンティティ(実体)、Rはリレーションシップ(関連)を意味します。
商品、工場、会員などのモノを実体とし、その実体同士の関連を明らかにするための図です。
例えば、生産工場と商品がどう関係しているかを視覚的に示すことで、データベースの設計を行います。
例えば、千葉工場ではたこ焼き、たい焼き、イカ焼きを作っています。しかし、たこ焼きは千葉工場でしか作れませんし、たい焼きもイカ焼きも千葉工場でしか作っていません。そうすると、千葉工場と商品との関係は「千葉工場 対 たこ焼き、たい焼き、イカ焼き」のように「1対多」の関係になります。
この関係を表す矢印を「リレーションシップ」といいます。このように、生産工場や商品のようなエンティティと、そのエンティティ同士の関係性をリレーションシップで示します。こうした図を描くことで、データベースの設計を行います。この時に作成する図が「ER図」と呼ばれます。
まとめ
今回は、主キー、外部キー、リレーション、正規化、複合キー、E-R図について理解していただけたと思います。
これらの概念を適切に用いることで、効率的で整合性のあるデータベースを設計することができます。データベースの基本部分をしっかりと押さえていただきたいと思います。