- ããŒã¿ãŠã§ã¢ããŠã¹ãããã€ããŒã®äŸ¡æ ŒãŸãã¯ãã®ä»ã®ããªã·ãŒã¯å®æçã«å€æŽãããŸãããããŒã¿ãŠã§ã¢ããŠã¹ã䜿çšããäŒæ¥ã¯ãããã®å€æŽã«å¿ ãããåæããŸããã
- äŒæ¥ã®æé·ãšITã€ã³ãã©ã¹ãã©ã¯ãã£ã®èŠæš¡ã®æ¡å€§ã«äŒŽããæ¢åã®ããŒã¿ã¹ãã¬ãŒãžãœãªã¥ãŒã·ã§ã³ãããŒãºã財åèœåãæºãããªããªãå¯èœæ§ããããŸãã
- ããŒã¿ã¹ãã¬ãŒãžãã¯ãããžãŒãéçºãããŠãããç¹æ®ãªåé¡ã解決ããããã«èšèšãããæ°ããããŒã«ãç»å ŽããŠããŸãã
- ãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã¯ãé«äŸ¡ãªåçšãœãªã¥ãŒã·ã§ã³ã«ä»£ããå®äŸ¡ãªããããã¯ç¡æã®ä»£æ¿åã§ããæé·ããŠããŸãã
ããã¯ãã¹ãŠãããæç¹ã§äŒæ¥ãããŒã¿ã¹ãã¬ãŒãžã®ãã¯ãããžãŒãå€æŽãããïŒãŸãã¯åŒ·å¶ããïŒããçŸåšã®ãã¯ãããžãŒãšåæã«æ°ãããã¯ãããžãŒã䜿çšãå§ãããšããäºå®ã«ã€ãªããå¯èœæ§ããããŸãã ãã ããèªååã·ã¹ãã ã®èšèšã«ãããŠãããžãã¹ããžãã¯ãšããŒã¿ãŠã§ã¢ããŠã¹ã®æäœãåé¢ãããŠããªãå Žåãã¹ãã¬ãŒãžããŒã«ãå€æŽãããšãã³ã¹ããããã管çãäžååãªç§»è¡ã«ã€ãªããå¯èœæ§ããããŸãã
ããžãã¹ããžãã¯ãåé¢ããåã ã®ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã§ããŒã¿ãæäœããåé¡ã¯ãHabrahabrã§ç¹°ãè¿ã説æãããŠããããç¥ãããŠããã¢ãŒããã¯ãã£ãã³ãã¬ãŒãã®Data Access LayerïŒDALïŒã«ãã£ãŠè§£æ±ºãããŸãã ãã®ãã³ãã¬ãŒããäŒæ¥å šäœã®ã¬ãã«ã«åãããŠã¹ã±ãŒãªã³ã°ããã«ã¯ããã®èšäºã§æ€èšããå€ãã®ã¢ãŒããã¯ãã£ã®ååã§ãã³ãã¬ãŒããè£è¶³ããå¿ èŠããããŸãã ãããã®ååã«åŸãããšã§ãäŒæ¥ã¯ç®¡çãããïŒç®¡çãããïŒäº€æãå®è¡ããããITã¢ãŒããã¯ãã£ã«ã¹ãã¬ãŒãžãã¯ãããžãŒãè¿œå ãããã§ããŸãã
çºè¡
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãDALã³ã³ã»ããã®éçºã«è³ã£ãåæã®åé¡ãšèæ¯ã«ã€ããŠè©³ãã説æããŸãã
ç¹æ®ãªããŒã¿ããŒã¹ã䜿çšããå¿ èŠæ§
çŸåšãåŸæ¥ã®ãªã¬ãŒã·ã§ãã«DBMSïŒRDBMSïŒã¯ãã¢ããªã±ãŒã·ã§ã³éçºäžã®ããŒã¿ã¹ãã¬ãŒãžã®åé¡ã解決ããå¯äžã®æ段ã§ã¯ãããŸããã ãŠãããŒãµã«DBMSããç¹æ®åãžã®ç§»è¡ããããŸãã åæã«ãã¹ãã¬ãŒãžæœèšã®å°éåã¯ããŸããŸãªæ¹åã«é²ã¿ãŸããããªã¥ãŒã ïŒBig Dataã¯ã©ã¹ïŒãè² è·ïŒHighLoadã¯ã©ã¹ïŒãããã©ãŒãã³ã¹ïŒHigh PerformanceãFast Dataã¯ã©ã¹ïŒãªã©ã®ç¹ã§ã
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã®å Žåãç¹å®ã®ã¿ã¹ã¯çšã®ããŒã«ãŸãã¯ã¹ãã¬ãŒãžã¡ãã£ã¢ã®ã¯ã©ã¹ã®éžæãæšæºã«å«ãŸããŸãã 倧èŠæš¡ãªITã·ã¹ãã ã§ã¯ãåãã¢ããªã±ãŒã·ã§ã³ïŒç°çš®ã¹ãã¬ãŒãžãå³1ïŒå ã§ããŸããŸãªã¿ã€ãã®è€æ°ã®ããŒã¿ããŒã¹ãç°ãªãããŒã¿ã°ã«ãŒãã«åæã«äœ¿çšããããšãæé©ã«ãªãããšããããããŸãã
![](https://habrastorage.org/files/5b0/83e/0de/5b083e0debf148eea3c8e0657fcfd489.png)
å³ 1.ãŠãããŒãµã«ããã³å°çšããŒã¿ããŒã¹
ããšãã°ããªã¬ãŒã·ã§ãã«ã¢ãã«ã§åçŽãªæ§é ããŒã¿ãæ瀺ããå¿ èŠã¯ãªãããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã®èŠä»¶ãé«ããå¿ èŠãããåã ã®ã¿ã¹ã¯ã§ã¯ãå°çšã®ããŒãšå€ã®ã¹ãã¢ã䜿çšã§ããŸãã ä»ã®ç¹å¥ãªçš®é¡ã®ããŒã¿ïŒããã¥ã¡ã³ããåçããããªãExcelãããã¹ãïŒããã³ããŸããŸãªéæ©èœèŠä»¶ã«ã¯ãããŸããŸãªã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ïŒNoSQLïŒãåããä»ã®ã¹ãã¬ãŒãžããã€ã¹ãå€æ°ååšããåºã䜿çšãããŠããŸãã
åæã«ãã¢ããªã±ãŒã·ã§ã³ãäžçšåºŠã®éæ©èœèŠä»¶ïŒã¹ãã¬ãŒãžããªã¥ãŒã ãã¹ã±ãŒãªã³ã°ã䞊ååŠçãããã©ãŒãã³ã¹ïŒã䌎ãè€éãªããŒã¿æ§é ãšåæã¯ãšãªãå¿ èŠãšããå ŽåãSQLèšèªã¯ãªã¬ãŒã·ã§ãã«ããŒã¿ãæäœããããã®æé©ãªã€ã³ã¿ãŒãã§ã€ã¹ã®ãŸãŸã§ãã
ãããã£ãŠãéçºãããITã¢ãŒããã¯ãã£ãåããçŸä»£ã®äŒæ¥ã¯ãDBMSïŒå€ãã®å ŽåOracleãŸãã¯MicrosoftããŒã¿ããŒã¹ïŒã§äœ¿çšããããåäžã®ãŽãŒã«ãã¹ã¿ã³ããŒããããé¢ããå¿ èŠæ§ã«ãŸããŸãçŽé¢ããè€æ°ã®ããŒã¿ããŒã¹ããã³ã¹ãã¬ãŒãžã®åœ¢ã§ã¢ããªã±ãŒã·ã§ã³ã€ã³ãã©ã¹ãã©ã¯ãã£ãæäŸããå¿ èŠæ§ã«çŽé¢ããŠããŸããNoSQLã¯ã©ã¹ãå«ãã
ããã«ãããã¢ããªã±ãŒã·ã§ã³ã¢ãŒããã¯ãã£ã¬ãã«ã§ã¯ã以åã¯ã¢ã¯ã»ã¹ã§ããªãã£ãç¹æ®ãªããŒã¿ããŒã¹ã䜿çšããæ©äŒãå€ãåºçŸããéçºãå éããã¡ã³ããã³ã¹ã³ã¹ããåæžããæ ¹æ¬çã«æ°ããããžãã¹ãã£ã³ã¹ãæäŸã§ããŸãïŒãã¡ãããæ°ããæ©èœãè³¢æã«äœ¿çšãããªãéãïŒã ããšãã°ãã€ã³ã¡ã¢ãªã¹ãã¬ãŒãžãåããã¯ã©ã¹ã¿ãŒããŒã¿ããŒã¹ïŒããããã€ã³ã¡ã¢ãªããŒã¿ããŒã¹ãäžè¬çãªä»£è¡šã¯VoltDBãŸãã¯SAP HANAïŒã䜿çšãããšãèšç®ãæ°æ¡é«éåããããšã§ããžãã¹ã€ã³ããªãžã§ã³ã¹ã®åé¡ã解決ããããã®æ ¹æ¬çã«ç°ãªãã¢ãããŒããå®è£ ã§ããŸãã
次ã«ãäŒæ¥ã®æè¡ã¢ãŒããã¯ãã£ã®ã¬ãã«ã§ãå€æ°ã®ç°çš®ããŒã¿ããŒã¹ãæäœããå¿ èŠãçããŸããããã«ããããã¹ãŠã®ITãµãŒãã¹ããã»ã¹ã®ã³ã¹ããå€§å¹ ã«è€éåããã³å¢å ããå°é家ã®åãã¬ãŒãã³ã°ãå¿ èŠã«ãªãã䜿çšããããã¯ãããžãŒã®ã©ã€ããµã€ã¯ã«ç®¡çãå«ã管çã¿ã¹ã¯ãè€éã«ãªããŸãã
ãããã®åé¡ã®æé©ãªè§£æ±ºçã¯ãäžæ¹ã§ãããã€ãã®ææ°ã®ç¹æ®ãªããŒã¿ããŒã¹ãåæã«äœ¿çšããæ©èœãšãä»æ¹ã§ãäŒæ¥ã®äžè¬çãªããªã·ãŒããã³æè¡æŠç¥ã®ã¬ãã«ã§ã®ãã®èšèšã®å¶åŸ¡å¯èœæ§ãçµã¿åãããå¿ èŠããããŸãã
ç°å¢æ¡ä»¶ãžã®æŽé²
äŒæ¥ã®æè¡ã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€æŽããã»ã¹ãéå§ãã2çªç®ã®éèŠãªèŠå ã¯ãäŒæ¥ã®ãœãªã¥ãŒã·ã§ã³ãããã€ããŒã®åæ¥ïŒãŸãã¯ãã®ä»ã®ïŒæ¡ä»¶ã®å€æŽã§ãã ããã¯ãRDBMSã«ç¹ã«åœãŠã¯ãŸããŸããRDBMSã䜿çšãããšãå€ãã®å Žåãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããããã¯ãŒã¯æ©åšããŸãã¯ãã¡ã€ã«ã¹ãã¬ãŒãžã·ã¹ãã ãšããå¯æ¥ã«æ¥ç¶ãããŸãã
ç¹å®ã®æ¡ä»¶äžã§ã¯ãããããã®ãµãã©ã€ã€ã®RDBMSãç·æ¥ã«äº€æããå¿ èŠãããå ŽåããããŸãã ãã®å Žåãã¢ã¯ãã£ãã«åäœããå€ãã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã§ããŒã¿ããŒã¹ãç·æ¥ã«äº€æãããšãéåžžã«é«äŸ¡ã§è€éãªãããžã§ã¯ãã«ãªããæ å ±ã·ã¹ãã ãã²ããŠã¯ããžãã¹ã®é害ãããŠã³ã¿ã€ã ãçºçããå¯èœæ§ããããŸãã äŒæ¥ã«ãšã£ãŠãã®ãããªå°é£ãªç¶æ³ã«é¥ããªã¹ã¯ã¯ãå¿ èŠã«å¿ããŠDBMSãå€æŽããããã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã段éçãã€äœç³»çã«æºåããããšã§è»œæžã§ããŸãã
è¿ä»£åãšæè¡éçºã®å¿ èŠæ§
å€éšæ¡ä»¶ã®å€åã ãã§ãªããæè¡ã®è¿ä»£åãšéçºã®å¿ èŠæ§ãã貯èµæœèšã亀æããã¿ã¹ã¯ã®åºçŸã«ã€ãªããå¯èœæ§ããããŸãã
å€éšã®å€æŽã®å Žåãèšèšè ã¯ã䜿çšãããŠããã¹ãã¬ãŒãžæœèšãå€ããªã£ãŠãããã補é æ¥è ããµããŒãããŠããªãããä»ã®çç±ã§ç«¶äºåã倱ã£ãŠãããšããäºå®ã«çŽé¢ããŠããŸãã ã¹ãã¬ãŒãžããã€ã¹ã亀æããããã«ã¢ããªã±ãŒã·ã§ã³ã®å€§å¹ ãªåèšèšãå¿ èŠã«ãªã£ãå Žåãæ¯åºã®é¢ã§é·ãéäžåçã®ãŸãŸã«ãªããŸãã ãã®çµæãäŒæ¥ã®ã¢ãŒããã¯ãã£ã®äžéšã¯æ¬¡ç¬¬ã«æ代é ãã«ãªããITãµãŒãã¹ã¯ãæ代é ãã®è£œåã§äœæ¥ããåŸæ¥å¡ãéžæããããšãå°é£ã§ããããããµããŒãããµããŒããããã³äººå¡é 眮ã§åé¡ãçºçãå§ããŠããŸãã
2çªç®ã®ã±ãŒã¹ã§ã¯ãç¹å®ã®èšæ¶åªäœã競äºåãç¶æããŠããå Žåã§ããæè¡éçºã®åŸåãšã¿ã¹ã¯ã¯ãã¢ããªã±ãŒã·ã§ã³æ©èœã®éçºã®æ ¹æ¬çã«ç°ãªãæ©äŒãéãæ°ããæè¡ãžã®ç§»è¡ãå¿ èŠãšããå ŽåããããŸãã æ¢åã®ã¢ããªã±ãŒã·ã§ã³ã1çš®é¡ã®ããŒã¿ããŒã¹ãŸãã¯äŒæ¥å šäœã®ã¢ãŒããã¯ãã£ã®ãã¬ãŒã ã¯ãŒã¯å ã§å¯æ¥ã«æ¥ç¶ãããŠããå Žåã1çš®é¡ã®ããŒã¿ããŒã¹ã®ã¿ãåºå®ãããããžãã¹ã¢ããªã±ãŒã·ã§ã³éçºã®å€ãã®å¯èœæ§ãéããããŸãã
ããŒã¿ã¢ã¯ã»ã¹å±€ã®æŠå¿µ
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãäžèšã®åé¡ã解決ã§ããDALã®äžè¬çãªæŠå¿µãšååã«ã€ããŠèª¬æããŸãã ããã§ã¯ãæŠå¿µãæœè±¡çã«èª¬æãããŠãããç¹å®ã®æè¡ããœãããŠã§ã¢è£œåã®äœ¿çšãšã¯ãŸã é¢é£ä»ããããŠããŸããã
管çãããç¹æ®ãªã¹ãã¬ãŒãžã®åå
ãã®ãããéçºäžã®ã³ã³ã»ããã¯ãèšèŒãããŠããåé¡ã«å¯ŸåŠããå¿ èŠããããŸãã
- 管çæ§ãç¶æããªãããäŒæ¥ã®ITã¢ãŒããã¯ãã£ã§ç¹æ®ãªããŒã¿ããŒã¹ã䜿çšããæ©èœãæäŸããŸãïŒããšãã°ããã®å€æ§æ§ãšã¢ããªã±ãŒã·ã§ã³ãå¶åŸ¡ããããšã«ããïŒã
- DBMSãµãã©ã€ã€ãšã®é¢ä¿ãæªåããå ŽåããŸãã¯å Žåã«ãã£ãŠã¯æè¡ã®è¿ä»£åãšæè¡éçºã®çç±ã§ãDBMSã®ã¹ã ãŒãºã§æè¡çãªå€æŽã®ããã«ããžãã¹ã¢ããªã±ãŒã·ã§ã³ãæºåããã
ãã®æŠå¿µã¯ãå¶åŸ¡ãããç¹æ®ãªããŒã¿ã¹ãã¬ãŒãžã®ååã«åºã¥ããŠãããã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªããŒã¿ã«ã¢ã¯ã»ã¹ããçµ±äžãããå¶åŸ¡ãããæ¹æ³ãå°å ¥ããŸãïŒå³2ïŒã
![](https://habrastorage.org/files/d80/440/a9d/d80440a9d99746c08ac8af5c34bd1007.png)
å³ 2.管çãããç¹æ®ãªããŒã¿ã¹ãã¬ãŒãžã®åç
äŒæ¥ã®æè¡ããªã·ãŒã¬ãã«ã§ã¯ãããŒã¿ã¯ã©ã¹ã®åºå®ã»ãããå®çŸ©ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã«ããã€ãã®ã¹ãã¬ãŒãžæ©èœãæäŸãããŸãã ãã®å ŽåãåããŒã¿ã¯ã©ã¹ã¯ããã®ã¯ã©ã¹ã«æé©ãªç¹æ®ãªã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ïŒãããŸã§-è«çã¬ãã«ïŒãæ³å®ããŠããŸãã ããšãã°ãããŒå€ããŒã¿ã¯ã©ã¹ã®å Žåãã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ã¯ããŒããŒã¿ã®èªã¿åãããã³æžã蟌ã¿æäœãæäŸããå¿ èŠããããŸãã ãŸããããªã¬ãŒã·ã§ãã«ã¢ãã«ãããŒã¿ã¯ã©ã¹ã®å Žåãã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ã¯ããã€ãã®åºå®SQLãã€ã¢ã¬ã¯ãã®åœ¢åŒã§è¡šç€ºãããŸãã
ãã®ãããªè«çããŒã¿ã¯ã©ã¹ããšã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ã¹ãã¬ãŒãžãã¡ã·ãªãã£ã«ããŸããŸãªã¬ãã«ã®éæ©èœèŠä»¶ãæäŸã§ããŸãããããã¯äžéšã®SLAïŒã¹ãã¬ãŒãžã¯ã©ã¹ã§å®çŸ©ïŒã«ãã£ãŠæ確ã«ä¿®æ£ãããŸãã
ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã¯ãããŸããŸãªããŒã¿ã¯ã©ã¹ãšå¯Ÿå¿ããã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãèŠæ±ããŠäœ¿çšããçŸåš1ã€ãŸãã¯å¥ã®ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŠããç¹å®ã®ãã¯ãããžããæœè±¡åããŸãã ããŸããŸãªããŒã¿ããŒã¹ãžã®ã¢ã¯ã»ã¹å¶åŸ¡ã¯å¶åŸ¡ã¢ãŒãã§æäŸãããã¢ããªã±ãŒã·ã§ã³ã¯ã©ã®ããŒã¿ããŒã¹å®è£ ã䜿çšãããããç¥ããŸãããã
ãã®çµæãäžæ¹ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ãæ確ã«å®çŸ©ãããããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¢ã¯ã»ã¹ããç¹æ®ãªã¹ãã¬ãŒãžæ©èœã䜿çšã§ããŸãã äžæ¹ãç¹å®ã®DBMSãåæ§ã®DBMSã«çœ®ãæããå¿ èŠãããå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ã«é倧ãªå€æŽãå ããå¿ èŠã¯ãããŸããã 極端ãªå Žåãã¢ãŒããã¯ãã£ã®æ¹èšãå¿ èŠãšããã«ãæ°æè¡ã®å°ããªæ©èœã«æ¯èŒçå®äŸ¡ã«é©å¿ããã äŒæ¥ã¬ãã«ã®ããŒã¿ãã¢ããªã±ãŒã·ã§ã³-ããŸããŸãªDBMSããžã®ã¢ã¯ã»ã¹ã®æ§é å šäœã芳å¯å¯èœã«ãªããå¶åŸ¡ãããŸãã
ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã¬ãã«ã§ããŒã¿ã«ã¢ã¯ã»ã¹ããæ¹æ³ãå¶éãã
![](https://habrastorage.org/files/41f/e4c/a9c/41fe4ca9c2cb45d8b2309fb0a04450a5.png)
å³ 3.ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã¬ãã«ã§ããŒã¿ã«ã¢ã¯ã»ã¹ããæ¹æ³ãå¶éãã
ãã1ã€ã®éèŠãªDALã®ååã¯ãããžãã¹ã¢ããªã±ãŒã·ã§ã³ã«ããŒã¿ã¢ã¯ã»ã¹ã®éžæãããæ¹æ³ãæäŸããã¡ã«ããºã ã«é¢é£ããŠããŸãïŒå³3ïŒã çè«çã«ã¯ãäŒæ¥ã®ã¢ãŒããã¯ãã£ããªã·ãŒã®ã¬ãã«ã§ããŒã¿ãžã®ã¢ã¯ã»ã¹ã«é¢ããå€ãã®å¶éãä¿®æ£ããæ å ±ã·ã¹ãã ãèšèšããã³éçºããéã«ãããã®å¶éãžã®æºæ ãç£èŠããã°ååã§ãã
ãã ããå®éã«ã¯ããã®ãããªå¶åŸ¡ãæŽçããããšã¯å°é£ã§ãã ããã«ã¯ãæéã®ããããšã³ã¿ãŒãã©ã€ãºã®å°é家ã¢ãŒããã¯ããå¿ èŠã§ãã åæã«ãäœããã®çç±ã§æ å ±ã·ã¹ãã ã®è£œé æ¥è ãå¥çŽããŒã¿ã¯ã©ã¹ãšSLAãè¶ ããªãå¯èœæ§ããããŸãã ãã®ãããªå äŸã®çµæçãªèç©ã¯ãããŒã¿ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãæ£åŒã«å¶éãããŠããã«ãããããããã¢ããªã±ãŒã·ã§ã³ãå¥ã®DBMSã«ç§»æ€ã§ããªããšããäºå®ã«ã€ãªãããŸãã
ãã®åé¡ã®è§£æ±ºçã¯ãã¢ããªã±ãŒã·ã§ã³ãDBMSããå®å šã«åé¢ããããšã§ãããã®ãããã¢ããªã±ãŒã·ã§ã³ã¯ååãšããŠDBMSã«çŽæ¥ã¢ã¯ã»ã¹ã§ãããå°çšã®ããŒã¿ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ïŒããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒïŒãä»ããŠã®ã¿åäœããŸãã å®éãDALã¯ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã¬ãã«ã§ã®ããŒã¿ã¢ã¯ã»ã¹ã«é¢ããäŒæ¥ã®ã¢ãŒããã¯ãã£ããªã·ãŒããã£ããã£ããä»æ§ããã³èŠåã®ã¬ãã«ã§ã®ä¿®æ£ãšæ¯èŒããŠãããŒã¿ã¯ã©ã¹å¥çŽã®ããã©ãŒãã³ã¹ãã¯ããã«ä¿èšŒããŸãã
ããŸããŸãªåºæ¬æè¡ã§å®è£ ãããããŸããŸãªããŒã¿ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãå¿ èŠãšããæ å ±ã·ã¹ãã ã§ã¯ãDALã¢ãžã¥ãŒã«ã®å®è£ ãç°ãªãå ŽåããããŸãã ãããã®ã¢ãžã¥ãŒã«ã®ã€ã³ã¹ã¿ã³ã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ããšã«ç°ãªãå ŽåããããŸããããªãœãŒã¹ãç¯çŽããããããŸãã¯éã«ã·ã¹ãã ã®æ©èœã®ç¬ç«æ§ã確ä¿ããããã«ãäžè¬çãªå ŽåããããŸãã ãã ãããã¹ãŠã®å Žåã«ãããŠãã¹ãã¬ãŒãžæœèšãžã®ã¢ããªã±ãŒã·ã§ã³ã®éæ¥çãªã¢ã¯ã»ã¹ã®ååãå°éããå¿ èŠããããŸãã
ããŒã¿ããŒã¹ããããžãã¹ããžãã¯ãåé€ãã
ãŠããã¡ã€ãã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã¢ããªã±ãŒã·ã§ã³ãã¹ãã¬ãŒãžããåé¢ãããšããååã¯ãã¢ããªã±ãŒã·ã§ã³èªäœãããŒã¿ããŒã¹ã®å€éšã«å±éãããŠããå Žåã«ã®ã¿ã代æ¿ã¹ãã¬ãŒãžãã¯ãããžãŒã«ãã°ããåãæ¿ããåé¡ã解決ã§ããŸãã å®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããžãã¹ããžãã¯ã®å€§éšåãçµã¿èŸŒã¿ã®æç¶ãåèšèªã§DBMSå ã«å®è£ ãããŠããæ å ±ã·ã¹ãã ãäŸç¶ãšããŠé »ç¹ã«èŠã€ãããç©æ¥µçã«äœ¿çšãããŠããŸãã ãã®ãããªã·ã¹ãã ã®å Žåãããžãã¹ããžãã¯ãDBMSããå¥ã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«åé€ããŠã·ã¹ãã ãåŠçããããšã«ãã£ãŠã®ã¿ãä»ã®DBMSãžã®å®¹æãªç§»æ€æ§ãå®çŸã§ããŸãã
æ°ããéçºãããããŸãã¯ç©æ¥µçã«éçºãããŠãããã¹ãŠã®ã·ã¹ãã ã§ã¯ãDBMSå ã«å€§éã®æ©èœãèç©ããªãããã«ããå¿ èŠããããŸããããã«ãããå¥ã®ã¹ãã¬ãŒãžã¡ãã£ã¢ãžã®åãæ¿ããå°é£ã«ãªããŸãã ããŒã¿ã«ã¢ã¯ã»ã¹ããããã»ã¹ã ãã§ãªããããŒã¿æ§é ãšDBMSèšå®ã管çããããã»ã¹ã«ãäžéãªã³ã¯ãåã蟌ãå¿ èŠãããããããããå¶åŸ¡ããããšã¯æè¡çã«å°é£ã§ãã ãããã£ãŠããã®ãããªå¶åŸ¡ã¯ãæ°ããã·ã¹ãã ãšãã®æŽæ°ã®å±éäžãããã³å°é家ã®è©äŸ¡ã䜿çšããŠææ¡ãããæè¡ãœãªã¥ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ç£æ»ã®ããã»ã¹äžã«ç¢ºä¿ããå¿ èŠããããŸãã
ã³ã³ã»ãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãåã®ã»ã¯ã·ã§ã³ã§ç°¡åã«çŽ¹ä»ããDALèšè¿°ãªããžã§ã¯ãã¢ãã«ãæ¹è¯ãã詳现ã«èª¬æããŸãã
![](https://habrastorage.org/files/6b4/d25/543/6b4d25543d8e402aa7f8887dea0b126e.png)
å³ 4. DALã®æŠå¿µã®æŠå¿µã¢ãã«
ãã®æŠå¿µã§ã¯ãããã€ãã®æŠå¿µã玹ä»ããŠããŸãïŒå³4ïŒïŒ
- ããŒã¿ã¯ã©ã¹
- èšæ¶åªäœ;
- èšæ¶åªäœã®ç¹æ§ã
- ã¹ãã¬ãŒãžã¯ã©ã¹
- ããŒã¿ã°ã«ãŒã;
- ããŒã¿ã³ã³ããã
ãããã®æŠå¿µãšåé¡æ³ã¯ãASãèšèšããããã®æ¹æ³è«çãªããŒã«ãšããŠããŸãäŒæ¥å šäœã®ããŒã¿ã¹ãã¬ãŒãžã®ã¬ãã«ã管çããæ段ãšããŠäœ¿çšãããŸãã
ããŒã¿ã¯ã©ã¹
ç¹å®ã®æè¡ãå®è¡å¯èœæ§ã®å¶éã«äŸåããªãçæ³çãªããŒã¿æœè±¡åãå®çŸ©ããŸãã
- ããŒã¿èªäœã®æœè±¡ïŒãè«çæ°åŠãïŒã¢ãã«ïŒããšãã°ããé¢ä¿é¢ä¿ã®ã»ããããŸãã¯ãããŒãšå€ã®ãã¢ã®ã»ãããïŒã
- ããŒã¿ãžã®ããŒã¿ã¢ã¯ã»ã¹ãšèšç®ã®ã¢ãã«ïŒãŸãã¯è€æ°ã®ã¢ãã«ïŒïŒããªã¬ãŒã·ã§ãã«ä»£æ°ããŸãã¯MapReduceãªã©ïŒã
- ã»ãã¥ãªãã£ã¢ãã«ïŒããšãã°ããååä»ãã³ã³ãããŒããããŠãŒã¶ãŒããããã³ãæš©å©ãïŒ;
- ããŒã¿æ§é ã¢ãã«ïŒããšãã°ããããŒãã«ã®èª¬æãå«ãã¹ããŒãããŸãã¯ãå±æ§ã°ã«ãŒãã®ãªã¹ããïŒã
ããŒã¿ã¯ã©ã¹ã¬ãã«ã§ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®åé¡ãããã©ãŒãã³ã¹ã®åé¡ãã¡ã¢ãªå å®è£ ã®ç¹æ§ã¯ãããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¹ããžãã¯ã¯ç¹å®ã®ããŒã¿ã¯ã©ã¹ã«åºã¥ããŠå®è£ ãããŠãããã¢ããªã±ãŒã·ã§ã³ããžãã¯ãåèšèšããªãéããããŒã¿ã¯ã©ã¹ã®å€æŽã¯äžåçºçããŸããã
ããŒã¿æ§é
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã«åºæã®ç¹å®ã®ã¢ãã«ïŒããŒã¿ã¯ã©ã¹ã§å®çŸ©ïŒã®ããŒã¿æ§é ãå®çŸ©ããŸããããšãã°ããªã¬ãŒã·ã§ãã«ã¢ãã«ãããŒãã«ã®ãªã¹ããåãããŒãªã©ã§ãã
ä¿ç®¡æœèš
åžå Žã§å ¥æå¯èœãªããŸãã¯äŒæ¥ã§å±éãããŠããç¹å®ã®ã¹ãã¬ãŒãžæœèšïŒããŸããŸãªçš®é¡ã®ããŒã¿ããŒã¹ïŒã¯ãè€æ°ã®ããŒã¿ã¯ã©ã¹ã«å¯ŸããŠ1ã€ä»¥äžã®ã¯ã©ã¹ã®ã¹ãã¬ãŒãžæœèšã®æ©èœãæäŸããŸãã
ã¹ãã¬ãŒãžæ©èœ
èšæ¶åªäœã®éèŠãªæ°å€çãå®æ§çç¹æ§ããŸãã¯ãã€ããªèšå·ãè¡šããŸãã
- èªã¿åã/æžã蟌ã¿ããã©ãŒãã³ã¹ã
- æ¡åŒµæ§
- ã¡ã¢ãªãŒå ã§ã®äœæ¥ïŒã¡ã¢ãªãŒå ïŒã
- å¶éäºé
- å°éåïŒäŸïŒããã°ããŒã¿ãŸãã¯é«éããŒã¿ïŒ
- ACIDãã©ã³ã¶ã¯ã·ã§ã³ãªã©ã®ãµããŒã
ã¹ãã¬ãŒãžã¯ã©ã¹ïŒSLAïŒ
1ã€ã®ããŒã¿ã¯ã©ã¹å ã§ããã®ãããªäžé£ã®ã¹ãã¬ãŒãžç¹æ§ãã°ã«ãŒãåããŸããããã¯ãäžæ¹ã§ã¢ããªã±ãŒã·ã§ã³ã§é »ç¹ã«éèŠããããä»æ¹ã§ä»£æ¿å®è£ ïŒã¹ãã¬ãŒãžããŒã«ïŒãæäŸããŸãã
ããŒã¿ã¯ã©ã¹ããšã«ç°ãªãSLAãå®çŸ©ã§ããŸãã ããã¹ãã¬ãŒãžã¯ã©ã¹ããå¥ã®ã¹ãã¬ãŒãžã¯ã©ã¹ã«ã¢ããªã±ãŒã·ã§ã³ããŒã¿ã転éããã«ã¯ãSLAããããã£ã®åŒ±äœåãŸãã¯æ¬ èœã«å¯Ÿããè£åãå¿ èŠã«ãªããããéšåçãªåèšèšãå¿ èŠã«ãªãå ŽåããããŸãã å¥ã®ããŒã¿ã¯ã©ã¹ãŸãã¯ã¹ãã¬ãŒãžã¡ãã£ã¢ã«é 眮ããããã«ã¢ããªã±ãŒã·ã§ã³å ã®ããŒã¿ã®å¥ã®ã°ã«ãŒããåé¢ããå¿ èŠãããå Žåãå€æŽãè¡ãããšãã§ããŸãããã®åŸããã®ããŒã¿ãä»ã®ã°ã«ãŒããšçµ±åããŸãã
ããŒã¿ã°ã«ãŒã
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³å ã®ããŒã¿ã¯ããã®ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã«åŸã£ãŠãåãããŒã¿ã¯ã©ã¹ã«å±ãã1ã€ã®SLAãå¿ èŠã§ãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒå€ã¯ã©ã¹ã«å±ããããŒã«ããè¿ éãªèªã¿åããå¿ èŠãªãXãªãã¡ã¬ã³ã¹ããã¯ãããŒã¿ã°ã«ãŒããéžæã§ããŸãã
ããŒã¿ã³ã³ãã
äœããã®èšæ¶åªäœã䜿çšããŠä¿åããã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã®1ã€ã®ããŒã¿ã°ã«ãŒãã«å¯Ÿå¿ããèå¥å¯èœãªéã®ããŒã¿ã ããŒã¿ã¹ãã¬ãŒãžãªã¯ãšã¹ãã«å¿ããŠã1ã€ä»¥äžã®ããŒã¿ã³ã³ãããã¢ããªã±ãŒã·ã§ã³ã«å²ãåœãŠãããŸãã
ããŒã¿ã¢ã¯ã»ã¹å±€ã®æ§é
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãçµ±åããŒã¿ã¢ã¯ã»ã¹ã®æŠå¿µãå®è£ ããDALãœãããŠã§ã¢ã®åºæ¬æ§é ã«ã€ããŠèª¬æããŸãã DALæ§é ã®èª¬æã«ã¯ãç¹ã«ãç¹å®ã®ãã¯ãããžãŒãšãœãããŠã§ã¢è£œåã®éžæãšé©çšã®åé¡ãå«ãŸããŸãã
ãšã³ã¿ãŒãã©ã€ãºITã©ã³ãã¹ã±ãŒãã®DALæ©èœãšå¢ç
DALæ§é ã¯ããšã³ã¿ãŒãã©ã€ãºITã¢ãŒããã¯ãã£ã®ãã¬ãŒã ã¯ãŒã¯å ã§çµ±åããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒãæ§ç¯ããããã«äœ¿çšã§ãããœãããŠã§ã¢ããŒã«ã®ã»ããã§ãããããããŒãžãã¹ãã·ã£ã©ã€ãºãããŒã¿ã¹ãã¬ãŒãžãã®ååãå®è£ ãããœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®å³å¯ãªåœ¢åŒã§ä¿®æ£ããŸãã DALã¯ãããžãã¹ã¢ããªã±ãŒã·ã§ã³ãšã¹ãã¬ãŒãžæœèšïŒããŒã¿ããŒã¹ïŒã®éã«å¶åŸ¡ããããã¬ã€ã€ãŒãã圢æããŸãïŒå³5ïŒã
![](https://habrastorage.org/files/65b/987/f65/65b987f654694037968ee17282b4a6c7.png)
å³ 5.ãšã³ã¿ãŒãã©ã€ãºã¢ãŒããã¯ãã£ã®DALæ§é
DALæ§é ã¯ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ãæŽçããããã®ççµåãœãããŠã§ã¢ã¢ãžã¥ãŒã«ã®ã»ããã§ãã ã¢ãžã¥ãŒã«ã®åŒ±ãæ¥ç¶æ§ã«ãããããŸããŸãªã¢ããªã±ãŒã·ã§ã³ããã³DALãœãããŠã§ã¢ã®éçºããã³æŽæ°ããã»ã¹ã®åæã«ãããåé¡ãåé¿ã§ããŸãã ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«èªäœã¯ãããžãã¹ã¢ããªã±ãŒã·ã§ã³ãéçºãããããŸããŸãªåºç€æè¡ã®ç¹å®ã®å®è£ ãæã€ããšãã§ããŸãã
DALã®èšèšåå
- ã¿ã¹ã¯ã¯ãèªåçã«ããã³ã¹ãããã§ãç¡æã§ããŸãã¯äœæ¥äžã®ã¹ããŒã«ãŒãããèšæ¶åªäœããå¥ã®èšæ¶åªäœã«å³åº§ã«åãæ¿ããããã«èšå®ãããŠããŸããã èšèšäžã®æ±ºå®ã¯å®å šã«é€å€ããã¹ãã§ã¯ãããŸããïŒé·ããŠå°é£ã§ãïŒããå¯èœãªç§»è¡ãå€§å¹ ã«ä¿é²ãããããªæ¹æ³ã§ãã¹ãã¬ãŒãžã¡ãã£ã¢ãžã®ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã®äŸåãå€§å¹ ã«æžãããŸãã ACèšèšè ã®åççãªã¢ãããŒããšãã¢ãŒããã¯ãã£ã®åçãšç®æšã«å¯Ÿãã圌ãã®ç解ã«é Œãå¿ èŠããããããè¶ ä¿è·ãããæè¡ã·ã¹ãã ãæ§ç¯ããããšã¯ããŸããã
- èšèšãããšãã¯ãæ¢æã®ãåžå Žã«ãã§ã«ååšããæšæºåãããããŒã«ãšã³ã³ããŒãã³ããæ倧éã«äœ¿çšããå¿ èŠããããŸãã äŒæ¥ããã³ããŒããæ倧éã®ç¬ç«æ§ã確ä¿ãããå Žåã¯ããªãŒãã³ãœãŒã¹ã®è£œåãšãã¯ãããžãŒã䜿çšããããšãæãŸããããååãªæç床ããããé©åãªã³ãã¥ããã£ãµã€ãºãšè²¬ä»»ããäŒæ¥ã§ã®å®è£ äŸãå¿ èŠã§ãã
- æ¢åã®ã¹ããŒã«ãŒãDALã«ç°¡åã«è»¢éã§ããããã«åªåããå¿ èŠããããŸãã
- å®è£ ãããDALã®æ©èœãåŸã ã«ãå埩çã«å¢ãããŠããããšããå§ãããŸãã æåã®ã¹ãããã¯ãæãå·®ãè¿«ã£ãåé¡ïŒç¹ã«ããªã¬ãŒã·ã§ãã«DBMSã®ç§»æ€æ§ïŒã解決ããããšãç®çãšãããã·ã³ãã«ã§å®äŸ¡ã§è¿ éãªãã®ã§ãªããã°ãªããŸããã
- ã¹ãã¬ãŒãžç®¡çãžã®æ°ããã¢ãããŒãã¯æè¡çæ段ã«éå®ãããªããããããŸããããäŸãã°ãã€ã³ãã©ç®¡çã®èŠ³ç¹ããäŒæ¥ã®çµç¹ã¡ã«ããºã ã®å€æŽããªãã³ã«åååçºé»æã®èšèšãšæè¡ç£æ»ãå«ã¿ãŸãã
DALæ§é ã³ã³ããŒãã³ãã®é 眮ãªãã·ã§ã³
![](https://habrastorage.org/files/5dd/ab1/122/5ddab1122f6247f3a3ee96b6bea9322a.png)
å³ 6. DALæ§é ã³ã³ããŒãã³ãã®é 眮ãªãã·ã§ã³
DALæ§é ã«ã¯ãããŒã¿ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ãé 眮ããããã®2ã€ã®ãªãã·ã§ã³ãå«ãŸããŸãïŒå³6ïŒã
- ã¢ããªã±ãŒã·ã§ã³ã«å«ãŸããã©ã€ãã©ãªã®åœ¢åŒã ãã®ãªãã·ã§ã³ã§ã¯ãããŸããŸãªã¹ããŒã«ãŒéçºãã¯ãããžãŒçšã«ããŸããŸãªã¿ã€ãã®ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ãéçºããå¿ èŠããããŸãã
- ãããã¯ãŒã¯ãµãŒãã¹ã®åœ¢åŒã ãã®ãªãã·ã§ã³ã¯ãäœããã®çç±ã§ãããŒã¿ã¢ã¯ã»ã¹ãµãŒãã¹ãã©ã€ãã©ãªã®åœ¢ã§äžå¯èœãŸãã¯æãŸãããªãå Žåã察象ãšããŠããŸãïŒããšãã°ãISã¯ãDALãæäœããããã®ã©ã€ãã©ãªãæããªããã©ãããã©ãŒã ã§éçºãããŠããŸãïŒã ãã®ããŒãžã§ã³ã§ã¯ãDALã¯HTTPçµç±ã§ãããã¯ãŒã¯ãµãŒãã¹ãæäœã§ãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸãã ãã®é 眮æ¹æ³ã§ã¯ãæäŸãããããŒã¿ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ã®ã»ãããå¶éãããå ŽåããããŸãã
ããŒã¿ã¢ã¯ã»ã¹ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹
åã¯ã©ã¹ã®ããŒã¿ãžã®ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã¹ãå®è£ ããã«ã¯ãããã°ã©ã ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ïŒAPIïŒã®æ¥çæšæºããã³äºå®äžã®æšæºãåªå ããå¿ èŠããããŸãã ããã«ãããæ¢åã®ã¹ããŒã«ãŒãDALã§åäœããããã«ã§ããã ãç°¡åã«é©å¿ã§ããã ãã§ãªãããã®åŸã®æè¡çå€åã«å¯ŸããããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒã®é·æçãªå®å®æ§ã確ä¿ã§ããŸãã
ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã䜿çšããããã«åãåãããŒã¿ã¢ã¯ã»ã¹ããã°ã©ãã³ã°ã€ã³ã¿ãŒãã§ã€ã¹ïŒAPIïŒã¯ãåºã«ãªãã¢ããªã±ãŒã·ã§ã³ãã¯ãããžã«ãã£ãŠç°ãªãå ŽåããããŸãã ããã«ããéçºãåçåããããã®åºç€ãšãªããã¯ãããžãŒã®äºå®äžã®æšæºã«é©åããŸãã ãã®åé¢ã¯ãçµ±äžãããããŒã¿ã¢ã¯ã»ã¹ã®æŠå¿µã®äžè¬ååã«éåããªãããšã«æ³šæããããšãéèŠã§ããããã¯ãã¢ããªã±ãŒã·ã§ã³ã䜿çšãããç¹å®ã®ããŒã¿ããŒã¹ãã¯ãããžãŒããç¬ç«ããŠããããã§ãã ããšãã°ãJavaã§éçºãããã¢ããªã±ãŒã·ã§ã³ã®å Žåããªã¬ãŒã·ã§ãã«ããŒã¿ã«ã¢ã¯ã»ã¹ããããã®æšæºã€ã³ã¿ãŒãã§ãŒã¹ã¯Javaã®äžçã§åãå ¥ããããŠããJDBCã€ã³ã¿ãŒãã§ãŒã¹ã§ãããC / C ++ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ODBCã€ã³ã¿ãŒãã§ãŒã¹ãæäŸãããŸãã
ODBC / JDBCã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠäœæ¥ããå Žåã®SQLãã€ã¢ã¬ã¯ãã®å¶é
![](https://habrastorage.org/files/c36/db2/960/c36db29604e4496caab356bdb7ca4f75.png)
å³ 7. SQLã®çµ±åãšç¿»èš³
ãªã¬ãŒã·ã§ãã«ããŒã¿ã®å Žåãææ°ã®DBMSã¯ãSQLèšèªã®å€ãã®ç¹å®ã®æ©èœãšæ¹èšãæäŸããŸãã ã¢ããªã±ãŒã·ã§ã³ã§ããŸããŸãªããŒã«ãç©æ¥µçã«äœ¿çšãããšã移æ€æ§ãäœäžããŸãã ãããã£ãŠãDALå®è£ ã®äžéšãšããŠãSQLããŒã¹ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãååãšããŠç¹å®ã®DBMSã®æ©èœã«äŸåã§ããªãããã«ã䜿çšããSQLæ¹èšãæ確ã«å¶éããå¿ èŠããããŸãïŒå³7ïŒã
䜿çšãããæ¹èšãå¶éããã¿ã¹ã¯ã«å ããŠãåã ã®SQLæ§æèŠçŽ ãç¹å®ã®DBMSã®æ¹èšã«å€æãããšããåé¡ãçºçããŸãã ãã®å¿ èŠæ§ã¯ãã¢ããªã±ãŒã·ã§ã³æ©èœRDBMSã®äžè¬çã§åºã䜿çšãããŠãããã®ãããããã®å€§éšåã«ååšãããã®ã®ãSQLæšæºã«å«ãŸããŠããªããšããäºå®ã«ããçºçããŸãã
Javaã¢ããªã±ãŒã·ã§ã³çšã®RDBMSã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«
äžèšã®èšèšååã«åºã¥ããŠãDALãå®è£ ããããã®æåã§æãé¢é£æ§ã®é«ãã¢ãžã¥ãŒã«ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ã§ãã åé¡ã®ããäŒæ¥ããžãã¹ã¢ããªã±ãŒã·ã§ã³ã§èª¬æãããŠããããã«ãNoSQLããŒã¿ããŒã¹ã䜿çšããå¯èœæ§ããŸããŸã掻çšããŠãããšããäºå®ã«ããããããããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã¯äŸç¶ãšããŠæãåºã䜿çšãããèŠæ±ãããŠããã¿ã€ãã®ã¹ãã¬ãŒãžããŒã«ã§ãïŒå€ãã®å Žåãå€ãã®ã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ãæ¢ã«éçºãããŠããããã§ãïŒ RDBMSã«åºã¥ãïŒã
ãŸããããŸããŸãªåºç€æè¡ã«å®è£ ãããã¢ããªã±ãŒã·ã§ã³ã®å ŽåãããŸããŸãªã¢ã¯ã»ã¹ã¢ãžã¥ãŒã«ã®éçºãå¿ èŠã«ãªãå¯èœæ§ãé«ãããšãæãåºããŠãã ããã ãã®ã»ã¯ã·ã§ã³ã§ã¯ãJavaã¢ããªã±ãŒã·ã§ã³çšã®DALã¢ãžã¥ãŒã«ã®èšèšã«ã€ããŠèª¬æããŸãã ãã®æè¡ã¯å€§äŒæ¥ãéè¡ã«åºãæ®åããŠãããçµ±äžãããããŒã¿ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ã®éçºã®åºç€ãšããŠå©çšã§ãããå®å®ãããµããŒã察象ã®æ¥çæšæºãå€æ°ãããŸãã
ãªã¬ãŒã·ã§ãã«ããŒã¿ã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹
Javaã¢ããªã±ãŒã·ã§ã³ã®å Žåã2ã€ã®æšæºRDBMSã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãåºãæ®åããŠããŸãã
- JDBCã€ã³ã¿ãŒãã§ãŒã¹ããã³SQLèšèªãä»ãããªã¬ãŒã·ã§ãã«ããŒã¿ãžã®çŽæ¥ã¢ã¯ã»ã¹ã
- JPA Object Relational AdapterïŒJava Persistence APIïŒãä»ãããªããžã§ã¯ãã¢ãã«ãä»ããã¢ã¯ã»ã¹ã
å®éã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã¯ããã2ã€ã®ã¢ã¯ã»ã¹æ¹æ³ã®çµã¿åããã䜿çšããŸãã JPAã¯ããŒã¿ã®å€æŽãšåäžãªããžã§ã¯ãã®èªã¿åãã«ãã䜿çšãããè€éãªã¬ããŒããšéžæã®å ŽåãSQLã¯ãšãªã¯JDBCæ¥ç¶ãŸãã¯ç¹å¥ãªJPAå ¥åïŒãããããã€ãã£ãã¯ãšãªïŒãä»ããŠçŽæ¥å®è¡ãããŸãã
ãããã®2ã€ã®æ¹æ³ãçµ±åã¢ã¯ã»ã¹ã€ã³ã¿ãŒãã§ã€ã¹ãšããŠäžç·ã«ä¿®æ£ããããšããå§ãããŸãã JDBCããã³JPAãã€ãã£ãã¯ãšãªã䜿çšãããšãä»»æã®DBMSã®æ§æã§ä»»æã®ã¯ãšãªãå®è¡ã§ãããããäžèšã®ããã«ãçŽæ¥ã¯ãšãªã§äœ¿çšãããSQLãã€ã¢ã¬ã¯ããäœããã®ãçµ±äžããªãã·ã§ã³ã«æ瀺çã«å¶éããå¿ èŠããããŸãã
Javaçšã®DALã¢ãžã¥ãŒã«ã®å»ºèšçãªå®è£
ãããã£ãŠãJavaã¢ããªã±ãŒã·ã§ã³ã«RDBMSã«ã¢ã¯ã»ã¹ããããã®DALã¢ãžã¥ãŒã«ã¯ãJPAããã³JDBCã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããå¿ èŠããããŸãããåæã«ãå¿ èŠã«å¿ããŠå¥ã®RDBMSãžã®æãå¹ççãªå€æãæäŸããããã«ãSQLã®äœ¿çšããçµ±äžãããŒãžã§ã³ã®ã¿ã«å¶éããå¿ èŠããããŸãã
ãã®ãããªèŠä»¶ãåããã¢ãžã¥ãŒã«ã¯ç¬ç«ããŠéçºã§ããŸãããæé©ãªãªãã·ã§ã³ã¯ãããã«è¿ãæ©èœãåããæ¢è£œã®ãœãããŠã§ã¢ã³ã³ããŒãã³ãã䜿çšããããšã§ãã åŒç€Ÿã§ã¯ããã®ãããªã³ã³ããŒãã³ããšããŠDALãå®è£ ããéã«ãå€æ°ã®å©çšå¯èœãªæçµè£œåãåæããåŸãå ã ã¯äŒæ¥å šäœã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ã®ãã§ãã¬ãŒã·ã§ã³ïŒä»®æ³åïŒãç®çãšããJBoss Teiid補åãéžæããŸããïŒå³8ïŒã
![](https://habrastorage.org/files/f48/678/599/f486785999b149b4b3eec5d6b086021d.png)
å³ 8. Javaçšã®DALã¢ãžã¥ãŒã«ã®å»ºèšçãªå®è£
JBoss Teiidã®æ¬¡ã®æ©èœãšããããã£ã¯ãäžèšã®DALèŠä»¶ãæºãããŠããŸãã
- Javaã¢ããªã±ãŒã·ã§ã³çšã®JPAã€ã³ã¿ãŒãã§ãŒã¹ã®æäŸ
- Javaã¢ããªã±ãŒã·ã§ã³çšã®JDBCã€ã³ã¿ãŒãã§ãŒã¹ã®æäŸ
- ïŒSQL-99æšæºã«åºã¥ãïŒç¬èªã®çµ±åSQLãã€ã¢ã¬ã¯ãã䜿çšããŸãã
- ç¬èªã®SQLæ¹èšã®ããµããŒããããŠããããŒã¿ããŒã¹ã®ç¹å®ã®æ¹èšãžã®ç¿»èš³ã
- æã䜿çšãããRDBMSãžã®ã³ãã¯ã¿ã®å¯çšæ§ãšåçŽãªæ¡åŒµæ§ã
- çµã¿èŸŒã¿ã¢ãžã¥ãŒã«ã¢ãŒããšãããã¯ãŒã¯ãµãŒãã¹ã¢ãŒãã®äž¡æ¹ã§åäœããæ©èœã
- ãªãŒãã³ãœãŒã¹ã³ãŒãïŒãªãŒãã³ãœãŒã¹ïŒãåçšç®çã§ã®ç¡æ䜿çšã®å¯èœæ§ãéçºãããã³ãã¥ããã£ãããã³å€§äŒæ¥ã§ã®å®è£ äŸã
ããã«ãTeiidã䜿çšãããšã次ã®è¿œå æ©èœãéããŸãã
- ããžã¥ã¢ã«ãã¶ã€ããŒã䜿çšããŠãèšå®ã§ãããããä»®æ³DBãïŒä»®æ³DBãVDBïŒãäœæããããšã«ãããããŒã¿ããŒã¹ãçµåããŸãã ãã®ãããªãä»®æ³ããŒã¿ããŒã¹ãã¯ãïŒãªã¬ãŒã·ã§ãã«ã ãã§ãªãïŒå®éã®ã¹ãã¬ãŒãžæ©èœã«é¢é£ä»ããããŠããŸãã
- ãã¯ãã¹ã¯ãšãªãã®å¹ççãªå®è¡-ãä»®æ³ããŒã¿ããŒã¹ããžã®SQLã¯ãšãªãããã¯ãå®éã®ããŒã¿ããŒã¹ãžã®SQLã¯ãšãªã«èªåçã«å€æãããŸãã
- ã¯ãšãªã®çµæããä»®æ³ããŒã¿ããŒã¹ãã«ãã£ãã·ã¥ããŸãã
DALã®äŸ
PostgreSQLãžã®ç§»è¡ã®å¯èœæ§ãæ€èšããäžç°ãšããŠãåœç€Ÿã¯ãITã·ã¹ãã ã®1ã€ãOracleãããã®DBMSã«ç§»è¡ãããã€ããããããžã§ã¯ããå®æœããŸããã ãªããžã§ã¯ãã¯ã3å±€ã¢ãŒããã¯ãã£ã®ååã«åºã¥ããŠæ§ç¯ããã決æžããã¯ãªãã£ã¹ã·ã¹ãã ã§ããã ITã·ã¹ãã ã®ããžãã¹ããžãã¯ïŒåºæ¬çãªèšç®ïŒã®ã»ãšãã©ã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¬ãã«ã«ãããããžãã¯ïŒã¢ã«ãŠã³ãã£ã³ã°ïŒã®äžéšã¯Oracleã¹ãã¢ãããã·ãŒãžã£ã«ãããŸããã ãã®ITã·ã¹ãã ãèšèšããéãããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒãä»ããããŒã¿ã¢ã¯ã»ã¹ã®ååã¯ããšããšã¢ãŒããã¯ãã£ã«çµã¿èŸŒãŸããŠããŸããã ãã®å±€ã¯ãHibernateãå®è£ ããJPAãã¯ãããžãŒã«åºã¥ããŠæ§ç¯ãããŸããã
移è¡ã¯çæéã§å®è¡ããå¿ èŠããããã¢ã«ãŠã³ãã£ã³ã°ã³ã³ããŒãã³ãããžãã¯ã®PostgreSQLãžã®è»¢éã«ã¯ããªãã®æéãããããããæåã«äžéãªãã·ã§ã³-OracleãšPostgreSQLã§ã®ãã€ããªããããŒã¿ã¹ãã¬ãŒãžãåæã«å®è£ ããããšã«ããŸãããOracleã§ã¯ãã¢ã«ãŠã³ãã£ã³ã°ããžãã¯ãšããã«å¿ èŠãªããŒãã«ãæ®ããPostgreSQLã§ã¯ãã¢ããªã±ãŒã·ã§ã³ããŒã¿ã®æ®ãã移è¡ãããŸãããã¢ã«ãŠã³ãã£ã³ã°éšåã®PostgreSQLãžã®ç§»è¡ã¯ã移è¡ã®ç¬¬2段éã§èšç»ãããŸããã
JBoss Teiid: « », PostgreSQL Oracle. . DAL, . DAL Oracle SQL- Teiid . - . .
Oracle PostgreSQL ååã®ããã·ã ã»ãã¬ã°ããã
ãŸããDALãä»ããããŒã¿ãžã®ã¢ã¯ã»ã¹ãæŽçããã¢ãããŒãã¯ãåœç€Ÿã®å€ãã®ã¢ããªã±ãŒã·ã§ã³ã®è¿ä»£åã«ç©æ¥µçãªåœ¹å²ãæãããŸãããã¢ããã°ã¬ãŒãäžã«ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³æäœãã°ïŒç£æ»ãã°ãå€éšã·ã¹ãã ãšã®å¯Ÿè©±ãªã©ïŒãHadoopã«åºã¥ããŠã¢ãŒã«ã€ãã¹ãã¬ãŒãžã«è»¢éãããŸãããæ®ãã®ã¢ããªã±ãŒã·ã§ã³ããŒã¿ã¯ãéçšãªã¬ãŒã·ã§ãã«DBMSã«æ®ããŸããããã°ããŒã¿ãžã®ã¢ã¯ã»ã¹ã¯ç¬èªã®APIãåããå¥ã®ã³ã³ããŒãã³ããä»ããŠå®è¡ããããããã¹ãã¬ãŒãžããŒã«ã®çœ®ãæãã¯ã¢ããªã±ãŒã·ã§ã³ã®æ®ãã®æ©èœã«åœ±é¿ãäžãããå€§å¹ ãªå€æŽãå¿ èŠãšããŸããã§ããã
ãããã«
äŒæ¥ãITã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç¹å®ã®ãœãªã¥ãŒã·ã§ã³ã®ãµãã©ã€ã€ãŒããã®ç¬ç«æ§ãç¶æãããå Žåããšã³ã¿ãŒãã©ã€ãºITã·ã¹ãã ã®éçºè ã¯ããããã®ãœãªã¥ãŒã·ã§ã³ã®ä»æ§ããå¯èœãªéãæœè±¡åããå¿ èŠããããŸããããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒã®ã¢ãŒããã¯ãã£ååã«åŸãããšã«ãããäŒæ¥ã¯ç¬èªã®DBMSã®äººè³ªã«ãªãããããŒã¿ã¹ãã¬ãŒãžã®æ©èœãšã³ã¹ãã«æé©ãªãœãªã¥ãŒã·ã§ã³ãéžæã§ããŸããããã«ãäŒç€Ÿã¯ãAUã«å€§å¹ ãªå€æŽãå ããããšãªããæ°ãããã¯ãããžã䜿çšããŠããŒã¿ãæäœããæ©äŒãåŸãããšãã§ããŸãã