Banco de Dados Oracle NoSQL: Um Guia Completo para Desenvolvedores

Sobre a Oracle NoSQL Database

A Oracle NoSQL Database é uma solução robusta que oferece interfaces semelhantes a SQL para trabalhar com modelos de dados NoSQL. Este sistema de banco de dados permite que desenvolvedores manipulem vários tipos de dados sem problemas de incompatibilidade de impedância, incluindo dados relacionais planos, dados hierárquicos tipificados e dados JSON sem esquema. A impedância ocorre quando as diferenças entre o banco de dados e os modelos de linguagem de programação criam desafios no tratamento de dados. Ainda, a Oracle NoSQL elimina isto, oferecendo uma experiência sem falhas em várias estruturas de dados.

O Serviço Oracle NoSQL Database Cloud simplifica o processo de desenvolvimento, permitindo que os desenvolvedores se concentrem em construir aplicações em vez de gerenciar infraestrutura. Suporta modelos de banco de dados de documento, esquema fixo e modelo chave-valor, fornecendo tempos de resposta de baixa latência, replicação regional ativa-ativa e escalonabilidade elástica. O serviço é projetado para escalar sem esforço com cargas de trabalho dinâmicas, oferecendo recursos como:

  • Transações ACIDpara garantir a integridade dos dados
  • Escalabilidade sem servidor para ajustes flexíveis de capacidade
  • Segurança com medidas abrangentes para proteger os dados
  • Preços por uso que suportam ambos os modos de capacidade sob demanda e provisionada

Este serviço de nuvem está totalmente compatível com o banco de dados Oracle NoSQL local, permitindo que os desenvolvedores troquem entre ambientes nuvem e local.

Uma das funcionalidades destacadas do Oracle NoSQL é sua compatibilidade com SQL, permitindo que os desenvolvedores usem um linguagem de consulta familiar em um contexto de NoSQL. É uma vantagem significativa, reduzindo a curva de aprendizagem típica associada a bancos de dados NoSQL, que frequentemente exigem conhecimento de linguagens de consulta especializadas. Com o Oracle NoSQL, os desenvolvedores podem aproveitar a flexibilidade de um banco de dados NoSQL sem renunciar às capacidades poderosas de consulta de SQL familiar.

O Serviço de Banco de Dados Oracle NoSQL Cloud trata do gerenciamento de backend, tornando-se ideal para desenvolvedores que precisam de uma solução que scale sem esforço, enquanto minimiza sobrecargas operacionais. Principais benefícios incluem:

  • Foco na desenvolvimento de aplicações: Os desenvolvedores podem concentrar-se em construir recursos sem se preocupar com o gerenciamento de servidores, armazenamento ou atualizações de software.
  • Escala elástica: O banco de dados dinamicamente ajusta-se para adequar-se a mudanças de carga de trabalho, garantindo que o desempenho se mantenha consistente mesmo com flutuações na demanda.
  • Recursos provisionados: Os usuários definem as exigências de throughput e de armazenamento do banco de dados à frente, com o sistema ajustando automaticamente recursos para atender a essas necessidades.

O Banco de Dados Não-SQL utiliza um modelo de dados tabular, permitindo que os desenvolvedores estrutuem dados de acordo com as suas necessidades enquanto mantêm estruturas familiares, como linhas e chaves únicas. Esta flexibilidade se estende aos suportes de transações de linha única e buscas não transacionais, tornando-se uma ferramenta versátil para uma ampla gama de aplicações.

A Oracle oferece o Banco de Dados Não-SQL em três edições:

  1. Edição Comunitária (CE): Distribuída sob a Licença Apache 2.0, esta edição é ideal para desenvolvedores que procuram uma solução de código aberto com suporte da comunidade.
  2. Edição Empresarial (EE): Esta versão inclui suporte comercial da Oracle e está licenciada sob a Licença Comercial da Oracle.
  3. Edição Básica: Uma versão mais leve e simples para desenvolvedores que procuram as capacidades básicas de NoSQL sem recursos de nível empresarial.

Ferramentas de Desenvolvimento e Ecosistema

A Oracle fornece uma variedade de ferramentas e SDKs para melhorar a experiência do desenvolvedor, incluindo:

  • Plugin do JetBrains: Um conector que permite que os desenvolvedores interajam com o Banco de Dados Não-SQL da Oracle diretamente dos IDEs JetBrains. Você pode explorar o plugin aqui: Conector do Banco de Dados Não-SQL da Oracle.
  • SDKs em Várias Linguagens: A Oracle oferece SDKs para Java, Python, Node.js e .NET. Você pode explorar os SDKs disponíveis em página do GitHub da Oracle.
  • Suporte a Java SE: Desenvolvedores que trabalham no ecossistema Java podem beneficiar do suporte às frameworks Spring e Jakarta EE, incluindo a integração com as especificações Jakarta NoSQL e Jakarta Data através do Eclipse JNoSQL.

Desafios

Enquanto o Oracle NoSQL Database oferece a vantagem significativa de compatibilidade com SQL, é importante notar que ele ainda opera dentro do paradigma NoSQL. Isso significa que, mesmo se os desenvolvedores conseguirem usar consultas semelhantes a SQL, é ainda necessário um entendimento profundo das estruturas de dados e dos princípios NoSQL para aproveitar ao máximo o sistema. Conceitos como esquemas flexíveis, armazenamento de documentos e operações de chave-valor exigem uma mudança no modo como os dados são modelados e consultados, comparado com bases de dados relacionais tradicionais. Desenvolvedores de ambientes exclusivamente SQL precisarão aprender esses conceitos NoSQL para otimizar suas aplicações e usar a flexibilidade oferecida pelo Oracle NoSQL.

Outra consideração é o crescente ecossistema envolvendo o Oracle NoSQL. Enquanto a plataforma expande rapidamente e integra-se a framework populares em Java como Jakarta EE, Spring e outras ferramentas de desenvolvimento, ainda é relativamente nova em comparação com algumas bases de dados NoSQL estabelecidas. Como resultado, a disponibilidade de ferramentas de terceiros, plugins e recursos comunitários ainda está se ajustando. Embora o investimento da Oracle na plataforma garante suporte contínuo e crescimento, pode levar tempo até que o ecossistema alcance o nível de maturidade de outras bases de dados NoSQL mais antigas. Os desenvolvedores devem estar cientes de que, em alguns casos, pode ser necessário desenvolver customizadamente para preencher as lacunas em ferramentas ou integrações que estão mais prontamente disponíveis para outros sistemas NoSQL.

Começando com o Oracle NoSQL

Para começar a trabalhar com o Oracle NoSQL, os desenvolvedores podem usar a solução em nuvem fornecida através do Oracle Cloud ou executar a base de dados localmente através de Docker. Para execução local, o comando a seguir pode lhes auxiliar a começar:

Shell

 

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce

Este comando configura uma instância do Oracle NoSQL em seu computador local, tornando fácil testar e desenvolver aplicações sem a necessidade de configurar infraestruturas complexas.

Oracle NoSQL integra-se seamlessly com Jakarta Data e com o ecossistema Eclipse JNoSQL. A seguir, há um exemplo de uma aplicação Java que demonstra como interagir com Oracle NoSQL usando uma simples entidade Beer:

Java

 

@Entity
public class Beer {

    @Id
    private String id;

    @Column
    private String style;

    @Column
    private String hop;

    @Column
    private String malt;

    @Column
    private List<String> comments;

    @Column
    private List<Crew> crew;

    @Column
    private Map<String, Object> data;
}

A interface de repositório aproveita a especialização de Oracle NoSQL para proporcionar uma experiência de consulta semelhante a SQL:

Java

 

@Repository
public interface BeerRepository extends OracleNoSQLRepository<Beer, String> {

    Set<Beer> findByStyle(String style);

    @Query("select * from Beer")
    Set<Beer> query();

    @Find
    @OrderBy("hop")
    CursoredPage<Beer> style(@By("style") String style, PageRequest pageRequest);

    @Query("From Beer where style = ?1")
    List<Beer> jpql(String style);
}

Executar esta aplicação permite que os desenvolvedores interajam com Oracle NoSQL, consultando e persistindo dados usando construtores Java familiares.

Conclusão

O Banco de Dados Oracle NoSQL oferece uma solução flexível e escalável para desenvolvedores que construem aplicações modernas que necessitam de alta disponibilidade, baixa latência e a capacidade de trabalhar com modelos de dados diversos. Com recursos como compatibilidade com SQL, serviços de nuvem gerenciados e ferramentas de desenvolvimento extensivas, o Oracle NoSQL fornece um ambiente abrangente para desenvolvedores iniciantes e experientes. Quer se deploy em nuvem ou localmente, o Oracle NoSQL simplifica o processo de desenvolvimento, permitindo que os desenvolvedores concentrem-se em construir recursos e entregar valor mais rápido.

Para orientações detalhadas sobre o trabalho com o Oracle NoSQL, acesse página do GitHub da Oracle.

Source:
https://dzone.com/articles/oracle-nosql-database-developers-guide