오라클 공식 Document 리스트 에서는 20C 는 나타나지 않고 있습니다.
문서 링크는 아직 남아 있으며 공식 릴리즈 문서등에서는 19c 에서 21c 버전을 정식으로 사용 하는것으로 확인됩니다.

21c 는 2020년 12월 8일 부터  일부리전에서  ( Ashburn (IAD), Phoenix (PHX), Frankfurt (FRA) and London (LHR) regions) 에서 Free tier 클라우드에서 사용가능 하다고 하네요. (2021-01-05 내용추가)

- Oracle Blog 참조

blogs.oracle.com/database/introducing-oracle-database-21c


- Oracle 21c 의 공식문서 link -
docs.oracle.com/en/database/oracle/oracle-database/21/whats-new.html

 

오라클 20c 의 공식 문서가 OPEN 되었네요.
일단 문서를 보면 빅데이터 관련 내용이 먼저 순서를 차지 하고 있습니다.


Oracle Database Release 20c New Features

  1. Big Data and Data Warehousing Solutions
  2. Security Solutions
  3. Performance and High-Availability Options
  4. Tools and Languages
  5. Database Upgrade and Utilities

 

Interactive Architecture Diagram

아래 링크에서는 변경된 아키텍처에 관해서 살펴 볼수 있습니다.

https://www.oracle.com/webfolder/technetwork/tutorials/architecture-diagrams/20/database-technical-architecture.html

 

Oracle Database Technical Architecture

This interactive diagram shows the Oracle Database 20c technical architecture. Show PDF    |   Show Instructions To step through the slide show, click the Previous and Next buttons. To return to the first slide, click the First button. The breadcrumb below

www.oracle.com

 

 개인적으로 다른것보다 20c 공식적으로 JSON 데이터 타입이 추가 되었다는 내용이 보입니다.
이전에 JSON Document 형태의 활용에 관한 포스팅을 하면서 언급했던 반쪽 짜리 JSON 기능이  20c 부터 어느정도 구체화되었다고 생각 할 수 있을것 같습니다.

 테이블의 칼럼 자체를 JSON TYPE 으로 생성 할 수 있게 하고, SQL 과 PLSQL function을 사용 할 수 있게 되었습니다만
안타깝게도 파라메터 initialization parameter compatible 20 이하에서는 사용할수 없다고 합니다.
결국 새로운 서비스를 하는 신규 DB 에서만 활용이 가능하겠네요..


JSON 관련 Oracle Document :

https://docs.oracle.com/en/database/oracle/oracle-database/20/newft/new-json-data-type.html

 

Database New Features Guide

 

docs.oracle.com

 


JSON  관련 ORACLE blog :

https://blogs.oracle.com/sql/how-to-store-query-and-create-json-documents-in-oracle-database

 

How to Store, Query, and Create JSON Documents in Oracle Database

JavaScript Object Notation (JSON) is a lightweight data transfer format. It's the de facto standard for document exchange. So it's likely you'll want to send and receive JSON documents from and to your database. And store them in your tables. Oracle Databa

blogs.oracle.com

 

현재는 구체적인 설명없이 링크를 나열했지만, 나중에 다시 정리 하게 된다면 그때는 API 안에서의 구체적인 사례에 대해서 공유 할 수 있기를 스스로에게 기대 해보겠습니다.

(Oracle Cloud와 On-Premise에서 Oracle APEX 관련 문서도 마무리 못하고 묵혀놓은지가 몇개월 되가네요.)

추가 : 
오라클 블로그에서 20c 에 대한 글이 포스팅되어 있는데  Blockchain Table에 대한 내용도 확인이 가능하다고 합니다.
Heap Table 과 비슷하게 작동하지만 가장 주목할만한 변화는 변경 불가능한 암호화된 Hash 값이 입력이 된다고 하네요

https://blogs.oracle.com/database/oracle-database-20c-preview



Oracle Blog 참조 링크
https://blogs.oracle.com/database/oracle-database-20c-preview

 



오라클 12.1과 12.2 자체의 JSON 활용에 관한예제 및 스크립트를 준비해놓고 너무 많은 시간이 지나버렸습니다.  개인적인 욕심에 이것저것 새로운 것들을 해보고 혼자 기뻐하고 끝나는게 아쉬워서 블로그를 시작했지만, 게으름으로 인해서 두번째 페이지의 보강이 늦어져서 검색후 오시는분들에게 실무적인 내용이 없는데에 미안하게 생각하고 있습니다. 

현재는 AWS, 오라클 클라우드 아키텍처 구성과 데이터분석관련 헤딩을 하고 있어서 마음의 여유가 생기는데로 정리하도록 하겠습니다.

Oracle 9i 에서 처음 제공된 XML DB의 기능을 개인적으로 많이 사용하지는 않았지만 버전이 올라가면서 기능적으로 추가가 되었습니다.


 XMLType이  데이터 타입으로 지원되어 데이터베이스의 XML 문서를 SQL에서 액세스 할 수 있으며 XML 개발자는 문서에서 XML 표준을 사용할 수 있습니다. 이는 XML 문서에 대해 쿼리를 수행 할 수 있도록 했습니다. Varchar 또는 CLOB 구현 대신 XML Type을 사용하여 Table, Column 또는 View를 만들 수 있습니다. 매개 변수 및 변수에 대한 데이터 유형으로 사용할 수도 있었습니다.

하지만 12C 이전 버전에서는 JSON TYPE에 대한 기능등을 제공하지 않아서 APEX_JSON 과 PL/JSON 이라는 오픈소스의 라이브러리를 사용하여서 필요한 기능들을 사용해야 했습니다.


 오라클 Database 12c 는 트랜잭션, 인덱싱, 선언적 쿼리 및 View 를 포함한 관계형 데이터베이스 기능을 기본으로 JSON (JavaScript Object Notation) 데이터를 지원한다고 합니다.

XML 과 JSON 의 특징비교는 넘어가도록 하고 데이터 베이스에서의 비교를 하겠습니다.


오라클 데이터 베이스 안에서 XML 과 JSON 의 차이는 XML 은 XMLTpye 를 사용 하여 저장 가능 하지만 JSON 데이터는 Varchar2,BLOB,CLOB 를 이용하여 저장 됩니다. 권고사항은 Check 제약조건을 항상 사용 하여 Column 값이 유효한 JSON 인지 확인 하는 것이 좋다고 합니다.

LAX(느슨한) Strict(엄격한) Column 으로 관리 할지에 따라서 옵션을 부여 하면 됩니다. (Default: LAX)


-- EX) Table 생성시 CLOB JSON column script

{column_name} CLOB CONSTRAINT {constraint_name} CHECK ({column_name}IS JSON)

{column_name} CLOB CONSTRAINT {constraint_name} CHECK ({column_name} IS JSON STRICT)


18C 버전기준으로 XML 과 공간데이터(Spatial Types), ANYTYPE 등 생소한 데이터 타입들이 많이 있지만 JSON  type 은 예정에 없나 봅니다.


다음 문서는 CLOB TYPE 의 JSON 칼럼을 기준으로 작성된 스크립트의 예제 수정해서 사용합니다.

출처 : Oracle Database Online Documentation 12c Release 1 (12.1) 


* Object Creation Scripts

 A. ELEMENT Query

-- Example A-1 직접 조건 절에 따른 데이터 조회

-- Example A-2  Column 추출후 데이터 비교 조회

-- Example A-3 JSON Arry를 JSON DATA로 조회 

-- Example A-4 JSON 배열 요소 표시 

-- Example A-5 JSON Array 더하기 다른 데이터 조회

-- Example A-6 JSON_TABLE: NESTED 사용 배열 elements

-- Example A-7 JSON 점(.) 표기 AND JSON_VALUE 쿼리 비교 1  

-- Example A-8 JSON 표기 AND JSON_VALUE 쿼리 비교 2


 B.INDEX : Bitmap 은 Enterprise Version 만 사용가능하며 B-tree 기본  

-- Example B-1 Creating a Bitmap Index for JSON_EXISTS  

-- Example B-2 Creating a Bitmap Index for JSON_VALUE                                  

-- Example B-3 Creating a Function-Based Index for a JSON Object Field: JSON_VALUE

-- Example B-4 Function-Based Index(FBI) : 펑션 기반 인덱스 사용

-- Example B-5 JSON_VALUE 명시 적  RETURNING NUMBER

-- Example B-6 Numerical Conversion 숫자형 변환 조회

-- Example B-7 묵시적 형변환  Numerical Conversion


 C. Indexing Multiple JSON Fields Using a Composite B-Tree Index

-- Example C-1 Creating Virtual Columns for JSON Object Fields

-- Example C-2 Creating a Composite B-tree Index for JSON Object Fields

-- Example C-3 Two Ways to Query JSON Data Indexed with a Composite Index


 D. Full-Text Search of JSON Data

 E. Loading External JSON Data

 F. Replication of JSON Data