Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベース:正規系の続き
Search
NearMeの技術発表資料です
PRO
April 28, 2023
Technology
0
55
データベース:正規系の続き
NearMeの技術発表資料です
PRO
April 28, 2023
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
ESLintをもっと有効活用しよう
nearme_tech
PRO
0
6
リファクタリングのための第一歩
nearme_tech
PRO
0
29
ガウス過程回帰とベイズ最適化
nearme_tech
PRO
1
75
確率的プログラミング入門
nearme_tech
PRO
2
69
Observability and OpenTelemetry
nearme_tech
PRO
2
35
観察研究における因果推論
nearme_tech
PRO
1
100
React
nearme_tech
PRO
2
41
Architecture Decision Record (ADR)
nearme_tech
PRO
1
860
遺伝的アルゴリズムを実装する
nearme_tech
PRO
1
62
Other Decks in Technology
See All in Technology
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
プロダクト開発を加速させるためのQA文化の築き方 / How to build QA culture to accelerate product development
mii3king
1
290
サーバーなしでWordPress運用、できますよ。
sogaoh
PRO
0
120
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
120
[JAWS-UG新潟#20] re:Invent2024 -CloudOperationsアップデートについて-
shintaro_fukatsu
0
120
生成AIのガバナンスの全体像と現実解
fnifni
1
210
Work as an App Engineer
lycorp_recruit_jp
0
360
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
120
AWS re:Invent 2024で発表された コードを書く開発者向け機能について
maruto
0
210
TypeScript開発にモジュラーモノリスを持ち込む
sansantech
PRO
2
640
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
190
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
120
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Code Reviewing Like a Champion
maltzj
521
39k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
910
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
170
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Transcript
0 データベース:正規形の続き 2023-04-28 第42回NearMe技術勉強会 Takuma Kakinoue
1 ボイスコッド正規形(第3.5正規形) このテーブルには、例えば以下の様な問題点がある。 • イーブイの進化先として、新しくニアブイを追加したい。しかし、ニアブイの進化に必要な石 はまだ未実装である。この場合、テーブルにイーブイとニアブイの関係を追加することがで きない。
以下のテーブルは第3正規形までは満たしている。
2 ボイスコッド正規形(第3.5正規形) {ポケモン名,使うアイテム} ➡ {進化先ポケモン名}という関係のほか、 {進化先ポケモン名} ➡ {(進化元)ポケモン名}という関係もあるので、 以下の様にテーブルを分解する。これでニアブイを追加できる!しかし。。。 (分解前) (分解後)
3 ボイスコッド正規形(第3.5正規形) よく見ると、イーブイに何の石を使ったらブースタに進化するのかという情報が 抜け落ちている... ボイスコッド正規化では、分割の仕方によっては、情報が失われる可能性があるので注意! (分解前)
(分解後)
4 ボイスコッド正規形(第3.5正規形) 以下の様に分解することで、情報が失われない! ブースターに進化するためには、イーブイにほのおの石を使えばよいとわかる!! (分解後) (分解前)
5 第4正規形 右のテーブルは、 {ポケモン名} →→ {特性} {ポケモン名} →→ {覚える技} という2つの関連を含んでいる!
ただ、ピカチュウの特性に仕様変更があった 場合に、複数行を更新しなくてはならない.. 以下の様に、1つのテーブルに含まれる関連は1つ になるようにする!! (分解前) (分解後)
6 参考文献 • ミック,達人に学ぶDB設計徹底指南書~初級者で終わりたくないあなたへ~, 株式会社 翔泳社,2012
7 Thank you