冗長化と冗長データ | WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」

WEBデザイナー"Zoe"の「サービスぶち上げ奮闘記」

プログラミング初心者のWEBデザイナーが、WEBサービスを立ち上げるまでの奮闘記です。勉強する中で調べたことや、PHP,SQL,フレームワーク,セキュリティ等分かり易く説明したサイトがあればまとめてます。

どうもZoeです。

冗長化と冗長データ。似て非なるものです・・(-公-;)ムムッ
ナンノコッチャと思うかもしれませんが、理解するまでにハマったので、
めちゃくちゃ簡単な言い方でメモ。

冗長とは


簡単に言うと「余ったデータ、余分なデータの事」

データベースの冗長化とは


こういう使われ方をしている場合、データを複製するバックアップみたいなものです。
例えば、「サーバーの冗長化をして~」という文章があれば、
「サーバーを余分に用意して、サーバーが破損して飛んだ場合等に備えて~」と読み替える。
冗長化する、というのは”あえて”余分なデータを用意するということです。

冗長データとは


この場合の冗長の意味は「無駄なデータ」だと思って間違いないと思います。
例えば下記のような、注文履歴のテーブルがあるとします。

注文ID取引先商品番号1商品名1商品番号2商品名2and more...
1ヤマD電機R-340冷蔵庫D-101電子レンジ.... and more
2ヨドBCAMD-101電子レンジ(空白)(空白)...and more
3ビッグCAMC-101一眼レフカメラ(空白)(空白)...and more


この場合、商品数が1個しか無いものは、2個め3個め分のデータが空白となり、無駄になってます。これを冗長なデータといいます。
解決策として下記にような設計にしとくと、無駄なセル(空白)がなくなります。(正規化)

注文ID取引先商品番号商品名
1ヤマD電機R-340冷蔵庫
1ヤマD電機D-101電子レンジ
2ヨドBCAMD-101電子レンジ
3ビッグCAMC-101一眼レフカメラ


スッキリしましたね!ヽ(=´▽`=)ノ
データベースは同じような内容が何百・何千行と入っていくので、その度に空白のデータがあると、空白データ ✕ 何百・何千の行数分 ...と結果的に膨大なデータ領域が無駄になってしまいます。

また、それを防止するために適切な形に直す行為を正規化と呼びます。
あわせて覚えておくといいと思います(^^)