시리즈 홈 페이지로 연결되는 링크입니다: https://www.couchbase.com/blog/couchbase-oracle-developers-part-2-architecture/

데이터 리모델링의 일환으로 관계형 모델에서 JSON 모델로 이동하는 동안 데이터 유형 매핑을 고려해야 합니다. Oracle에서는 데이터를 로드하거나 쿼리를 작성하기 전에 각 열의 유형을 명시적으로 생성하고 선언해야 합니다. Couchbase에서는 JSON 구문을 준수하기만 하면 데이터 유형 해석이 자동으로 암시적으로 이루어집니다. 다음은 이러한 데이터 유형에 대한 매핑, 변환 및 산술에 대한 개요입니다.

 

Oracle 카우치베이스
모델 관계형, 객체 관계형 JSON 모델과 N1QL(JSON용 SQL)
데이터 유형 https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/Data-Types.html#GUID-A3C0D836-BADB-44E5-A5D4-265BA5968483 https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/datatypes.html
문자열 데이터 유형 문자, 바이트열, 바이트열2, 엔차트, 엔바차트, 롱바차트 최대 20MB 길이의 문자열입니다. JSON의 모든 문자열 데이터는 유니코드입니다.
날짜 및 시간 데이터 유형 날짜, 시간, 타임스탬프, 시간대, 간격이 포함된 모든 것 날짜, 시간, 타임스탬프, 시간대가 있는 이 모든 항목은 다음과 같이 표시되어야 합니다. ISO 8601 형식 로 변환하여 문자열로 저장합니다. N1QL에는 서식 지정, 추출, 변환 및 산술에 대한 광범위한 기능이 있습니다.

이 문서에서는 변환 및 산술에 대해 자세히 설명합니다.

https://www.couchbase.com/blog/dates-timestamps-timezones-comparative-study-oracle-n1ql-support-date-time-feature-part-1/

부울 불린 부울 

true 그리고 false 는 자동으로 부울 값으로 해석됩니다.

숫자 번호

십진수

BIGINT

SMALLINT

INTEGER

FLOAT

REAL

더블

숫자 데이터: 정수, 분수 또는 지수가 될 수 있습니다. 범위는 다음과 같습니다: https://docs.couchbase.com/server/current/analytics/9_data_type.html
이진 데이터 유형 바이너리

다양한

롱바이어리

전체 문서를 바이너리로 저장하거나 바이너리를 base64 값으로 인코딩할 수 있습니다.
대용량 개체 데이터 유형
blob, raw, long_raw 각 문서는 최대 20MB까지 가능합니다. 바이너리 데이터는 BASE64를 통해 인코딩할 수 있습니다.
CLOB 각 문서의 용량은 최대 20MB입니다. 
초록 유형, 중첩된 테이블 객체, 배열, 객체의 배열, 배열의 객체에 대한 기본 지원. 사용자 정의 불투명 데이터 유형은 지원하지 않습니다.
XML 아직도 데이터베이스에서 XML을 사용하시나요? ;-) 
모든 유형 모든 유형은 오라클 루틴이 매개변수 및 반환 유형으로 처리하는 유형을 유연하게 만들기 위해 개발되었습니다. 

JSON 모델에서, 

개체 객체 유형 및 이와 관련된 열을 명시적으로 생성합니다: 만들기 유형 person_typ AS 객체

URL: https://docs.oracle.com/en/database/oracle/oracle-database/18/adobj/key-features-object-relational-model.html#GUID-0C7CE261-467B-4F8B-A04D-B0900E1FB284

오브젝트는 데이터 유형, 오브젝트 또는 배열을 사용하여 중첩된 레벨 수에 관계없이 JSON 모델에 내장됩니다.
배열 VARRAY는 특정 유형의 배열을 생성한 다음 해당 유형을 열의 유형으로 사용할 수 있습니다. 

URL: https://docs.oracle.com/cd/B28359_01/appdev.111/b28371/adobjcol.htm#i468598

배열은 JSON 데이터 모델에서 1급 시민이며 모든 값에 사용할 수 있습니다. 각 배열은 스칼라, 객체, 배열 등 모든 유형의 스칼라가 될 수 있습니다.

"A": [1, "X", [3, 4]]

"B": [{"x":1}, {"x":2}]

추가 참고 사항

날짜 및 날짜/시간 유형.

Oracle 및 기타 RDBMS에는 시간 관련 데이터를 처리하고 조작하기 위한 광범위한 데이터 유형이 있습니다. JSON에는 날짜 또는 날짜/시간 유형이 없습니다. 그래서 저희는 ISO 8601 . ISO 8601을 준수하는 문자열 형식으로 날짜 및 시간 관련 데이터를 저장한 다음 일관된 방식으로 조작하는 것이 아이디어입니다.

기본 키를 문서 키로 변환합니다.

카우치베이스 문서 키는 항상 255바이트 미만이며 일반적으로 문자열입니다. RDBMS는 테이블에 대해 단일 열 또는 여러 열(복합) 기본 키를 가질 수 있습니다. 일반적인 변환 방법 중 하나는 각 부분을 문자열로 변환한 후 각 부분 사이에 구분 기호를 넣는 것입니다. 문서 키는 버킷에 고유해야 하므로 일반적으로 테이블(컬렉션) 유형이 접두사로 붙습니다. 버킷의 예제가 있는 블로그 를 올바르게 수행하는 방법에 대해 설명합니다.

 

작성자

게시자 케샤브 머시

케샤브 머시는 Couchbase R&D의 부사장입니다. 이전에는 MapR, IBM, Informix, Sybase에서 근무했으며 데이터베이스 설계 및 개발 분야에서 20년 이상의 경력을 쌓았습니다. IBM Informix에서 SQL 및 NoSQL R&D 팀을 이끌었습니다. Couchbase에서 두 번의 President's Club 상을, IBM에서 두 번의 우수 기술 업적상을 수상했습니다. 인도 마이소르 대학교에서 컴퓨터 과학 및 공학 학사 학위를 받았으며, 10개의 미국 특허를 보유하고 있고 3개의 미국 특허를 출원 중입니다.

댓글 남기기