Link para a página inicial da série: https://www.couchbase.com/blog/couchbase-oracle-developers-part-2-architecture/
Como parte da remodelagem de dados, ao passar do modelo relacional para o modelo JSON, você terá de considerar o mapeamento do tipo de dados. No Oracle, você terá de criar e declarar os tipos de cada coluna explicitamente antes de carregar os dados ou escrever consultas. No Couchbase, você simplesmente se conforma com a sintaxe JSON e a interpretação do tipo de dados é automática e implícita. Esta é a visão geral dos mapeamentos, da conversão e da aritmética desses tipos de dados.
| Recurso | Oráculo | Couchbase |
|---|---|---|
| Modelo | Relacional, objeto-relacional | Modelo JSON com N1QL (SQL para JSON) |
| Tipos de dados |
Referência de tipos de dados Oracle |
Referência de tipos de dados do Couchbase |
| Tipos de dados String | CHAR, VARCHAR, VARCHAR2, NCHAR, NVARCHAR, LONGVARCHAR | String (Unicode), até 20 MB |
| Tipos de dados de data e hora | DATE, TIME, TIMESTAMP (com fuso horário), INTERVALO |
Cadeias de caracteres ISO-8601 com funções de data N1QL Artigo detalhado |
| Booleano | BOOLEÃO | verdadeiro / falso |
| Numérico | NUMBER, DECIMAL, BIGINT, SMALLINT, INTEGER, FLOAT, REAL, DOUBLE |
Valores inteiros, fracionários e exponenciais Faixas numéricas |
| Tipos de dados binários | BINÁRIO, VARBINÁRIO, LONGVARBINÁRIO | Documento binário ou valores codificados em Base64 |
| Tipos de dados de objetos grandes | BLOB, RAW, LONG_RAW, CLOB | Cada documento com até 20 MB |
| Objetos |
Tipos de objetos definidos pelo usuário Tipos de objetos Oracle |
Objetos JSON nativos com aninhamento ilimitado |
| Matrizes |
VARRAY com tipo predefinido Documentação da VARRAY |
Matrizes JSON de primeira classe de tipos mistos "A": [1, "X", [3, 4]] "B": [{"x":1}, {"x":2}] |
Notas adicionais
Tipos Date e Datetime.
O Oracle e outros RDBMS têm tipos de dados abrangentes para lidar com dados relacionados a tempo e manipulá-los. O JSON não tem um tipo de data ou data e hora. Escolhemos o tipo ISO 8601 . A ideia é armazenar os dados relacionados a data e hora em um formato de cadeia de caracteres, em conformidade com a norma ISO 8601, e depois manipulá-los de forma consistente.
Conversão de chave primária em chave de documento.
A chave do documento do Couchbase é sempre menor que 255 bytes e geralmente é uma string. O RDBMS pode ter uma chave primária de uma única coluna ou de várias colunas (composta) para uma tabela. Uma forma comum de conversão é simplesmente ter um separador entre as partes individuais após a conversão de cada parte em uma string. A chave do documento deve ser exclusiva de um bucket e, portanto, normalmente é prefixada com o tipo de tabela (coleção). Veja a blog com exemplos de como fazer isso corretamente.