データベース初心者の基礎知識ブログ -8ページ目

正規化はデータをダブらないようにすること

今度はちょっと難関の正規化の話をしましょう。

テーブルの正規化は、RDBMS に重要な作業で、テーブルの設計をするときに使われる方法です。

基本は、

データを更新するときに、1か所だけ更新しましょう

ということで間違いないです。

ええと、英語で云えば、Normalize ですね。

# 「標準化」のほうがイメージが付きやすいのですが、数学用語の関係から「正規化」になっています。

さて、

一番基本の第一正規化の解説をしましょう。

20100824_03.jpg

まずは、これ、名前と年齢、趣味を書いた表です。

よく手帳のメモ欄に相手の趣味とかを書きますよね。そういう感じで、趣味を書き連ねます。

当たり前ですが、ひとりに「年齢」はひとつです。

逆に、趣味は、いくつあってもいいですよね。

このテーブルが最初の状態。正規化される前なので、

非正規形 と言います。

これを正規化する訳ですが、まず、趣味の欄をそれぞれの行にばらします。

そして、行を揃えます。

20100824_04.jpg

これが第一正規形です。

趣味の列が簡単になりましたよね。

 

 

 

 

 

 

 

Googleを支える巨大データベース

20100823_07.jpg

データベースと言えば、RDBMS が主流ですが、

最近は、key-value というデータベースも出てきています。

一番有名なのは、Google のデータベースですね。

Amazon.co.jp: Googleを支える技術 ‾巨大システムの内側の世界 (WEB+DB PRESSプラスシリーズ): 西田 圭介: 本
http://www.amazon.co.jp/dp/4774134325

key-value が何を示すかというと、

いわゆる、

ひとつのテーブルに主キーが付いている

と思えばよいです。

RDBMS の R は Relational の略なので、R の部分がないのですね。

この key-value のデータベース、どのような利点があるかと言うと、

分散データベースが作りやすいのです。

イメージ的にはこんな感じ。

20100823_06.jpg

おおもとの検索用サーバーにアクセスすると、小さなデータベースにアクセスして、検索結果を集めてきて、ユーザーに結果を返しますね。

 

リレーショナルは、交わり、内部結合で

さて、情報処理では、積結合(共通結合)、和結合という難しい用語を使いますが、

データベース業界では、

積結合 = 内部結合

という言い方をします。

対して

和結合 ≒ 外部結合

と考えてもいいですね。

# 「≒」となっているのは、ちょっとニュアンスが異なるので(苦笑)

内部結合は、

SELECT * FROM A, B

WHERE A.ID = B.ID

な感じで、AとBの両方ある場合。

もうちょっと正確に書くと

SELECT * FROM A, B

INNER JOIN A.ID = B.ID

という書き方になりますね。

外部結合は後日。