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

news2025/6/9 18:29:05

在当今百花齐放的多模型数据库时代,开发人员常在关系型与文档型数据库间艰难取舍。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二元性不是简单功能增强,而是对数据访问层的范式重构。它证明了一个真理:卓越的技术不是让选择更简单,真正的技术创新不是增加选项,而是让矛盾得以统一共生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2405694.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux68 FTP 测试 上传下载

6.在vi编辑器里,哪个命令能将光标移到第200行?( B ) 7.A、200g B、:200 C、g200 D、G200 假如您需要找出 /etc/my.conf 文件属于哪个包 (package) ,您可以执行( D )C A、 rpm -q /etc/my.co…

山东大学《数据可视化》期末复习宝典

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏:🏀山东大学期末速通专用_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1…

【Elasticsearch】映射:Join 类型、Flattened 类型、多表关联设计

映射:Join 类型、Flattened 类型、多表关联设计 1.Join 类型1.1 主要应用场景1.1.1 一对多关系建模1.1.2 多层级关系建模1.1.3 需要独立更新子文档的场景1.1.4 文档分离但需要关联查询 1.2 使用注意事项1.3 与 Nested 类型的区别 2.Flattened 类型2.1 实际运用场景和…

SpringBoot十二、SpringBoot系列web篇之过滤器Filte详解

一、前言 JavaWeb三大组件Servlet、Filter、Listener,其中之一便是过滤器Filter。 其实,Filter我们平常用的不多,一般多为项目初期搭建web架构的时候使用,后面用的就少了,在日常业务开发中不太可能碰到需要手写Filte…

【RTSP从零实践】1、根据RTSP协议实现一个RTSP服务

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀 🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C、数据结构、音视频🍭 🤣本文内容🤣&a…

行为设计模式之Iterator(迭代器)

行为设计模式之Iterator(迭代器) 摘要: 迭代器模式(Iterator)是一种行为设计模式,它提供顺序访问聚合对象元素的方法,同时不暴露内部结构。该模式由迭代器接口(Iterator)、具体迭代器(ConcreteIterator)、聚合接口(Ag…

FPGA点亮ILI9488驱动的SPI+RGB接口LCD显示屏(一)

FPGA点亮ILI9488驱动的SPIRGB接口LCD显示屏 ILI9488 RGB接口初始化 目录 前言 一、ILI9488简介 二、3线SPI接口简介 三、配置寄存器介绍 四、手册和初始化verilog FPGA代码 总结 前言 ILI9488是一款广泛应用于嵌入式系统和电子设备的彩色TFT LCD显示控制器芯片。本文将介…

如何实现本地mqtt服务器和云端服务器同步?

有时候,一个物联网项目,A客户想要本地使用,B客户想要线上使用,C客户想要本地部署,当有网环境时能线上使用。这个时候就需要本地MQTT服务和线上MQTT服务能相互自动转发。 后来经我一翻研究,其实Activemq支持…

windows10下搭建nfs服务器

windows10下搭建nfs服务器 有参考这篇博客 Windows10搭建NFS服务 - fuzidage - 博客园 下载 NFS Server这个app 通过网盘分享的文件:nfs1268 (1).exe 链接: https://pan.baidu.com/s/1rE4h710Uh-13kWGXvjkZzw 提取码: mwa4 --来自百度网盘超级会员v5的分享 下载后…

华为云Flexus+DeepSeek征文|Dify - LLM 云服务单机部署大语言模型攻略指南

前言:在当今人工智能快速发展的时代,华为云推出的 Dify - LLM 对话式 AI 开发平台为企业和开发者提供了便捷的大语言模型应用开发解决方案。 通过在华为云 Flexus 云服务器上单机部署 Dify,并成功集成 DeepSeek 模型,我们能够快速…

JAVA反序列化应用 : URLDNS案例

反序列化的基本原理 基础普及 : 对象初始化数据方法 :1、使用构造方法 2、使用封装中的 set,get方法 这边我们就使用 1 注意 我们之后还需要进行 接入 序列化的接口 : 先进行序列化 : 反序列化: 反序列化导致的安…

Vue-Leaflet地图组件开发(三)地图控件与高级样式设计

第三篇&#xff1a;Vue-Leaflet地图控件与高级样式设计 1. 专业级比例尺组件实现 1.1 比例尺控件集成 import { LControl } from "vue-leaflet/vue-leaflet";// 在模板中添加比例尺控件 <l-control-scaleposition"bottomleft":imperial"false&qu…

174页PPT家居制造业集团战略规划和运营管控规划方案

甲方集团需要制定一个清晰的集团价值定位&#xff0c;从“指引多元”、“塑造 能力”以及“强化协同”等方面引领甲方做大做强 集团需要通过管控模式、组织架构及职能、授权界面、关键流程、战略 实施和组织演进路径&#xff0c;平衡风险控制和迅速发展&#xff0c;保证战略落地…

wsl开启即闪退

[ 问题 ]&#xff1a; 在一次电脑卡住&#xff0c;强制关机重启后&#xff0c;遇到打开WSL就闪退的问题在CMD中打开WSL&#xff0c;出现如上图的描述&#xff1a; C:\Users\admin>wsl wsl: 检测到 localhost 代理配置&#xff0c;但未镜像到 WSL。NAT 模式下的 WSL 不支持…

【P2P】直播网络拓扑及编码模式

以下从 P2P 直播的常见拓扑模式出发,分析各种方案的特点与适用场景,并给出推荐。 一、P2P 直播的核心挑战 实时性要求高 直播场景下,延迟必须控制在可接受范围(通常 <2 秒),同时要保证画面连贯、不卡顿。带宽分布不均 每个节点(观众)上传带宽与下载带宽差异较大,且…

Python数据可视化科技图表绘制系列教程(二)

目录 表格风格图 使用Seaborn函数绘图 设置图表风格 设置颜色主题 图表分面 绘图过程 使用绘图函数绘图 定义主题 分面1 分面2 【声明】&#xff1a;未经版权人书面许可&#xff0c;任何单位或个人不得以任何形式复制、发行、出租、改编、汇编、传播、展示或利用本博…

低空城市场景下的多无人机任务规划与动态协调!CoordField:无人机任务分配的智能协调场

作者&#xff1a;Tengchao Zhang 1 ^{1} 1 , Yonglin Tian 2 ^{2} 2 , Fei Lin 1 ^{1} 1, Jun Huang 1 ^{1} 1, Patrik P. Sli 3 ^{3} 3, Rui Qin 2 , 4 ^{2,4} 2,4, and Fei-Yue Wang 5 , 1 ^{5,1} 5,1单位&#xff1a; 1 ^{1} 1澳门科技大学创新工程学院工程科学系&#xff0…

算法-构造题

#include<iostream> #include<bits/stdc.h> using namespace std; typedef long long ll; const ll N 5e5 10; int main() {ll n, k;cin >> n >> k; ll a[N] {0}; // 初始化一个大小为N的数组a&#xff0c;用于存储排列// 构造满足条件的排列for (l…

【Linux】进程的基本概念

目录 概念描述进程-PCB如何查看进程通过系统目录进行查看通过ps指令进行查看 通过系统调用获取进程的PID和PPID(进程标⽰符)通过系统调用创建子进程通过一段代码来介绍fork为什么要有子进程&#xff1f;fork为什么给子进程返回0&#xff0c;给父进程返回子进程的PIDfork函数到底…

设备驱动与文件系统:05 文件使用磁盘的实现

从文件使用磁盘的实现逻辑分享 我们现在讲第30讲&#xff0c;内容是文件使用磁盘的具体实现&#xff0c;也就是相关代码是如何编写的。上一节我们探讨了如何从字符流位置算出盘块号&#xff0c;这是文件操作磁盘的核心。而这节课&#xff0c;我们将深入研究实现这一核心功能的…