Base de datos Oracle NoSQL: Una guía integral para desarrolladores

Sobre Oracle NoSQL Database

Oracle NoSQL Database es una solución robusta que ofrece interfaces similares a SQL para trabajar con modelos de datos NoSQL. Este sistema de base de datos permite a los desarrolladores manejar varios tipos de datos sin problemas de disparidad de impedancia, incluyendo datos relacionales planos, datos jerárquicos tipificados y datos JSON sin esquema. La disparidad de impedancia se produce cuando las diferencias entre el modelo de la base de datos y el lenguaje de programación crean desafíos en el manejo de datos. Sin embargo, Oracle NoSQL elimina esto al proporcionar una experiencia sin fisuras a través de varias estructuras de datos.

El servicio en la nube de Oracle NoSQL Database simplifica el proceso de desarrollo, permitiendo a los desarrolladores centrarse en la construcción de aplicaciones en lugar de administrar la infraestructura. Soporta modelos de base de datos de documento, de esquema fijo y de clave-valor, proporcionando tiempos de respuesta de baja latencia, replicación regional activa-activa y escalabilidad elástica. El servicio está diseñado para escalar sin esfuerzo con cargas de trabajo dinámicas, ofreciendo características tales como:

  • Transacciones ACID para garantizar la integridad de los datos
  • Escalado sin servidor para ajustes flexibles de capacidad
  • Seguridad con medidas amplias para proteger los datos
  • Precio según uso que soporta ambos modos de capacidad bajo demanda y provista

Este servicio en la nube es totalmente compatible con la base de datos Oracle NoSQL en entorno local, permitiendo a los desarrolladores alternar entre entornos en la nube y locales.

Una de las características destacadas de Oracle NoSQL es su compatibilidad con SQL, lo que permite a los desarrolladores utilizar un lenguaje de consulta familiar en un contexto de NoSQL. Esta es una ventaja significativa que reduce la pendiente de aprendizaje típica asociada con las bases de datos NoSQL, que a menudo requieren un conocimiento de lenguajes de consulta especializados. Con Oracle NoSQL, los desarrolladores pueden disfrutar de la flexibilidad de una base de datos NoSQL sin renunciar a las capacidades de consulta poderosas y familiares de SQL.

El Servicio de Base de Datos Oracle NoSQL en la Nube se encarga de la gestión del backend, lo que lo hace ideal para desarrolladores que necesitan una solución que escalará sin esfuerzo mientras minimiza el overhead operativo. Entre los beneficios clave se incluyen:

  • Enfocarse en el desarrollo de aplicaciones: Los desarrolladores pueden centrarse en construir características sin preocuparse de la gestión de servidores, almacenamiento o actualizaciones de software.
  • Escalado elástico: La base de datos se escala dinámicamente para acomodar cambios en el trabajo, garantizando que el rendimiento se mantiene consistente a medida que fluctúa la demanda.
  • Recursos provistos: Los usuarios definen los requisitos de throughput y almacenamiento de la base de datos con antelación, y el sistema ajusta automáticamente los recursos para cumplir con estas necesidades.

La Base de Datos NoSQL utiliza un modelo de datos tabular, permitiendo a los desarrolladores estructurar los datos según sea necesario mientras conservan constructos familiares como las filas y las claves únicas. Esta flexibilidad se extiende a la sustentación de ambas transacciones de solo fila y lecturas no transaccionales, haciéndola una herramienta versátil para una amplia gama de aplicaciones.

Oracle ofrece la Base de Datos NoSQL en tres ediciones:

  1. Edición Comunitària (CE): Distribuida bajo la Licencia de Apache 2.0, esta edición es ideal para desarrolladores que buscan una solución de código abierto y soportada por la comunidad.
  2. Edición Empresarial (EE): Esta versión incluye soporte comercial de Oracle y está licenciada bajo la Licencia Comercial de Oracle.
  3. Edición Básica: Una versión más ligera y simple para desarrolladores que buscan las capacidades básicas de NoSQL sin funciones de nivel empresarial.

Herramientas de Desarrollo y Ecosistema

Oracle proporciona una variedad de herramientas y SDKs para mejorar la experiencia del desarrollador, incluyendo:

  • Complemento de JetBrains: Un conector que permite a los desarrolladores interactuar con Oracle NoSQL directamente desde los IDEs de JetBrains. Puede explorar el complemento aquí: Conector de Base de Datos NoSQL de Oracle.
  • SDKs en Varios Idiomas: Oracle ofrece SDKs para Java, Python, Node.js y .NET. Puede explorar los SDKs disponibles en página de GitHub de Oracle.
  • Soporte de Java SE: Los desarrolladores que trabajan en el ecosistema Java pueden beneficiarse del soporte de las frameworks Spring y Jakarta EE, incluyendo la integración con las especificaciones Jakarta NoSQL y Jakarta Data a través de Eclipse JNoSQL.

Retos

Aunque la Base de Datos NoSQL de Oracle ofrece la ventaja significativa de la compatibilidad con SQL, conviene señalar que aún opera dentro de un paradigma NoSQL. Esto significa que incluso si los desarrolladores pueden usar consultas similares a SQL, aún es necesario un entendimiento profundo de las estructuras de datos y los principios de NoSQL para aprovechar al máximo el sistema. Conceptos como esquemas flexibles, almacenamiento de documentos y operaciones de valor-clave requieren un cambio en cómo se modelan y se consultan los datos en comparación con las bases de datos relacionales tradicionales. Los desarrolladores provenientes de entornos puramente SQL necesitarán aprender estos conceptos de NoSQL para optimizar sus aplicaciones y usar la flexibilidad ofrecida por Oracle NoSQL.

Otro factor a considerar es el creciente ecosistema que rodea a Oracle NoSQL. Mientras que la plataforma se expande rápidamente e integra con frameworks de Java populares como Jakarta EE, Spring y otras herramientas de desarrollo, todavía es relativamente nueva en comparación con algunos bases de datos NoSQL establecidas. Como resultado, la disponibilidad de herramientas de terceros, plugins y recursos dirigidos por la comunidad aún está intentando catching up. Aunque la inversión de Oracle en la plataforma garantiza un soporte continuo y un crecimiento fuertes, puede tardar un tiempo antes que el ecosistema alcance el nivel de madurez de otras bases de datos NoSQL más antiguas. Los desarrolladores deben tener en cuenta que, en algunos casos, puede ser necesario un desarrollo personalizado adicional para llenar los huecos en las herramientas o integraciones que están más disponibles para otros sistemas NoSQL.

Comienzo con Oracle NoSQL

Para comenzar a trabajar con Oracle NoSQL, los desarrolladores pueden utilizar la solución en la nube proporcionada a través de Oracle Cloud o ejecutar la base de datos localmente mediante Docker. Para la ejecución local, el siguiente comando de Docker puede ponerle en marcha:

Shell

 

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

Este comando configura una instancia de Oracle NoSQL en su máquina local, lo que facilita la prueba y el desarrollo de aplicaciones sin tener que configurar una infraestructura compleja.

Oracle NoSQL se integra sin problemas con Jakarta Data y el ecosistema Eclipse JNoSQL. A continuación, un ejemplo de una aplicación Java que muestra cómo interactuar con Oracle NoSQL usando una entidad Cerveza simple:

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;
}

La interfaz del repositorio aprovecha la especialización de Oracle NoSQL para proporcionar una experiencia de consulta similar 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);
}

Al ejecutar esta aplicación, los desarrolladores pueden interactuar con Oracle NoSQL, consultando y persistiendo datos usando estructuras Java familiares.

Conclusión

Oracle NoSQL Database ofrece una solución flexible y escalable para desarrolladores que construyen aplicaciones modernas que requieren alta disponibilidad, baja latencia y la capacidad de trabajar con modelos de datos diversos. Con características como la compatibilidad con SQL, servicios de nube gestionados y extensas herramientas para desarrolladores, Oracle NoSQL proporciona un entorno completo para desarrolladores principiantes y experimentados. Tanto en la nube como localmente, Oracle NoSQL simplifica el proceso de desarrollo, permitiendo a los desarrolladores centrarse en la construcción de características y entregar valor más rápido.

Para obtener orientación más detallada sobre cómo trabajar con Oracle NoSQL, visita la página de GitHub de Oracle.

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