# 失æããå¦ã¶RDBã®æ£ããæ©ãæ¹ - https://amzn.to/4e0CqfH

# 失æããå¦ã¶RDBã®æ£ããæ©ãæ¹ - https://amzn.to/4e0CqfH
â»2020å¹´6æã«å ¬éãããè¨äºã§ãã æ¥æ¬PostgreSQLã¦ã¼ã¶ä¼ã®çäºãåããååä¼ç¤¾Have Fun Techãèµ·æ¥ããæ½æ ¹å£®å¤§ï¼@soudai1025ï¼ã¨ç³ãã¾ããå æ ªå¼ä¼ç¤¾ãªãã«ã¬å¯ç¤¾é·å ¼CTOã§ããç´è¿ã§ã¯ãã失æããå¦ã¶ RDBã®æ£ããæ©ãæ¹ããå·çãã¾ããã ä»åã¯ãã¼ã¿ãã¼ã¹ããã¼ãã¨ãã¦ãé åãMySQLã¨PostgreSQLã®éããã¢ã³ããã¿ã¼ã³ã®è¦æ¥µããªã©ã®åºç¤ç¥èã«å ããåå¼·æ³ãªã©ããç´¹ä»ãã¾ãã RDBé¢é£ã®æ±äººæ¤ç´¢ã¯ãã¡ã ãã¼ã¿ãã¼ã¹ãå¦ã¶é åãã¨ã³ã¸ãã¢ç®ç·ã§èå¯ 1.ç¥èã®è²»ç¨å¯¾å¹æãé«ã ã¨ã³ã¸ãã¢ããã¼ã¿ãã¼ã¹ãå¦ã¶å©ç¹ã¨ãã観ç¹ããè¨ãã¨ããã¼ã¿ãã¼ã¹ã®ç¹å¾´ã¯å¯¿å½ãé·ããã¨ã¨ç§ã¯èãã¦ãã¾ãã Webã¢ããªã±ã¼ã·ã§ã³ã®çéã§ã¯1å¹´åä½ã§ãã¼ã¸ã§ã³ã¢ãããããæµè¡ã£ã¦ããè¨èªãå¤ãã£ã¦ãã¾ããã¨ãã¶ã©ã«ããã¾ããããã¼ã¿ãã¼ã¹ã¯10å¹´ã20å¹´ã¨ã
以ä¸ã®æç« ã¯ãMartin Fowler ã«ãã Domain Logic and SQLã®æ¥æ¬èªè¨³ã§ããã ãã¼ã¿ãã¼ã¹æåã½ããã¦ã§ã¢éçºè ã¨ã¡ã¢ãªä¸(in-memory)ã¢ããªã±ã¼ã·ã§ã³ã½ããã¦ã§ã¢éçºè ã¨ã®éã®ã®ã£ããã¯ãããæ°åå¹´ãå¾ã ã«åºãã£ã¦ãã¦ããããã®ã®ã£ãããåå ã§ããã¼ã¿ãã¼ã¹ã®æ©è½(SQLãã¹ãã¢ãããã·ã¼ã¸ã£)ãã©ã®ããã«æ±ãã°ããã®ãã¨ããè°è«ãæ°å¤ãå·»ãèµ·ãã£ã¦ãããããã§ã¯ããã¸ãã¹ãã¸ãã¯ã SQL ã«ç½®ãã¹ãããããã¨ãã¡ã¢ãªä¸ã®ã³ã¼ãã«ç½®ãã¹ããã¨ãã£ãåé¡ã«ã¤ãã¦ã主ã«ããã©ã¼ãã³ã¹ã¨æ´æ°æ§ã®è¦³ç¹ããèå¯ãè¡ããèå¯ã«ã¯ç°¡åãªä¾ã使ãããSQL ã¯ã¨ãªã¯ãã£ããã¨ãããã®ï¼rich SQL queriesï¼ãç¨ããã®ã§æªããããã ã¨ã³ã¿ã¼ãã©ã¤ãºã¢ããªã±ã¼ã·ã§ã³ï¼è¨³æ³¨ï¼ä»¥ä¸ãEAï¼æ§ç¯ã«é¢ããæ¬ï¼ç§ã®è¿èãP of EAAããªã©ï¼ãèªãã¨ããã¸ãã¯
ã¯ããã« ã¿ã¤ãã«ã®ã¨ãããRDBã®ãã¼ã¿ã¢ããªã³ã°ã»ãã¼ãã«è¨è¨ãè¡ãéã«åèã«ãã¦ããèãæ¹ã¨é¢é£è³æãã¾ã¨ãã¾ããã P.S. ãªãã¨æ¬è¨äºå ã§ããã¤ãåèã¨ãã¦æãããã¦ããã£ã¦ããå¢ç°ããã»ãã¨ãã ãããã»å¥¥éããã»ãã¼ã ãããããã³ã¡ã³ãããã ããã¨ãã§ãã¾ããã æ¬å½ã«ãããã¨ããããã¾ãã åæ RDBãæ¡ç¨ããã®ã¯äºå®ãç¡é§ãªãæ£ããè¨é²ãããã æ£è¦åããã©ã³ã¶ã¯ã·ã§ã³ãå¶ç´ã¨ãã¼ã¿æ´åæ§ åºæ¬çã«ã¯å§ãã«çæ³ã¨ãã¦éåè«ã»ãªã¬ã¼ã·ã§ãã«ã¢ãã«ã«åºã¥ãã¦æ£è¦åãèã(è«çè¨è¨)ãããã©ã¼ãã³ã¹ãªã©ã®ç¾å®åé¡ã«å¯¾ãã¦æãåããã¤ãã¦ãã(ç©çè¨è¨) å¶ç´ãæ大éå©ç¨ãã cf: âP91ã âP.29,41 âP56ã â5ç« âP347ï½ æ å ±ã¨ãã¼ã¿ ãã¼ã¿ï¼åãªãäºå®ã®å¤âãããæ°¸ç¶åãã¦èãããã®ãRDB æ å ±ï¼ãã¼ã¿ããçã¿åºãããæå³ãç®çã®ãããã®âRDBã
ãã¼ã¿ããã¼ã¸ã£ ãã®ã¹ãããã§ãã¯ã¨ãªããã¼ã¸ã£ã¯ã¯ã¨ãªãå®è¡ããã®ã§ããã¼ãã«ã¨ã¤ã³ããã¯ã¹ãããã¼ã¿ãåå¾ããå¿ è¦ãããã¾ããããã§ãã¼ã¿ããã¼ã¸ã£ã«å¯¾ãã¦ãã¼ã¿ãåå¾ããããè¦æ±ããã®ã§ãããããã§æ¬¡ã®2ã¤ã®åé¡ãçºçãã¾ãã ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã¢ãã«ã使ç¨ãã¦ãã¾ãããã®å ´åãããã¤ã§ãã»ã©ããªãã¼ã¿ãåå¾ã§ãããã¨ãããµãã«ã¯ããã¾ãããã©ããå¥ã®å ´æã§ãããã«æ ¼ç´ããã¦ãããã¼ã¿ãåæã«ä½¿ç¨ãããæ´æ°ããããã¦ããå¯è½æ§ãããããã§ãã ãã¼ã¿ã®åå¾ã¯ããã¼ã¿ãã¼ã¹å ã§å®è¡ããå¦çã®ä¸ã§æãæéã®ããããã® ã§ããå¾ã£ã¦ãã¼ã¿ããã¼ã¸ã£ã¯ãããè¦è¶ãã¦ãã¡ã¢ãªãããã¡ã«ãã¼ã¿ãåå¾ãã¦ããããããä¿æããªããã°ãªãã¾ããã ãã®ã»ã¯ã·ã§ã³ã§ã¯ããªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ããã®2ã¤ã®åé¡ã«ã©ã対å¦ãã¦ãããã説æãã¾ãããªãããã¼ã¿ããã¼ã¸ã£ããã¼ã¿ã
ã¯ã©ã¤ã¢ã³ãããã¼ã¸ã£ ã¯ã©ã¤ã¢ã³ãããã¼ã¸ã£ã¯ãã¯ã©ã¤ã¢ã³ãã¨ã®éä¿¡ãæ±ãã¾ããã¯ã©ã¤ã¢ã³ãã¨ã¯ãï¼Webï¼ãµã¼ãã§ãã£ããããããã¯ã¨ã³ãã¦ã¼ã¶ãã¾ãã¯ã¨ã³ãã¢ããªã±ã¼ã·ã§ã³ã§ãã£ãããã¾ããããã§ã¯JDBCãODBCãOLE-DBã¨ãã£ãè¯ãç¥ãããä¸é£ã®APIãä»ãã¦ãã¼ã¿ãã¼ã¹ã«ã¢ã¯ã»ã¹ã§ããæ§ã ãªæ¹æ³ãæä¾ããã¦ãã¾ãã ã¾ãããã¼ã¿ãã¼ã¹ã¢ã¯ã»ã¹ã®ããã®å°ç¨ã®APIãæä¾ããã¦ãã¾ãã ãã¼ã¿ãã¼ã¹ã¨æ¥ç¶ããæé ã¯ä»¥ä¸ã®éãã§ãã ããã¼ã¸ã£ã¯æåã« èªè¨¼ãè¡ã ï¼ãã°ã¤ã³æ å ±ã¨ãã¹ã¯ã¼ãã®ç¢ºèªï¼ã次ã«ãã¼ã¿ãã¼ã¹ã«ã¢ã¯ã»ã¹ã§ãã 権é ãæã¡åããã¦ããããã§ãã¯ããããããã®ã¢ã¯ã»ã¹æ¨©ã¯DBAã«ãã£ã¦è¦å®ããã¦ããã ãã®å¾ãã¯ã¨ãªã管çã§ããããã»ã¹ï¼ãããã¯ã¹ã¬ããï¼ãå©ç¨å¯è½ããã§ãã¯ããã ãã¼ã¿ãã¼ã¹ã«é«è² è·ãããã£ã¦ããªããã©ããã確èªããã è¦æ±ããã¦ãããª
ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã話é¡ã«æããã¨ããç§ã¯ä½ãã足ããªãã¨æããã«ã¯ãããã¾ããããã¼ã¿ãã¼ã¹ã¯ããããã¨ããã§ä½¿ããã¦ããããã®ç¨®é¡ããå°è¦æ¨¡ã§ä¾¿å©ãªSQLiteãããã¯ãã«ãªTeradataã¾ã§æ§ã ã§ãããããããããã©ãããä»çµã¿ã§æ©è½ãã¦ãããã説æãããã®ã¨ãªãã¨ããã®æ°ã¯ãããããã§ã¯ãªãã§ãããããä¾ãã°ããªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ ä»çµã¿ããªã©ã§æ¤ç´¢ãã¦ã¿ã¦ãã ããããããæ°ã®å°ãªããå®æã§ããã¨æãã¾ããããã«ãããã®è¨äºã¯çããã®ãã»ã¨ãã©ã§ããéã«ãè¿å¹´æµè¡ãã¦ããæè¡ï¼ããã°ãã¼ã¿ãNoSQLãJavaScriptãªã©ï¼ãæ¤ç´¢ããå ´åããããã®æ©è½ã詳ãã説æããè¨äºã¯ããããè¦ã¤ããã¨æãã¾ãã ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã¯ããã¯ã大å¦ã®ææ¥ãç 究è«æãå°éæ¸ãªã©ã§ããæ±ãããªããããªå¤ãã¦éå±ãªæè¡ãªã®ã§ããããï¼ ç§ã¯éçºè ã¨ãã¦ãç解ãã¦ããªããã®ã
18. ã¢ã¼ããã¯ã㣠ã¼ã¼ã¼ã¼ã¼ã¼ã¼ ãã¼ã¿ã¢ãã« ãã¹ã¿å P2På ãã®ä» ãªã¬ã¼ã·ã§ãã« RDBå ¨è¬ pgpool2ãªã© ãã¼ããªã¥ã¼ Hibari Dynamo Riak Memcached Redis ã«ã©ã æå Bigtable HBase Cassandra ããã¥ã¡ã³ãæå MongoDB CouchDB ã°ã©ãæå Neo4J Inï¬niteGraph 19. ã¢ã¼ããã¯ã㣠ã¼ã¼ã¼ã¼ã¼ã¼ã¼ ãã¼ã¿ã¢ãã« ãã¹ã¿å P2På ãã®ä» ãªã¬ã¼ã·ã§ãã« RDBå ¨è¬ pgpool2ãªã© ãã¼ããªã¥ã¼ Hibari Dynamo Riak Memcached Redis ã«ã©ã æå Bigtable HBase Cassandra ããã¥ã¡ã³ãæå MongoDB CouchDB ã°ã©ãæå Neo4J Inï¬niteGraph
ããã°ãæããè«çåé¤ãMySQLã§å¤§ç¦å¸³åãã¼ã¿ãã¼ã¹ãå®ç¾ãããã¼ã«ãdaifukuããä½ã£ã¦ã¿ã å ã®ã¨ã³ããªãè«çåé¤ã¯ãªããçãæªããããã§æ¸ããã¨ããããã¼ã¿ãã¼ã¹ã«å¯¾ãã¦è¡ãããæä½ãè¨é²ããå¿ è¦ã«å¿ãã¦åç §ãããåãæ¶ããããããã¨ããè¦æ±ã¯è³æ¥µå¦¥å½ãªãã®ã§ãããå¤ãã®RDBã¯ããã®ããã«ç°¡åã«ä½¿ããä»çµã¿ãæä¾ãã¦ãã¾ããã daifukuã¯ãRDBã«å¯¾ãã¦å ããããå¤æ´ããã©ã³ã¶ã¯ã·ã§ã³åä½ã§RDBå ã«JSONã¨ãã¦è¨é²ããããã®ã¹ãã¢ããããªã¬ãçæããã³ãã³ãã§ãã % daifuku dbname tbl1 tbl2 > setup.sql ã®ããã«å®è¡ããã¨ãæå®ããããã¼ãã«ï¼ããã§ã¯tbl1ã¨tbl2ï¼ã«ã»ãããã¹ãããªã¬ããæ´æ°ãã°ãè¨é²ããããã®ãã¼ãã«ãdaifuku_logããçæããCREATE TABLEã¹ãã¼ãã¡ã³ããªã©ãå¿ è¦ãªSQLæãset
ä»æ¥æã¤ãã§è¦ãã¨ã³ããªã¼ãããã§ããã qiita.com è«çåé¤ã®å¼å®³ã¯è²ã ãªã¨ããã§è¨ããã¦ãããã©ãåã®è¶³ããªãé ã§ç解ãã¦ããæã«ããã¨ãäºã¤ã®å¤ããæããªãåé¤ãã©ã°çãªãã®ã¯ã«ã¼ãã£ããªãã£ãäºã ã§æ¤ç´¢æ¡ä»¶ã«ã¤ãã¦ãæ§è½ä¸çã«ããããªãããæå³ããªãã¨ãããã¨ã§ãã è«çåé¤ãå®å ¨ã«æªã ã¨ã¯è¨ãã¾ããããè«çåé¤ã極åæããã人ãã¡ã¯ãåºæ¬çã«ãã¼ã¿ãã®ãã®ãåé¤ããããããã¯è«çåé¤ã¨ããã®ã¯ã¾ã è¦ä»¶çã«æªç¢ºå®ãªè¦ç´ ãé ããã¦ãããã¨ã示ããã©ã°ã§ããã¨èãã¦ããããã§ãã åãITã®æ¥çã§ãã£ãªã¢ãã¹ã¿ã¼ããã¦ãã2å¹´ç®ãããã«é ç½®ãããããã¸ã§ã¯ãã§ã¯TååERææ³ã¨ããã®ããã¼ã¹ã«ãããã¼ãã«è¨è¨ããã¦ãã¦ãããã§ããªãéããããããã§ããããã®æã«ã¯ã ããããã®ãããªååãå©ããã¾ãã¾ããã ãã¼ãã«ã«ç¶æ ãæãããªã 究極ã«ã¯æ©æ¢°ãèªèãããã¼ã¨ã人éã«ã¨ã£ã¦æ
Visual Studio Users Community Japan #1 ã§çºè¡¨ããè³æã«ãªãã¾ãã https://vsuc.connpass.com/event/143114/
ã©ã³ãã³ã°
é害
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}