Enlace a la página de inicio de la serie: https://www.couchbase.com/blog/couchbase-oracle-developers-part-2-architecture/

Como parte de la remodelación de datos, al pasar del modelo relacional al modelo JSON, tendrás que tener en cuenta la asignación de tipos de datos. En Oracle, tendrás que crear y declarar los tipos de cada columna explícitamente antes de cargar los datos o escribir consultas. En Couchbase, simplemente te ajustas a la sintaxis JSON y la interpretación del tipo de datos es automática e implícita. Aquí está el resumen de mapeos, conversión y aritmética en estos tipos de datos.

 

Oracle Couchbase
Modelo Relacional, Objeto-relacional JSON modelo con N1QL (SQL para JSON)
Tipos de datos 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
Cadena Tipos de datos CHAR, VARCHAR, VARCHAR2, NCHAR, NVARCHAR, LOONGVARCHAR Cadena de hasta 20 MB de longitud. Todos los datos de cadena en JSON son Unicode.
Tipos de datos de fecha y hora FECHA, HORA, TIMESTAMP, todos estos con TIMEZONE, INTERVALO Fecha, Hora, Timestamp, todos estos con zonas horarias deben representarse en Formato ISO 8601 y se guardan como cadenas. N1QL dispone de numerosas funciones de formateo, extracción, conversión y aritmética.

Este artículo trata en detalle la conversión y la aritmética en ellos.

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

Booleano BOOLEAN Booleano 

verdadero y falso se interpretan automáticamente como un valor booleano.

Numérico NÚMERO

DECIMAL

BIGINT

SMALLINT

INTEGRO

FLOTADOR

REAL

DOBLE

Datos numéricos: pueden ser enteros, fracciones o exponentes. Éstos son los rangos: https://docs.couchbase.com/server/current/analytics/9_data_type.html
Tipos de datos binarios BINARIO

VARBINARIO

LONGVARBINARY

Puede almacenar todo el documento como binario o codificar el binario como valores base64.
Tipos de datos de objetos grandes
BLOB, RAW, LONG_RAW Cada documento puede ocupar hasta 20 MB. Los datos binarios pueden codificarse mediante BASE64
CLOB Cada documento puede ocupar hasta 20 MB. 
Tipos ABSTRACT, NESTED TABLES Soporte incorporado para objetos, matrices, matrices de objetos, objetos de matrices. No hay soporte para tipos de datos opacos definidos por el usuario.
XML ¿Alguien sigue utilizando XML en las bases de datos? ;-) 
CUALQUIER TIPO ANY TYPE fue inventado para hacer las rutinas de Oracle flexibles - en términos de tipos que manejan como parámetros y tipos de retorno. 

En el modelo JSON, 

Objetos CREAR explícitamente los tipos de objeto y las columnas asociadas: CREAR TIPO tipo_persona AS OBJETO

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

Los OBJETOS se construyen en el modelo JSON con cualquier número de niveles anidados con cualquier tipo de datos, objetos o matrices.
Matrices VARRAY puede crear un array de un tipo específico y luego utilizar ese tipo como tipo para una columna. 

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

Array es un ciudadano de primera clase en el modelo de datos JSON y se puede utilizar para cualquier valor. Cada array puede ser de escalares de cualquier tipo: escalares, objetos, arrays, etc.

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

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

Notas adicionales

Tipos Date y Datetime.

Oracle y otros RDBMS tienen extensos tipos de datos para manejar datos relacionados con el tiempo y manipularlos. JSON no tiene un tipo date o datetime. Hemos elegido el tipo ISO 8601 . La idea es almacenar los datos relacionados con la fecha y la hora en forma de cadena, de conformidad con la norma ISO 8601, y luego manipularlos de manera coherente.

Conversión de clave primaria a clave de documento.

La clave de documento de Couchbase es siempre inferior a 255 bytes y suele ser una cadena. RDBMS puede tener una sola columna o múltiples columnas (compuesto) clave primaria para una tabla. Una forma común de convertir es simplemente tener un separador entre las partes individuales después de convertir cada parte a una cadena. La clave de documento debe ser única para un cubo y por lo tanto es típicamente prefijada con el tipo de tabla (colección). Véase el blog con ejemplos de cómo hacerlo correctamente.

 

Autor

Publicado por Keshav Murthy

Keshav Murthy es Vicepresidente de Couchbase R&D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con más de 20 años de experiencia en diseño y desarrollo de bases de datos. Dirigió el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Informática e Ingeniería por la Universidad de Mysore (India), es titular de diez patentes estadounidenses y tiene tres pendientes.

Dejar una respuesta