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
830
データベース・リファクタリングを読む / 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
460
ヒューマンエラーの本を読んだ ~報告会~
o0h
PRO
3
240
みんなでワイワイ「テスト駆動開発」の話をやる会 #techramen24conf
o0h
PRO
3
460
SPLから始める「データ構造」入門
o0h
PRO
7
1.7k
PHPUnit11の新しい仲間たち
o0h
PRO
3
330
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
60
20k
パンフ記事 「初めてのリファクタリング!」 の裏側 #phperkaigi
o0h
PRO
2
140
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
3
1.2k
Composerを便利に使うために私がやっていること #phperkaigi
o0h
PRO
1
2.4k
Other Decks in Programming
See All in Programming
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
330
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
as(型アサーション)を書く前にできること
marokanatani
10
2.6k
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
Jakarta EE meets AI
ivargrimstad
0
540
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
subpath importsで始めるモック生活
10tera
0
300
Jakarta EE meets AI
ivargrimstad
0
160
CSC509 Lecture 11
javiergs
PRO
0
180
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
330
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
Featured
See All Featured
A Tale of Four Properties
chriscoyier
156
23k
How to Ace a Technical Interview
jacobian
276
23k
The Invisible Side of Design
smashingmag
298
50k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Why Our Code Smells
bkeepers
PRO
334
57k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
109
49k
Faster Mobile Websites
deanohume
305
30k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
A designer walks into a library…
pauljervisheath
204
24k
Navigating Team Friction
lara
183
14k
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)ͳຊ ʮϦϑΝΫλͱԿ͔ʯͷຊ ʮϦϑΝΫλͷେࣄ͞ʯ Έ͍ͨͳͷίϨ
ͬͱࢹΛ͛Δɾ౿ΈࠐΉ ୯ମςετ͕͔ͬͨ͠Β ʮେ͖ͳϧʔϓʯͷςετͪ͠Ό͏ͱ͔ Ͳ͏ͬͯ ʮม͍͑ͯ͘ʯͱ͔ ʮյΕʹ͘͘࡞Δʯ͔ʁͱ͍ͬͨ σʔλϕʔεΛ ʮ҆શʯʹ͍ͬͯ͘ʂ