NoSQL ããŒã¿ããŒã¹ã¯ãã¹ã±ãŒã©ãã«ãªããã©ãŒãã³ã¹ãšã¹ããŒãã¬ã¹ãªããŒã¿ã¢ãã«åãã«æé©åãããéãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã§ãããŸããNoSQL ããŒã¿ããŒã¹ã¯ããã®éçºãããããäœã¬ã€ãã³ã·ãŒãèé害æ§ã®ããã«åºãèªããããŠããŸããNoSQL ããŒã¿ããŒã¹ã§ã¯ãåæåãããã¥ã¡ã³ããã°ã©ããã¡ã¢ãªå
ããŒå€ã¹ãã¢ãªã©ãããŸããŸãªããŒã¿ã¢ãã«ã䜿çšããŸãããã®ããŒãžã«ã¯ãNoSQL ããŒã¿ããŒã¹ã®äœ¿çšãéå§ããéã«åœ¹ç«ã€ãªãœãŒã¹ãå«ãŸããŠããŸãã
NoSQL ããŒã¿ããŒã¹ã·ã¹ãã ã§ã¯ãã¡ã¢ãªå
ããŒå€ã¹ãã¢ãã°ã©ãããŒã¿ã¢ãã«ãããã¥ã¡ã³ãã¹ãã¢ãªã©ãããŸããŸãªããŒã¿ç®¡çã¢ãã«ã䜿çšããŸãããã®ãããªã¿ã€ãã®ããŒã¿ããŒã¹ã¯ãåŸæ¥ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããŒã¿äžè²«æ§ã®å¶éã®äžéšãç·©åããããšã§éæãããã倧容éã®ããŒã¿ããªã¥ãŒã ãäœã¬ã€ãã³ã·ãŒãæè»ãªããŒã¿ã¢ãã«ãå¿
èŠãšããã¢ããªã±ãŒã·ã§ã³åãã«æé©åãããŠããŸãã
NoSQL ããŒã¿ããŒã¹ã¯ãåŸæ¥ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããå€§èŠæš¡ã§é«éãªå¿çãå¿
èŠãšããããã°ããŒã¿ãã¢ãã€ã«ããŠã§ãã®ã¢ããªã±ãŒã·ã§ã³ã®å€ãã«éåžžã«é©ããŠããŸããåçŽãªããŒã¿æ§é ãšæ°Žå¹³ã¹ã±ãŒãªã³ã°ã®ãããNoSQL ããŒã¿ããŒã¹ã¯éåžžããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ããéãå¿çããã¹ã±ãŒã«ã容æã§ãã
ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ç®¡çã·ã¹ãã (RDBMS) ãšéãªã¬ãŒã·ã§ãã« (NoSQL) ããŒã¿ããŒã¹ã«ã¯ããããç°ãªãé·æãšçæããããŸããRDBMS ã§ã¯ãããŒã¿ã¯æè»ã«ã¯ãšãªã§ããŸãããã¯ãšãªã¯æ¯èŒçé«ã³ã¹ãã§ããã©ãã£ãã¯ãå€ãç¶æ³ã§ã¯ã¹ã±ãŒã«ãããŸããããªãå ŽåããããŸããäžæ¹ãNoSQL ããŒã¿ããŒã¹ã§ã¯ãããŒã¿ã¯éãããæ°ã®æ¹æ³ã§å¹ççã«ã¯ãšãªã§ããŸããããã®ç¯å²å€ã§ã¯ãã¯ãšãªã¯é«ã³ã¹ãã§äœéã«ãªããã¡ã§ãã
| ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ | NoSQL ããŒã¿ããŒã¹ | |
| ããŒã¿ã¢ãã« | ãªã¬ãŒã·ã§ãã«ã¢ãã«ã§ã¯ãããŒã¿ãè¡ãšåã§æ§æãããããŒãã«ã«æ£èŠåããŸããããŒãã«ãè¡ãåãã€ã³ããã¯ã¹ãããŒãã«éã®é¢ä¿ãªã©ã®ããŒã¿ããŒã¹èŠçŽ ã¯ãã¹ããŒãã«ãã£ãŠå³å¯ã«å®çŸ©ãããŸãã | NoSQL ããŒã¿ããŒã¹ã¯ãéåžžãã¹ããŒããå¿ èŠãšããŸãããå€ãåã»ãããåæ§é å JSONãXMLããŸãã¯é¢é£ããé ç®å±æ§ãå«ããã®ä»ã®ããã¥ã¡ã³ãã®ååŸã«ã¯ãéåžžãããŒãã£ã·ã§ã³ããŒã䜿çšãããŸãã |
| ACID ãããã㣠| åŸæ¥ã® RDBMS ã§ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã® ACID ãããã㣠(ã¢ãããã¯æ§ãäžè²«æ§ãç¬ç«æ§ãèä¹ æ§) ããµããŒããããŠããŸããã¢ãããã¯æ§ã¯ããå šéšããŒããããã€ãŸãããã©ã³ã¶ã¯ã·ã§ã³ãå®å šã«å®è¡ããããäžåå®è¡ãããªããã®ã©ã¡ãããšãªãããšãæããŸããäžè²«æ§ã¯ããã£ãããã©ã³ã¶ã¯ã·ã§ã³ãå®è¡ãããããããŒã¿ãå¿ ãããŒã¿ããŒã¹ã¹ããŒãã«åŸãããšãæããŸããç¬ç«æ§ã¯ãåæçºçãããã©ã³ã¶ã¯ã·ã§ã³ãçžäºã«ç¬ç«ããŠå®è¡ãããããšãæããŸããèä¹ æ§ã¯ãäºæããªãã·ã¹ãã é害ãåé»ãçºçããŠããç°åžžçºçåã®æåŸã®ç¶æ ãŸã§åŸ©æ§ã§ããããšãæããŸãã | NoSQL ããŒã¿ããŒã¹ã§ã¯ãåŸæ¥ã® RDBMS ã® ACID ããããã£ã®äžéšããæ°Žå¹³æ¹åã«ã¹ã±ãŒã«ãããããæè»ãªããŒã¿ã¢ãã«ã«åãæ¿ããå ŽåããããããŸãããããã£ãŠãNoSQL ããŒã¿ããŒã¹ã¯ãåŸæ¥ã® RDBMS ã§ã¢ãŒããã¯ãã£äžã®èª²é¡ãçããå Žåã«ãããã©ãŒãã³ã¹ã®ããã«ããã¯ãã¹ã±ãŒã©ããªãã£ãéçšã®è€éãã管çã³ã¹ããšãµããŒãã³ã¹ãã®äžæãšãã£ãåé¡ãè§£æ¶ããã®ã«æé©ãªéžæè¢ã§ãã |
| ããã©ãŒãã³ã¹ | ããã©ãŒãã³ã¹ã¯éåžžããã£ã¹ã¯ãµãã·ã¹ãã ã«å·Šå³ãããŸããæåã®ããã©ãŒãã³ã¹ãå®çŸããã«ã¯ãã¯ãšãªãã€ã³ããã¯ã¹ãããŒãã«æ§é ã®æé©åãå¿ èŠã§ãã | ããã©ãŒãã³ã¹ã¯éåžžãåºç€ãšãªãããŒããŠã§ã¢ã¯ã©ã¹ã¿ã®ãµã€ãºããããã¯ãŒã¯ã¬ã€ãã³ã·ãŒãåŒã³åºãã¢ããªã±ãŒã·ã§ã³ã«äŸåããŸãã |
| æ¡åŒµæ§ | é«éãªããŒããŠã§ã¢ã䜿çšããããšã§ãç°¡åã«ã¹ã±ãŒã«ã¢ããã§ããŸãããªã¬ãŒã·ã§ãã«ããŒãã«ã忣ã·ã¹ãã ã§äœ¿çšããã«ã¯è¿œå ã®æè³ãå¿ èŠã«ãªããŸãã | äœã³ã¹ããªããŒããŠã§ã¢ã®åæ£ã¯ã©ã¹ã¿ãŒã䜿çšããŠã¹ã±ãŒã«ã¢ãŠãããããšã§ãã¬ã€ãã³ã·ãŒãå¢ããããšãªãã¹ã«ãŒããããåäžã§ããããã«èšèšãããŠããŸãã |
| API | ããŒã¿ã®ä¿åããã³ååŸã®ãªã¯ãšã¹ãã¯ãæ§é åã¯ãšãªèšèª (SQL) æºæ ã®ã¯ãšãªã䜿çšããŠäŒããããŸãããããã®ã¯ãšãªã¯ãRDBMS ã«ãã£ãŠè§£æãããå®è¡ãããŸãã | ã¢ããªã±ãŒã·ã§ã³éçºè ã¯ããªããžã§ã¯ãããŒã¹ã® API ã䜿çšããŠãã¡ã¢ãªå ã®ããŒã¿æ§é ã®ä¿åããã³ååŸãç°¡åã«è¡ãããšãã§ããŸããã¢ããªã±ãŒã·ã§ã³ã¯ããŒãã£ã·ã§ã³ããŒã«ãã£ãŠãããŒãšå€ã®ãã¢ãåã»ããããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã·ãªã¢ã©ã€ãºããããªããžã§ã¯ãã屿§ãå«ãåæ§é åããã¥ã¡ã³ãã調ã¹ãŸãã |
| ããŒã« | SQL ããŒã¿ããŒã¹ã§ã¯éåžžãããŒã¿ããŒã¹æåã®ã¢ããªã±ãŒã·ã§ã³ã®éçºãç°¡çŽ åããããã«ãäžé£ã®è±å¯ãªããŒã«ãæäŸãããŸãã | NoSQL ããŒã¿ããŒã¹ã§ã¯éåžžãã¯ã©ã¹ã¿ãŒããã³ã¹ã±ãŒãªã³ã°ã®ç®¡çããŒã«ãæäŸãããŸããåºç€ãšãªãããŒã¿ãžã®ãã©ã€ããªã€ã³ã¿ãŒãã§ã€ã¹ã¯ã¢ããªã±ãŒã·ã§ã³ã§ãã |
NoSQL ããŒã¿ããŒã¹ã«ã¯ãåæåãããã¥ã¡ã³ããã°ã©ããã¡ã¢ãªå
ããŒå€ã¹ãã¢ãšãã 4 ã€ã®ã¿ã€ãããããŸãããããã®ããŒã¿ããŒã¹ã¯ãäžè¬çã«ãããŒã¿ã®ä¿åãã¢ã¯ã»ã¹ãæ§é åã®æ¹æ³ãç°ãªã£ãŠãããããŸããŸãªãŠãŒã¹ã±ãŒã¹ãã¢ããªã±ãŒã·ã§ã³ã«åãããŠæé©åãããŠããŸãã
- åæåããŒã¿ããŒã¹ã¯ãããŒã¿è¡ã§ã¯ãªããããŒã¿åã®èªã¿æžãã«æé©åãããŠããŸããããŒã¿ããŒã¹ããŒãã«ã®åæåã¹ãã¬ãŒãžã¯ãå¿ èŠãªç·ãã£ã¹ã¯ I/O ãšããã£ã¹ã¯ããããŒãããå¿ èŠã®ããããŒã¿éãå€§å¹ ã«æžå°ããããšãããåæã¯ãšãªã®ããã©ãŒãã³ã¹ã«ãããŠéèŠãªèŠå ãšãªã£ãŠããŸãã
- ããã¥ã¡ã³ãããŒã¿ããŒã¹ã§ã¯ãåæ§é åããŒã¿ãããã¥ã¡ã³ããšããŠä¿åã§ããŸããéåžžã¯ãJSON ãã©ãŒããããŸã㯠XML ãã©ãŒãããã§ä¿åãããŸããåŸæ¥ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšã¯ç°ãªããããããã® NoSQL ããã¥ã¡ã³ãã®ã¹ããŒãã¯äžå®ã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ããŒã¿ãæè»ã«æŽçãä¿åã§ããä»ã®æ©èœã䜿çšããéã«å¿
èŠãªã¹ãã¬ãŒãžãæžããããšãã§ããŸãã
- ã°ã©ãããŒã¿ããŒã¹ã«ã¯é ç¹ãšã蟺ãšåŒã°ããæåãªã³ã¯ãä¿åãããŸããã°ã©ãããŒã¿ããŒã¹ã¯ãSQL ãš NoSQL ã®äž¡æ¹ã®ããŒã¿ããŒã¹ã§æ§ç¯ã§ããŸããé ç¹ãšèŸºã«ã¯ããããé¢é£ããããããã£ããããŸãã
- ã¡ã¢ãªå
ããŒå€ã¹ãã¢ã¯ NoSQL ããŒã¿ããŒã¹ã§ãããèªã¿åãã®è² è·ã倧ããã¢ããªã±ãŒã·ã§ã³ã¯ãŒã¯ããŒã (ãœãŒã·ã£ã«ãããã¯ãŒãã³ã°ãã²ãŒã ãã¡ãã£ã¢ã®å
±æãQ&A ããŒã¿ã«ãªã©) ãèšç®éã®å€ãã¯ãŒã¯ããŒã (ã¬ã³ã¡ã³ããŒã·ã§ã³ãšã³ãžã³ãªã©) ã«æé©åãããŠããŸããã¡ã¢ãªå
ãã£ãã·ã¥ã¯ãã¢ã¯ã»ã¹ã®ã¬ã€ãã³ã·ãŒãäœãããããã«ããŒã¿ã®éèŠãªéšåãã¡ã¢ãªå
ã«ä¿åããããšã§ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããŸãã
| SQL |
MongoDB (NoSQL) | DynamoDB (NoSQL) | Cassandra (NoSQL) | Couchbase (NoSQL) |
| ããŒãã« | ã³ã¬ã¯ã·ã§ã³ | ããŒãã« | ããŒãã« | ããŒã¿ãã±ãã |
| è¡ | ããã¥ã¡ã³ã |
é ç® | è¡ | ããã¥ã¡ã³ã |
| å |
ãã£ãŒã«ã | 屿§ | å | ãã£ãŒã«ã |
| ãã©ã€ããªã㌠|
ObjectId |
ãã©ã€ããªã㌠| ãã©ã€ããªã㌠| ããã¥ã¡ã³ã ID |
| ã€ã³ããã¯ã¹ | ã€ã³ããã¯ã¹ | ã»ã«ã³ããªã€ã³ããã¯ã¹ | ã€ã³ããã¯ã¹ |
ã€ã³ããã¯ã¹ |
| 衚瀺 | 衚瀺 | ã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ | ãããªã¢ã©ã€ãºããã¥ãŒ | 衚瀺 |
| ãã¹ããããããŒãã«ãŸãã¯ãªããžã§ã¯ã |
åã蟌ãŸããããã¥ã¡ã³ã | ããã | ããã | ããã |
| é
å |
é å | ãªã¹ã | ãªã¹ã | ãªã¹ã |
Amazon DynamoDB ã¯ç°¡åã«äœ¿çšéå§ã§ããŸããå
¥éã¬ã€ãã䜿çšãããšããããæ°åã®ã¯ãªãã¯ã§æåã® DynamoDB ããŒãã«ãäœæã§ããŸãã
ãŸããRDBMS ãã Amazon DynamoDB ãžç§»è¡ããããã®ãã¹ããã©ã¯ãã£ã¹ã®ãã¯ã€ãããŒããŒãããŠã³ããŒãããŠãRDBMS ãã DynamoDB ã«ã¯ãŒã¯ããŒããç§»è¡ããããã®ãã¹ããã©ã¯ãã£ã¹ãåŠç¿ã§ããŸãã

