元数据驱动低代码系统的革命-数据库篇
当前市面上有很多优秀的数据库管理软件,例如:Navicat,另外,低代码系统还需要对不同数据库的数据操作分别进行封装,大部分低代码系统对数据库的管理功能并不比专业软件好用,你上面说的对不同数据库的操作,ORM库不早就做了吗?”不同数据库之间在数据类型,查询操作方面的差异。表与表之间的关联关系、字段与字段之间的关联关系,这样一来,市面上几乎所有的ORM库都不能用了,低代码系统提供了一套可视化管理数据
前面介绍了元数据驱动的低代码系统基本原理和优势:
数据库一直以来都是软件核心部分,
数据库的核心作用就是保存数据。
软件的工作就是响应操作者的动作,
然后对数据库中的数据进行增删改查等操作。

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

通过对元数据进行分析我们可以知道,
软件的使用者,只关注业务元数据、操作元数据和管理元数据,
可能根本不知道其是否存在。
技术元数据是软件本身使用的。
元数据驱动的低代码系统,
其基本原理是解析技术元数据和管理元数据和操作业务元数据,
达到编码开发的软件相同的能力。
元数据可以存储在数据库中,
也可以使用其他方式进行存储,例如JSON,XML等。
我们朱雀BOS的元数据存储在数据库中,
并充分利用数据库本身的功能特性,
可以极大降低系统的复杂性。

在低代码系统中数据库和数据表一般被称为数据模型或者数据对象。
数据对象与数据库以及数据库中的数据表基本上是对应的。
低代码系统提供了一套可视化管理数据库的功能,
这个部分的功能其实和数据库管理软件类似。
当前市面上有很多优秀的数据库管理软件,例如:Navicat,
大部分低代码系统对数据库的管理功能并不比专业软件好用,
但是低代码对数据对象做了较多的特性扩展,
所以很多时候又不得不使用低代码提供的功能来管理数据库。

上文中提到数据对象与数据库及其数据表是对应关系,
“对应”可以理解为映射,并不是强关联关系,
在数据库中外键属于强关联关系。
低代码系统一般会支持多种数据库,
需要将不同厂商、不同版本的数据库操作进行统一化,
以确保使用低代码开发的应用可以在数据层面和第三方软件集成。
另外,低代码系统还需要对不同数据库的数据操作分别进行封装,
为开发者“抹平”不同数据库之间在数据类型,查询操作方面的差异。

做过软件开发的朋友可能会想,
你上面说的对不同数据库的操作,ORM库不早就做了吗?
没错,ORM库就是做这个工作的,
但是ORM库是将表和字段编写成固定的对象。
而在元数据驱动的系统中,
对数据表和字段的操作是动态的。
例如:业务数据表A有20个字段,
操作1只针对A表其中的5个字段进行操作,
操作2只针对A表其中3个字段进行操作,
而且A表中的字段又需要根据业务变化随时变更。
这样一来,市面上几乎所有的ORM库都不能用了,
因为ORM库的特点成了其致命缺陷。
这也是为什么那些以生态著称的编程语言,
其生态中并没有出现元数据驱动系统的身影。
因为开发者在受益于生态的同时,
也被生态所禁锢,生态成了枷锁。
大家也不用猜我说的是哪种编程语言,
我说的就是Java。

使用元数据记录了业务数据表、字段、
表与表之间的关联关系、字段与字段之间的关联关系,
在某个功能被配置好之后,
低代码系统并不生成SQL语句,
而是根据操作者给的参数,
以及功能模块需要完成的功能,
最后拼装成操作数据库的SQL语句。
总之,在元数据驱动的软件系统中,
没有“写死”的数据,所有的功能都是动态的。
只有这样才能做到“即用即改,即改即用”的效果。
后续我们将继续讨论,
元数据如何驱动业务逻辑和软件界面。
感兴趣的朋友不妨持续关注我们的更新,
一起探索元数据驱动低代码系统奥秘。
如果您觉得本文对您有用,建议收藏;
如果您觉得对您的朋友有帮助,请分享给他们;
如果您能点个赞,那就是对作者最大的支持。
更多推荐


所有评论(0)