签到成功

知道了

CNDBA社区CNDBA社区

Oracle 19c 多模型(Multi-model)数据库 说明

2021-01-22 20:19 3582 1 原创 Oracle 19c
作者: dave

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。

https://www.cndba.cn/dave/article/4359

在我之前出版的数据中,也重点介绍了这些新特性:https://www.cndba.cn/dave/article/4359

《Oracle 18c 必须掌握的新特性》
https://www.cndba.cn/dave/article/3453https://www.cndba.cn/dave/article/4359

但从12c 以后的迭代和新特性来看,尤其是在Oracle 21c中,一些重要的新特性进一步强化了融合数据库的理念,即3M(多模型,多工作负载,多租户)。

https://www.cndba.cn/dave/article/4359
https://www.cndba.cn/dave/article/4359

实际上,写本篇博客的原因,也是想纠正一下我们对Oracle 数据库的一些传统的印象。 因为我们提到Oracle,想到最多的就是一个关系型数据库。 实际上,Oracle 在最近几个版本版本的迭代中,对软件的定位已经发生了改变。https://www.cndba.cn/dave/article/4359

Oracle Database 19c 是现在最新的长期支持板,其也是一个多模型数据库管理系统,该版本提供丰富的属性图数据库和分析特性,采用分片数据库模型,并对 NoSQL 式JSON 存储、XML 服务、文本分析、空间数据库功能和 RDF 图形数据库特性进行了增强。https://www.cndba.cn/dave/article/4359

所谓的Multi-model(多模型)数据库就是在一个数据库中,可以同时支持多种存储引擎或存储类型,为应用提供各种数据服务。

简单的来描述,19c 以前我们存储JSON、XML、文本、图数据库等数据是存储到二进制的BLOB中,19c 以后版本可以直接存储到表中,并进行相关的DML操作。 在这之前的解决方案,多是将这些数据存储在NoSQL 之类的专用数据库中,比如MongoDB。 因此这里就体现了多模型的概念,我们可以根据业务的需要,选择不同的模型来存储数据。

当然Oracle 这些模型是通过新特性来体现了,每个模型都有对应的文档来进行说明,操作手册可以直接从官网查看:

https://docs.oracle.com/en/database/oracle/oracle-database/21/books.htmlhttps://www.cndba.cn/dave/article/4359

比如我们说的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。 因此从长期看,这种转变或许也是一种不错的选择,至少从某些方面能简化我们的一些工作。

https://www.cndba.cn/dave/article/4359
https://www.cndba.cn/dave/article/4359

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2257
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7839393次
  • 积分:4334
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ