翻蚳è ã«ããã¡ã¢ã
ããŒã¿ããŒã¹ã®äžçã«ã¯èå³æ·±ãæè¡ã MUMPSããããŸãã ãã®ããã°ã©ãã³ã°èšèªãšããŒã¿ã¢ã¯ã»ã¹ã¯ãæ°å幎ã«ããã£ãŠç¥ãããŠããããããã°ãããŠãããå®çžŸã®ããæ人åãæè¡ã§ãã
ããšãã°ãSQLãšBASICãæ¯èŒã§ããå ŽåãMUMPSã¯Cã«äŒŒãŠããŸããæé«ã®ããã©ãŒãã³ã¹ãæè»æ§ãæ±çšæ§ãæäŸããæãè€éãªããŒã¿æ§é ãäœæã§ããŸãã
ããã¯ãèšäºãMUMPS Globalsã䜿çšãã極端ãªããŒã¿ããŒã¹ããã°ã©ãã³ã°ãã®æåã®éšåã®ç¿»èš³ã§ãã ã³ãã¥ããã£ã«ãšã£ãŠèå³æ·±ããšæãããå Žåã¯ã2çªç®ã®éšåã®ç¿»èš³ãç¶ããŸãã
第1ç« ã°ããŒãã«ïŒãªã¬ãŒã·ã§ãã«ã¢ãããŒãã®ä»£æ¿
MUMPSãã¯ãããžãŒã®çã®æ žå¿ã¯ã¹ãã¬ãŒãžãšã³ãžã³ã§ãã ããã¯ãã°ããŒãã«å€æ°ãŸãã¯ïŒããäžè¬çãªååïŒã°ããŒãã«ãšåŒã°ãããã®ã«åºã¥ããŠããŸãã ã°ããŒãã«ã¯ä¿¡ããããªãã»ã©åçŽãªæŠå¿µã§ãããä¿¡ããããªãã»ã©åŒ·åã§ãã
å€ãã®äººã ã¯ã°ããŒãã«ãåãå ¥ããŸããã ãããã¯åå§çãªæ§é ã§ãã ãããã«ã¯ãããŸãšããªãããŒã¿ããŒã¹ã«ãã£ãŠæäŸãããã³ã³ãããŒã«ãã»ãŒããã£ãããããŸãã¯é«åºŠãªæ©èœã¯ãããŸããã ãã®çµæãMUMPSã¯å€ãã®å Žåã圹ã«ç«ããªããäžé©åãªããŸãã¯äžè¬çã«äžé©åãªã·ã¹ãã ãšããŠåæ¹èšå ¥ãããŸãã ãããè¡ããšãã·ã³ãã«ã§äŸ¿å©ã§éåžžã«æè»ãªããŒã¿ã¹ãã¬ãŒãžã¡ã«ããºã ãç¡èŠããŸãã çç·Žããæã§ã¯ãéå°ãªè·ç©ãèŠæ±ã®ãªããªãœãŒã¹ããªããããä¿¡ããããªãã»ã©ã®èªç±ãåŸãããŸãã äžé©åãªæã§ãåãããšãçœå®³ã«ã€ãªããå¯èœæ§ããããŸãã ããã¯ãããªãŒã¯ã©ã€ãã³ã°ãªã©ã®æ¥µç«¯ãªã¹ããŒãã«å°ã䌌ãŠããŸãã ãæ¬ç©ã®ãã¢ã¹ãªãŒããããããå§ããã人ã¯ã»ãšãã©ããŸããããªããªããä¿éºãªãã§ç»å±±ãåŠçã§ãããªããããã¯ãã®å±±ãç»ãæãéããæãå¹æçã§æã楜ããæ¹æ³ã ããã§ãã ãã ããç»å±±çšå ·ã®ã¡ãŒã«ãŒã¯ããã®ã¹ããŒããæšå¥šããŸãããããã¯ãèªç€Ÿè£œåã®éèŠãæžããããšãæå³ããããã§ãã
ãã®ããããã£ã¬ã³ãžãåãå ¥ããŠãã¹ãããã¢ããããããªã¬ãŒã·ã§ãã«ããã³SQLã¢ãããŒã以å€ã«ããŒã¿ãŠã§ã¢ããŠã¹ãç·šæããä»ã®æ¹æ³ãããããšãèªããæºåãã§ããããæ·±ãæãäžããŸãããã
ããã¯ãã°ããŒããªãŒãŒã·ã§ã³ã®åºæ¬ãæããã«ããæåã®ç« ã§ãã 2çªç®ã®ç« ã§ã¯ãRDBMS / SQLããã°ã©ããŒãç解ã§ããçšèªã§ã¢ããªã±ãŒã·ã§ã³ã«çŠç¹ãåœãŠãŸãã å¿ èŠã«å¿ããŠã第2ç« ã«çŽæ¥ç§»åããåŸã§ãã®ããã¹ãã«æ»ã£ãŠåºæ¬ãç解ããããšãã§ããŸãã
ãã¹ãŠã®MUMPSã·ã¹ãã ãšãã®ææ°ã®å€æŽïŒCachéãªã©ïŒã¯ãã¹ãã¬ãŒãžã¡ã«ããºã ã®åºç€ãšããŠã°ããŒãã«ã䜿çšããŸãã å€ãã®ææ°ã®MUMPSã·ã¹ãã ãæ¡åŒµæ©èœã¯ãäž»èŠãªã°ããŒãã«ã³ã³ã¹ãã©ã¯ããããã銎æã¿ã®ãããå€èŠ³ã«ããŸãã ããšãã°ãã°ããŒãã«ã§ã¯ããªããžã§ã¯ãããªã¬ãŒã·ã§ãã«ããŸãã¯XMLããŒã¿ããŒã¹ãšããŠæ©èœãããã¥ãŒãäœæã§ããŸãã ããã«ãçè«çã«ã¯ãã°ããŒãã«ã«åºã¥ããåãç©çããŒã¿ããŒã¹ãè«ççã«è¡šçŸãããããã®åœ¢åŒã®1ã€ã§ïŒãããŠäžåºŠã«ïŒäœ¿çšããããšãã§ããŸãã ãã®çµæãããŒã«ãã°ããŒãã«ã«åºã¥ããŠããããšãç¥ããªãå€ãã®éçºè ãç»å ŽããŸããã 圌ãã¯ãããäœã§ãããããããã©ã®ããã«æ©èœããã©ã®ããã«äœ¿çšãããããç¥ããŸããã ãã®ããã¹ãã¯ãããªãããã®ç§å¯ãåŠã¶ã®ãå©ããŸãããããŠãããªããåæããããšãéåžžã«é åçãªäžçã«é¡ã£ãŠããŸãã
ã§ã¯ãã°ããŒãã«ãšã¯äœã§ããïŒ
èŠããã«ãã°ããŒãã«ãšã¯ãããã¹ãå€ãå«ããå®æ°ãã¹ããŒã¹ããã€ãããã¯ãå€æ¬¡å é åã§ãã MUMPSã§ã¯ããããŒã«ã«ã¢ã¬ã€ããšåŒã°ãããRAMã®ã¿ã«å«ãŸããæ°žç¶ãã£ã¹ã¯ãšå€æ¬¡å ã¢ã¬ã€ã®äž¡æ¹ã䜿çšã§ããŸãã
å€ãã®ã·ã¹ãã ãšã¯ç°ãªããMUMPSã§ã¯äž¡æ¹ã®è±æ°åã€ã³ããã¯ã¹ã䜿çšã§ããŸãã MUMPSã§ã¯ãåæ§ã®é åã䜿çšã§ããŸãã
Employee(company,country,office,employeeNumber) = employeeDetails
ããã³å¥ã®ãšã³ããªïŒ
Employee(âMGWâ,âUKâ,âLondonâ,1) = âRob Tweed`Director`020 8404 3054â
ãã®äŸã§ã¯ãåŸæ¥å¡æ å ±ïŒååã圹è·ãé»è©±çªå·ïŒãæ§æããããŒã¿èŠçŽ ã¯ãåºåãèšå·ãšããŠããã¯ã¹ã©ãã·ã¥æåãšçµã¿åãããŠäºãã«æ¥ç¶ãããŠããŸãã MUMPSã¯ãæ§é ã®æŽçæ¹æ³ãå¶åŸ¡ãŸãã¯å¶åŸ¡ããŸãããã¬ã³ãŒããèšè¿°ããã¹ããŒããŸãã¯ããŒã¿ãã£ã¯ã·ã§ããªã¯ãããŸããã ããã«ãããä¿¡ããããªãã»ã©ã®æè»æ§ãåŸãããéçºãã¹ããŒãã¢ããããŸãã é åã¬ã³ãŒãã®ããã¹ãå€ãä»»æã®æ°ã®ããã£ãŒã«ããã«åå²ãã1ã€ä»¥äžã®ããŒã¿åºåãæåãä»»æã«å²ãåœãŠãããšãã§ããŸãã åäžã®é åã¬ã³ãŒãã®æ倧åèšé·ã¯ãMUMPSã®å®è£ ã«äŸåããŸãããCachéã§ã¯æ倧32kã§ãã æååã®é·ãã¯å¯å€ã§ãããç解ã§ããããã«ãåºåãæåã®ååšã«åºã¥ããŠãåã ã®ãã£ãŒã«ãã®é·ããå¯å€ã§ãã ããã«ãããMUMPSã°ããŒãã«ã¯ïŒããŒãã«ãšã¯ç°ãªãïŒããŒã¿ãæ ŒçŽããããã®éåžžã«å¹ççãªã¡ã«ããºã ã«ãªããŸããMUMPSãã¡ã€ã«ã«ã¯ã空ã®æªäœ¿çšã®ã¹ããŒã¹ãæ ŒçŽãããã£ã¹ã¯ã¹ããŒã¹ã¯å®è³ªçã«ãããŸããã
äžèšã®äŸã§ã¯ãåŸæ¥å¡ã¬ã³ãŒãã¯ãããŒã«ã«é åããšåŒã°ãããã®ã«å«ãŸããŠããŸãã MUMPSã»ãã·ã§ã³ãçµäºãããšãããŒãžãŸãã¯ã»ãã·ã§ã³ãæ¶ããåŸã®PHPé åã®ããã«ãé åãæ¶ããŸãã
ããã楜ãã¿ãŸãããïŒ åŸæ¥å¡ã¬ã³ãŒããæ°žç¶çã«ãã€ãŸãã°ããŒãã«ã®åœ¢åŒã§ãã£ã¹ã¯ã«ä¿åããã«ã¯ãåã«é ååã®åã«ã^ããè¿œå ããŸãã
^Employee(company,country,office,employeeNumber) = employeeDetails
äŸïŒ
^Employee(âMGWâ,âUKâ,âLondonâ,1) = âRob Tweed`Director`020 8404 3054â !
ã°ããŒãã«ã«ãã®ãããªèŠçŽ ãäœæããã«ã¯ãMUMPS "set"ã³ãã³ãã䜿çšããå¿ èŠããããŸãã
set ^Employee(âMGWâ,âUKâ,âLondonâ,1) = âRob Tweed`Director`020 8404 3054â
MUMPSã§æãæ··ä¹±ãæãã®ã¯ãã³ãã³ãã®äž»èŠéšåã1æåïŒå°æåãŸãã¯å€§æåïŒã«æžããããšãã§ããããšã§ãããã®ãããäžèšã®ã³ãã³ãã®ä»£ããã«æ¬¡ã®ããã«è¡šç€ºãããããšããããããŸãã
s ^Employee(âMGWâ,âUKâ,âLondonâ,1) = âRob Tweed`Director`020 8404 3054â
ããã§ãMUMPSãçµäºããŠããèšé²ã¯æ¶ããŸãããããã£ã¹ã¯ã«æ®ããŸãã æ»ããã³ã«ãã€ã³ããã¯ã¹ä»ãã®ã°ããŒãã«ãä»ããŠãã£ã¹ã¯ãšã³ããªãèªã¿åãããšãã§ããŸãã
^Employee(âMGWâ,âUKâ,âLondonâ,1)
ã°ããŒãã«ããå€ãæœåºããŠå€æ°ã«å²ãåœãŠãã«ã¯ãéåžžããsetãã³ãã³ãã䜿çšããŸãã次ã«äŸã瀺ããŸãã
Set companyRecord= ^Employee(âMGWâ,âUKâ,âLondonâ,1)
companyRecordå€æ°ã«æååå€ãRob Tweed`Director`020 8404 3054ããå«ãŸããããã«ãªããŸãã
ã°ããŒãã«ã«ã¯å¿ èŠãªæ°ã®ã€ã³ããã¯ã¹ãå«ããããšãã§ãããããã®ã€ã³ããã¯ã¹ã¯ããã¹ããšæ°åïŒå®æ°ãŸãã¯æŽæ°ïŒã®ä»»æã®çµã¿åããã«ããããšãã§ããŸãã æååã€ã³ããã¯ã¹ã¯äºéåŒçšç¬Šã§å²ãå¿ èŠããããŸãããæ°å€ã€ã³ããã¯ã¹ã¯å²ãŸãªãã§ãã ããã
å®éãã»ãšãã©ã®MUMPSå®è£ ã«ã¯ã€ã³ããã¯ã¹ã®åèšé·ã«å¶éããããããå¢çãå®å šã«è¶ ããããšã¯ã§ããŸããã ãã ããèŠä»¶ã«ååãªã¹ããŒã¹ãããããšã確èªã§ããŸãã
ã°ããŒãã«ãããšã³ããªãåé€ããã«ã¯ãkillã³ãã³ãã䜿çšã§ããŸãã
Kill ^Employee(âMGWâ,âUKâ,âLondonâ,1)
å®éã«ã¯ãããã¯ãã¹ãŠã°ããŒãã«ã§ãã æ¬åœã®èª²é¡ã¯ããã®ãããªåå§çãªããŒã¿æ§é ãæ©èœãããããšã§ãã ããã«ã€ããŠã¯ãããã¥ã¡ã³ãã®æ®ãã®éšåã§èª¬æããŸãã ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®SQLããã°ã©ããŒããMUMPSããã°ã©ããŒã䜿çšããåæ§ã®ææ³ãšãã¥ãŒãç解ã§ããããã«ããããå®è¡ããããšããŸãã
MUMPSã§ã¯ãããŒã¿ããŒã¹èšèšæ¹æ³è«ããµããŒãããŠããªãããšã«æ³šæããŠãã ããã ããŒã¿ããŒã¹ã®ããžãã¯ãåäžæ§ããšã©ãŒã®æç¡ãç£èŠããå¶åŸ¡ããã³æ€èšŒããŒã«ãè¿œå ã§ããŸãã ããã¯ãéåžžã®DBMSãè¡ãäœæ¥ãè¡ãããšãæå³ããŸãã ãã ããæãäžè¬çãªã¿ã¹ã¯ãèªååããMUMPSããŒã¿ããŒã¹ãç°¡åã«ç®¡çã§ããããšã«ããã«æ°ä»ãã§ãããã
ã·ã³ãã«ãªéå±€æ§é ãäœæãã
ããšãã°ã次ã®ããã«ãåãã°ããŒãã«ã§è€æ°ã®ãã£ã¡ã³ã·ã§ã³ãåæã«äœ¿çšã§ããŸãã
^Employee(âMGWâ,âUKâ,âLondonâ) = 2 ^Employee(âMGWâ,âUKâ,âLondonâ,1) = âRob Tweed`Director`020 8404 3054â ^Employee(âMGWâ,âUKâ,âLondonâ,2) = âChris Munt`Director`01737 371457â
3ã€ã®ã€ã³ããã¯ã¹ã䜿çšããŠãç¹å®ã®ãªãã£ã¹ã®åŸæ¥å¡æ°ã瀺ãã4ã€ã¯ç¹å®ã®åŸæ¥å¡ã®èšé²ã瀺ããŸãã
ããã°ã©ããŒã¯ãç°ãªãã°ããŒãã«éã®ãªã³ã¯ã瀺ãå¿ èŠããããŸãã MUMPSã¯ãããã«äœ¿çšã§ããããã«èªå玢åŒä»ããæäŸãããçžäºåç §ããŸããã
é»è©±çªå·ã§ãã°ããéžæããããã«ã^ EmployeeTelephoneã°ããŒãã«ãäœæããŸããé»è©±çªå·ã¯ã€ã³ããã¯ã¹ã§ã^ Employeeã°ããŒãã«ã€ã³ããã¯ã¹ã¯åŸæ¥å¡ã¬ã³ãŒãã瀺ããŸãã
^EmployeeTelephone(â020 8404 3054) = âMGW`UK`London`1â ^EmployeeTelephone(â01737 371457â) = âMGW`UK`London`2â
ãã®äŸã§ã¯ãåé»è©±çªå·ã«æ ŒçŽãããŠããå€ã«ã¯ã察å¿ããåŸæ¥å¡ã¬ã³ãŒãã瀺ããªã³ã¯ã€ã³ããã¯ã¹ãå«ãŸããŠããŸãã é»è©±çªå·ãããã£ãŠããå Žåã¯ãéã¢ãã¹ãããã£ïŒåºåãèšå·ïŒã䜿çšããŠããŒã¿ãåæããåŸæ¥å¡ã®ãã¹ã¿ãŒã¬ã³ãŒããæœåºããã ãã§ãã
äŸïŒ
S telNo=â020 8404 3054â S indexData=^EmployeeTelephone(telNo) S company=$piece(indexData,â`â,1) S country=$piece(indexData,â`â,2) S office=$piece(indexData,â`â,3) S employeeNo=$piece(indexData,â`â,4) S record=^Employee(company,country,office,employeeNo) S employee=$piece(record,â`â,1)
$ piece MUMPSé¢æ°ã䜿çšããŠå€ããã£ãŒã«ãã«åå²ããŠããããšã«æ³šæããŠãã ããã
MUMPSã®åªããæ©èœã®1ã€ã¯ãäºåã«äœã宣èšããå¿ èŠããªãããšã§ãã SQLã®äžçã§ã¯ãããŒã¿æ§é ãå€æŽããã«ã¯ãããŒãã«æ§é ïŒALTER TABLEãªã©ïŒãå€æŽããå¿ èŠããããŸãã MUMPSã§ã¯ãã°ããŒãã«ã®ãšã³ããªããã€ãã©ã®ããã«äœæãå€æŽãåé€ãããã決å®ããŸãããããã¯ãã¹ãŠããŠãŒã¶ãŒã®ã¿ãèªåçãã€åçã«å¶åŸ¡ããŸãã è¿œå ã®ã€ã³ããã¯ã¹ãããã£ãŒã«ããïŒããŒã¹ïŒããã¢ããŠã³ã¹ãªã©ã®ããšãªããã€ã§ãã°ããŒãã«ã«è¿œå ã§ããŸãã å¥ã®ã°ããŒãã«ã®äœ¿çšãéå§ããå Žåã¯ããããéå§ããã ãã§åçã«äœæãããŸãã
ã°ããŒãã«ã§ã®ã¬ã³ãŒãã®äœæãèªã¿åããåé€
èŠããã«ãMUMPSã§ã¯ãã°ããŒãã«ã®ã¬ã³ãŒãã¯ãSetãã³ãã³ãã§äœæããã³ååŸããããKillââãã³ãã³ãã§åé€ãããŸãã
- ã°ããŒãã«ã§ãšã³ããªãäœæããŸãã
Set ^Employee(âMGWâ,âUKâ,âLondonâ,1)=âRob Tweed`Director`020 8404 3054â
ãã®ã³ãŒãã¯ãã°ããŒãã«ã«ã€ã³ããã¯ã¹ãäœæããã¬ã³ãŒãããã£ã¹ã¯ã«ä¿åããŸãã
- ã°ããŒãã«ããã¬ã³ãŒããèªã¿åã
Set data=^Employee(âMGWâ,âUKâ,âLondonâ,1)
ãã®ã³ãŒãã¯ãã°ããŒãã«ããèŠçŽ ãååŸãããdataããšåŒã°ããããŒã«ã«å€æ°ã«å€ãé 眮ããŸãã
- ã°ããŒãã«ããã¬ã³ãŒããåé€ããïŒ
kill ^Employee(âMGWâ,âUKâ,âLondonâ,1)
ãã®ã³ãŒãã¯ãæå®ãããã°ããŒãã«ãšã³ããªããã£ã¹ã¯ããããã«æ°žä¹ ã«åé€ããŸãã KillããŒã ã«ã¯æ³šæããŠãã ãã-䜿çšããã®ã¯éåžžã«ç°¡åã§ãéåžžã«å±éºã§ãã ã°ããŒãã«ã«ãããããå°ãªãã€ã³ããã¯ã¹ãæå®ãããšãå€æ°ã®ã€ã³ããã¯ã¹ã§ã€ã³ããã¯ã¹ä»ãããããã¹ãŠã®èŠçŽ ãåé€ããŸãã ã€ã³ããã¯ã¹ããŸã£ããæå®ããªãå Žåãã°ããŒãã«å šäœãåé€ããŸããäŸïŒ
Kill ^Employee(âMGWâ,âUKâ)
ãã®è¡ã¯ãã€ã®ãªã¹ã®ãã¹ãŠã®ãªãã£ã¹ã®ãã¹ãŠã®ã¬ã³ãŒããåé€ããŸã
Kill ^Employee
ãããŠããã®ã³ãã³ãã¯^ Employeeã°ããŒãã«å šäœãåé€ããŸã-å³åº§ã«ãæ°žä¹ ã«ãåæ¶äžèœã«ïŒããã¯ã¢ããããªãã£ãå ŽåïŒã
ã°ããŒãã«ãã€ãã¹
æãäžè¬çã«äœ¿çšãããæ©èœã®1ã€ã¯ãã°ããŒãã«ã®äžéšãŸãã¯ãã¹ãŠããã€ãã¹ããããšã§ãã ãŠãŒã¶ãŒã1ã€ã®ã¬ã³ãŒããéžæãŸãã¯ã«ãŠã³ãã§ãããªã¹ãã衚瀺ããããã«ãåŸæ¥å¡ã®ãã¹ãŠã®ã¬ã³ãŒããååŸããå¿ èŠããããšããŸãã ãããè¡ãã«ã¯ãMUMPS $ orderé¢æ°ã䜿çšããå¿ èŠããããŸãã $é åºé¢æ°ã¯MUMPSã®çç ã®1ã€ã§ãããããã䜿çšãããšãã°ããŒãã«ã«æ ŒçŽãããŠããããŒã¿ãé©ãã»ã©ç°¡åã«æäœã§ããŸãã
ãã®æ©èœã¯ããåŸæ¥ã®ãããŒã¿ããŒã¹ã®ããã°ã©ããŒã«ãšã£ãŠçŽæçã§ã¯ãããŸããããéåžžã«åŒ·åã§ã·ã³ãã«ãªãããç解ãã䟡å€ããããŸãã
$ orderé¢æ°ã¯ãã°ããŒãã«å ã®åãã€ã³ããã¯ã¹ã¬ãã«ã§æ©èœãããã®ã°ããŒãã«ã¬ãã«ã«ååšããéžæç¯å²å ã®æ¬¡ã®ã€ã³ããã¯ã¹ã®å€ãè¿ããŸãã åæå€ãæå®ã§ããŸãã$é åºé¢æ°ã¯ãéžæãããã·ãŒã±ã³ã¹å ã®æ¬¡ã®å€ãèŠã€ããŸãã æå®ãããã¬ãã«ã§æåã®ã€ã³ããã¯ã¹ãèŠã€ããã«ã¯ã空ã®éå§å€ïŒ ""ïŒã䜿çšããŸãã ãCãã§å§ãŸãæå®ãããã¬ãã«ã®æåã®ã€ã³ããã¯ã¹ãèŠã€ããã«ã¯ããBãããªã©ããCãã®çŽåã«é çªã«æ¥ãåæå€ã䜿çšããŸãã
ãããã£ãŠãã°ããŒãã«ã§æåã®åŸæ¥å¡ãèŠã€ããã«ã¯ïŒ
S company=ââ S company=$order(^Employee(company))
äŒç€Ÿå€æ°ã«ã¯ã^ Employeeã°ããŒãã«ã®æåã®ã¬ã³ãŒãã®æåã®äŒç€Ÿã€ã³ããã¯ã¹ã®å€ãå«ãŸããŠããŸãã
æåŸã®å€ãèŠã€ãããšã次ã«$ orderé¢æ°ãå®è¡ããããšã空ã®å€ãè¿ãããŸãã ãããã£ãŠãã°ããŒãã«ã«äŒç€Ÿã1ã€ãããªãã$ãªãŒããŒãç¹°ãè¿ããå ŽåïŒ
S company=$order(^Employee(company))
ãã®å ŽåãäŒç€Ÿå€æ°ã«ã¯ç©ºã®å€ïŒ ""ïŒãå«ãŸããŸãã
Employeeã°ããŒãã«ã®ãã¹ãŠã®äŒæ¥ãååŸããŠåŠçããã«ã¯ããµã€ã¯ã«ãäœæããå¿ èŠããããŸãã
S company=ââ For s company=$order(^Employee(company)) quit:company=ââ do . ; - company
ãã®ã³ãŒãã¯ãç°¡æœãªã³ãŒãã£ã³ã°MUMPSã®èå³æ·±ãæ©èœã瀺ããŠããŸãã
- Forã³ãã³ãã®åŸã«2ã€ã®ã¹ããŒã¹ãç¶ããšãç¡éã«ãŒããèšå®ãããŸãã
- çµäºïŒcompany =ââã¯ãã«ãŒããçµäºããæ¡ä»¶ã瀺ãããäºåŸæ¡ä»¶ããšããŠç¥ãããæ§æã䜿çšããŸãã ãã®èšèšã§ã¯ããäŒç€Ÿã®å€ã空ã®å ŽåãForã«ãŒããçµäºããŸãããšæžãããŠããŸãã ã³ãã³ãã®åŸã«ä»ã®ã³ãã³ããç¶ãå Žåãçµäºã®åŸã«2ã€ã®ã¹ããŒã¹ãå¿ èŠã§ãã
- è¡ã®æåŸã®ãå®è¡ãã¯ããããããã®æ¬¡ã®ã¬ãã«ã«é²ãã³ãŒããå®è¡ããããšãæå³ããŸãã äŒç€Ÿã®å€ã空ã«ãªããŸã§ãForã«ãŒãã®åå埩ã§ãDoããå®è¡ãããŸã
- åã«ãŒãã§å®è¡ãããã³ãŒãã¯ãåäžã®ãã€ã³ãã®åŸã«èšè¿°ãããŸãã åºæ¬çã«ãããªãªãã§å§ãŸãè¡ã¯ããã®äŸã®2è¡ç®ã®çµããã«ãããdoãã³ãã³ãã«ãã£ãŠå®è¡ããããµãã«ãŒãã³ã圢æããŸãã
ãã®ããã$é åºã空ã®å€ã«èšå®ããŠãã°ããŒãã«ã«æ ŒçŽãããŠããæåã®ã€ã³ããã¯ã¹ãæ€çŽ¢ããŠã³ãã³ããéå§ãããããã«ããŸãã æ ŒçŽãããããŒã¿ãçµäºãããŸã§åå€ã調ã¹ã$ orderã«ãã£ãŠè¿ããã空ã®å€ãååŸãããã®åŸã«ãŒããçµäºããŸãã
ãã®ã¿ã€ãã®ã«ãŒãã¯ãMUMPSããã°ã©ã ã§æãäžè¬çãªãã®ã®1ã€ã§ããããšãããããŸãã
ãã®ãªã¯ãšã¹ããå±éããŠãã°ããŒãã«å šäœãäžåºŠã«åŠçã§ããŸãã ãããè¡ãããã«ãåã€ã³ããã¯ã¹ã¬ãã«ã§ãµã€ã¯ã«ãéå§ããŸããæåããå§ããŠã次ã®åã¬ãã«ã«ç§»åããŸãã
s company=ââ for s company=$order(^Employee(company)) quit:company=ââ do . s country=ââ . for s country=$order(^Employee(company,country)) quit:country=ââ do . . s office=ââ . . for s office=$order(^Employee(company,country,office)) quit:office=ââ do . . . s employeeNo=ââ . . . for s employeeNo=$order(^Employee(company,country,office,employeeNo)) quit:employeeNo=ââ do . . . . s record=^Employee(company,country,office,employeeNo) . . . . ; -
ãã¹ããããã«ãŒãã³ã®éå±€ãäœæããããã®ããã€ã³ããã®ã¬ãã«ã®æå®æ¹æ³ã«æ³šæããŠãã ããã ãŸãã$é åºã䜿çšããŠ4ã€ã®ã°ããŒãã«ã€ã³ããã¯ã¹ãã¹ãŠã®å€ããã€ãã¹ããæ¹æ³ã«ã泚æããŠãã ããã
ã泚æ ãã©ã³ã¹ã¬ãŒã¿ ïŒCachéã§ã¯ããã¹ããããæ§é ã«äžæ¬åŒ§ã䜿çšã§ããŸãã
ãCãã§å§ãŸãäŒç€Ÿã®åŸæ¥å¡ã®ã¬ã³ãŒãã®ã¿ãæ€çŽ¢ããŠåŠçããå¿ èŠãããå Žåã次ã®äžè¬çãªæ§é ã䜿çšããŸãã
s company=âB~â fs company=$o(^Employee(company)) quit:$e(company,1) '= âCâ do . ; -
é¢æ°$ extractïŒãŸãã¯$ eïŒã«æ³šæããŠãã ããã æååå€ã®æå®ãããäœçœ®ããæåãæœåºããŸãããã®å ŽåãäŒç€Ÿåã®æåã®æåã§ãã ãŸãããCãšçãããªãããæå®ããæ¹æ³ã«ã泚æããŠãã ãããããã¯ãåäžåŒçšç¬ŠïŒ 'ïŒã§èšè¿°ãããMUMPS NOTæŒç®åã䜿çšããŸãã
ãã®ãµã€ã¯ã«ã¯æ¬¡ã®ããã«èªãããšãã§ããŸãïŒ
- $ orderã®åæå€ã¯ãé£ç¶ãµã³ããªã³ã°ã®ãCãã®åã®å€ã§ã
- ç¡éã«ãŒããå®è¡ããŠããµã³ãã«å ã®ãã¹ãŠã®äŒç€Ÿã¬ã³ãŒããæ€çŽ¢ããŸã
- äŒç€Ÿåã®æåã®æåããCãã§ã¯ãªãå Žåãã«ãŒããçµäºããŸã
- ãã以å€ã®å Žåã¯ãäŒç€Ÿã®èšé²ã®åŠçãç¶ããŸãã
ç¹å®ã®ã€ã³ããã¯ã¹ãããããã³ã€ã³ããã¯ã¹ã®ãã¹ãã®ä»»æã®ã¬ãã«ã§ã°ããŒãã«ã®èµ°æ»ãéå§ããã³åæ¢ãããã®æ©èœã¯ãMUMPSã°ããŒãã«ã®ç¬èªã®æ©èœã§ãã
ã°ããŒãã«å ã®ã¬ã³ãŒãã®ååšã確èªãã
å€ãã®å Žåãç¹å®ã®ãšã³ããªãã°ããŒãã«ã«ååšãããã©ãããç¥ãå¿ èŠããããŸãã ããã«ã¯ãMUMPS $ããŒã¿é¢æ°ã䜿çšã§ããŸãã
if $data(^Employee(company)) do xxx
è¡ã¯ã^ ^åŸæ¥å¡ïŒäŒç€ŸïŒãååšããå Žåãã«ãŒãã³xxxãå®è¡ããŸããã $ããŒã¿é¢æ°ã¯ã$ dã«ççž®ã§ããŸãã
$ããŒã¿ã¯ããã€ãã®ç°ãªãå€ãè¿ããŸãã
- æå®ãããã€ã³ããã¯ã¹ã¬ãã«ã«ããŒã¿ãååšãããµãããŒãããªãå Žåãå€1ãè¿ãããŸã
- æå®ãããã€ã³ããã¯ã¹ã¬ãã«ã«ããŒã¿ãååšãããµãããŒããããå Žåãå€11ãè¿ãããŸã
- æå®ãããã€ã³ããã¯ã¹ã¬ãã«ã«ããŒã¿ãååšããªããããµãããŒããããå Žåãå€10ãè¿ãããŸã
- æå®ãããã€ã³ããã¯ã¹ã¬ãã«ã«ããŒã¿ãååšããªãå Žåãå€0ãè¿ãããŸãã
MUMPSã§ã¯ãè«çifã¹ããŒãã¡ã³ãã®äœ¿çšæã«ãŒã以å€ã®å€ãtrueãšè©äŸ¡ãããŸãã ãããã£ãŠã$ããŒã¿ïŒ1ã10ãããã³11ïŒã«ãã£ãŠè¿ãããæåã®3ã€ã®å€ã¯çãšèŠãªãããŸãã åŸè ã®ç¶æ³ïŒããŒã¿ããã³ãµãããŒããªãïŒã¯falseãšè©äŸ¡ãããŸãã
äŸãšããŠã次ã®ã°ããŒãã«ãèæ ®ããŠãã ããã
^test=3 ^test(âaâ)=1 ^test(âaâ,âbâ,âcâ)=2 ^test(âaâ,âbâ,âdâ)=3 $data(^test) = 11 $data(^test(âaâ,âbâ)=10 $data(^test(âaâ,âbâ,âcâ)=1 $data(^test(âbâ)=0
ãããŒã¿ãå®çŸ©ãããŠããªãããªã©ã®ãšã©ãŒã®é²æ¢
ã°ããŒãã«ããååšããªããšã³ããªãååŸããããšãããšãMUMPSã¯<UNDEF>ãªã©ã®å®è¡æãšã©ãŒãã¹ããŒããŸãã ãããåé¿ããã«ã¯ã$ããŒã¿é¢æ°ã䜿çšããŠããŒãã®ååšã確èªãããããã䟿å©ãª$ geté¢æ°ã䜿çšããŸãã ããã¯ãååšããå Žåã¯ã°ããŒãã«ããŒãã®å€ãè¿ããååšããªãå Žåã¯ç©ºã®å€ãè¿ããŸãã $ Geté¢æ°ã¯$ gã«ççž®ã§ããŸã
ãããã£ãŠãåã®ã»ã¯ã·ã§ã³ã§$ããŒã¿ã䜿çšããŠäœ¿çšããäŸã«åºã¥ããŠïŒ
$get(^test) = 3 $get(^test(âaâ,âbâ)=ââ ; $get(^test(âaâ,âbâ,âcâ)=1 $get(^test(âbâ)=ââ $get(^nonExistentGlobal)=ââ
ã°ããŒãã«ã衚瀺
Cachéããã³ä»ã®ãã¹ãŠã®MUMPSã·ã¹ãã ã«ã¯ãã°ããŒãã«ã衚瀺ããæ¹æ³ãå«ãŸããŠããŸãã æãç°¡åãªæ¹æ³ã¯ãã³ãã³ãã©ã€ã³çšã®^ïŒ Gã³ãã³ãã§ããããã¯ãCachéãä»ã®ããã€ãã®MUMPSå®è£ ã«ãããŸãã ã¿ãŒããã«ã»ãã·ã§ã³ã§æ¬¡ãå®è¡ããŸãã
USER> D ^%G Global ^ Employee
ã°ããŒãã«åãå ¥åãããšãã°ããŒãã«å šäœã®å 容ã衚瀺ããã³ãã³ãã衚瀺ãããŸãã ãã ãã次ã®ãããªåå¥ã®ã€ã³ããã¯ã¹ã衚瀺ã§ããŸãã
Employee()
æåã®ã€ã³ããã¯ã¹ã®ã¿ã®ãã¹ãŠã®å€ããªã¹ããã
Employee(âMGWâ
æåã®MGWã€ã³ããã¯ã¹å€ãæã€ãã¹ãŠã®åŸæ¥å¡ã¬ã³ãŒãããªã¹ãããŸã
Employee(âMGWâ,)
æåã®ã€ã³ããã¯ã¹ãMGWãã§ãã¹ãŠã®2çªç®ã®åŸæ¥å¡ã¬ã³ãŒãã€ã³ããã¯ã¹ãäžèŠ§è¡šç€ºããŸã
Cachéã¯ãã°ããŒãã«ã衚瀺ããã³ç·šéã§ããCachéãšã¯ã¹ãããŒã©ãšåŒã°ããã°ã©ãã£ã«ã«ãªãã©ãŠã¶ã¢ããªã±ãŒã·ã§ã³ãæäŸããŸãã
ãŸãšã
ã°ããŒãã«ã®åºæ¬ãšããã®äœæãšç·šéã«ã€ããŠæ€èšããŸããã 次ã®ç« ã§ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«ç²ŸéããŠãã人ã®èŠ³ç¹ããã°ããŒãã«ãæ€èšŒããŸãã
MUMPSã°ããŒãã«ã«ã¯å®è³ªçã«å¶åŸ¡ããªããã¢ã¯ã·ã§ã³ã«å¶éããªãããšãæ¢ã«ãåãã§ããããããã¯çŽ æŽãããïŒããŒã¿ããŒã¹ã®æ§é ããã°ãããæè»ã«èšèšãäœæãå€æŽã§ããŸãïŒãå±éºã§ãïŒäžé©åãªæã§ã¯ããŒã¿ããŒã¹ãå¶åŸ¡äžèœãªæ··ä¹±ã«å€ãããŸãïŒã
MUMPSã¯ããã°ã©ããŒã«äŸåããŠããŸããä¿éºã¯ãããŸããããäœãéæã§ãããããŸãã¯ãããã©ã®ããã«éæãããã«å¶éã¯ãããŸãããMUMPS-ããã°ã©ãã³ã°ãšã³ãã³ãå®è¡ã®å¹çæ§ã®ãããã§ããã°ãããåºæ¿çãªäœæ¥ç°å¢ãç解ã§ããŸãã
MUMPSã°ããŒãã«ããã¹ã¿ãŒãããšãããããé©ãã§ããããããã¹ãŠã®ããŒã¿ããŒã¹ãããŸãæ©èœããªãã®ã¯ãªãã§ããïŒãããã¯ãéåžžã«ã·ã³ãã«ã§çŽæçã§ãæè»æ§ãããããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãããåªããŠããŸããããã«ãã»ãšãã©ãã¹ãŠã®ãã©ãããã©ãŒã ã§MUMPSã䜿çšã§ãã巚倧ãªã·ã¹ãã ã®èŠæš¡ã«åãããŠæ¡åŒµã§ããŸããäžçæ倧ã®ã€ã³ã¿ã©ã¯ãã£ãã·ã¹ãã ã®äžéšã¯MUMPSãããŒã¹ã«ããŠãããæã«ã¯æ°äžäººã®åæãŠãŒã¶ãŒãããŸãã
ãããããªã¬ãŒã·ã§ãã«ã®äžçãå¿ èŠãšèããããŒã«ãšä¿éºãå¿ èŠã ãšæããªããMUMPSã¯ééããªãããªãã®ããã§ã¯ãããŸããããããŠããŸã ããªãŒã¯ã©ã€ãã³ã°ãè¡ãã€ãããªãã次ã®ç« ã«é²ãã§ãã ããã
ç¶ç¶ãããããŒã2