冗長化と冗長データ。似て非なるものです・・(-公-;)ムムッ
ナンノコッチャと思うかもしれませんが、理解するまでにハマったので、
めちゃくちゃ簡単な言い方でメモ。
冗長とは
簡単に言うと「余ったデータ、余分なデータの事」
データベースの冗長化とは
こういう使われ方をしている場合、データを複製するバックアップみたいなものです。
例えば、「サーバーの冗長化をして~」という文章があれば、
「サーバーを余分に用意して、サーバーが破損して飛んだ場合等に備えて~」と読み替える。
冗長化する、というのは”あえて”余分なデータを用意するということです。
冗長データとは
この場合の冗長の意味は「無駄なデータ」だと思って間違いないと思います。
例えば下記のような、注文履歴のテーブルがあるとします。
注文ID | 取引先 | 商品番号1 | 商品名1 | 商品番号2 | 商品名2 | and more... |
---|---|---|---|---|---|---|
1 | ヤマD電機 | R-340 | 冷蔵庫 | D-101 | 電子レンジ | .... and more |
2 | ヨドBCAM | D-101 | 電子レンジ | (空白) | (空白) | ...and more |
3 | ビッグCAM | C-101 | 一眼レフカメラ | (空白) | (空白) | ...and more |
この場合、商品数が1個しか無いものは、2個め3個め分のデータが空白となり、無駄になってます。これを冗長なデータといいます。
解決策として下記にような設計にしとくと、無駄なセル(空白)がなくなります。(正規化)
注文ID | 取引先 | 商品番号 | 商品名 |
---|---|---|---|
1 | ヤマD電機 | R-340 | 冷蔵庫 |
1 | ヤマD電機 | D-101 | 電子レンジ |
2 | ヨドBCAM | D-101 | 電子レンジ |
3 | ビッグCAM | C-101 | 一眼レフカメラ |
スッキリしましたね!ヽ(=´▽`=)ノ
データベースは同じような内容が何百・何千行と入っていくので、その度に空白のデータがあると、空白データ ✕ 何百・何千の行数分 ...と結果的に膨大なデータ領域が無駄になってしまいます。
また、それを防止するために適切な形に直す行為を正規化と呼びます。
あわせて覚えておくといいと思います(^^)