Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データベース:正規系の続き

 データベース:正規系の続き

More Decks by NearMeの技術発表資料です

Other Decks in Technology

Transcript

  1. 0
    データベース:正規形の続き
    2023-04-28 第42回NearMe技術勉強会
    Takuma Kakinoue

    View Slide

  2. 1
    ボイスコッド正規形(第3.5正規形)



    このテーブルには、例えば以下の様な問題点がある。

    ● イーブイの進化先として、新しくニアブイを追加したい。しかし、ニアブイの進化に必要な石
    はまだ未実装である。この場合、テーブルにイーブイとニアブイの関係を追加することがで
    きない。

    以下のテーブルは第3正規形までは満たしている。

    View Slide

  3. 2
    ボイスコッド正規形(第3.5正規形)



    {ポケモン名,使うアイテム} ➡ {進化先ポケモン名}という関係のほか、

    {進化先ポケモン名} ➡ {(進化元)ポケモン名}という関係もあるので、

    以下の様にテーブルを分解する。これでニアブイを追加できる!しかし。。。

    (分解前)

    (分解後)


    View Slide

  4. 3
    ボイスコッド正規形(第3.5正規形)



    よく見ると、イーブイに何の石を使ったらブースタに進化するのかという情報が

    抜け落ちている...


    ボイスコッド正規化では、分割の仕方によっては、情報が失われる可能性があるので注意!

    (分解前)
    (分解後)

    View Slide

  5. 4
    ボイスコッド正規形(第3.5正規形)



    以下の様に分解することで、情報が失われない!

    ブースターに進化するためには、イーブイにほのおの石を使えばよいとわかる!!

    (分解後)
    (分解前)

    View Slide

  6. 5
    第4正規形
    右のテーブルは、

    {ポケモン名} →→ {特性}

    {ポケモン名} →→ {覚える技}

    という2つの関連を含んでいる!


    ただ、ピカチュウの特性に仕様変更があった

    場合に、複数行を更新しなくてはならない..


    以下の様に、1つのテーブルに含まれる関連は1つ
    になるようにする!!



    (分解前)

    (分解後)


    View Slide

  7. 6
    参考文献

    ● ミック,達人に学ぶDB設計徹底指南書~初級者で終わりたくないあなたへ~,

    株式会社 翔泳社,2012


    View Slide

  8. 7
    Thank you

    View Slide