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
繁體地址,請注明出處:http://hk.pswp.cn/news/908854.shtml
英文地址,請注明出處:http://en.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 的自我復制與啟動機制解析 …