感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

リレーショナルデータベース テーブルの基本

スポンサーリンク

MySQLで学ぶデータベース超入門 第2章より

なぜExcelじゃなくてデータベースなのか?

データベースではそれぞれのフィールドに「どのようなデータをセットできるのか」をあらかじめ決めておく必要があるから。
また、制約条件を課すことができうrから。
データベースでは格納すべきデータを厳密に設定することで、データの一貫性を保証できる。
そうすると、大量のデータを効率良く、高速にディスクに格納することができる。

大量のデータを
・一貫性を持って
・高速に
・効率よく
処理できるのがデータベースだから。



なぜ常に可変長文字列ではダメなのか?

DBに文字列を格納するための文字列型は、固定長文字列と可変長文字列がある。
いつでも可変長文字列を使えば楽そうに見える。
でも、全て可変長にするのはよくない。

なぜか?

可変長文字列は、桁数がまちまちなので、データアクセスがやや非効率になってしまうから。
また、データの追加や削除を繰り返すと、データが分散しやすくなる問題もある。
データが分散すると、データアクセスの効率も悪くなる。

固定長文字列は桁数が常に固定されているので、アクセスの方ホモ単純で高速となる。



正規化

第一正規化の目的

  • テーブルに含まれる繰り返し部分を分離すること
  • 導出項目を除去すること

導出項目とは、ほかの項目から計算によって算出できる項目のこと。


第二正規化の目的
部分関数従属の関係にある項目を分離する。

第三正規化の目的
主キー以外の値が主キーによってのみ決まるようにする。
推移従属関係にある項目を分離する。


MySQLで学ぶデータベース超入門 (DB Magazine SELECTION)

MySQLで学ぶデータベース超入門 (DB Magazine SELECTION)