正規化
① 物語性を取り入れた説明: 「正規化」
IT企業で新入社員のジョンは、データベースの管理を任されました。しかし、データが重複していて整理されていないことに悩んでいました。そこで、ジョンはマネージャーに相談しました。
「マネージャー、このデータベース、同じ情報が何回も出てきたり、別の場所に入っていたりして、めちゃくちゃです。どうすればいいですか?」とジョンが聞きます。
マネージャーは頷きながら、「それなら正規化を考えるといいよ」とアドバイスをしました。
「正規化って何ですか?」とジョンは首をかしげます。
「簡単に言えば、正規化はデータを整理して、重複や無駄をなくす方法だよ」とマネージャーは説明を始めました。「例えば、君が学校の友達の住所録を作るとしよう。もし、友達の名前と住所を複数の場所に書いてしまったら、どこか一つを間違えたときに、他の場所もすべて修正しないといけなくなるよね。それがデータベースでも同じことが起こるんだ」
「なるほど、同じ情報を何度も書かないようにするんですね。でも、どうやってそれを実際にやるんですか?」
「まずは、データを分割することだ。たとえば、顧客情報の表があるとする。その中に、顧客の名前、住所、そして購入履歴が全部一緒に書かれていたら、その表は大きくなって管理が難しくなる。だから、顧客情報と購入履歴を別々の表に分けるんだ。これが正規化の基本だよ」
例:正規化前の表(重複しているデータ)
顧客ID | 顧客名 | 住所 | 購入商品 | 購入日 |
---|---|---|---|---|
1 | 田中太郎 | 東京 | ノートPC | 2023-09-01 |
1 | 田中太郎 | 東京 | マウス | 2023-09-05 |
2 | 鈴木花子 | 大阪 | スマートフォン | 2023-09-10 |
2 | 鈴木花子 | 大阪 | イヤホン | 2023-09-12 |
「ここでは、同じ顧客の情報が何度も繰り返されているよね。これだと、データが重複して無駄が生じる。これを正規化することで、顧客情報と購入履歴を別々の表に分けるんだよ」
正規化後の表
顧客情報表
顧客ID | 顧客名 | 住所 |
---|---|---|
1 | 田中太郎 | 東京 |
2 | 鈴木花子 | 大阪 |
購入履歴表
購入ID | 顧客ID | 購入商品 | 購入日 |
---|---|---|---|
101 | 1 | ノートPC | 2023-09-01 |
102 | 1 | マウス | 2023-09-05 |
103 | 2 | スマートフォン | 2023-09-10 |
104 | 2 | イヤホン | 2023-09-12 |
「これで、データの重複がなくなり、顧客情報と購入履歴がすっきり整理された。これが正規化の効果だよ。段階的に進めていくことで、さらに複雑なデータも効率的に管理できるようになるんだ」
「なるほど、それぞれの情報を整理して別々に保存するんですね」
「その通り。さらに、正規化には段階があるんだ。最初は第一正規形という基本の整理で、データを重複なく分ける。次に、第二正規形、そして第三正規形と進んでいって、より複雑なデータでも効率的に管理できるようになる。これによって、無駄なデータの重複がなくなるし、データの修正も簡単になるんだ」
「段階的にデータを整理するんですね。でも、正規化ってデータの検索が遅くなることもあるって聞いたんですけど…」とジョンが尋ねます。
「良い指摘だな。確かに、データを分割しすぎると、情報を集めるときに結合しなければならず、検索が遅くなることもある。でも、それはデータの量や使い方によってバランスを取る必要があるんだ。正規化が過剰になると、逆に効率が下がることもあるからね」
「なるほど、データを整理して無駄をなくす一方で、使い方に応じたバランスも大事なんですね」とジョンは納得しました。
② 実際の事例: 正規化の使用例
正規化は、多くの企業や自治体で、効率的なデータ管理を実現するために使われています。例えば、大手通販サイトでは、顧客情報や商品情報を正規化して管理しています。顧客の名前や住所、購入履歴をそれぞれ別々のテーブルに分割して保存することで、データの重複や矛盾を防ぎ、ミスが起こりにくくなります。
また、自治体でも、住民の情報を正規化して管理しています。住民基本台帳のデータと、税金や福祉に関するデータを正規化して別々に保存することで、更新や変更がスムーズに行えます。この方法により、データの整合性を保ちながら、システムの管理コストを削減しています。
最近では、クラウドサービスを利用したデータ管理でも正規化が進んでいます。クラウド上で複数のデータベースを効率的に管理するために、正規化を活用し、どんなデータでも一貫した管理ができるようになっています。
➂ クイズや小テスト
クイズ1
正規化の目的は何ですか?
A. データを無駄なく整理する
B. インターネットの速度を上げる
C. ウェブページをデザインする
クイズ2
正規化の第一段階で行うのは何ですか?
A. データの結合
B. データの分割
C. データの暗号化
クイズ3
正規化によって発生しうる問題は何ですか?
A. データの削除
B. データの重複
C. データの検索速度が遅くなる可能性
⑤ 回答
- A – 正規化の目的は、データを無駄なく整理し、重複や矛盾を防ぐことです。
- B – 第一正規形では、データを適切に分割して重複を避けます。
- C – 正規化によりデータが分割されすぎると、検索速度が遅くなることがあります。
応用情報技術者試験令和3年秋 午前問28