前面介绍了元数据驱动的低代码系统基本原理和优势:

元数据驱动低代码系统的革命:未来已来

数据库一直以来都是软件核心部分,

数据库的核心作用就是保存数据。

软件的工作就是响应操作者的动作,

然后对数据库中的数据进行增删改查等操作。

图片

上一篇我们提到元数据的分类:

图片

通过对元数据进行分析我们可以知道,

软件的使用者,只关注业务元数据、操作元数据和管理元数据,

可能根本不知道其是否存在。

技术元数据是软件本身使用的。

元数据驱动的低代码系统,

其基本原理是解析技术元数据和管理元数据和操作业务元数据,

达到编码开发的软件相同的能力。

元数据可以存储在数据库中,

也可以使用其他方式进行存储,例如JSON,XML等。

我们朱雀BOS的元数据存储在数据库中,

并充分利用数据库本身的功能特性,

可以极大降低系统的复杂性。

图片

在低代码系统中数据库和数据表一般被称为数据模型或者数据对象

数据对象数据库以及数据库中的数据表基本上是对应的。

低代码系统提供了一套可视化管理数据库的功能,

这个部分的功能其实和数据库管理软件类似。

当前市面上有很多优秀的数据库管理软件,例如:Navicat,

大部分低代码系统对数据库的管理功能并不比专业软件好用,

但是低代码对数据对象做了较多的特性扩展,

所以很多时候又不得不使用低代码提供的功能来管理数据库。

图片

上文中提到数据对象数据库及其数据表是对应关系,

对应”可以理解为映射,并不是强关联关系,

在数据库中外键属于强关联关系。

低代码系统一般会支持多种数据库,

需要将不同厂商、不同版本的数据库操作进行统一化,

以确保使用低代码开发的应用可以在数据层面和第三方软件集成。

另外,低代码系统还需要对不同数据库的数据操作分别进行封装,

为开发者“抹平”不同数据库之间在数据类型,查询操作方面的差异。

图片

做过软件开发的朋友可能会想,

你上面说的对不同数据库的操作,ORM库不早就做了吗?

没错,ORM库就是做这个工作的,

但是ORM库是将表和字段编写成固定的对象。

而在元数据驱动的系统中,

对数据表和字段的操作是动态的。

例如:业务数据表A有20个字段,

操作1只针对A表其中的5个字段进行操作,

操作2只针对A表其中3个字段进行操作,

而且A表中的字段又需要根据业务变化随时变更。

这样一来,市面上几乎所有的ORM库都不能用了,

因为ORM库的特点成了其致命缺陷。

这也是为什么那些以生态著称的编程语言,

其生态中并没有出现元数据驱动系统的身影。

因为开发者在受益于生态的同时,

也被生态所禁锢,生态成了枷锁。

大家也不用猜我说的是哪种编程语言,

我说的就是Java。

图片

使用元数据记录了业务数据表、字段、

表与表之间的关联关系、字段与字段之间的关联关系,

在某个功能被配置好之后,

低代码系统并不生成SQL语句,

而是根据操作者给的参数,

以及功能模块需要完成的功能,

最后拼装成操作数据库的SQL语句。

总之,在元数据驱动的软件系统中,

没有“写死”的数据,所有的功能都是动态的。

只有这样才能做到“即用即改,即改即用”的效果。

后续我们将继续讨论,

元数据如何驱动业务逻辑和软件界面。

感兴趣的朋友不妨持续关注我们的更新,

一起探索元数据驱动低代码系统奥秘。


如果您觉得本文对您有用,建议收藏

如果您觉得对您的朋友有帮助,请分享给他们;

如果您能点个赞,那就是对作者最大的支持。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐