空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

MySQL Tutorial (All in One)

MySQL Tutorial (All in One)

MySQL Tutorial (All in One)


家に帰ってから読む。一度はしっかり読んでおいた方が良かろう。本日は chapter 1 から chapter 4 の途中まで。昔,インターンで OracleJDBC でアクセスして Tomcat で,JSP と JavaBeans を使ってアプリケーションを作る,というのをやったのを思い出す。その頃はまだ頭が冴えていて SQL の分厚い本を3,4日間で,ほぼ完璧に覚えた気がする。今となっては血にも肉にもなっていない。
Chapter 3 にてデータベースの正規化の話がちょっと出て来た。正しい設計のためのルールとして NormalForm; 1NF,2NF,3NF(Boyce-Codd NF)の説明が簡潔に記されていた。単なる MySQL の how to 本,というわけでもないようだ。

  • 1NF は知らないとやってしまいそーだけど,知ってしまえば誰でも実現できる
  • 2NF,3NF は,冗長性を無くすことを自然に実現すれば,そうなる。データベースが複雑になって,デザインに違和感を感じたら,定義に立ち返って考えてみるという程度でいいんじゃないだろうかね

データベースの正規化の話は,英語で書くとすごいシンプルな話に聞こえるから不思議だ。たぶん日本語で勉強する方が難しいのではないだろうか。正規化の要点を英語で書くと以下の通り。

  • Normalization is a formal process for improving database design.
  • First normal form (1NF) means atomic column or attribute values.
  • Second normal (2NF) form means that all attributes outside the key must depend on the whole key.
  • Thrd normal form (3NF) means no transive dependencies.
  • Boyce-Codd normal form means that all attributes must be functionally determined by a superkey.