Save 37% off PRO during our Black Friday Sale! »

データベース・リファクタリングを読む / hello-database-refactoring

データベース・リファクタリングを読む / hello-database-refactoring

社内勉強会での発表ネタです

C90bac78c0fb61105cfd8239767f903d?s=128

hideki kinjyo
PRO

September 27, 2021
Tweet

Transcript

  1. ໊ஶɿ
 ʮσʔλϕʔεɾϦϑΝΫλϦϯάʯ
 ΛಡΉ σϒϥΠϒʂ`21 / 2021.09.27 BY Hideki Kinjyo

  2. ͳΜͰ΋ϦϑΝΫλϦϯά͠Α͏ʂ • ΞϓϦέʔγϣϯ΋ʂ • ςετ΋ʂ • σʔλϕʔε΋ʂ • ૊৫΋ʂ •

    αʔόʔ΋ʂ
  3. ͳΜͰ΋ϦϑΝΫλϦϯά͠Α͏ʂ • ΞϓϦέʔγϣϯ΋ʂ • ςετ΋ʂ • σʔλϕʔε΋ʂ • ૊৫΋ʂ •

    αʔόʔ΋ʂ ←ࠓ೔͸ίί
  4. ͍ͭ΋ͷ • ۚ৓लथ / ͖Μ͡ΐ͏ͻͰ͖ • GitHub: @o0h / Twitter:

    @o0h_ • ޷͖ͳFW͸CakePHP • ΞΠίϯ͸
 ඒຯ͍͠ࡪ਌ࢠကͷࣸਅͰ͢
  5. ࠓ೔ͷ࿩ • ʮϦϑΝΫλϦϯάʯ͕ςʔϚͩΑʙͱ͍ ͏͜ͱͰ • ຊͷ঺հͰ͢

  6. (ޙ͔Β)ؾ͍ͮͨ͜ͱ • طʹઌਓ͕΍ͬͯΜͳ͊ʙʂ • ࢿྉ࡞Γ࢝Ί͔ͯΒࢥ͍ग़ͨ͠ • Ͱ΋ؾʹ͠ͳ͍Ͱߦ͖·͢ • ྑ͍࿩͔ͩΒݟͯ
 https://speakerdeck.com/soudai/database-refactoring

  7. ͓͠ͳ͕͖ 1. ͸͡ΊʹɿʮϦϑΝΫλϦϯάʯͬͯԿ͚ͩͬ(͓͞Β͍) 2. ʮσʔλϕʔεɾϦϑΝΫλϦϯάʯͬͯͲΜͳຊʁ 3. औΓ্͛ΒΕ͍ͯΔύλʔϯΛ͍͔ͭ͘঺հ͢ΔΑʂ

  8. $1
 ʮϦϑΝΫλϦϯάʯͬͯԿ͚ͩͬ
 (͓͞Β͍)

  9. ༗໊ͳຊ • (ୈ1൛ͷ)೔ຊޠ൛෭୊ɿʮϓϩάϥϜͷମ࣭վળςΫχοΫʯ • ϦϑΝΫλʹ͍ͭͯͷʮݪଇʯʮख๏ʯ΍ɺʮෆ٢ͳष͍ʯʹ͍ͭͯ ·ͱΊͨຊ • ݸਓతʹ͸ʮϓϩάϥϚͷΩϟϦΞͷૣ͍ஈ֊Ͱग़ձ͓ͬͯ͘΂͖ ຊʯͷ1ͭͩͱࢥ͏ •

    “GoFͷσβΠϯύλʔϯ͸෼ੳ͔ΒઃܭʹҠΔࡍͷ೰Έʹ͍ͭͯɺ໰ ୊ʹର͢Δղܾࡦͱͯ͠ಓےΛࣔ͠·͢ɻҰํϦϑΝΫλϦϯά͸ɺ ࣮૷ʹஔ͍ͯઃܭΛ;Γ͔͑ΓɺطଘͷػೳΛอͪͭͭίʔυΛΑΓ Α͍ઃܭ΁ͱਐԽ͍ͤͯ͘͞खॱΛड़΂ͨ΋ͷͰ͢”(ϦϑΝΫλϦϯ ά ୈ2൛ ༁ऀ͋ͱ͕͖)
  10. ϦϑΝΫλϦϯά Կ ᴷ֎෦͔Βݟͨͱ͖ͷৼΔ෣͍Λอͪͭͭɺཧղ΍मਖ਼͕؆୯ ʹͳΔΑ͏ʹɺιϑτ΢ΣΞͷ಺෦ߏ଄ΛมԽͤ͞Δ͜ͱ  ϦϑΝΫλϦϯάୈ൛ୈষ

  11. ϦϑΝΫλϦϯά Կ ϦϑΝΫλϦϯάΛߦ͏ཧ༝(ಉ ୈ2ষΑΓ) • ϦϑΝΫλϦϯά͸ιϑτ΢ΣΞઃܭΛվળ͢Δ • ϦϑΝΫλϦϯά͸ιϑτ΢ΣΞΛཧղ͠΍͘͢͢Δ • ϦϑΝΫλϦϯά͸όάͷൃݟΛॿ͚Δ

    • ϦϑΝΫλϦϯά͸ϓϩάϥϛϯάΛ଎ΊΔ
  12. ෆ٢ͳष͍ Կ ᴷࢲͨͪ͸ࠓ·Ͱඇৗʹଟ͘ͷίʔυΛݟ͖ͯ·ͨ͠ɻ͏·͘ ͍ͬͨϓϩδΣΫτͷίʔυ΋͋Ε͹ɺେࣦഊΛট͍ͨ΋ͷ΋͋ Γ·͢ɻͦ͜ʹ͸ϦϑΝΫλϦϯάΛ༠͏ ͱ͖ʹ͸ʮඞཁͩʯͱ ڣͿ ͋Δछͷงғؾ͕͋ΓɺͦΕΛᄿ͗෼͚ΔೳྗΛࢲͨͪ͸ ཆ͖ͬͯͨͷͰ͢ 

    ϦϑΝΫλϦϯάୈ൛ୈষ
  13. ෆ٢ͳष͍ Կ • “ϦϑΝΫλϦϯάͷඞཁੑΛࣔ͢ෆ٢ͳஹީ” • ཁ͢ΔʹʮͳΜ͔Ϛζ͍ίʔυʯ • ͜Ε͸ϓϩάϥϚ͕(ܦݧ͔Β͘Δ)ඒҙࣝʹΑͬͯײ஌Ͱ͖Δ΋ͷ͕ͩɺΑΓ ʮ۩ମతʹૌ͑ͯ͘Δ΋ͷͰ͸ͳ͍͔ʯͱͯ͠ʮ਎ମײ֮ʯͷൺᄻ(=ष͍)͕ར ༻͞Ε͍ͯΔ

    • ॻ੶ʮϦϑΝΫλϦϯάʯͰ͸ɺ৭ʑͳʮष͍ʯʹ͍ͭͯྨܕԽͱ໊෇͚Λߦͬ ͍ͯΔ • ৄ͘͠͸ʮϦϑΝΫλϦϯά ୈ3ষ ίʔυͷෆ٢ͳष͍ʯʹ
  14. ϦϑΝΫλϦϯάͱύϑΥʔϚϯενϡʔχϯά • ϦϑΝΫλϦϯά͸ʮઃܭΛ੔͑ΔʯʮՄಡੑΛ޲্ͤ͞ΔʯͨΊͷΞΫςΟϏςΟ • ಉ༷ʹʮϓϩάϥϜͷશମతͳػೳΛมߋ͠ͳ͍मਖ਼ʯͱͯ͠ɺύϑΥʔϚϯεɾνϡʔ χϯά͕ڍ͛ΒΕΔ • ྆ऀͷҧ͍͸ɺͦͷ໨తʹ͋Δ • ՄಡੑͱύϑΥʔϚϯε͸ɺ࣌ʹτϨʔυΦϑʹͳΔՄೳੑ΋͋Δ

    • ଎౓޲্ʹॏ͖Λ͓͍͍ͯΔͳΒɺͦΕ͸(ϦϑΝΫλͱ͍͏ΑΓ)ύϑΥʔϚϯεɾ νϡʔχϯάͱݺ͹ΕΔ • (ݸਓతʹ͸ɺ͜ͷลΓ΋ؚΊͯਖ਼͍͠ޠኮΛ࢖ͬͨํ͕ଞਓͱͷίϛϡχέʔγϣ ϯ͕εϜʔζʹͳͬͯྑ͍ͷͰͳ͍ʁͱ͍͏ؾ࣋ͪ͸͋Δ
  15. ϦϑΝΫλϦϯάͱΞδϟΠϧ(తͳ΋ͷ) ᴷ΋͠ɺʮϏδωεՁ஋ʯΛૣ͘ఏڙ͢Δͷ͕͍ͪ͹Μେࣄͩ ͱࢥ͍ͬͯΔͷͳΒɺ͋ͳͨͷγεςϜʹ͸ɺมԽʹԠͯ͡ਐԽ ͍ͯ͘͜͠ͱ͕ͳ͓͞ΒॏཁʹͳΔ͸ͣͩɻϦϑΝΫλϦϯάͱ ͸ɺࣗ෼ͷमਖ਼Ͱ਎ಈ͖͕औΕͳ͘ͳΔͷΛ๷͙ํ๏ͩɻ ΤΫετϦʔϜɾϓϩάϥϛϯάಋೖฤୈষ

  16. ϦϑΝΫλϦϯάͱΞδϟΠϧ(తͳ΋ͷ) • ϦϑΝΫλϦϯά͸(ಛʹXPͰ)஫໨͞Ε͍ͯΔ׆ಈ • ʮࣄલʹઃܭΛ͢Δʯ΋ͷΛʮ࣮૷ͨ͋͠ͱͰɺઃܭΛվળ ͢Δʯͱ͍͏ࢥߟͷస׵ʹݟΔʮΤΫετϦʔϜʯ͞ • ඞཁʹͳͬͨ࣌ʹඞཁͳίʔυ(ػೳ)Λ࣮૷Ͱ͖ΔΑ͏ʹɺϦ ϑΝΫλϦϯάʹΑͬͯίʔυͷʮػහੑʯΛҡ͍࣋ͯ͘͠ •

    ։ൃΛਐΊΔ্ͰಘֶͨͼΛɺίʔυ΁ઈ͑ؒͳ͘൓өͤ͞ Δ
  17. ϦϑΝΫλϦϯάͷਐΊํ • ʮ(طଘͷ)ৼΔ෣͍Λอͭʯ͜ͱ͕େલఏ • ͭ·Γʮ࡞ۀͷલޙͰػೳ͕ఀࢭ͠ͳ͍ʯ͜ͱ͕ඞਢ • ʮ։ൃࡁΈʯͷ΋ͷΛʮ։ൃ్தʯʹ͢Δࣄ͸ڐ͞Εͳ͍ • খ͞ͳεςοϓΛੵΈॏͶ͍ͯ͘ͷ͕๬·͍͠ •

    ςετͷमਖ਼ΛߦΘͳ͍(SUTͷվमͷΈ)Λߦ͏ • ςετ͕มԽ͢Δ = ৼΔ෣͍͕มߋ͞Ε͍ͯΔ͜ͱΛ൱ఆͰ͖ͳ͍ • ͨͩ͠ɺʮςετ࿙ΕʯΛิॆ͢Δ৔߹͸ྫ֎
  18. $2
 σʔλϕʔεɾϦϑΝΫλϦϯάͬͯ ͲΜͳຊʁ

  19. ༗໊ͳຊ • ೔ຊޠ൛෭୊ɿʮσʔλϕʔεͷମ࣭վળςΫχοΫʯ • σʔλϕʔε(RDB)ΛϦϑΝΫλϦϯά͍ͯ͘͠ʹ͸ʁ Λ·ͱΊͨຊ • ϦϑΝΫλϦϯάͷςΫχοΫɺྨܕ • σʔλϕʔεͷෆ٢ͳष͍

    • ϦϑΝΫλΛਐΊ͍ͯͨ͘Ίͷํ๏
  20. SQLΞϯνύλʔϯͬͯຊ΋͋ͬͨ͡ΌΖ • ʮΞϯνύλʔϯʯͱ͍͏ʮෆ٢ͳष͍ʯΛ঺հͨ͠ຊ • ࣅ͍ͯΔͬͪΌࣅ͍ͯΔ • ʮඃΔʯͱ͍͏ΑΓɺগཱͪ͠Ґஔ͕ҧ͏ײ͡ • SQLΞϯνύλʔϯ: ʮ໰୊ʯͱʮղܾͨ࢟͠ʯͷ঺հ

    • DBϦϑΝΫλϦϯά: ʮ໰୊ʯͱʮղܾͷਐΊํʯͷ঺ հ
  21. ຊจͷߏ଄ͰΈΔ྆ऀͷҧ͍ ͲͪΒ΋ʮయܕతͳ঱ঢ়ʯΛऔΓ্͛ɺղઆ͍ͯ͘͠ελΠϧ(ύλʔϯຊ)ɻ ଟ༷ͳύλʔϯΛൺֱɾ݁߹Ͱ͖ΔΑ͏ʹɺղઆͷ಺༰͸ߏ଄Խ(ϑΥʔϚοτԽ)͞Ε͍ͯΔ => ͦͷߏ଄Λൺֱ͢Δ͜ͱͰɺ྆ऀͷΩϟϥΫλʔ΍ॏ͖Λ͓͍͍ͯΔՕॴͷҧ͍͕෼͔Δ 42-Ξϯνύλʔϯ  ໨త  Ξϯνύλʔϯ

     ݟ͚ͭํ  ༻͍ͯ΋ྑ͍৔߹  ղܾࡦ σʔλϕʔεɾϦϑΝΫλϦϯά  ಈػ ໨త   τϨʔυΦϑ  εΩʔϚߋ৽खॱ  σʔλҠߦखॱ  ϓϩάϥϜߋ৽खॱ
  22. ྫ͑͹ɺͱ͋ΔΞϯνύλʔϯ͕͋Γ SQLΞϯνύλʔϯ: ʮIDϦΫϫΠΞυ(ͱΓ͋͑ͣID)ʯ • ʮԿͰ΋͔ΜͰ΋ʮidʯͱ͍͏ओΩʔΛஔ͚͹ྑ͍༁͡Όͳ͍ͧʂʯ ͱ͍͏”ष͍” • ղܾࡦ • Θ͔Γ΍͍͢ྻ໊ʹ͠Α͏

    • ن໿ʹറΒΕͳ͍ • ࣗવΩʔͱෳ߹Ωʔͷ׆༻ • ʮ໰୊(Why)ʯʹରͯ͠ɺʮ͜͏͍͏෩ʹ͠Α͏(What)ʯ͸ѻΘΕ͍ͯ Δ͕ʮͲ͏΍ͬͯ҆શʹมߋΛ࣮ࢪ͢Δʁ(How)ʯ·Ͱ͸ѻ͍ͬͯͳ͍
  23. ྫ͑͹ɺͱ͋ΔΞϯνύλʔϯ͕͋Γ ϦϑΝΫλϦϯά: ʮࣗવΩʔʹΑΔ୅ཧΩʔͷஔ͖׵͑ʯ εΩʔϚߋ৽खॱ 1. ৽͍͠ओΩʔͱͳΔΧϥϜ Λಛఆ͢Δ 2. ৽͍͠ΠϯσοΫεΛ௥ Ճ͢Δ

    3. ݩͷΧϥϜΛഇࢭ༧ఆʹ͢ Δ 4. ؔ࿈͢ΔςʔϒϧΛߋ৽͢ Δ 5. ࢀর੔߹ੑτϦΨʔΛߋ ৽΋͘͠͸௥Ճ͢Δ ϓϩάϥϜߋ৽खॱ 1. ୅ཧΩʔΛ࢖͍ͬͯΔ ίʔυΛ࡟আ͢Δ 2. ৽͍͠ΩʔΛݩʹ݁߹ Λߦ͏ 3. ৽͍͠ΩʔΛݩʹσʔ λऔಘΛߦ͏
  24. ԿΛ໨ࢦͨ͠ຊͳͷ͔ • ʮ(ΞϓϦͱಉ͡Α͏ʹ)σʔλϕʔε΋ϦϑΝΫλϦϯάͯ͠ ͍͜͏ʯͱ͍͏ओு • ͔͠΋XPతͳχϡΞϯεͷʮϦϑΝΫλϦϯάʯͰ͋Γɺ • ʮΤΠϠʔͬʂʂυʔϯʂʯͱؾ߹ΛೖΕͯ΍ΔͷͰ͸ͳ͘ • ʮখ͞ͳมߋΛʯʮյͣ͞ʹʯʮԿ౓΋ʯ΍Δ΋ͷ

  25. Ώʔͯ(DB͸ΞϓϦΑΓ)೉͍͠͡ΌΖʁ • ”σʔλϕʔεʹؔͯ͠͸݁߹౓͕ඇৗʹߴ͘ͳΓಘΔͨ ΊɺσʔλϕʔεϦϑΝΫλϦϯά͸͜ΜͳΜͩͱड़΂ɺͦ ͷຊ(஫:ϦϑΝΫλϦϯά)Ͱ͸ѻ͍ͬͯͳ͍(ংจ)” • ͨͩ͠ɺϑΝ΢ϥʔ΋ୈ2൛Ͱ͸ʮσʔλϕʔεͷϦϑΝΫ λϦϯά͸໰୊ͷଟ͍෼໺ʯʹʮ΋͸΍౰ͯ͸·Βͳ͍ʯͱ ड़΂͍ͯΔ •

    πʔϧͷਐԽɺϓϥΫςΟεͷൃల
  26. ৽૷൛ɹϦϑΝΫλϦϯάɹطଘͷίʔυΛ҆શʹվળ͢Δ P63 ϦϑΝΫλϦϯά طଘͷίʔυΛ҆શʹվળ͢Δʢୈ2൛ʣ P62

  27. ൃలܕσʔλϕʔε։ൃ • ʮࣄલʹઃܭΛ΍Γ͖Ζ͏ͱࢥΘͳ͍ͰɺཁٻͷมԽʹԠͯ͡PJ ظؒதʹεΩʔϚΛ࡞Γ্͍͛ͯ͜͏Ͷʂʯͱ͍͏ίϯηϓτ • ͍ΘΏΔʮΞδϟΠϧ։ൃʯతͳײ͡ʹDB΋ѻ͏ • ʮΉͩΛ࠷খʹ͢Δʯʮେ͖ͳख໭ΓΛݮΒͤΔʯʮ։ൃऀͱ૬ ੑͷΑ͍ਐΊํ͕ग़དྷΔʯͳͲͷར఺͕͋ΔΑ =>

    ͜ΕΛ΍Γ͖ΔͨΊͷத৺తͳϓϥΫςΟε͕ϦϑΝΫλʂ
  28. ϦϑΝΫλΛDBʹ΋࣋ͪࠐΉʹ͸ʁ • جຊతʹ͸ΞϓϦͷϦϑΝΫλͱಉ ͡Α͏ʹʂ • ໰୊ͷಛఆˠςετͷ֬ೝˠվमˠ ςετʂ • ʮ໨తʯͱʮ҆શ૷ஔʯΛ༻ҙͯ͠ ͍͜͏ʙ

  29. $3
 ຊͷத਎Λνϥݟͯ͠ΈΔ

  30. ࠓ೔͸͜Μͳॴʹ৮ΕͯΈΔΑ • σʔλϕʔεͷෆ٢ͳष͍ • σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • σʔλϕʔεͷϦϑΝΫλϦϯάͷ෼ྨ

  31. σʔλϕʔεͷෆ٢ͳष͍ “σʔλϕʔεʹ΋ɺϦϑΝΫλϦϯάͷඞཁੑΛײͤ͡͞Δෆ٢ͳष͍͕͋Δ” 㱻 σʔλϕʔε΋ʮ࢖͍΍͍͢ʯʮಡΈ΍͍͢ʯඞཁ͕͋ΔΑʂ 1. ෳ਺ͷ໨తʹ࢖ΘΕΔΧϥϜ 2. ෳ਺ͷ໨తʹ࢖ΘΕΔςʔϒϧ 3. ৑௕ͳσʔλ

    4. ΧϥϜͷଟ͗͢Δςʔϒϧ 5. ߦͷଟ͗͢Δςʔϒϧ 6. ʮεϚʔτʯΧϥϜ 7. มߋͷڪා ڽूੑ੹຿ Մಡੑ ύϑΥʔϚϯε Өڹൣғґଘ ࢀߟ: DataBase Refactoring(soudai sone)
 https://speakerdeck.com/soudai/database-refactoring?slide=19
  32. σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • ʮ͋Δ΂͖࢟΁ʯͱʮ҆શʹʯҠߦ͍ͨ͠ɺͱ͍͏ͷΛ ͍͔ʹ࣮ͯ͠ݱ͢Δ͔ʁͱ͍͏ͷ͕ϦϑΝΫλϦϯάઓུ • ຊॻʹ͓͍ͯ͸ʮڭ܇ʯͱදݱ͞Ε͍ͯΔ

  33. σʔλϕʔεɾϦϑΝΫλϦϯάઓུ • খ͍͞มߋͷ΄͏͕ߦ͍΍͍͢ • ݸʑͷϦϑΝΫλϦϯάΛҰҙʹ ࣝผ͢Δ • େ͖ͳมߋΛଟ͘ͷখ͞ͳมߋʹ ෼͚࣮ͯࢪ͢Δ •

    σʔλϕʔεߏ੒ςʔϒϧΛ࡞੒͢ Δ • Ϗϡʔ΍όονಉظΑΓ΋τϦ ΨʔΛ࢖͏ • े෼ͳҠߦظؒΛઃఆ͢Δ • σʔλϕʔεΞΫηεΛΧϓηϧԽ ͢Δ • SQLΛॏෳͤ͞ͳ͍ • (શ෦Ͱ13ݸͷڭ܇͕ࡌ͍ͬͯΔΑ)
  34. খ͞ͳมߋ / มߋͷ෼ׂ • มߋΛখ͘͢͞Δ͜ͱͰࣦഊϦεΫΛ௿ݮͤ͞Δ • ʮςʔϒϧΛ෼ׂ͢Δʯͱ͍ͬͨେ͖ͳมߋ͸ɺʮ৽ͨͳ ςʔϒϧͷಋೖʯʮΧϥϜͷҠಈʯʮΠϯσοΫεͷಋೖʯ ͷΑ͏ʹࡉ͔͍खॱʹ෼ׂ͠ಘΔ

  35. Ϗϡʔ΍όονಉظΑΓ΋τϦΨʔΛ࢖͏ • Ҡߦظؒʹ͸ɺ৽چͷσʔλมߋ΍ಉظΛ༻ҙ͢Δඞཁ͕͋ Δ • τϦΨʔʹΑΔಉظɺϏϡʔͷར༻ɺόονߋ৽ͱ͍͏ख๏ ͕ߟ͑ΒΕΔ • τϦΨʔͷϦΞϧλΠϜੑ͕ڧ͍ϝϦοτʹͳΔ Ϗϡʔ͸ɺDBʹΑͬͯػೳ͕ࠩ͋ΔͷͰߟྀ͢Δඞཁ͕͋Δ

  36. σʔλϕʔεΞΫηεΛΧϓηϧԽ͢Δ • ΞϓϦέʔγϣϯ͔ΒͷDBΞΫηεΛʮந৅Խʯ͢Δ • ୺తʹݴ͏ͱʮSQLϕλॻ͖Λ΍ΊΔ(ہॴԽ͢Δ)ʯ • ex: Repositoryύλʔϯͷద༻ͳͲɻ ʮSELECTจΛॻ͘ʯͷͰ͸ͳ͘ʮfindΠϯλʔϑΣΠεΛ༻ҙ͢ Δʯͱ͔ɺʮ࣮ςʔϒϧͱϞσϧΛ۠ผ͢Δʯͱ͔ɻ

    • ͦΕʹΑͬͯɺʮDBͷมߋʯʹରͯ͠ʮΞϓϦέʔγϣϯͷม ߋʯ΁ͷӨڹΛ෧͡ࠐΊΔ
  37. جຊతͳखॱ(Έ͍ͨͳ΋ͷ) • σʔλϕʔεʹґଘ͍ͯ͠ΔαʔϏε(≒ΞϓϦ)͕1ݸ͚ͩ ͔ʁෳ਺͔ʁʹΑͬͯ೉қ౓͸มΘΔ • ଟ͘ͷґଘऀ͕͍Δ৔߹ɺ͔ͬ͠ΓͱʮҠߦظؒʯΛઃ͚ Δ͜ͱ͕େࣄʂʂʂ

  38. ϦϑΝΫλ࣌ͷҠߦରԠ • ॏཁͳͷ͸ʮޓ׵ੑͷҡ࣋ʯͱʮҠߦظؒͷӡ༻ʯ • ൚༻తͳޓ׵ੑҡ࣋ͷͨΊͷख๏ • ΧϥϜ໊ͷมߋ΍ܭࢉϑΟʔϧυͷ௥Ճʹରͯ͠τϦΨʔͷ࡞੒ • ςʔϒϧͷมߋʹରͯ͠Ϗϡʔͷ࡞੒ •

    ੍໿ɾσϑΥ஋ͷஈ֊తಋೖ • Ҡߦظؒͷӡ༻ • ຊॻͰ͸ʮdeprecatedΛΧϥϜͷίϝϯτʹ࢒͢ʯʮτϦΨʔΛ༻͍ͨޓ׵ ੑͷҡ࣋ʯͳͲͷख๏Λపఈతʹར༻͍ͯ͠Δ
  39. σʔλϕʔεͷϦϑΝΫλϦϯάͷ෼ྨ ʮ໨తɾख๏ʹ͍ͭͯɺDBͷϦϑΝΫλ͸Ͳ͏͍͏΋ͷ͕͋Δ(͋Γ ಘΔ)ͷ͔ʁʯͱ͍͏ΨΠυ ߏ଄ ςʔϒϧ΍Ϗϡʔͷఆٛͷมߋ σʔλ඼࣭ ৘ใͷ඼࣭ΛߴΊΔͨΊͷมߋ ࢀর੔߹ੑ ෳ਺ςʔϒϧؒͷ੔߹ੑΛอূ͢ΔͨΊͷมߋ ΞʔΩςΫνϟ

    ΫϥΠΞϯτ͕%#ͱ΍ΓऔΓ͢Δํ๏Λվળ͢ΔͨΊͷมߋ ϝιου τϦΨʔɺετΞυɾϓϩγʔδϟͳͲͷมߋ ม׵ ηϚϯςΟΫεͷมߋ
  40. ߏ଄ϦϑΝΫλϦϯά(ୈ6ষ) • ΧϥϜͷ࡟আ • ςʔϒϧͷ࡟আ • ΧϥϜͷ౷߹ • ςʔϒϧͷ౷߹ •

    ΧϥϜ໊ͷมߋ • ςʔϒϧ໊ͷมߋ • ςʔϒϧͷ෼ׂ • ΧϥϜͷ෼ׂ • ࣗવΩʔ / ୅ཧΩʔͷಋೖ • ؔ࿈ςʔϒϧʹΑΔ1ରଟ ؔ܎ͷஔ͖׵͑ • શ෦Ͱ17ݸ
  41. σʔλ඼࣭ϦϑΝΫλϦϯά(ୈ7ষ) • ࢀর༻ςʔϒϧͷ௥Ճ • ඪ४తͳίʔυͷద༻ • ඪ४తͳܕͷద༻ • Ωʔઓུͷ੔ཧ •

    ΧϥϜ੍໿ͷ࡟আ • σϑΥϧτ஋ͷ࡟আ • ψϧෆՄ੍໿ͷ࡟আ • σʔλͷҠಈ • શ෦Ͱ13ݸ
  42. ࢀর੔߹ੑϦϑΝΫλϦϯά • ֎෦Ωʔ੍໿ͷ௥Ճ • ܭࢉΧϥϜ΁ͷτϦΨʔͷ ௥Ճ • ֎෦Ωʔ੍໿ͷ࡟আ • Χεέʔυ࡟আͷಋೖ

    • ϋʔυσϦʔτಋೖ • ιϑτσϦʔτͷಋೖ • ཤྺͷͨΊͷτϦΨʔͷಋ ೖ
  43. ΞʔΩςΫνϟɾϦϑΝΫλϦϯά(ୈ9ষ) • CRUDϝιουͷ௥Ճ • ϛϥʔϦϯάςʔϒϧͷ௥ Ճ • Ϧʔυϝιουͷ௥Ճ • ϏϡʔʹΑΔςʔϒϧͷΧ

    ϓηϧԽ • ܭࢉϝιουͷಋೖ • ΠϯσοΫεͷಋೖ • ಡΈࠐΈઐ༻ςʔϒϧͷಋ ೖ • ਖ਼ࣜͳσʔλιʔεͷ࢖༻ • શ෦Ͱ12ݸ
  44. ϝιουɾϦϑΝΫλϦϯά(ୈ10ষ) • ※ࠓճ͸ׂѪ

  45. ม׵(ୈ11ষ) • σʔλͷૠೖ • ৽ͨͳΧϥϜͷಋೖ • ৽ͨͳςʔϒϧͷಋೖ • Ϗϡʔͷಋೖ •

    σʔλͷߋ৽
  46. $X
 ·ͱΊͱΦϚέ

  47. ·ͱΊ • ʮΞϓϦέʔγϣϯίʔυΛॻ͖׵͑ΔΑ͏ͳײ֮ͰɺDB΋࿔Ε Δʯͱͨ͠ΒɾɾɾҰମͲΜͳੈքͳΜͩʂʁ • ͨͩɺʮ௅·ͳ͚Ε͹ಘΒΕͳ͍ʯͱ͍͏ݴ༿͕͋Γ·͢Ͷʂ • ʮςετʹΑΔอূʯʮࣄނʹඋ͑Δʯʮܧଓతʹ౷߹ɾվળͯ͠ ͍͘ʯͱ͍͏جຊ͸Ͳ͜Ͱ΋ಉ͡ʙ •

    ·ͣ͸ɺSQLΞϯνύλʔϯ΍σʔλϕʔεɾϦϑΝΫλϦϯάΛಡ Ήʮෆ٢ͳष͍ʯΛײ͡औΓ΍͘͢ͳΔͱ͜Ζ͔Β࢝Ίͯɺະདྷʹ ͍ۙͮͯ͜ʂ
  48. ͋ΘͤͯಡΉͱ໘നͦ͏ͳຊ ࠓճͷຊʂ ΑΓʮ࿦ཧʯํ໘ͷ
 SQL(RDB)ͳຊ ʮϦϑΝΫλͱ͸Կ͔ʯͷຊ ʮϦϑΝΫλͷେࣄ͞ʯ
 Έ͍ͨͳͷ͸ίϨ

  49. ΋ͬͱࢹ໺Λ޿͛Δɾ౿ΈࠐΉ ୯ମςετ͕೉͔ͬͨ͠Β
 ʮେ͖ͳϧʔϓʯͷςετͪ͠Ό͏ͱ͔ Ͳ͏΍ͬͯ
 ʮม͍͑ͯ͘ʯͱ͔
 ʮյΕʹ͘͘࡞Δʯ͔ʁͱ͍ͬͨ σʔλϕʔεΛ
 ʮ҆શʯʹ΍͍ͬͯ͘ʂ