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

全検索はSELECT * FROM で

SQLって何の略なんでしょう?

一応、Structured Query Language の略ということになっていますが、製品のSQLから来ているとも言われています。

読み方は、「エス・キュー・エル」と言ったり、「シークェル」と言ったりしますね。

フリーで有名な「MySQL」は「マイシークェル」でも良いですし、「マイ エスキューエル」でも良いと思います。

さて、

設計をするときのデータモデルと、SQLで一般に使われる用語に違いがあります。

が、まぁ、同じことを言っているので、ちょっと表にしておきます。

データモデル SQL
関係(リレーション) 表(テーブル)
属性
タプル


となります。ここのブログでは、SQL用語のほうを使っています。

最初は、全検索の方法です。

こんな風な手帳テーブルがあるとして、

20100825_03.jpg

全てを検索する場合は、

SELECT * FROM 手帳

のようにします。

全ての列を検索する場合は、「*」(アスタリスク)を使います。

第三正規形では補助テーブルを使う

大抵のデータベースは、第二正規化ぐらいで大丈夫です。

ですが、もう少し複雑な場合には、第三正規形というものがあります。

第二正規形と第三正規形との違いは、

どの候補キーに対しても推移的に関数従属でない

という言い方をしますが、ええ、訳が分かりませんね(苦笑)。

具体的に、趣味の表を使うと、こんな感じです。

20100824_07.jpg

こんな風に年上の彼に○印を付ける列を加えました。

これを普通に、第二正規化まですると、

20100824_08.jpg

個人テーブルに、年上の○×が付くのですが、この年上の列って、「年齢」と「年上」だけに分離できますよね。

ってのが第三正規形です。

20100824_09.jpg

こんな風に、年上テーブルみたいなのを作れば、簡単に年上が分かりますよね。

ってことです。

正確にはちょっと違うのですが、まぁ、普通のデータベースの設計ではここまでやりません。

第2.5正規化と言って、あまり厳密に第三正規化しない方法が多いのです。

 

 

 

 

ダブりを一か所にまとめて第二正規形

第一正規形では、趣味の行を簡単にしましたね。

20100824_04.jpg

でも良く見てください。

趣味の欄で、「旅行」や「車」などがダブっていますよね。

例えば、「車」を「くるま」に変えようとすると、3か所のデータを変えないといけません。

これは大変ですね。。。とデータベースは考えるわけです。

20100824_05.jpg

この趣味の列を別のテーブルにして、個人のIDと趣味のIDを結びつけます。

20100824_06.jpg

これが第二正規形ですね。

趣味の「車」や「旅行」などの文字がダブらなくなりました。

これで、趣味の名称を変えたいときは、一か所だけ変えればよくなります。