¿Cómo interactúan las bases de datos con las aplicaciones?

Podemos suponer que una aplicación se compone de una serie de capas:

  • Capa de presentación: aquí es donde los usuarios interactúan con una aplicación a través de solicitudes y respuestas proporcionadas en un navegador o consola.
  • Capa de aplicación: implementa la lógica de negocios y procesa las solicitudes de los usuarios y sus respuestas.
  • Capa de datos: proporciona servicios de persistencia y recuperación para la base de datos.

Además, podemos suponer que su pregunta se refiere al sistema clásico de gestión de bases de datos relacionales (RDBMS) en el que las tablas se definen utilizando un lenguaje de consulta estructurado (SQL) para representar los datos en un dominio determinado y las relaciones que definen cómo se relacionan las tablas con cada uno otro.

Un método popular utilizado por los programas Java para llevar a cabo la interacción de la base de datos es a través de lo que se denomina objetos de acceso a datos (DAO). Estos DAO residen en la capa de datos de una aplicación y proporcionan acceso a los datos almacenados en un sistema de gestión de bases de datos (DBMS), pero sin exponer detalles de la base de datos. Los DAO se pueden implementar de varias maneras. Estos pueden variar desde una interfaz bastante simple o una colección de métodos que separan las partes de acceso a datos de la lógica de la aplicación, hasta marcos y productos comerciales, por ejemplo, Hibernate.

Cualquiera sea la implementación, una clase DAO constará de métodos para CRUD, es decir, crear, leer, actualizar y eliminar operaciones para una tabla en una base de datos. Para demostrar esto, el siguiente extracto de código Java se toma de un método de una clase DAO al que pueden llamar los programas en la capa de aplicación para recuperar una fila / registro de una tabla de base de datos llamada Persona:

// Construir SQL.
Consulta de cadena = (“SELECT *” +
“DE persona” +
“WHERE Person_Id =?”);
tratar {

// PreparedStatement y parámetros.
ps = c.prepareStatement (consulta);
ps.setInt (1, personId);

// Ejecuta SQL.
rs = ps.executeQuery ();

En este ejemplo, el SQL sin procesar para la operación de recuperación está incrustado en el código de línea Java (2) del método. Usando un objeto Java PreparedStatement, el parámetro Person_Id necesario se asigna del Java al SQL (líneas 8 y 9) y se completa con el valor de la variable personId, después de lo cual se ejecuta el SQL (línea 12). Person_Id es la clave principal de la tabla Person en la base de datos.

Una vez que el SQL se ha ejecutado, otro código Java en el método procesará los datos recuperados y los devolverá al programa de llamada de la aplicación.

Es más al revés, las aplicaciones interactúan con las bases de datos. Probablemente hayas oído hablar de CRUD. Crear, informar, actualizar y eliminar. Una aplicación necesita poder hacer esas cuatro operaciones con datos en una base de datos.

Si necesita conservar datos = Crear (o Insertar)

Si necesita modificar datos existentes = Actualizar.

Si necesita eliminar datos = Eliminar

Si necesita consultar datos = Informe (o Seleccionar).