Se necesita un sistema en Java que sea capaz de interpretar las sentencias CREATE TABLE, INSERT, UPDATE, SELECT, DELETE, así como otros comandos SQL utilizando archivos CSV para las consultas de datos. Se entenderá que cada Tabla corresponderá a un archivo CSV en la ruta de trabajo (Base de Datos), en donde cada campo/atributo de la tabla corresponderá a una columna del archivo CSV.
A continuación se describirán cada una de las sentencias.
- Se deberá establecer una ruta de trabajo, el cual será el directorio desde donde se leerán y/o crearán los archivos. El nombre de la carpeta corresponderá al nombre de la base de datos. Lo anterior mediante el comando
USE $PATH$donde $PATH$ será la ruta relativa o obsoluta de la carpeta de trabajo. - Una vez establecida la ruta de trabajo, se deberá poder mostrar el listado de las Tablas (archivos CSV en la ruta de trabajo) mediante el comando
SHOW TABLES. - El comando
CREATE TABLEdeberá ser capáz de crear un nuevo archivo, respetando la sintaxis de SQL para la creación de los campos. Por ejemplo:
CREATE TABLE Alumnos ( id INT NOT NULL PRIMARY KEY, nombre VARCHAR(20) NOT NULL, app VARCHAR(20) NOT NULL, apm VARCHAR(20) NOT NULL, edad INT NULL );
dará como resultado el archivo $PATH$/Alumnos.csv con las columnas:
id,nombre,app,apm,edad.
- El comando
DROP TABLEdeberá ser capáz de eliminar el archivo de la carpeta. Se deberá preguntar si realmente quiere borrar el archivo. - El comando
INSERTdeberá ser capáz de insertar una nueva línea en el archivo/tabla. Se deberá respetar la sintaxis de SQL. Por ejemplo:INSERT INTO table_name (column1, column2,column3, ...) VALUES (value1, value2, value3, ...);. - El comando
DELETEdeberá ser capáz de borrar una fila o un conjunto de filas respetando la secciónWHEREde la sintaxis de SQL (DELETE FROM table_name WHERE condition;).
NOTA: Se deberá respetar las búsquedas complejas utilizando los comandos
ANDYOR. Por ejemplo:DELETE FROM Alumnos WHERE (app='González' AND apm <> 'Hernández') OR id=25;; Sólo borraría a los alumnos con apellidos González Hernández o aquél con id=25.
- El comando
UPDATEactualizará las columnas de una fila o un conjunto de filas. Se deberá respetar la sintaxis de SQL.UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;. **NOTA: la sección deWHERE conditionrespeta el mismo formato del comandoDELETE. - El comando
SELECTobtendrá el conjunto de datos desde la tabla/archivo respetando la sintaxys de SQLSELECT [*] | select_expr [, select_expr] ... [as alias] [FROM table_reference [WHERE where_condition].
A continuación se describe el conjunto de entregables:
- Librería en archivo
JARauto ejecutable. - Código fuente, éste se mantendrá en el respositorio.
- Como parte del repositorio se deberán programar todas las pruebas unitarias necesarias para probar el funcionamiento del sistema.
- Se deberá realizar un reporte que contenga la explicación del funcionamiento del sistema, así como la explicación a detalle de las pruebas unitarias realizadas. *EL REPORTE SE SUBIRÁ EN FORMATO PDF EN CLASSROOM.