我在哪里可以找到Mumps全局的实现细节



我正在寻找关于Mumps全局实现的详细定义/讨论。有一份名为"MUMPS全球化及其实施"的文件,但我一直找不到任何订购方式,更不用说访问数字副本了。(75页)

总的来说,我试图找到一个关于Mumps数据库内部的深入讨论。

看看Frank Brown的这篇论文,Mumps微型计算机系统的统一本地、全局和例程设计。Brown博士是COMP Consultants Standard MUMPS全球系统的设计师。我是8086程序集中的实现者!是的,早在1981年。

它本质上是一个带有压缩密钥的简单B树。

我认为不同的MUMPS实现之间的数据库内部结构会有很大的不同。所以,我认为你最好看看它是如何在开源MUMPS实现中完成的:

  • GT.M
  • 腮腺炎V1
  • 流行性腮腺炎
  • GUMP/FreeM

我不太确定你在追求什么。Mumps全局只是一个稀疏的多维数组。程序员可以自由地执行他们认为合适的数据库策略。例如,客户数据库可以实现为:

^CUSTOMER(custnum,"NAME")=name
^CUSTOMER(custNum,"ADDRESS")=address
^CUSTOMER(CustNum,"PHONE")=phone

或者,客户数据库可以实现为:

^CUSTOMER(custNum)=name|address|phoneNum

在这里,我在客户记录中使用了管道字符"|"作为分隔符。在大多数流行性腮腺炎实现中,记录字符串的长度被限制为32k。

从关系的意义上讲,CUSTOMER全局可以被认为是一个表,其中custNum是键,name、address和phone是列。

订单表可以使用类似的方案:

^ORDERS(orderNum)=date|invoiceNum|totalPrice

为了将客户与订单联系起来,我们可以使用一个单独的全局:

^custOrders(custNum,orderNum)=""

或者将它们添加到客户全局:

^CUSTOMER(custNum)=name|address|phone
^CUSTOMER(custNum,orderNum)=""

或者甚至将这两个表合并为一个全局表:

^CUSTOMER(custNum)=name|address|phone
^CUSTOMER(custNum,orderNum)=date|invoiceNum|totalPrice

所使用的策略取决于开发人员,它非常灵活和强大。

除了你上面提到的文件之外,我还推荐其他一些文件。对于一些关于全局及其内容的基础知识,我建议:

使用MUMPS全局的极限数据库编程

对于更高级的主题,我推荐:

一个通用的NoSQL引擎,使用经过测试的技术

这两份文件都是由Rob Tweed撰写的,他是M/Gateway Developments公司的一名流行性腮腺炎福音传道者。第一份文件提供了流行性腮腺炎全球流行性腮腺炎的良好背景,第二份文件介绍了在包括noSQL在内的各种策略中使用流行性腮腺炎。

同意前面的回答;问题指向了供应商认为专有的实现细节。我们可以深入了解开源/历史版本,但Cache和当前版本在进入现代扩展功能时会有所不同。

相关内容

  • 没有找到相关文章

最新更新