Proyecto Final


Base de Datos


Modelado y Diccionario de Datos

 https://remingtonedu-my.sharepoint.com/:u:/g/personal/luis_rendon_6273_miremington_edu_co/EZgfTzW3hrdIjGvivySHkaEB9cWRPCwsSSGTt4coxS6-nQ

Enunciado

Este proyecto busca ofrecer una solución tecnológica que permita gestionar de manera eficiente los procesos en los muelles de carga. Por esto, mediante esta herramienta se podrá llevar un control detallado para la carga, descarga, distribución y manejo de los contenedores, mediante el uso de bases de datos Mysql y programación en Java.

Una de las principales ventajas de esta herramienta es su enfoque en la facilidad de uso y accesibilidad para el personal encargado de las operaciones en los muelles de carga. La solución se presentará de manera gráfica e intuitiva, lo que facilitará su manejo y reducirá los márgenes de error en la ejecución de las tareas y actividades mencionadas.

Esta característica innovadora permitirá que el personal capacitado pueda utilizar la herramienta de manera eficiente sin necesidad de contar con conocimientos técnicos avanzados en programación o en el uso de software complejos. Además, la solución tecnológica permitirá reducir los costos de implementación y de entrenamiento del personal, lo que contribuirá a que la herramienta pueda ser adoptada con facilidad en empresas de diferentes tamaños y características.

En resumen, este proyecto de gestión de procesos en los muelles de carga busca ofrecer una solución tecnológica accesible e intuitiva que permita optimizar la gestión de las operaciones logísticas en estos puntos críticos de la cadena de suministro, lo que se traducirá en una mayor eficiencia, rentabilidad y seguridad en las operaciones de importación y exportación de mercancías. 


Usuario


Base de Datos Normalizada en sus 3 Formas


Tablas

Tipo_Barco

Barco

Tipo_Persona

Propietario_Mercancia

Tipo_Mercancia

Contenedor

Mercancia

Ciudad

Puerto

Ruta

Capitan


Tabla de Movimiento (Principal)

Registro


Consultas

1. Crear un procedimiento para crear un nuevo Barco

AnálisisEsta función almacenada se llama InsertarBarco y acepta tres parámetros: p_IMO para el número IMO, p_Nombre para el nombre del barco y p_TipoBarcoCodigo para el código de tipo de barco. Cuando llames a esta función con los parámetros adecuados, insertará un nuevo registro en la tabla "barco" con los valores proporcionados.

Sintaxis: 

DELIMITER //

CREATE PROCEDURE InsertarBarco(

      IN p_IMO VARCHAR(7),

      IN p_Nombre VARCHAR(255),

     IN p_TipoBarcoCodigo INT)

BEGIN

INSERT INTO barco (IMO, Nombre, TipoBarcoCodigo) VALUES (p_IMO, p_Nombre, p_TipoBarcoCodigo);

END;

//

DELIMITER ;

Funcionamiento


2. Crear un procedimiento para eliminar un Barco

AnálisisEste procedimiento almacenado se llama EliminarBarco y toma un parámetro p_IMO que representa el número IMO del barco que deseas eliminar. Cuando llames a este procedimiento con un número IMO válido, eliminará el registro correspondiente de la tabla "barco".

Sintaxis: 

DELIMITER //

CREATE PROCEDURE EliminarBarco(IN p_IMO VARCHAR(7))

BEGIN

DELETE FROM barco WHERE IMO = p_IMO;

END;

//

DELIMITER ;

Funcionamiento


3. Crear un procedimiento para consultar un Barco

Análisis: Este procedimiento almacenado se llama ConsultarBarco y toma un parámetro p_IMO que representa el número IMO del barco que deseas consultar. Cuando llames a este procedimiento con un número IMO válido, recuperará y mostrará la información del barco desde la tabla "barco".

Sintaxis: 

DELIMITER //

CREATE PROCEDURE ConsultarBarco(IN p_IMO VARCHAR(7))

BEGIN

SELECT * FROM barco WHERE IMO = p_IMO;

END;

//

DELIMITER ;

Funcionamiento


4. Crear un Trigger(Disparador) para que cuando se cree un nuevo Tipo de Mercancía, se cree una Mercancía nueva con este nuevo tipo a manera de prueba, además se debe utilizar la fecha y hora del sistema para el campo fecha/hora de esta.

Análisis: Este trigger se activará después de insertar un nuevo registro en la tabla "tipo_mercancia" y creará automáticamente una nueva fila en la tabla "mercancia" utilizando los valores del nuevo tipo de mercancía.

Sintaxis: 

DELIMITER $$

CREATE TRIGGER InsertarMercanciaAfterTipoMercancia

AFTER INSERT ON Tipo_Mercancia

FOR EACH ROW

BEGIN

INSERT INTO Mercancia (Codigo, CantidadElementos, Peso, Descripcion, FechaHora, TipoMercanciaCodigo, PropietarioCedula, ContenedorCodigo)

VALUES (

NEW.Codigo, -- Nuevo código de la Mercancia

1, -- CantidadElementos

100.0, -- Peso

NEW.Descripcion, -- Descripción del nuevo tipo de mercancía

NOW(), -- Fecha/Hora actual

NEW.Codigo, -- Código del nuevo tipo de mercancía

1000000001 , -- PropietarioCedula

1001 -- ContenedorCodigo

);

END;

$$

DELIMITER ;

Funcionamiento


5. Se requiere que el campo 'Mapa' de la tabla Ruta sea un tipo Blob para que pueda almacenar las rutas de los mapas correctamente.

AnálisisEsta declaración cambiará el tipo de datos del campo "Mapa" a BLOB en la tabla "Ruta", Se utiliza este tipo de datos cuando se necesita almacenar imágenes, sonidos o textos muy largos.

Sintaxis: 

ALTER TABLE Ruta

MODIFY Mapa BLOB;

Funcionamiento


6. Se requiere añadir a la tabla Registro una nuevo campo llamado 'Estado' de tipo SET donde se guarden los siguientes estados ('Activo', 'Inactivo', 'Pendiente', 'Suspendido').

Análisis: Para agregar un nuevo campo de tipo SET con los estados ('Activo', 'Inactivo', 'Pendiente', 'Suspendido') a la tabla "Registro", Usamos la declaración ALTER TABLE y el nuevo campo con su tipo.

Sintaxis: 

ALTER TABLE Registro

ADD Estados SET('Activo', 'Inactivo', 'Pendiente', 'Suspendido');

Funcionamiento


7. Se desea consultar la Mercancia con la fecha de ingreso mas antigua.

Análisis: Encontrar la mercancía con la Fecha/Hora más antigua en la tabla "Mercancia" utilizando la función MIN() en una subconsulta sobre el mismo campo.

Sintaxis: 

SELECT * FROM Mercancia

WHERE FechaHora = (SELECT MIN(FechaHora) FROM Mercancia);

Funcionamiento


7. Se desea crear una tabla llamada RutasPlanificadas a partir de la tabla Registro donde se conserven los campos Ruta, Barco y Capitan, para acceder rápido a esta información.

Análisis: Creamos una nueva tabla "RutasPlanificadas" que contiene los campos "Ruta," "Barco," y "Capitán" a partir de la tabla "Registro." utilizando el comando CREATE TABLE AS.

Sintaxis: 

CREATE TABLE RutasPlanificadas AS

SELECT RutaCodigo, BarcoIMO, CapitanCedula

FROM Registro;

Funcionamiento


8. Se desea llenar la tabla "RutasPlanificadas" con datos a partir de las tablas "Ruta," "Barco," y "Capitan,".

Análisis: Esta consulta selecciona los datos de las tablas "Ruta," "Barco," y "Capitan," y los inserta en la tabla "RutasPlanificadas" correspondiente a los campos "RutaCodigo," "BarcoIMO," y "CapitanCedula."

Sintaxis: 

INSERT INTO RutasPlanificadas (RutaCodigo, BarcoIMO, CapitanCedula) 

SELECT 

    Ruta.Codigo,

    Barco.IMO,

    Capitan.Cedula

FROM Ruta, Barco, Capitan

LIMIT 8; 



9. Se desea eliminar todos los datos de la tabla 'Mercancia' donde el tipo de mercancia corresponda al código '1' consultando desde la tabla 'tipo_mercancia'.

Análisis: 

  1. Usamos la cláusula DELETE para eliminar datos de la tabla "Mercancia" y la alias como "m."
  2. Hacemos un JOIN con la tabla "tipo_mercancia" (alias "tm") en la columna "TipoMercanciaCodigo" de la tabla "Mercancia" y la columna "Codigo" de la tabla "tipo_mercancia."
  3. Luego, utilizamos una cláusula WHERE para especificar que solo queremos eliminar los registros donde el valor de "Codigo" en la tabla "tipo_mercancia" sea igual a 1.

Sintaxis: 

DELETE m

FROM Mercancia m

JOIN tipo_mercancia tm ON m.TipoMercanciaCodigo = tm.Codigo

WHERE tm.Codigo = 1;

Funcionamiento

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar