Oracle 版本一直在不断升级,新特性也在不断的引入,目前长期支持版本是19c,Oracle 21c 也已经发布。 关于Oracle 不同版本的新特性可以查看如下链接:
https://apex.oracle.com/database-features/
https://docs.oracle.com/en/database/oracle/oracle-database/19/index.html
其实从官方文档可以看出,Oracle 重点介绍的是:多租户(CDB)、In-Memory和Sharding。
在我之前出版的数据中,也重点介绍了这些新特性:
《Oracle 18c 必须掌握的新特性》
https://www.cndba.cn/dave/article/3453
但从12c 以后的迭代和新特性来看,尤其是在Oracle 21c中,一些重要的新特性进一步强化了融合数据库的理念,即3M(多模型,多工作负载,多租户)。
实际上,写本篇博客的原因,也是想纠正一下我们对Oracle 数据库的一些传统的印象。 因为我们提到Oracle,想到最多的就是一个关系型数据库。 实际上,Oracle 在最近几个版本版本的迭代中,对软件的定位已经发生了改变。
Oracle Database 19c 是现在最新的长期支持板,其也是一个多模型数据库管理系统,该版本提供丰富的属性图数据库和分析特性,采用分片数据库模型,并对 NoSQL 式JSON 存储、XML 服务、文本分析、空间数据库功能和 RDF 图形数据库特性进行了增强。
所谓的Multi-model(多模型)数据库就是在一个数据库中,可以同时支持多种存储引擎或存储类型,为应用提供各种数据服务。
简单的来描述,19c 以前我们存储JSON、XML、文本、图数据库等数据是存储到二进制的BLOB中,19c 以后版本可以直接存储到表中,并进行相关的DML操作。 在这之前的解决方案,多是将这些数据存储在NoSQL 之类的专用数据库中,比如MongoDB。 因此这里就体现了多模型的概念,我们可以根据业务的需要,选择不同的模型来存储数据。
当然Oracle 这些模型是通过新特性来体现了,每个模型都有对应的文档来进行说明,操作手册可以直接从官网查看:
https://docs.oracle.com/en/database/oracle/oracle-database/21/books.html
比如我们说的Oracle 对JSON 格式的存储,可以直接查看如下链接:
https://docs.oracle.com/en/database/oracle/oracle-database/21/adjsn/
里面有详细的操作说明和示例,比如:
INSERT INTO j_purchaseorder
VALUES (
SYS_GUID(),
to_date('30-DEC-2014'),
'{"PONumber" : 1600,
"Reference" : "ABULL-20140421",
"Requestor" : "Alexis Bull",
"User" : "ABULL",
"CostCenter" : "A50",
"ShippingInstructions" :
{"name" : "Alexis Bull",
"Address" : {"street" : "200 Sporting Green",
"city" : "South San Francisco",
"state" : "CA",
"zipCode" : 99236,
"country" : "United States of America"},
"Phone" : [{"type" : "Office", "number" : "909-555-7307"},
{"type" : "Mobile", "number" : "415-555-1234"}]},
"Special Instructions" : null,
"AllowPartialShipment" : true,
"LineItems" :
[{"ItemNumber" : 1,
"Part" : {"Description" : "One Magic Christmas",
"UnitPrice" : 19.95,
"UPCCode" : 13131092899},
"Quantity" : 9.0},
{"ItemNumber" : 2,
"Part" : {"Description" : "Lethal Weapon",
"UnitPrice" : 19.95,
"UPCCode" : 85391628927},
"Quantity" : 5.0}]}');
随着版本的不断迭代,Oracle 也正从传统的关系型数据库逐步转变成多模型数据库,原来很多复杂的操作,我们可以直接在Oracle 数据库中全部完成,比如在21c 中的原生JavaScripts 的支持、SQL 宏、 JSON。 因此从长期看,这种转变或许也是一种不错的选择,至少从某些方面能简化我们的一些工作。
版权声明:本文为博主原创文章,未经博主允许不得转载。