ã°ããŒãã«ãåŸæãšããåé¡ã®è§£æ±ºã«ã°ããŒãã«ã䜿çšãããšãåªããçµæãéæã§ããŸããçç£æ§ã®åäžããŸãã¯åé¡ã®è§£æ±ºã®ç°¡çŽ åã®ãããã (
ã°ããŒãã«ã¯ããŒã¿ãä¿åããã³åŠçããããã®ç¹å¥ãªæ¹æ³ã§ãããSQL ã®ããŒãã«ãšã¯ãŸã£ããç°ãªããŸãã圌ã㯠1966 幎ã«ãã®èšèªã§ç»å ŽããŸããã
ææ°ã® DBMS ã®ã°ããŒãã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ããã®ã³ã°ãã¬ããªã±ãŒã·ã§ã³ãããã³ããŒãã£ã·ã§ãã³ã°ããµããŒãããŸãããããã®ããããã䜿çšãããšãææ°ã§ä¿¡é Œæ§ã®é«ããåæ£åã®é«éã·ã¹ãã ãæ§ç¯ã§ããŸãã
ã°ããŒãã«ã¯ãªã¬ãŒã·ã§ãã« ã¢ãã«ã«éå®ããŸããããããã«ãããç¹å®ã®ã¿ã¹ã¯ã«æé©åãããããŒã¿æ§é ãèªç±ã«éçºã§ããŸããå€ãã®ã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠãã°ããŒãã«ã®è³¢ã䜿çšã¯ãŸãã«ç§å¯å µåšãšãªãããªã¬ãŒã·ã§ãã« ã¢ããªã±ãŒã·ã§ã³éçºè ã倢èŠãããšããã§ããªãããã©ãŒãã³ã¹ãå®çŸããŸãã
ããŒã¿ãä¿åããæ¹æ³ãšããŠã®ã°ããŒãã«ã¯ãé«ã¬ãã«ãšäœã¬ãã«ã®äž¡æ¹ã®å€ãã®ææ°ã®ããã°ã©ãã³ã°èšèªã§äœ¿çšã§ããŸãããããã£ãŠããã®èšäºã§ã¯ãã°ããŒãã«èšèªã®å
ãšãªã£ãèšèªã§ã¯ãªããã°ããŒãã«èšèªã«ç¹ã«çŠç¹ãåœãŠãŸãã
2. ã°ããŒãã«ã®ä»çµã¿
ãŸãã¯ã°ããŒãã«ã®ä»çµã¿ãšãã®åŒ·ã¿ãç解ããŸããããã°ããŒãã«ã¯ããŸããŸãªèŠç¹ããèŠãããšãã§ããŸããèšäºã®ãã®éšåã§ã¯ãããããæšãšããŠèŠãŠãããŸãããããã¯éå±€åããŒã¿ ãŠã§ã¢ããŠã¹ã®ãããªãã®ã§ãã
ç°¡åã«èšããšãã°ããŒãã«ã¯æ°žç¶çãªé
åã§ãããã£ã¹ã¯ã«èªåçã«ä¿åãããé
åã
ããŒã¿ãä¿åããããã«ããã»ã©åçŽãªãã®ãæ³åããã®ã¯å°é£ã§ããã³ãŒã (COS/M èšèª) ã§ã¯ãã·ã³ãã«ã®ã¿ãéåžžã®é£æ³é
åãšç°ãªããŸãã ^ ååã®åã«ã
ã°ããŒãã«ã«ããŒã¿ãä¿åããããã« SQL ã¯ãšãªèšèªãåŠã¶å¿ èŠã¯ãªããã¯ãšãªèšèªãæäœããããã®ã³ãã³ãã¯éåžžã«ç°¡åã§ããããã㯠1 æéã§ç¿åŸã§ããŸãã
æãåçŽãªäŸããå§ããŸãããã 2 ã€ã®æãæã€åäžã¬ãã«ã®ããªãŒãäŸã¯ COS ã§æžãããŠããŸãã
Set ^a("+7926X") = "John Sidorov"
Set ^a("+7916Y") = "Sergey Smith"
æ
å ±ãã°ããŒãã« (Set ã³ãã³ã) ã«æ¿å
¥ãããšã次㮠3 ã€ã®ããšãèªåçã«è¡ãããŸãã
- ããŒã¿ããã£ã¹ã¯ã«ä¿åããŸãã
- 玢åŒä»ãã æ¬åŒ§å ã¯ã㌠(è±èªæç®ã§ã¯ãäžä»ãæåã) ã§ãããçå·ã®å³åŽã¯å€ (ãããŒãå€ã) ã§ãã
- 䞊ã¹æ¿ã ããŒã¿ã¯ããŒã«ãã£ãŠãœãŒããããŸããå°æ¥ãé åãèµ°æ»ãããšããæåã®èŠçŽ ã¯ãSergey Smithãã2 çªç®ã®èŠçŽ ã¯ãJohn Sidorovãã«ãªããŸããã°ããŒãã«ãããŠãŒã¶ãŒã®ãªã¹ããåãåããšããããŒã¿ããŒã¹ã¯ãœãŒãã«æéã浪費ããŸãããããã«ãååšããªãããŒãå«ãä»»æã®ããŒããå§ãŸããœãŒãããããªã¹ãã®åºåãèŠæ±ã§ããŸã (åºåã¯ãååšããªãããŒã®åŸã«æ¥ãæåã®å®éã®ããŒããå§ãŸããŸã)ã
ããããã¹ãŠã®æäœã¯ä¿¡ããããªãã»ã©è¿
éã«è¡ãããŸããç§ã®èªå®
ã®ã³ã³ãã¥ãŒã¿ãŒã§ã¯ãåäžããã»ã¹ã§æ倧 750 æ¿å
¥/ç§ã®å€ãååŸããŠããŸããããã«ãã³ã¢ããã»ããµã§ã¯ãå€ã¯æ¬¡ã®å€ã«éããŸã
ãã¡ãããæ¿å
¥é床èªäœã¯ããŸãæå³ããããŸãããããšãã°ã次ã®ããã«éåžžã«è¿
éã«æ
å ±ãããã¹ã ãã¡ã€ã«ã«æžã蟌ãããšãã§ããŸãã
- ã°ããŒãã«ã®æ倧ã®åŒ·ã¿ã¯ãæ°ããããŒããæ¿å ¥ã§ããé床ã§ãã
- ã°ããŒãã«å ã®ããŒã¿ã«ã¯åžžã«ã€ã³ããã¯ã¹ãä»ããããŸãã 1 ã€ã®ã¬ãã«ã§ããããªãŒã®å¥¥æ·±ãã§ãããããã暪æããã®ã¯åžžã«é«éã§ãã
ã°ããŒãã«ã«ç¬¬ 2 ã¬ãã«ãšç¬¬ 3 ã¬ãã«ã®ãã©ã³ããããã«ããã€ãè¿œå ããŠã¿ãŸãããã
Set ^a("+7926X", "city") = "Moscow"
Set ^a("+7926X", "city", "street") = "Req Square"
Set ^a("+7926X", "age") = 25
Set ^a("+7916Y", "city") = "London"
Set ^a("+7916Y", "city", "street") = "Baker Street"
Set ^a("+7916Y", "age") = 36
ã°ããŒãã«ã«åºã¥ããŠãã«ãã¬ãã« ããªãŒãæ§ç¯ã§ããããšã¯æããã§ããããã«ãæ¿å
¥äžã®èªåã€ã³ããã¯ã¹äœæã«ãããã©ã®ããŒããžã®ã¢ã¯ã»ã¹ãã»ãŒç¬æã«è¡ãããŸãããŸããããªãŒã®ã©ã®ã¬ãã«ã§ãããã¹ãŠã®ãã©ã³ããããŒã«ãã£ãŠãœãŒããããŸãã
ã芧ã®ãšãããæ
å ±ã¯ããŒãšå€ã®äž¡æ¹ã«ä¿åã§ããŸããããŒã®åèšé· (ãã¹ãŠã®ã€ã³ããã¯ã¹ã®é·ãã®åèš) ã¯ã
ããäžã€èå³æ·±ãç¹ããããŸããäžäœã¬ãã«ã®ããŒãã®å€ãæå®ããã«ããªãŒãæ§ç¯ã§ããŸãã
Set ^b("a", "b", "c", "d") = 1
Set ^b("a", "b", "c", "e") = 2
Set ^b("a", "b", "f", "g") = 3
空ã®åã¯ãå€ãå²ãåœãŠãããŠããªãããŒãã§ãã
ã°ããŒãã«ãããããç解ããããã«ãã°ããŒãã«ãä»ã®ããªãŒ (åºã®ããªãŒããã¡ã€ã« ã·ã¹ãã åããªãŒ) ãšæ¯èŒããŠã¿ãŸãããã
ç§ãã¡ã«ãšã£ãŠæã銎æã¿ã®ããéå±€æ§é ãæã€ã°ããŒãã«äžã®ããªãŒããåºãéåã«çããæ®éã®æšããã¡ã€ã« ã·ã¹ãã ãšæ¯èŒããŠã¿ãŸãããã
åºæšã«èŠãããããã«ãèãå®ã¯æã®å
端ã«ãããããŸããã
ãã¡ã€ã« ã·ã¹ãã - æ
å ±ã¯ãã©ã³ãã®æ«å°Ÿ (å®å
šä¿®é£Ÿãã¡ã€ã«å) ã«ã®ã¿ä¿åãããŸãã
ãããŠããããã°ããŒãã«ããŒã¿æ§é ã§ãã
çžéç¹ïŒ
- å éšããŒã: ã°ããŒãã«å ã®æ å ±ã¯ããã©ã³ãã®çµç«¯ã ãã§ãªãããã¹ãŠã®ããŒãã«ä¿åã§ããŸãã
- å€éšããŒã: ã°ããŒãã«ã¯æã®å ã«å®çŸ©ãããå€ãå¿ èŠã§ãããFS ãšåºæšã«ã¯å®çŸ©ãããŠããŸããã
å
éšããŒãã®èŠ³ç¹ããèŠããšãã°ããŒãã«ã®æ§é ã¯ããã¡ã€ã« ã·ã¹ãã ã®ååããªãŒãåºæšã®æ§é ã®ã¹ãŒããŒã»ããã§ãããšèšããŸãããããã®ãããæè»ã«ã
äžè¬çã«ãã°ããŒãã«ãšããã®ã¯ã åããŒãã«ããŒã¿ãä¿åã§ããé åºä»ãããªãŒ.
ã°ããŒãã«ã®åããããæ·±ãç解ããããã«ããã¡ã€ã« ã·ã¹ãã ã®äœæè ãã°ããŒãã«ãšåæ§ã®ã¢ãããŒãã䜿çšããŠæ å ±ãä¿åããå Žåã«äœãèµ·ããããæ³åããŠã¿ãŸãããã
- ãã£ã¬ã¯ããªå ã® 1 ã€ã®ãã¡ã€ã«ãåé€ãããšããã®ãã£ã¬ã¯ããªã ãã§ãªããåé€ããã 1 ã€ã®ãã£ã¬ã¯ããªã®ã¿ãå«ãäžå±€ã®ãã£ã¬ã¯ããªããã¹ãŠèªåçã«åé€ãããŸãã
- ãã£ã¬ã¯ããªã¯å¿
èŠãããŸãããåã«ãµããã¡ã€ã«ãæã€ãã¡ã€ã«ãšãµããã¡ã€ã«ã®ãªããã¡ã€ã«ãååšããã ãã§ããæ®éã®æšã«äŸãããšãæã®äžã€äžã€ãæå®ã«ãªããŸãã
- README.txt ãã¡ã€ã«ãªã©ã¯å¿ èŠãªãå ŽåããããŸãããã£ã¬ã¯ããªã®å 容ã«ã€ããŠå¿ èŠãªæ å ±ã¯ãã¹ãŠããã£ã¬ã¯ã㪠ãã¡ã€ã«èªäœã«æžã蟌ãããšãã§ããŸãããã¹ç©ºéã§ã¯ããã¡ã€ã«åã¯ãã£ã¬ã¯ããªåãšåºå¥ã§ããªãããããã¡ã€ã«ã ãã§æžãŸãããšãã§ããŸããã
- ãã¹ãããããµããã£ã¬ã¯ããªãšãã¡ã€ã«ãå«ããã£ã¬ã¯ããªãåé€ããé床ã倧å¹
ã«åäžããŸãã Habré ã§ã¯ãäœçŸäžãã®å°ããªãã¡ã€ã«ãåé€ããã®ã«ã©ãã ãæéãããããé£ãããã«ã€ããŠã®èšäºãäœåºŠãæ²èŒãããŠããŸãã (
1 ,2 ïŒããã ããã°ããŒãã«äžã«ç䌌ãã¡ã€ã« ã·ã¹ãã ãäœæããå Žåã¯ãæ°ç§ãŸãã¯ãã®æ°åããããŸããèªå® ã®ã³ã³ãã¥ãŒã¿ãŒã§ãµãããªãŒã®åé€ããã¹ããããšãããHDD (SSD ã§ã¯ãªã) äžã® 1 å±€ããªãŒãã 96 äžãã 341 å XNUMX äžã®ããŒãã XNUMX ç§ã§åé€ãããŸãããããã«ãã°ããŒãã«ãå«ããã¡ã€ã«å šäœã§ã¯ãªããããªãŒã®äžéšãåé€ããããšã«ã€ããŠè©±ããŠããŸãã
ãµãããªãŒã®åé€ã¯ãã°ããŒãã«ã®ãã 1 ã€ã®åŒ·ã¿ã§ããããã«ã¯ååž°ã¯å¿
èŠãããŸããã ããã¯ä¿¡ããããªãã»ã©æ©ãèµ·ãããŸãã
ç§ãã¡ã®ããªãŒã§ã¯ãããã¯æ¬¡ã®ã³ãã³ãã§å®è¡ã§ããŸã 殺ããŸã.
Kill ^a("+7926X")
ã°ããŒãã«äžã§ã©ã®ãããªã¢ã¯ã·ã§ã³ãå©çšã§ããã®ããããããç解ããããã«ãçãè¡šã瀺ããŸãã
COS ã§ã°ããŒãã«ãæäœããããã®åºæ¬çãªã³ãã³ããšé¢æ°
ããŒã (ãŸã å®çŸ©ãããŠããªãå Žå) ãšããŒãå€ãžã®åå²ã®èšå®
ãµãããªãŒã®ã³ããŒ
ãµãããªãŒã®åé€
ç¹å®ã®ããŒãã®å€ãåé€ããŸããããŒãããåºãŠãããµãããªãŒã«ã¯è§ŠããŸãã
ããªãŒãå®å
šã«æšªæããããªãŒã®å¥¥æ·±ããŸã§é²ã¿ãŸã
ç¹å®ã®ããŒãã®ãã©ã³ãã暪æãã
ããŒããå®çŸ©ãããŠãããã©ããã®ç¢ºèª
ããŒãå€ãã¢ãããã¯ã«ã€ã³ã¯ãªã¡ã³ãããŸãã ACID ã®å Žåãèªã¿åããšæžã蟌ã¿ã®å®è¡ãåé¿ããŸããæè¿ãã«å€æŽããããšãæšå¥šãããŠããŸã
ãæž èŽããããšãããããŸããã質åã«ãçãããããŸãã
å 責äºé : ãã®èšäºããã³ããã«å¯Ÿããç§ã®ã³ã¡ã³ãã¯ç§ã®æèŠã§ãããã€ã³ã¿ãŒã·ã¹ãã ãºæ ªåŒäŒç€Ÿã®å ¬åŒèŠè§£ãšã¯äžåé¢ä¿ããããŸããã
延é·
åºæïŒ habr.com