시리즈 홈 페이지로 연결되는 링크입니다: https://www.couchbase.com/blog/couchbase-oracle-developers-part-2-architecture/
데이터 리모델링의 일환으로 관계형 모델에서 JSON 모델로 이동하는 동안 데이터 유형 매핑을 고려해야 합니다. Oracle에서는 데이터를 로드하거나 쿼리를 작성하기 전에 각 열의 유형을 명시적으로 생성하고 선언해야 합니다. Couchbase에서는 JSON 구문을 준수하기만 하면 데이터 유형 해석이 자동으로 암시적으로 이루어집니다. 다음은 이러한 데이터 유형에 대한 매핑, 변환 및 산술에 대한 개요입니다.
| 기능 | Oracle | 카우치베이스 |
|---|---|---|
| 모델 | 관계형, 객체 관계형 | JSON model with N1QL (SQL for JSON) |
| 데이터 유형 |
Oracle Data Types Reference |
Couchbase Data Types Reference |
| String Data Types | CHAR, VARCHAR, VARCHAR2, NCHAR, NVARCHAR, LONGVARCHAR | String (Unicode), up to 20 MB |
| Date & Time Data Types | DATE, TIME, TIMESTAMP (with timezone), INTERVAL |
ISO-8601 strings with N1QL date functions Detailed article |
| 부울 | 불린 | true / false |
| 숫자 | NUMBER, DECIMAL, BIGINT, SMALLINT, INTEGER, FLOAT, REAL, DOUBLE |
Integer, fractional, exponential values Numeric ranges |
| 이진 데이터 유형 | BINARY, VARBINARY, LONGVARBINARY | Binary document or Base64 encoded values |
| 대용량 개체 데이터 유형 | BLOB, RAW, LONG_RAW, CLOB | Each document up to 20 MB |
| 개체 |
User-defined object types Oracle Object Types |
Native JSON objects with unlimited nesting |
| 배열 |
VARRAY with predefined type VARRAY documentation |
First-class JSON arrays of mixed types "A": [1, "X", [3, 4]] "B": [{"x":1}, {"x":2}] |
추가 참고 사항
날짜 및 날짜/시간 유형.
Oracle 및 기타 RDBMS에는 시간 관련 데이터를 처리하고 조작하기 위한 광범위한 데이터 유형이 있습니다. JSON에는 날짜 또는 날짜/시간 유형이 없습니다. 그래서 저희는 ISO 8601 . ISO 8601을 준수하는 문자열 형식으로 날짜 및 시간 관련 데이터를 저장한 다음 일관된 방식으로 조작하는 것이 아이디어입니다.
기본 키를 문서 키로 변환합니다.
카우치베이스 문서 키는 항상 255바이트 미만이며 일반적으로 문자열입니다. RDBMS는 테이블에 대해 단일 열 또는 여러 열(복합) 기본 키를 가질 수 있습니다. 일반적인 변환 방법 중 하나는 각 부분을 문자열로 변환한 후 각 부분 사이에 구분 기호를 넣는 것입니다. 문서 키는 버킷에 고유해야 하므로 일반적으로 테이블(컬렉션) 유형이 접두사로 붙습니다. 버킷의 예제가 있는 블로그 를 올바르게 수행하는 방법에 대해 설명합니다.