CRUD en Prolog

CRUD son siglas comunes de sistemas que permiten crear, leer, actualizar y eliminar información, en esta ocasión te explico como hacer parte por parte un CRUD en prolog, en swi-prolog concretamente.

Base de datos

En este caso usaremos por motivos de simplicidad las bases de datos por defecto de prolog que son bases de datos lógicas en memoria, si te interesa alguna base de datos en particular no dudes en contactarme en mis redes sociales.

:- dynamic cuenta/3.

Con esta línea estamos diciéndole que vamos a tener algunos hechos que pueden ser modificados en tiempo de ejecución en el hecho llamado cuenta en su versión que relaciona tres elementos. Esta parte es crítica para poder tener el CRUD en prolog.

cuenta(1, 'Juan Pérez', 1000).
cuenta(2, 'María González', 2000).
cuenta(3, 'Pedro Martínez', 1500).

Aquí estamos definiendo los valores por defecto para las cuentas con los valores para los campos id, nombre y saldo. Hasta aquí todo relativamente normal e intuitivo. Agregar esta parte es opcional y solamente se recomienda para hacer un programa de demostración para el cliente

Consultar cuenta

Tal vez esta sea la parte más simple, nos permite consultar una cuenta bancaria por su identificador o por el nombre del propietario, en le caso de el saldo monetario no lo regresamos sino que nicamente lo imprimimos usando el predicado write

leerCuenta(ID, Nombre) :-
    cuenta(ID, Nombre, Saldo), write(Saldo).

Crear cuenta

Para crear una cuenta especificamos un nuevo hecho cuenta y para hacer que se agregue justo al final de los datos que tenemos guardados usaremos assertz, si quisieramos que se guardara en la primera posición usaríamos en su lugar asserta.

crearCuenta(ID, Nombre, SaldoInicial) :-
    assertz(cuenta(ID, Nombre, SaldoInicial)).

Eliminar cuenta

Para eliminar un hecho de nuestra base de datos en memoria deberemos de usar el predicado retract.

eliminarCuenta(ID) :-
    retract(cuenta(ID, _, _)).

Cuando en algún predicado usamos un guion bajo estamos indicando que se obtenga el valor, pero que este no se debe de guardar en ninguna variable, es por ello que en nuestro predicado solamente usamos la variable ID

Actualizar cuenta

Para actualizar debemos de hacer dos operaciones, primeramente eliminar el registro y después agregar uno nuevo con el mismo ID y Nombre, pero con un saldo diferente.

actualizarCuenta(ID, NuevoSaldo) :-
    retract(cuenta(ID, Nombre, _)),
    assertz(cuenta(ID, Nombre, NuevoSaldo)).

Código completo del CRUD en Prolog

Como siempre el código fuente lo puedes hallar en mi repositorio de github.


  • Cursos de Código Facilito

    Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual de cursos en idioma exclusivamente español que inició como un canal de YouTube. Opinión de la plataforma En mi opinión la plataforma aún es incipiente y los cursos necesitan más trabajo, ya que es muy común hallarse con clases de…


  • Cursos de LinkedIn Learning

    Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma virtual de cursos propiedad de Microsoft. Hallarás mucho material en inglés, pues prácticamente todos los cursos vienen con subtítulos en castellano y en la parte técnica son muy buenos debido a la adquisición de Lynda.com. En mi opinión la plataforma…


  • Mockito: Snippets de código

    Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad. Claro que también los puedes usar para tu desarrollo en el día a día. Mock básico Si te llegan a mostrar algo como esto es mejor que sospeches, mockito se usa principalmente para pruebas de integración. Si llegas a ver…


javapro.org