转自一位数据建模者的思考:我们的数据库真正反映现实了吗?
作为一个12岁的书呆子,我最喜欢的书是斯蒂芬-皮尔写的《英雄失败之书》,这是一本关于人类不足之处的纪事。对我来说,这本书的亮点是佩德罗-卡罗莱纳的故事,一个努力开发葡语-英语短语手册的人。这是一项崇高的事业,但由于他缺乏说英语的能力,也没有一本葡英字典,因此受到阻碍。
然而,他确实拥有一本法英词典,一本葡法词典和一种真正能干的态度。他的劳动成果对葡萄牙度假者毫无益处,却让12岁的我笑得歇斯底里。我经常愉快地回忆起这个故事,但直到我开始工作时,我才开始把自己和卡洛琳娜先生进行比较。
我的工作是一名信息建模师。信息建模师的工作可以轻描淡写地概括为把现实变成可以存储在数据库中的东西。这是通过设计信息模型来完成的。在传统的软件设计中,有三种类型的信息模型。概念性、逻辑性和物理性。你从概念模型开始,它是对我们想要数字化的东西以及它们之间的关系的一个高级描述。然后你转到逻辑模型,描述这些对象如何在数据库中理想地创建。最后,你在物理模型中实现这一点,物理模型是由用户维护数据的数据库的实际实现。
"这是信息建模的传统智慧。但这种方法是否能实现目的有待商榷"。
这是信息建模的传统智慧。但这种方法是否能实现目的有待商榷。佩德罗的短语书的故事之所以有趣,是因为其方法明显不合适,而且客观上结果很差。这在语言学上相当于用叉子喝汤。但是,当主题比较模糊时,就很难推断方法是如何以及何时有缺陷的。
传统方法的第一个问题是,前两个模型(概念和逻辑)只发生在纸上。在开始实施物理模型这一昂贵而复杂的任务之前,它们仍然是一种未经检验的理论。然后,不同的模型在形式上的不兼容使情况更加复杂。
"人们有一种更为动态和细微的方式来视觉化/理解表达事物/对象之间的连接方式"。
大多数企业系统是关系型数据库,处理数据表格之间的二进制连接。但是,人们对事物的连接方式有更多的流动性和细微差别。这就是为什么概念模型将信息表示为一个句子的视觉等价物(对象-动词-主语)。这两层抽象之间的差距不应该被低估,当基于纸张的模型遇到软件开发的限制和现实时,会产生大量的成本。
正是加入了我司,促使我有了这种认识。我第一次接触到了非关系型数据库功能。非关系型术据库的工作方式与概念模型相同,它将对象反映为对象(节点)、属性和关系(连接),允许你像在真实世界中那样描述和定义事物以及他们的关系。
"这使得在任何开发工作开始之前,就可以提前在顶层设计上进行假设检验。"。
这是第一次,我能够用与自己大脑中相同的格式和关系来建立和测试概念模型。这使得在任何开发工作开始之前,就能在顶层设计上进行假设检验。这种方法使我成为一个更好的信息模型师,并使我重新评估了一种我曾经认为是开发过程的基本工作方式。在非关系型数据库中对模型进行压力测试的一个结果是,你可以看到它们失败的地方,迫使你考虑如何改进它们。这个过程的无数次迭代对我们的信息思考方式产生了深远的影响,并为我们为客户提供的服务、尤其是医疗领域的成功奠定了基础。
原文略有删改:https://www.ortelius.com/blog-does-your-database-reflect-reality/