0データベース:正規形の続き2023-04-28 第42回NearMe技術勉強会Takuma Kakinoue
View Slide
1ボイスコッド正規形(第3.5正規形) このテーブルには、例えば以下の様な問題点がある。 ● イーブイの進化先として、新しくニアブイを追加したい。しかし、ニアブイの進化に必要な石はまだ未実装である。この場合、テーブルにイーブイとニアブイの関係を追加することができない。 以下のテーブルは第3正規形までは満たしている。
2ボイスコッド正規形(第3.5正規形) {ポケモン名,使うアイテム} ➡ {進化先ポケモン名}という関係のほか、 {進化先ポケモン名} ➡ {(進化元)ポケモン名}という関係もあるので、 以下の様にテーブルを分解する。これでニアブイを追加できる!しかし。。。 (分解前) (分解後)
3ボイスコッド正規形(第3.5正規形) よく見ると、イーブイに何の石を使ったらブースタに進化するのかという情報が 抜け落ちている... ボイスコッド正規化では、分割の仕方によっては、情報が失われる可能性があるので注意! (分解前)(分解後)
4ボイスコッド正規形(第3.5正規形) 以下の様に分解することで、情報が失われない! ブースターに進化するためには、イーブイにほのおの石を使えばよいとわかる!! (分解後)(分解前)
5第4正規形右のテーブルは、 {ポケモン名} →→ {特性} {ポケモン名} →→ {覚える技} という2つの関連を含んでいる! ただ、ピカチュウの特性に仕様変更があった 場合に、複数行を更新しなくてはならない.. 以下の様に、1つのテーブルに含まれる関連は1つになるようにする!! (分解前) (分解後)
6参考文献 ● ミック,達人に学ぶDB設計徹底指南書~初級者で終わりたくないあなたへ~, 株式会社 翔泳社,2012
7Thank you