接下来,Juan打了个比方。相对于传统的应用开发,AI生成代码如同用汽车代替了马车。“就像我们必须修建铺好的道路才能充分发挥汽车的优势一样,我们必须改变应用程序开发基础架构才能充分发挥 AI 应用生成的优势。”,否则“就像在马道上驾驶汽车一样”。而Oracle提供的让汽车安全高效行驶的道路就是GenDev:以 AI 为中心的生成式开发基础设施。

Juan解释道:“GenDev 使开发人员能够利用 AI 快速生成可理解且安全的模块化、可演进的企业应用程序。用户可以使用自然语言与数据和应用程序交互,并根据其语义内容查找数据”,GenDev已包含在Oracle Database 23ai中。使用创新的GenDev,开发人员专注于构建应用程序功能而不是基础设施需求,“可大幅加速企业应用程序的生成式开发”。

应用程序中广泛的依赖关系使生成和演进变得困难
大量代码使应用程序难以理解、验证和维护
需要在整个应用程序中构建企业级稳健性

使应用程序能够生成为独立、可信、可演进的模块
主要使用声明性语言使应用程序易于理解
自动化企业应用程序所需的稳健性

那么GenDev又是如何做到这些的呢?Juan接下来通过一个星际游戏应用程序的示例进行了详细解读。这个游戏应用包括3个模块:运动员,赛事和观众。我们希望这3个模块高度独立,这样可极大简化模块的开发。同时,这3个模块应采用各自适合的数据表示形式和数据访问 API来构建,我们不希望某模块为了迁就其他模块而采用不适合自己的方式,从而破坏了模块的独立性。这样,没有了模块间的“联锁”,AI就可以独立生成各模块,一切将变得简单。
接下来,开发者需要确定每个模块各自所需的数据。对于运动员模块,除了运动员信息外,还包括运动员参加的赛事信息;对于赛事模块,除了比赛的项目,时间地点外,还包括参赛运动员的信息;对于观众,除了观众自身信息,还包括其预定的赛事信息,座席和票务信息。
很自然的,开发者会想到用JSON文档来包含所有这些信息,并作为与数据库读写交互的接口。但是JSON数据库并不支持共享的数据,例如,我们需要在所有的赛事,运动员和观众文档中重复存储赛事信息。这是一个严重的问题,开发人员必须编写代码以保证所有副本的一致性,这破坏了模块的独立性。同时,要保证这种独立性也是十分困难和低效的。另一种方式是将共享信息如赛事存为独立的文档,而运动员或观众文档中创建引用来指向共享信息。这看起来不错,但每个应用模块需要理解并编码其他模块的数据共享需求,这同样破坏了模块独立性。
通过将数据访问格式与数据存储格式分开,GenDev 以独特的方式解决了这些跨模块依赖关系的根本问题。

和JSON文档不同,GenDev的关键是访问格式不必和存储格式一致。GenDev 将每个应用数据存储一次 - 作为表中的一行,数据之间的多对多关系也存储为表中的行。将每条数据精确地只存储一次称为范式化,这是关系模型的基础。
关系模型和范式化很好的解决了数据冗余和一致性的问题,那么如何确定我们需要哪些表,又如何生成这些表?答案就是生成式AI,AI 可以根据数据需求描述来生成范式化的表。接下来,Juan对此进行了演示。

在此演示中,我们向AI助手描述了需求:
创建一组表来存储星际多项运动比赛,包括以下必须跟踪的数据:* 赛事:包括赛事名称、运动项目、地点、时间和说明* 运动员;包括姓名、星球、地区和预定赛事* 参加者;包括姓名、参加者星球、地区、联系信息、信用卡和预定赛事同时为每张表生成 10 条样本数据
AI生成了表,索引,主外键,触发器等对象的DDL语句,生成样本数据的DML语句,在此基础上也可以根据需要进行修改。接下来,运行这些SQL,一切都很顺畅。
接下来。Juan访谈了来自PayPal的交易处理和数据服务总监Akash Guha。PayPal拥有海量的数据和复杂多样的数据模型,Akash介绍道,二元性视图消除了数据冗余,可以同时享受到关系模型和文档模型的好处,从而提高了开发敏捷性。当问到23ai中感兴趣的技术时,Akash提到了AI,向量搜索和True Cache。
二元性是统一关系型、文档和图形数据模型的基石,在同一数据上可充分利用 JSON、SQL、Graph各自的优势:
应用程序使用标准 REST 或 MongoDB API 来获取或放置其数据 SQL 可以在底层表上运行 Graph查询的新 SQL 扩展可以帮助查找数据之间的连接

在这一部分的最后,Juan引用了IDC对JSON 关系二元性的高度评价。
我们已经看到 GenDev 如何促进模块独立性并统一数据模型 ,接下来,就GenDev 如何自动化企业应用所需的稳健性,Juan从4个维度做了深入解读:
数据保密性 数据一致性 数据可演进性 数据可生成性
关于数据一致性,GenDev可以保证企业应用程序数据在由许多用户和模块同时写入时保持一致。例如,与会者可以长时间编辑他们的日程安排,而不会阻止其他人。GenDev采用了基于值的并发控制,比较原始值和当前值以实现一致性,而无需侵入式锁定。基于值的并发控制可确保以下场景的一致性:
需要人工思考时间的交互式应用程序
允许在连接断开时写入的移动应用程序
中间层缓存
数据副本
在讨论了 GenDev 对开发的好处后,Juan又介绍了GenDev针对数据的AI如何使最终用户受益。首先是数据库内机器学习,Oracle提供 30 多种数据库内机器学习算法来预测未来。其次,Oracle 23a支持生成和存储向量,以及基于语义的向量搜索。企业可以运行查询,将图像或文档的 AI 向量搜索与有关客户和产品的业务数据相结合。例如,用户可以找到符合以下条件的出租房屋:
与他们房屋的照片相似(非结构化数据) 在他们的预算之内(关系型数据) 位于某个地点附近(地理信息数据)

编辑:小炒肉




