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
データベース・リファクタリングを読む / hello-database-refactoring
Search
hideki kinjyo
PRO
September 27, 2021
Programming
1
780
データベース・リファクタリングを読む / hello-database-refactoring
社内勉強会での発表ネタです
hideki kinjyo
PRO
September 27, 2021
Tweet
Share
More Decks by hideki kinjyo
See All by hideki kinjyo
色んなオートローダーを覗き見る #phpcon_okinawa
o0h
PRO
5
400
ヒューマンエラーの本を読んだ ~報告会~
o0h
PRO
3
220
みんなでワイワイ「テスト駆動開発」の話をやる会 #techramen24conf
o0h
PRO
3
400
SPLから始める「データ構造」入門
o0h
PRO
7
1.6k
PHPUnit11の新しい仲間たち
o0h
PRO
3
280
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
60
19k
パンフ記事 「初めてのリファクタリング!」 の裏側 #phperkaigi
o0h
PRO
2
130
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
3
1.1k
Composerを便利に使うために私がやっていること #phperkaigi
o0h
PRO
1
2.2k
Other Decks in Programming
See All in Programming
GrafanaのHTTP API を眺めてみよう
rinchoku
0
150
Pydantic x Database API:turu-pyの開発
yassun7010
1
710
PHPを書く理由、PHPを書いていて良い理由 / Reasons to write PHP and why it is good to write PHP
seike460
PRO
5
470
Kotlin Multiplatform at Stable and Beyond (Kotlin Vienna, October 2024)
zsmb
2
360
データサイエンスのフルサイクル開発を実現する機械学習パイプライン
xcnkx
2
510
Serverless renderování Webových komponent
rarous
PRO
0
110
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
10
1.5k
個人開発で使ってるやつを紹介する回
yohfee
1
710
Beyond Laravel Octane - Hyperf for Laravel Artisans
albertcht
1
140
.NET Aspireのクラウド対応検証: Azureと他環境での実践
ymd65536
1
520
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
pyama86
3
400
How to debug Xdebug... or any other weird bug in PHP
dunglas
2
1.1k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
48
10k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.6k
The Invisible Customer
myddelton
119
13k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
110
6.9k
Practical Orchestrator
shlominoach
186
10k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Code Reviewing Like a Champion
maltzj
519
39k
Building Better People: How to give real-time feedback that sticks.
wjessup
362
19k
For a Future-Friendly Web
brad_frost
174
9.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
KATA
mclloyd
27
13k
Transcript
໊ஶɿ ʮσʔλϕʔεɾϦϑΝΫλϦϯάʯ ΛಡΉ σϒϥΠϒʂ`21 / 2021.09.27 BY Hideki Kinjyo
ͳΜͰϦϑΝΫλϦϯά͠Α͏ʂ • ΞϓϦέʔγϣϯʂ • ςετʂ • σʔλϕʔεʂ • ৫ʂ •
αʔόʔʂ
ͳΜͰϦϑΝΫλϦϯά͠Α͏ʂ • ΞϓϦέʔγϣϯʂ • ςετʂ • σʔλϕʔεʂ • ৫ʂ •
αʔόʔʂ ←ࠓίί
͍ͭͷ • ۚलथ / ͖Μ͡ΐ͏ͻͰ͖ • GitHub: @o0h / Twitter:
@o0h_ • ͖ͳFWCakePHP • ΞΠίϯ ඒຯ͍͠ࡪࢠကͷࣸਅͰ͢
ࠓͷ • ʮϦϑΝΫλϦϯάʯ͕ςʔϚͩΑʙͱ͍ ͏͜ͱͰ • ຊͷհͰ͢
(ޙ͔Β)ؾ͍ͮͨ͜ͱ • طʹઌਓ͕ͬͯΜͳ͊ʙʂ • ࢿྉ࡞Γ࢝Ί͔ͯΒࢥ͍ग़ͨ͠ • Ͱؾʹ͠ͳ͍Ͱߦ͖·͢ • ྑ͍͔ͩΒݟͯ https://speakerdeck.com/soudai/database-refactoring
͓͠ͳ͕͖ 1. ͡ΊʹɿʮϦϑΝΫλϦϯάʯͬͯԿ͚ͩͬ(͓͞Β͍) 2. ʮσʔλϕʔεɾϦϑΝΫλϦϯάʯͬͯͲΜͳຊʁ 3. औΓ্͛ΒΕ͍ͯΔύλʔϯΛ͍͔ͭ͘հ͢ΔΑʂ
$1 ʮϦϑΝΫλϦϯάʯͬͯԿ͚ͩͬ (͓͞Β͍)
༗໊ͳຊ • (ୈ1൛ͷ)ຊޠ൛෭ɿʮϓϩάϥϜͷମ࣭վળςΫχοΫʯ • ϦϑΝΫλʹ͍ͭͯͷʮݪଇʯʮख๏ʯɺʮෆ٢ͳष͍ʯʹ͍ͭͯ ·ͱΊͨຊ • ݸਓతʹʮϓϩάϥϚͷΩϟϦΞͷૣ͍ஈ֊Ͱग़ձ͓͖ͬͯ͘ ຊʯͷ1ͭͩͱࢥ͏ •
“GoFͷσβΠϯύλʔϯੳ͔ΒઃܭʹҠΔࡍͷΈʹ͍ͭͯɺ ʹର͢Δղܾࡦͱͯ͠ಓےΛࣔ͠·͢ɻҰํϦϑΝΫλϦϯάɺ ࣮ʹஔ͍ͯઃܭΛ;Γ͔͑ΓɺطଘͷػೳΛอͪͭͭίʔυΛΑΓ Α͍ઃܭͱਐԽ͍ͤͯ͘͞खॱΛड़ͨͷͰ͢”(ϦϑΝΫλϦϯ ά ୈ2൛ ༁ऀ͋ͱ͕͖)
ϦϑΝΫλϦϯά Կ ᴷ֎෦͔Βݟͨͱ͖ͷৼΔ͍Λอͪͭͭɺཧղमਖ਼͕؆୯ ʹͳΔΑ͏ʹɺιϑτΣΞͷ෦ߏΛมԽͤ͞Δ͜ͱ ϦϑΝΫλϦϯάୈ൛ୈষ
ϦϑΝΫλϦϯά Կ ϦϑΝΫλϦϯάΛߦ͏ཧ༝(ಉ ୈ2ষΑΓ) • ϦϑΝΫλϦϯάιϑτΣΞઃܭΛվળ͢Δ • ϦϑΝΫλϦϯάιϑτΣΞΛཧղ͘͢͢͠Δ • ϦϑΝΫλϦϯάόάͷൃݟΛॿ͚Δ
• ϦϑΝΫλϦϯάϓϩάϥϛϯάΛΊΔ
ෆ٢ͳष͍ Կ ᴷࢲͨͪࠓ·Ͱඇৗʹଟ͘ͷίʔυΛݟ͖ͯ·ͨ͠ɻ͏·͘ ͍ͬͨϓϩδΣΫτͷίʔυ͋ΕɺେࣦഊΛট͍ͨͷ͋ Γ·͢ɻͦ͜ʹϦϑΝΫλϦϯάΛ༠͏ ͱ͖ʹʮඞཁͩʯͱ ڣͿ ͋Δछͷงғؾ͕͋ΓɺͦΕΛᄿ͚͗ΔೳྗΛࢲͨͪ ཆ͖ͬͯͨͷͰ͢
ϦϑΝΫλϦϯάୈ൛ୈষ
ෆ٢ͳष͍ Կ • “ϦϑΝΫλϦϯάͷඞཁੑΛࣔ͢ෆ٢ͳஹީ” • ཁ͢ΔʹʮͳΜ͔Ϛζ͍ίʔυʯ • ͜ΕϓϩάϥϚ͕(ܦݧ͔Β͘Δ)ඒҙࣝʹΑͬͯײͰ͖Δͷ͕ͩɺΑΓ ʮ۩ମతʹૌ͑ͯ͘ΔͷͰͳ͍͔ʯͱͯ͠ʮମײ֮ʯͷൺᄻ(=ष͍)͕ར ༻͞Ε͍ͯΔ
• ॻ੶ʮϦϑΝΫλϦϯάʯͰɺ৭ʑͳʮष͍ʯʹ͍ͭͯྨܕԽͱ໊͚Λߦͬ ͍ͯΔ • ৄ͘͠ʮϦϑΝΫλϦϯά ୈ3ষ ίʔυͷෆ٢ͳष͍ʯʹ
ϦϑΝΫλϦϯάͱύϑΥʔϚϯενϡʔχϯά • ϦϑΝΫλϦϯάʮઃܭΛ͑ΔʯʮՄಡੑΛ্ͤ͞ΔʯͨΊͷΞΫςΟϏςΟ • ಉ༷ʹʮϓϩάϥϜͷશମతͳػೳΛมߋ͠ͳ͍मਖ਼ʯͱͯ͠ɺύϑΥʔϚϯεɾνϡʔ χϯά͕ڍ͛ΒΕΔ • ྆ऀͷҧ͍ɺͦͷతʹ͋Δ • ՄಡੑͱύϑΥʔϚϯεɺ࣌ʹτϨʔυΦϑʹͳΔՄೳੑ͋Δ
• ্ʹॏ͖Λ͓͍͍ͯΔͳΒɺͦΕ(ϦϑΝΫλͱ͍͏ΑΓ)ύϑΥʔϚϯεɾ νϡʔχϯάͱݺΕΔ • (ݸਓతʹɺ͜ͷลΓؚΊͯਖ਼͍͠ޠኮΛͬͨํ͕ଞਓͱͷίϛϡχέʔγϣ ϯ͕εϜʔζʹͳͬͯྑ͍ͷͰͳ͍ʁͱ͍͏ؾ࣋ͪ͋Δ
ϦϑΝΫλϦϯάͱΞδϟΠϧ(తͳͷ) ᴷ͠ɺʮϏδωεՁʯΛૣ͘ఏڙ͢Δͷ͕͍ͪΜେࣄͩ ͱࢥ͍ͬͯΔͷͳΒɺ͋ͳͨͷγεςϜʹɺมԽʹԠͯ͡ਐԽ ͍ͯ͘͜͠ͱ͕ͳ͓͞ΒॏཁʹͳΔͣͩɻϦϑΝΫλϦϯάͱ ɺࣗͷमਖ਼Ͱಈ͖͕औΕͳ͘ͳΔͷΛ͙ํ๏ͩɻ ΤΫετϦʔϜɾϓϩάϥϛϯάಋೖฤୈষ
ϦϑΝΫλϦϯάͱΞδϟΠϧ(తͳͷ) • ϦϑΝΫλϦϯά(ಛʹXPͰ)͞Ε͍ͯΔ׆ಈ • ʮࣄલʹઃܭΛ͢ΔʯͷΛʮ࣮ͨ͋͠ͱͰɺઃܭΛվળ ͢Δʯͱ͍͏ࢥߟͷసʹݟΔʮΤΫετϦʔϜʯ͞ • ඞཁʹͳͬͨ࣌ʹඞཁͳίʔυ(ػೳ)Λ࣮Ͱ͖ΔΑ͏ʹɺϦ ϑΝΫλϦϯάʹΑͬͯίʔυͷʮػහੑʯΛҡ͍࣋ͯ͘͠ •
։ൃΛਐΊΔ্ͰಘֶͨͼΛɺίʔυઈ͑ؒͳ͘өͤ͞ Δ
ϦϑΝΫλϦϯάͷਐΊํ • ʮ(طଘͷ)ৼΔ͍Λอͭʯ͜ͱ͕େલఏ • ͭ·Γʮ࡞ۀͷલޙͰػೳ͕ఀࢭ͠ͳ͍ʯ͜ͱ͕ඞਢ • ʮ։ൃࡁΈʯͷͷΛʮ։ൃ్தʯʹ͢Δࣄڐ͞Εͳ͍ • খ͞ͳεςοϓΛੵΈॏͶ͍ͯ͘ͷ͕·͍͠ •
ςετͷमਖ਼ΛߦΘͳ͍(SUTͷվमͷΈ)Λߦ͏ • ςετ͕มԽ͢Δ = ৼΔ͍͕มߋ͞Ε͍ͯΔ͜ͱΛ൱ఆͰ͖ͳ͍ • ͨͩ͠ɺʮςετ࿙ΕʯΛิॆ͢Δ߹ྫ֎
$2 σʔλϕʔεɾϦϑΝΫλϦϯάͬͯ ͲΜͳຊʁ
༗໊ͳຊ • ຊޠ൛෭ɿʮσʔλϕʔεͷମ࣭վળςΫχοΫʯ • σʔλϕʔε(RDB)ΛϦϑΝΫλϦϯά͍ͯ͘͠ʹʁ Λ·ͱΊͨຊ • ϦϑΝΫλϦϯάͷςΫχοΫɺྨܕ • σʔλϕʔεͷෆ٢ͳष͍
• ϦϑΝΫλΛਐΊ͍ͯͨ͘Ίͷํ๏
SQLΞϯνύλʔϯͬͯຊ͋ͬͨ͡ΌΖ • ʮΞϯνύλʔϯʯͱ͍͏ʮෆ٢ͳष͍ʯΛհͨ͠ຊ • ࣅ͍ͯΔͬͪΌࣅ͍ͯΔ • ʮඃΔʯͱ͍͏ΑΓɺগཱͪ͠Ґஔ͕ҧ͏ײ͡ • SQLΞϯνύλʔϯ: ʮʯͱʮղܾͨ࢟͠ʯͷհ
• DBϦϑΝΫλϦϯά: ʮʯͱʮղܾͷਐΊํʯͷ հ
ຊจͷߏͰΈΔ྆ऀͷҧ͍ ͲͪΒʮయܕతͳঢ়ʯΛऔΓ্͛ɺղઆ͍ͯ͘͠ελΠϧ(ύλʔϯຊ)ɻ ଟ༷ͳύλʔϯΛൺֱɾ݁߹Ͱ͖ΔΑ͏ʹɺղઆͷ༰ߏԽ(ϑΥʔϚοτԽ)͞Ε͍ͯΔ => ͦͷߏΛൺֱ͢Δ͜ͱͰɺ྆ऀͷΩϟϥΫλʔॏ͖Λ͓͍͍ͯΔՕॴͷҧ͍͕͔Δ 42-Ξϯνύλʔϯ త Ξϯνύλʔϯ
ݟ͚ͭํ ༻͍ͯྑ͍߹ ղܾࡦ σʔλϕʔεɾϦϑΝΫλϦϯά ಈػ త τϨʔυΦϑ εΩʔϚߋ৽खॱ σʔλҠߦखॱ ϓϩάϥϜߋ৽खॱ
ྫ͑ɺͱ͋ΔΞϯνύλʔϯ͕͋Γ SQLΞϯνύλʔϯ: ʮIDϦΫϫΠΞυ(ͱΓ͋͑ͣID)ʯ • ʮԿͰ͔ΜͰʮidʯͱ͍͏ओΩʔΛஔ͚ྑ͍༁͡Όͳ͍ͧʂʯ ͱ͍͏”ष͍” • ղܾࡦ • Θ͔Γ͍͢ྻ໊ʹ͠Α͏
• نʹറΒΕͳ͍ • ࣗવΩʔͱෳ߹Ωʔͷ׆༻ • ʮ(Why)ʯʹରͯ͠ɺʮ͜͏͍͏෩ʹ͠Α͏(What)ʯѻΘΕ͍ͯ Δ͕ʮͲ͏ͬͯ҆શʹมߋΛ࣮ࢪ͢Δʁ(How)ʯ·Ͱѻ͍ͬͯͳ͍
ྫ͑ɺͱ͋ΔΞϯνύλʔϯ͕͋Γ ϦϑΝΫλϦϯά: ʮࣗવΩʔʹΑΔཧΩʔͷஔ͖͑ʯ εΩʔϚߋ৽खॱ 1. ৽͍͠ओΩʔͱͳΔΧϥϜ Λಛఆ͢Δ 2. ৽͍͠ΠϯσοΫεΛ Ճ͢Δ
3. ݩͷΧϥϜΛഇࢭ༧ఆʹ͢ Δ 4. ؔ࿈͢ΔςʔϒϧΛߋ৽͢ Δ 5. ࢀর߹ੑτϦΨʔΛߋ ৽͘͠Ճ͢Δ ϓϩάϥϜߋ৽खॱ 1. ཧΩʔΛ͍ͬͯΔ ίʔυΛআ͢Δ 2. ৽͍͠ΩʔΛݩʹ݁߹ Λߦ͏ 3. ৽͍͠ΩʔΛݩʹσʔ λऔಘΛߦ͏
ԿΛࢦͨ͠ຊͳͷ͔ • ʮ(ΞϓϦͱಉ͡Α͏ʹ)σʔλϕʔεϦϑΝΫλϦϯάͯ͠ ͍͜͏ʯͱ͍͏ओு • ͔͠XPతͳχϡΞϯεͷʮϦϑΝΫλϦϯάʯͰ͋Γɺ • ʮΤΠϠʔͬʂʂυʔϯʂʯͱؾ߹ΛೖΕͯΔͷͰͳ͘ • ʮখ͞ͳมߋΛʯʮյͣ͞ʹʯʮԿʯΔͷ
Ώʔͯ(DBΞϓϦΑΓ)͍͠͡ΌΖʁ • ”σʔλϕʔεʹؔͯ݁͠߹͕ඇৗʹߴ͘ͳΓಘΔͨ ΊɺσʔλϕʔεϦϑΝΫλϦϯά͜ΜͳΜͩͱड़ɺͦ ͷຊ(:ϦϑΝΫλϦϯά)Ͱѻ͍ͬͯͳ͍(ংจ)” • ͨͩ͠ɺϑΝϥʔୈ2൛ͰʮσʔλϕʔεͷϦϑΝΫ λϦϯάͷଟ͍ʯʹʮͯ·Βͳ͍ʯͱ ड़͍ͯΔ •
πʔϧͷਐԽɺϓϥΫςΟεͷൃల
৽൛ɹϦϑΝΫλϦϯάɹطଘͷίʔυΛ҆શʹվળ͢Δ P63 ϦϑΝΫλϦϯά طଘͷίʔυΛ҆શʹվળ͢Δʢୈ2൛ʣ P62
ൃలܕσʔλϕʔε։ൃ • ʮࣄલʹઃܭΛΓ͖Ζ͏ͱࢥΘͳ͍ͰɺཁٻͷมԽʹԠͯ͡PJ ظؒதʹεΩʔϚΛ࡞Γ্͍͛ͯ͜͏Ͷʂʯͱ͍͏ίϯηϓτ • ͍ΘΏΔʮΞδϟΠϧ։ൃʯతͳײ͡ʹDBѻ͏ • ʮΉͩΛ࠷খʹ͢Δʯʮେ͖ͳखΓΛݮΒͤΔʯʮ։ൃऀͱ૬ ੑͷΑ͍ਐΊํ͕ग़དྷΔʯͳͲͷར͕͋ΔΑ =>
͜ΕΛΓ͖ΔͨΊͷத৺తͳϓϥΫςΟε͕ϦϑΝΫλʂ
ϦϑΝΫλΛDBʹ࣋ͪࠐΉʹʁ • جຊతʹΞϓϦͷϦϑΝΫλͱಉ ͡Α͏ʹʂ • ͷಛఆˠςετͷ֬ೝˠվमˠ ςετʂ • ʮతʯͱʮ҆શஔʯΛ༻ҙͯ͠ ͍͜͏ʙ
$3 ຊͷதΛνϥݟͯ͠ΈΔ
ࠓ͜Μͳॴʹ৮ΕͯΈΔΑ • σʔλϕʔεͷෆ٢ͳष͍ • σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • σʔλϕʔεͷϦϑΝΫλϦϯάͷྨ
σʔλϕʔεͷෆ٢ͳष͍ “σʔλϕʔεʹɺϦϑΝΫλϦϯάͷඞཁੑΛײͤ͡͞Δෆ٢ͳष͍͕͋Δ” 㱻 σʔλϕʔεʮ͍͍͢ʯʮಡΈ͍͢ʯඞཁ͕͋ΔΑʂ 1. ෳͷతʹΘΕΔΧϥϜ 2. ෳͷతʹΘΕΔςʔϒϧ 3. ͳσʔλ
4. ΧϥϜͷଟ͗͢Δςʔϒϧ 5. ߦͷଟ͗͢Δςʔϒϧ 6. ʮεϚʔτʯΧϥϜ 7. มߋͷڪා ڽूੑ Մಡੑ ύϑΥʔϚϯε Өڹൣғґଘ ࢀߟ: DataBase Refactoring(soudai sone) https://speakerdeck.com/soudai/database-refactoring?slide=19
σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • ʮ͋Δ͖࢟ʯͱʮ҆શʹʯҠߦ͍ͨ͠ɺͱ͍͏ͷΛ ͍͔ʹ࣮ͯ͠ݱ͢Δ͔ʁͱ͍͏ͷ͕ϦϑΝΫλϦϯάઓུ • ຊॻʹ͓͍ͯʮڭ܇ʯͱදݱ͞Ε͍ͯΔ
σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • খ͍͞มߋͷ΄͏͕ߦ͍͍͢ • ݸʑͷϦϑΝΫλϦϯάΛҰҙʹ ࣝผ͢Δ • େ͖ͳมߋΛଟ͘ͷখ͞ͳมߋʹ ͚࣮ͯࢪ͢Δ •
σʔλϕʔεߏςʔϒϧΛ࡞͢ Δ • ϏϡʔόονಉظΑΓτϦ ΨʔΛ͏ • ेͳҠߦظؒΛઃఆ͢Δ • σʔλϕʔεΞΫηεΛΧϓηϧԽ ͢Δ • SQLΛॏෳͤ͞ͳ͍ • (શ෦Ͱ13ݸͷڭ܇͕ࡌ͍ͬͯΔΑ)
খ͞ͳมߋ / มߋͷׂ • มߋΛখ͘͢͞Δ͜ͱͰࣦഊϦεΫΛݮͤ͞Δ • ʮςʔϒϧΛׂ͢Δʯͱ͍ͬͨେ͖ͳมߋɺʮ৽ͨͳ ςʔϒϧͷಋೖʯʮΧϥϜͷҠಈʯʮΠϯσοΫεͷಋೖʯ ͷΑ͏ʹࡉ͔͍खॱʹׂ͠ಘΔ
ϏϡʔόονಉظΑΓτϦΨʔΛ͏ • Ҡߦظؒʹɺ৽چͷσʔλมߋಉظΛ༻ҙ͢Δඞཁ͕͋ Δ • τϦΨʔʹΑΔಉظɺϏϡʔͷར༻ɺόονߋ৽ͱ͍͏ख๏ ͕ߟ͑ΒΕΔ • τϦΨʔͷϦΞϧλΠϜੑ͕ڧ͍ϝϦοτʹͳΔ ϏϡʔɺDBʹΑͬͯػೳ͕ࠩ͋ΔͷͰߟྀ͢Δඞཁ͕͋Δ
σʔλϕʔεΞΫηεΛΧϓηϧԽ͢Δ • ΞϓϦέʔγϣϯ͔ΒͷDBΞΫηεΛʮநԽʯ͢Δ • తʹݴ͏ͱʮSQLϕλॻ͖ΛΊΔ(ہॴԽ͢Δ)ʯ • ex: Repositoryύλʔϯͷద༻ͳͲɻ ʮSELECTจΛॻ͘ʯͷͰͳ͘ʮfindΠϯλʔϑΣΠεΛ༻ҙ͢ Δʯͱ͔ɺʮ࣮ςʔϒϧͱϞσϧΛ۠ผ͢Δʯͱ͔ɻ
• ͦΕʹΑͬͯɺʮDBͷมߋʯʹରͯ͠ʮΞϓϦέʔγϣϯͷม ߋʯͷӨڹΛ෧͡ࠐΊΔ
جຊతͳखॱ(Έ͍ͨͳͷ) • σʔλϕʔεʹґଘ͍ͯ͠ΔαʔϏε(≒ΞϓϦ)͕1ݸ͚ͩ ͔ʁෳ͔ʁʹΑͬͯқมΘΔ • ଟ͘ͷґଘऀ͕͍Δ߹ɺ͔ͬ͠ΓͱʮҠߦظؒʯΛઃ͚ Δ͜ͱ͕େࣄʂʂʂ
ϦϑΝΫλ࣌ͷҠߦରԠ • ॏཁͳͷʮޓੑͷҡ࣋ʯͱʮҠߦظؒͷӡ༻ʯ • ൚༻తͳޓੑҡ࣋ͷͨΊͷख๏ • ΧϥϜ໊ͷมߋܭࢉϑΟʔϧυͷՃʹରͯ͠τϦΨʔͷ࡞ • ςʔϒϧͷมߋʹରͯ͠Ϗϡʔͷ࡞ •
੍ɾσϑΥͷஈ֊తಋೖ • Ҡߦظؒͷӡ༻ • ຊॻͰʮdeprecatedΛΧϥϜͷίϝϯτʹ͢ʯʮτϦΨʔΛ༻͍ͨޓ ੑͷҡ࣋ʯͳͲͷख๏Λపఈతʹར༻͍ͯ͠Δ
σʔλϕʔεͷϦϑΝΫλϦϯάͷྨ ʮతɾख๏ʹ͍ͭͯɺDBͷϦϑΝΫλͲ͏͍͏ͷ͕͋Δ(͋Γ ಘΔ)ͷ͔ʁʯͱ͍͏ΨΠυ ߏ ςʔϒϧϏϡʔͷఆٛͷมߋ σʔλ࣭ ใͷ࣭ΛߴΊΔͨΊͷมߋ ࢀর߹ੑ ෳςʔϒϧؒͷ߹ੑΛอূ͢ΔͨΊͷมߋ ΞʔΩςΫνϟ
ΫϥΠΞϯτ͕%#ͱΓऔΓ͢Δํ๏Λվળ͢ΔͨΊͷมߋ ϝιου τϦΨʔɺετΞυɾϓϩγʔδϟͳͲͷมߋ ม ηϚϯςΟΫεͷมߋ
ߏϦϑΝΫλϦϯά(ୈ6ষ) • ΧϥϜͷআ • ςʔϒϧͷআ • ΧϥϜͷ౷߹ • ςʔϒϧͷ౷߹ •
ΧϥϜ໊ͷมߋ • ςʔϒϧ໊ͷมߋ • ςʔϒϧͷׂ • ΧϥϜͷׂ • ࣗવΩʔ / ཧΩʔͷಋೖ • ؔ࿈ςʔϒϧʹΑΔ1ରଟ ؔͷஔ͖͑ • શ෦Ͱ17ݸ
σʔλ࣭ϦϑΝΫλϦϯά(ୈ7ষ) • ࢀর༻ςʔϒϧͷՃ • ඪ४తͳίʔυͷద༻ • ඪ४తͳܕͷద༻ • Ωʔઓུͷཧ •
ΧϥϜ੍ͷআ • σϑΥϧτͷআ • ψϧෆՄ੍ͷআ • σʔλͷҠಈ • શ෦Ͱ13ݸ
ࢀর߹ੑϦϑΝΫλϦϯά • ֎෦Ωʔ੍ͷՃ • ܭࢉΧϥϜͷτϦΨʔͷ Ճ • ֎෦Ωʔ੍ͷআ • Χεέʔυআͷಋೖ
• ϋʔυσϦʔτಋೖ • ιϑτσϦʔτͷಋೖ • ཤྺͷͨΊͷτϦΨʔͷಋ ೖ
ΞʔΩςΫνϟɾϦϑΝΫλϦϯά(ୈ9ষ) • CRUDϝιουͷՃ • ϛϥʔϦϯάςʔϒϧͷ Ճ • ϦʔυϝιουͷՃ • ϏϡʔʹΑΔςʔϒϧͷΧ
ϓηϧԽ • ܭࢉϝιουͷಋೖ • ΠϯσοΫεͷಋೖ • ಡΈࠐΈઐ༻ςʔϒϧͷಋ ೖ • ਖ਼ࣜͳσʔλιʔεͷ༻ • શ෦Ͱ12ݸ
ϝιουɾϦϑΝΫλϦϯά(ୈ10ষ) • ※ࠓճׂѪ
ม(ୈ11ষ) • σʔλͷૠೖ • ৽ͨͳΧϥϜͷಋೖ • ৽ͨͳςʔϒϧͷಋೖ • Ϗϡʔͷಋೖ •
σʔλͷߋ৽
$X ·ͱΊͱΦϚέ
·ͱΊ • ʮΞϓϦέʔγϣϯίʔυΛॻ͖͑ΔΑ͏ͳײ֮ͰɺDB࿔Ε Δʯͱͨ͠ΒɾɾɾҰମͲΜͳੈքͳΜͩʂʁ • ͨͩɺʮ·ͳ͚ΕಘΒΕͳ͍ʯͱ͍͏ݴ༿͕͋Γ·͢Ͷʂ • ʮςετʹΑΔอূʯʮࣄނʹඋ͑Δʯʮܧଓతʹ౷߹ɾվળͯ͠ ͍͘ʯͱ͍͏جຊͲ͜Ͱಉ͡ʙ •
·ͣɺSQLΞϯνύλʔϯσʔλϕʔεɾϦϑΝΫλϦϯάΛಡ Ήʮෆ٢ͳष͍ʯΛײ͡औΓ͘͢ͳΔͱ͜Ζ͔Β࢝Ίͯɺະདྷʹ ͍ۙͮͯ͜ʂ
͋ΘͤͯಡΉͱ໘നͦ͏ͳຊ ࠓճͷຊʂ ΑΓʮཧʯํ໘ͷ SQL(RDB)ͳຊ ʮϦϑΝΫλͱԿ͔ʯͷຊ ʮϦϑΝΫλͷେࣄ͞ʯ Έ͍ͨͳͷίϨ
ͬͱࢹΛ͛Δɾ౿ΈࠐΉ ୯ମςετ͕͔ͬͨ͠Β ʮେ͖ͳϧʔϓʯͷςετͪ͠Ό͏ͱ͔ Ͳ͏ͬͯ ʮม͍͑ͯ͘ʯͱ͔ ʮյΕʹ͘͘࡞Δʯ͔ʁͱ͍ͬͨ σʔλϕʔεΛ ʮ҆શʯʹ͍ͬͯ͘ʂ