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

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二元性不是简单功能增强,而是对数据访问层的范式重构。它证明了一个真理:卓越的技术不是让选择更简单,真正的技术创新不是增加选项,而是让矛盾得以统一共生。

相关文章:

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

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

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显示控制器芯片。本文将介…...

​​​​​​​6板块公共数据典型应用场景【政务服务|公共安全|公共卫生|环境保护|金融风控|教育科研]

1. 政务服务 1.1 城市规划与管理 公共数据在城市规划与管理中可发挥关键作用。通过汇聚自然资源、建筑物、人口分布等基础数据,构建数字孪生城市模型,辅助城市总体规划编制、决策仿真模拟。在城市基础设施建设、安全运营、应急管理等方面,公共数据也是不可或缺的基础支撑。例…...

如何实现本地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的分享 下载后…...

CSS中justify-content: space-between首尾贴边中间等距(两端元素紧贴左右边缘,中间元素等距均匀分布)

justify-content: space-between; 是 CSS Flexbox 布局中的一个属性值,主要作用是在弹性容器的主轴方向上均匀分布子元素,具有以下核心特性: 作用效果: 首尾贴边 第一个子元素紧贴容器起始端 最后一个子元素紧贴容器结束端 中…...

【知识扫盲】分布式系统架构或分布式服务中的管理面,数据面和业务面

🧩 一、三大“面”的定义与职责(以大模型推理平台为例) 层级英文名职责关键组件举例数据面Data Plane处理用户请求、模型推理、输入输出数据转换等核心任务模型服务引擎、Tokenizer/Detokenizer、推理加速器(TensorRT、ONNX Runt…...

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

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

Python爬虫:trafilatura 的详细使用(快速提取正文和评论以及结构,转换为 TXT、CSV 和 XML)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、trafilatura 概述1.1 trafilatura介绍1.2 亮点特色1.3 安装二、基本使用2.1 从URL直接提取内容2.2 输出格式控制2.3 从HTML字符串提取2.4 使用命令行工具三、高级功能3.1 全局设置3.2 提取参数定制3.3 多线程批量处…...

Cursor 工具项目构建指南: Uniapp Miniprogram 环境下的 Prompt Rules 约束

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 Cursor 工具项目构建指南: Uniapp Miniprogram 环境下的 Prompt Rules 约束前言项目简…...

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 不支持…...

Spark 写文件

Repartition Spark 输出文件数量 假设每个 Task 的输出数据都包含了全部 8 个分区值,那么最终的文件生成情况如下: 总文件数 = Task 数量 分区组合数 假设: ​Task 数量​:200 ​分区组合数​:8 个 (from_cluster 和 ds 的组合) 则: ​总文件数​:200 8 = ​1600 …...

PostgreSQL 的扩展pg_prewarm

PostgreSQL 的扩展pg_prewarm pg_prewarm 是 PostgreSQL 提供的一个实用扩展&#xff0c;用于将数据预先加载到共享缓冲区或操作系统缓存中&#xff0c;从而提升查询性能。 一、扩展概述 核心功能 手动预热&#xff1a;将指定的表或索引数据加载到内存自动预热&#xff1a;…...

F5 – TCP 连接管理:会话、池级和节点级操作

在 F5 BIG-IP 中,您可以在池成员级别或节点级别管理流向服务器的流量。节点级别状态会影响与该节点关联的所有池,而池成员状态则仅限于单个池。了解每种方法以及何时使用它们对于顺利进行维护窗口和流量管理至关重要。 池级状态:启用、禁用、强制离线、移除 在 BIG-IP 配置…...

金融预测模型开发:数据预处理、机器学习预测与交易策略优化

金融预测模型开发:数据预处理、机器学习预测与交易策略优化 概述 本文将详细介绍一个完整的金融预测模型开发流程,包含数据预处理、机器学习预测和交易策略优化三个核心模块。我们使用Python实现一个端到端的解决方案,适用于股票价格预测和量化交易策略开发。 # 导入必要…...

【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…...

Go 并发编程深度指南

Go 并发编程深度指南 Go 语言以其内置的并发原语而闻名&#xff0c;通过 goroutine 和 channel 提供了一种高效、安全的并发编程模型。本文将全面解析 Go 的并发机制及其实际应用。 核心概念&#xff1a;Goroutines 和 Channels 1. Goroutines (协程) Go 的轻量级线程实现&…...

PostgreSQL 的扩展pg_freespacemap

PostgreSQL 的扩展pg_freespacemap pg_freespacemap 是 PostgreSQL 提供的一个内置扩展&#xff0c;用于查看表的空闲空间映射&#xff08;Free Space Map, FSM&#xff09;信息。这个扩展对于数据库性能调优和空间管理非常有用。 一 扩展概述 功能&#xff1a;提供对表的空…...