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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
hideki kinjyo
PRO
September 27, 2021
Programming
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データベース・リファクタリングを読む / hello-database-refactoring
社内勉強会での発表ネタです
hideki kinjyo
PRO
September 27, 2021
More Decks by hideki kinjyo
See All by hideki kinjyo
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
190
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
230
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
170
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
370
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
240
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
490
PHPer Book Revue 「雑に作る」 #phperkaigi
o0h
PRO
0
370
俺にも私がAIと作った オススメの個人ツールを語らせてくれ
o0h
PRO
0
73
#phperbiglt のLT
o0h
PRO
0
110
Other Decks in Programming
See All in Programming
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
300
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
170
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.2k
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
220
dRuby over BLE
makicamel
2
320
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
140
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
470
AIで効率化できた業務・日常
ochtum
0
110
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.2k
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
200
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
840
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
240
Typedesign – Prime Four
hannesfritz
42
3.1k
The Language of Interfaces
destraynor
162
27k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
Designing Powerful Visuals for Engaging Learning
tmiket
1
400
Information Architects: The Missing Link in Design Systems
soysaucechin
0
960
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
720
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
150
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)ͳຊ ʮϦϑΝΫλͱԿ͔ʯͷຊ ʮϦϑΝΫλͷେࣄ͞ʯ Έ͍ͨͳͷίϨ
ͬͱࢹΛ͛Δɾ౿ΈࠐΉ ୯ମςετ͕͔ͬͨ͠Β ʮେ͖ͳϧʔϓʯͷςετͪ͠Ό͏ͱ͔ Ͳ͏ͬͯ ʮม͍͑ͯ͘ʯͱ͔ ʮյΕʹ͘͘࡞Δʯ͔ʁͱ͍ͬͨ σʔλϕʔεΛ ʮ҆શʯʹ͍ͬͯ͘ʂ