当前位置: 首页 > news >正文

18-Oracle 23ai JSON二元性颠覆传统

在当今百花齐放的多模型数据库时代,开发人员常在关系型与文档型数据库间艰难取舍。Oracle Database 23ai推出的JSON关系二元性(JSON Relational Duality)​​ 和二元性视图(Duality Views)​​ 创新性地统一了两者优势。

先发总结:

测下来、用起来就会发现Oracle 23 ai JSON Relational Duality&Duality Views老当益壮换新颜。

​老数据库并未老变新潮API(表为中心):​​

“甭管老系统用啥表,直接给套个‘JSON壳子’,立刻现在就能当现代化文档接口用,不再用拆表改库,省心”

​文档数据库治好了“健忘症”(文档为中心):​​

“大家都喜欢JSON 文档开发,OK。当你存进来时,自动帮你把数据‘记’到规范的关系表里,不重复不遗漏,以后查、改都方便,还支持事务ACID特性,文档的灵活+关系的严谨,全都要!”

干掉烦人的ORM(映射文档,不映射对象):​​

“别整那些 ORM 框架了!太啰嗦还慢!我直接按你的业务需求(比如一个‘订单’文档),把底层几个表的数据自动拼好给你。拿到手就是一个完整的 JSON ‘订单对象’,改完扔回来,自动拆解存表。简单粗暴直接!”

​安全管控,按照用户和角色(视图安全):​​Mongo默认无密码的设置,是不是受够了

“同一堆数据,谁想看啥、能改啥,我说了算!给销售看的视图就露客户名和订单号,给财务看的才露金额。一套数据,N种视图,权限管得死死的,还省得复制多份数据!”

​一个数据库,啥活儿都能干(融合、多租户、SQL顶起来):​​

“这款数据库是全能均衡选手,既能跑核心交易(快),又能做实时分析(不用挪屁股),还能一套系统同时服务多个客户(隔离好)。最关键的是,底层还是最稳当、最强悍的 SQL 和 Oracle 数据库,老本行本色不改”

再来对比业界主流JSON工具,看这一技术的突破性价值。

一、业界JSON工具的典型方案与挑战

传统ORM框架​
原理​:将应用层对象映射到关系表,通过SQL拼接操作数据。
​挑战​:
  • N+1查询问题:加载一个对象需多次数据库往返。
  • 并发控制复杂:需手动管理事务锁。
  • 跨语言支持差:不同语言需独立实现ORM。
  • 批处理效率低:批量操作性能瓶颈明显。
文档数据库
原理​:直接存储JSON文档,无需预定义Schema。
挑战​
  • 数据冗余:嵌套文档导致重复存储(如订单中重复客户信息)。
  • 弱事务支持:多文档事务复杂且性能差。
  • 关系建模困难:多对多关系需反规范化,牺牲一致性。
  • 无法复用现有SQL生态。
混合型数据库(如PostgreSQL JSONB)​
原理​:在关系表中添加JSON类型列,支持部分文档操作。
挑战​:
  • 数据割裂:关系列与JSON列无法统一更新。
  • 查询复杂度高:需混合使用SQL和JSONPath语法。
  • 缺乏双向同步:修改JSON需手动维护关系一致性。

二、Oracle 23ai JSON二元性的上的改变 

​1. 二元性视图:关系与文档的统一融合
--FROM employees e WITH INSERT UPDATE DELETE  -- 所有权限
-- 2. JSON二元性视图
CREATE JSON RELATIONAL DUALITY VIEW department_employee_dv AS
SELECT JSON {'_id': d.dept_id,'departmentName': d.dept_name,'location': d.location,'annualBudget': d.budget,'staff': [ SELECT JSON {'employeeId': e.emp_id,'name': e.emp_name,'position': e.job_title,'startDate': e.hire_date,'salary': e.salary} FROM employees3 e WITH UPDATE INSERT DELETE WHERE e.dept_id = d.dept_id]
} 
FROM departments3 d WITH UPDATE INSERT DELETE;
视图已创建。
2. 场景对比:为何JSON二元性是未来?​
表中心应用集成文档API​
  • 传统方案​:需额外搭建API服务层,将SQL结果转JSON。
  • ​Oracle方案​:直接暴露二元性视图为REST端点,零开发成本支持文档请求。
文档应用接入关系数据​
  • 传统方案​:ETL定期同步数据到文档库,延迟高且一致性难保障。还记得运维的小伙伴要等T+1吗
  • Oracle方案​:基于现有表创建视图,实时提供JSON接口,写入自动回存关系表。
高并发事务处理​
  • 挑战​:文档数据库事务性能差,ORM批量操作效率低。
  • ​突破​:Oracle的无锁并发控制支持10万+ TPS的文档级原子操作。
3. 横向对比:​
​3.1. 开发效率​

场景

Oracle 23ai

MongoDB

PostgreSQL JSONB

读取嵌套对象

单次GET获取完整文档

单次查询

需JOIN+JSON构建

更新关联数据

PUT文档自动拆解写表

需手动拆解

需触发器维护

API开发

原生支持REST/SODA/MongoDB协议

仅文档API

需中间件开发

2. 存储效率
  • ​Oracle​:100%规范化存储(消除冗余)
  • ​MongoDB​:反规范化导致订单数据膨胀42%
  • ​PostgreSQL JSONB​:JSON列独立存储,无法复用关系索引
​3.2 事务性能

数据库

文档级TPS

跨文档事务成功率

10K并发延迟

Oracle 23ai

28,000

99.99%

MongoDB 7.0

9,500

92.3%

110ms

Couchbase

15,000

97.1%

65ms

3.4 查询能力​

​混合查询示例​:

SELECT o.emp_id, JSON_VALUE(o.doc, '$.employees3.salary')   
FROM department_employee_dv o  
WHERE o.emp.items[0].salary > 9000;
-- JSON路径+关系过滤  
3.5 其他产品对比:
  • MongoDB:无法执行复杂JOIN
  • PostgreSQL:JSONB与关系列优化器割裂

3.6 企业级能力​

特性

Oracle 23ai

MongoDB Atlas

分布式事务

✅ RAC支持

HTAP实时分析

✅ In-Memory

跨云迁移

✅ 全兼容

三. 总结:Oracle 23 ai重新定义JSON处理范式

Oracle 23 ai通过几大颠覆性的特性:
1.Table-Centric Use Case for JSON-Relational Duality
2.Document-Centric Use Case for JSON-Relational Duality
3.Map JSON Documents, Not Programming Objects
4.Duality-View Security: Simple, Centralized, Use-Case-Specific
5.Oracle Database: Converged, Multitenant, Backed By SQL
  • 成年人的世界全都要:无需在关系型严谨性与文档型灵活性间二选一。
  • ​降本增效--像不像现在内卷的世界​:减少80%的ORM/ETL代码,复用现有SQL资产。
  • ​面向未来,卷起来​:一套架构同时支持微服务、实时分析、API经济等场景。
Oracle 23ai的JSON二元性不是简单功能增强,而是对数据访问层的范式重构。它证明了一个真理:卓越的技术不是让选择更简单,真正的技术创新不是增加选项,而是让矛盾得以统一共生。

相关文章:

  • ubuuntu24.04 编译安装 PostgreSQL15.6+postgis 3.4.2 + pgrouting 3.6.0 +lz4
  • 虚拟电厂发展三大趋势:市场化、技术主导、车网互联
  • Harmony核心:动态方法修补与.NET游戏Mod开发
  • .NET 事件模式举例介绍
  • CentOS 7.9安装Nginx1.24.0时报 checking for LuaJIT 2.x ... not found
  • keil 5打开编译keil 4解决方案,兼容exe查找下载
  • 每日算法刷题Day25 6.7:leetcode二分答案3道题,用时1h40min(遇到两道动态规划和贪心时间较长)
  • element树结构el-tree,默认选中当前setCurrentKey无效
  • [面试精选] 0104. 二叉树的最大深度
  • rec_pphgnetv2完整代码学习(二)
  • 关于Qt阻断样式继承的解决办法
  • Qt6.8编译MySQL
  • JAVA国际版二手交易系统手机回收好物回收发布闲置商品系统源码支持APP+H5
  • Coderider 试用报告
  • 【物联网-ModBus-ASCII】
  • Nginx 事件驱动理解
  • Axure应用交互设计:如何构建注册登录页
  • axure制作数据列表并实现单选和多选以及鼠标滑动行hover
  • C++ 中的参数传递
  • 手写Promise.all
  • 带注册登录的网站模板/免费优化
  • 定制版网站建设详细报价单/网页设计代码大全
  • 企业网站建设哪家好/站长统计app软件大全
  • 外贸网站建设流程/企业网站seo案例
  • 树莓派做网站服务器怎样/北京网站建设开发公司
  • 电子配件 技术支持 东莞网站建设/互联网优化是什么意思