Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データベース・リファクタリングを読む / hello-database-refactoring
Search
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
phperだってパンチカードでコーディングしたい
o0h
PRO
0
370
Symfonyが 簡単にAI agentになる
o0h
PRO
1
150
yield再入門 #phpcon
o0h
PRO
0
1.8k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
460
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
3
410
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
390
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
660
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
300
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
1.1k
Other Decks in Programming
See All in Programming
Workers Cache を知る
syumai
0
370
パスワード再設定メールのURLについて知っておこう
uyuki234
0
170
Event is what happens
moro
2
1.1k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
450
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
120
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
120
GraphQL の onError と Nullability のこれから
quramy
0
130
ActionController meets Protocol Buffers
sorah
0
650
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
360
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Facilitating Awesome Meetings
lara
57
7.2k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Writing Fast Ruby
sferik
630
63k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How STYLIGHT went responsive
nonsquared
100
6.3k
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Odyssey Design
rkendrick25
PRO
2
880
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
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)ͳຊ ʮϦϑΝΫλͱԿ͔ʯͷຊ ʮϦϑΝΫλͷେࣄ͞ʯ Έ͍ͨͳͷίϨ
ͬͱࢹΛ͛Δɾ౿ΈࠐΉ ୯ମςετ͕͔ͬͨ͠Β ʮେ͖ͳϧʔϓʯͷςετͪ͠Ό͏ͱ͔ Ͳ͏ͬͯ ʮม͍͑ͯ͘ʯͱ͔ ʮյΕʹ͘͘࡞Δʯ͔ʁͱ͍ͬͨ σʔλϕʔεΛ ʮ҆શʯʹ͍ͬͯ͘ʂ