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

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

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

相关文章

蓝桥杯 冶炼金属

原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …

DreamO字节开源图像编辑框架

DreamO是由字节跳动联合北京大学深圳研究生院电子与计算机工程学院共同研发的统一图像定制生成框架,支持多样化的编辑任务。 看下介绍的核心功能,还是很厉害的,今天咱们来体验下。 有正常本地部署版的。 https://github.com/bytedance/Drea…

EM储能网关ZWS智慧储能云应用(11) — 一级架构主从架构

ZWS智慧储能云针对储能场景下不同的架构体系进行了兼容,可以适配用户面临的复杂现场环境,满足更深层次的管理和维护需求。 简介 储能系统包含PCS、BMS、EMS等多个组件,不同储能架构管理和决策方式也有不同。为了适配用户面临的复杂现场环境&…

从0开始一篇文章学习Nginx

Nginx服务 HTTP介绍 ## HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 ## HTTP工作在 TCP/IP协议体系中的TCP协议上&#…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

Python SQLModel 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…

springboot根据部署服务器生成机器码+加密生成到期时间授权码设置项目在服务器的到期时间

生成机器码 首先需要在后端写个获取window或linux的机器码&#xff0c;根据CPU序列号和硬盘序列号(Windows)&#xff0c;拼接得到 /*** 操作系统的工具类*/ public class OSUtils {/*** 获取window or linux机器码** return*/public static String getOSNumber() {Map<Str…

Thumb-2指令集及其与STM32的关系

Thumb-2指令集及其与STM32的关系&#xff1a; 1. Thumb-2指令集是什么&#xff1f; 本质&#xff1a;Thumb-2是ARM公司设计的混合指令集架构&#xff0c;首次在ARMv7架构中引入&#xff08;如Cortex-M3/M4/M7&#xff09;。 核心创新&#xff1a; 融合了传统 32位ARM指令&…

Haption 力反馈遥操作机器人:6 自由度 + 低延迟响应,解锁精准远程操控体验

Haption自2001年成立以来&#xff0c;始终专注于力反馈设备与定制化解决方案的设计、研发及销售。作为工业级力反馈技术的先行者&#xff0c;其核心产品以高精度交互与可靠性著称&#xff0c;已与达索系统、空客、Orano 等行业头部企业达成深度合作&#xff0c;业务覆盖工程仿真…

C# ExcelWorksheet 贴图

C# ExcelWorksheet 贴图 在C#中,如果你想在Excel工作表中插入图片(例如,在ExcelWorksheet中贴图),你可以使用ClosedXML或EPPlus这样的库来操作Excel文件。下面我将分别介绍如何使用这两个库来实现这一功能。 使用ClosedXML 首先,确保你已经安装了ClosedXML包。你可以通…

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…

无人机EN 18031欧盟网络安全认证详细解读

EN 18031 是欧盟针对无线电设备发布的网络安全标准&#xff0c;于 2024 年 8 月正式发布&#xff0c;2025 年 1 月 30 日被列入《无线电设备指令》&#xff08;RED&#xff09;协调标准清单&#xff0c;并于 2025 年 8 月 1 日起强制执行。以下是对无人机 EN 18031 欧盟网络安全…

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…

Go 语言中switch case条件分支语句

1. 基本语法 package main import "fmt" func main() {var extname ".css"switch extname {case ".html":fmt.Println("text/html")case ".css":fmt.Println("text/css") // text/csscase ".js":fmt.…

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…

LLM基础2_语言模型如何文本编码

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 字节对编码(BPE) 上一篇博文说到 为什么GPT模型不需要[PAD]和[UNK]&#xff1f; GPT使用更先进的字节对编码(BPE)&#xff0c;总能将词语拆分成已知子词 为什么需要BPE&#xff1f; 简…

监控升级:可视化如何让每一个细节 “说话”

你有没有遇到过这样的情况&#xff1f; 监控画面里明明有“异常”&#xff0c;但值班人员愣是没发现&#xff1b; 报警响起却不知道具体发生了什么&#xff0c;只能靠猜、靠翻录像&#xff1b; 出了事回看录像&#xff0c;才发现线索早就在眼前&#xff0c;只是没人注意到………

单片机bootloader(APP的自我复制)

文章目录 Bootloader 中 APP 的自我复制与启动机制解析一、为什么要进行自我复制?二、程序整体结构概述三、汇编启动代码分析重点解释:四、C 语言部分分析核心功能:五、start\_app 函数:手动启动指定 APP六、总结七、适用场景Bootloader 中 APP 的自我复制与启动机制解析 …