システム化とは「間違えないようにすること」と「作業を効率化すること」です。そのために、正規化によるデータベース設計が欠かせません。
以下の仕入れ表を見てください。Excelなどで管理されることが多いこのような表は、一見すると問題なく運用できているように見えます。確かにExcelでの運用ならこれで問題ありません。 しかし、システム化するとなると以下のような問題が潜んでいます。
仕入れ先 | 住所 | 商品名 | 価格 | 商品の種類 |
---|---|---|---|---|
山田商事 | 東京都新宿区1-1-1 | 冷蔵庫 | 50,000 | 家電 |
佐藤水産 | 北海道札幌市中央区2-2-2 | サーモンフィレ | 2,000 | 食品 |
佐藤水産 | 北海道札幌市中央区2-2-2 | タラバガニ | 3,800 | 食品 |
高橋園芸 | 静岡県静岡市4-4-4 | 観葉植物 | 5,500 | 園芸用品 |
高橋園芸 | 静岡県静岡市4-4-4 | 園芸スコップ | 25,000 | 園芸用品 |
高橋園芸 | 静岡県静岡市4-4-4 | トラクター | 480,000 | 農機 |
伊藤工業 | 愛知県名古屋市7-7-7 | 工業用ポンプ | 45,000 | 工業用品 |
渡辺フーズ | 福岡県福岡市8-8-8 | 明太子 | 1,800 | 食品 |
上原食品 | 神奈川県横浜市9-9-9 | ラーメン | 100 | 食品 |
このような表をシステム化する際には、「正規化」が必要です。正規化を行うことで:
実際の現場でも、必ず正規化を行います。絶対に必要になるスキルなのでしっかり学びましょう。
実際に正規化をやってみましょう。
仕入れ表の"仕入れ先"を正規化してみます。
正規化後、仕入れ先の情報が新たなテーブルとして仕入れ先マスタにまとめられ、
元の仕入れ表の"仕入れ先"は仕入れ先マスタの仕入れ先IDに置き換わっています。
これが正規化です。
仕入れ先ID | 仕入れ先 | 住所 |
---|---|---|
100 | 山田商事 | 東京都新宿区1-1-1 |
200 | 佐藤水産 | 北海道札幌市中央区2-2-2 |
300 | 高橋園芸 | 静岡県静岡市4-4-4 |
400 | 伊藤工業 | 愛知県名古屋市7-7-7 |
500 | 渡辺フーズ | 福岡県福岡市8-8-8 |
600 | 上原食品 | 神奈川県横浜市9-9-9 |
ID | 仕入れ先ID | 商品名 | 価格 | 商品の種類 |
---|---|---|---|---|
1 | 100 | 冷蔵庫 | 50,000 | 家電 |
2 | 200 | サーモンフィレ | 2,000 | 食品 |
3 | 200 | タラバガニ | 3,800 | 食品 |
4 | 300 | 観葉植物 | 5,500 | 園芸用品 |
5 | 300 | 園芸スコップ | 25,000 | 園芸用品 |
6 | 300 | トラクター | 480,000 | 農機 |
7 | 400 | 工業用ポンプ | 45,000 | 工業用品 |
8 | 500 | 明太子 | 1,800 | 食品 |
9 | 600 | ラーメン | 100 | 食品 |
もう一度、思い出しましょう。正規化とは、「データを効率的に管理しやすく整理すること」です。
同じ情報を何度も保存するのを避け、データの一貫性や更新のしやすさを保つための方法です。
実際の現場でもデータベースを設計する際には必ずと言っていいほど正規化が行われます。
以下の「仕入れテーブル」をさらに正規化する練習をしましょう。現在、このテーブルには「商品の種類」がそのまま文字列で保存されています。このような設計には、以下のような問題があります:
正規化を行い、「商品の種類」を別のテーブルに分けて整理しましょう。
問題.1
以下の「仕入れテーブル」の「商品の種類」を正規化し、正規化後の「仕入れテーブル」と「商品種類マスタ」を作成してください。
ID | 仕入れ先ID | 商品名 | 価格 | 商品の種類 |
---|---|---|---|---|
1 | 100 | 冷蔵庫 | 50,000 | 家電 |
2 | 200 | サーモンフィレ | 2,000 | 食品 |
3 | 200 | タラバガニ | 3,800 | 食品 |
4 | 300 | 観葉植物 | 5,500 | 園芸用品 |
5 | 300 | 園芸スコップ | 25,000 | 園芸用品 |
6 | 300 | トラクター | 480,000 | 農機 |
7 | 400 | 工業用ポンプ | 45,000 | 工業用品 |
8 | 500 | 明太子 | 1,800 | 食品 |
9 | 600 | ラーメン | 100 | 食品 |