Proyecto Final

  1. Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 12 tablas) (Entrega 1)

2. REALIZAR LO SIGUIENTE:

2.1. Darle un nombre a la base de datos.

2.2. Listado de tablas que llevara la BD. (Cuales son referenciales y cuales son de movimiento)

2.3. Diseñar el diccionario de datos de cada tabla (campo, nombre el campo, tipo, tamaño y descripción).

2.4. Montar o diseñar el modelo entidad relación.

2.5. Dibujar el Diagrama relacional.

3. Crear la BD y las tablas respectivas en MySQL (guardar evidencias del código MySQL con el que resuelva dicha actividad) (Entrega 2)

4. Diseñar ejercicios en los que se apliquen los diferentes comandos que se utilizaron durante el semestre con su respectivo análisis y resultados. (Entrega 3)

5. Sustentación

Solución

Enunciado del problema

La empresa A'sellaseg ingeniería desea implementar una base de datos para llevar un cierto control sobre el sistema de moldes. Se requiere que esta base de datos almacene la información correspondiente a cada molde (número o referencia, descripción, medidas, fecha de fabricación, valor), se debe tener en cuenta que puede ser tipo molde o tipo perfil y varios materiales para su fabricación.

Se desea también almacenar la empresa a quien se le fabricó con su correspondiente orden de producción, ubicación y el Nit que lo identifica, también el operario que lo trabajó por última vez (nombre, cargo en la empresa, edad, numero de contacto, fecha), La orden debe almacenar la información de cómo se trabajó la última vez (temperatura y tiempo).

Y por último se desea llevar control sobre los moldes que son desechados y los que son reutilizados.

Adicional se debe crear una tabla zona con un campo tipo enum donde se especifique que funciones se realizan allí, una tabla para los cargos o las diferentes funciones que pueden emplear un operario ( zona, horario, jefe inmediato), otra tabla donde se listen las tipos de maquinas con las que se disponen y sus características ( nombre, la descripción o su función, zona) y por ultimo especificar que moldes están programados para ser reparados( fecha, descripción o cual es la reparación.

Todo lo anterior aplicando conceptos vistos en la asignatura base de datos II como manejo de fechas, disparadores, condicionales, datos set, enum, blob y manejo de cadenas. 

Entrega 3:

1. Consultar el nombre del operario, el nombre del molde y el mes en que se trabajó.

a. ¿Qué se desea consultar y de que tablas?

operario.nombr

molde.descripcion

moldeoperario.fechaultimavez(month)

b. ¿Qué tablas se ven afectadas?

molde

operario

moldeoperario

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

select

e. Sintaxis: select nombre, descripcion, month(fechaultimavez) 'Mes' from operario,molde,moldeoperario where operario.codoperario = moldeoperario.codoperario and moldeoperario.numeromolde=molde.numeromolde;


2. Muestre la antigüedad de cada molde;

a. ¿Qué se desea consultar y de que tablas?

molde.descripcion

antiguedad en años

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

select

e. Sintaxis           select descripcion, year(current_date()) - year(fechaelaboracion) 'Antiguedad en años' from molde;


3. Mostrar que moldes se fabricaron los últimos 5 años

a. ¿Qué se desea consultar y de que tablas?

molde *

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

fechaelaboracion <=5

d. ¿Qué comandos se debe utilizar?

select

e. Sintaxis:                select * from molde where year(current_date()) - year(fechaelaboracion) <=5;


4. Consultar el molde más antiguo.

a. ¿Qué se desea consultar y de que tablas?

antiguedad en años

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, max

e. Sintaxis: select max(year(current_date()) - year(fechaelaboracion)) 'Antiguedad en años' from molde;


5. Consultar que moldes se trabajaron en el año 2020.

a. ¿Qué se desea consultar y de que tablas?

Molde.descripcion

b. ¿Qué tablas se ven afectadas?

Molde

moldeoperario

c. Condiciones

fechaultimavez = '2020';

d. ¿Qué comandos se debe utilizar?

select

e. Sintaxis: select descripcion from molde, moldeoperario where molde.numeromolde = moldeoperario.numeromolde and year(fechaultimavez) = '2020';


6. crear una vista con la fecha de elaboración de los moldes y el año en que se desechó.

a. ¿Qué se desea consultar y de que tablas?

Molde.descripcion

Molde.fechaelaboracion

desechado.Year(fecha)

b. ¿Qué tablas se ven afectadas?

molde

Desechado

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, view

e. Sintaxis: create view desechados as select descripcion,fechaelaboracion, year(fecha)' Año desechado' from molde,desechado where molde.numeromolde = desechado.numeromolde;


7. consultar los clientes cuyo Nit comience por 900 y el digito de verificación 4 o 5(ultimo digito).

a. ¿Qué se desea consultar y de que tablas?

Cliente.nombrecliente

Cliente.nit

b. ¿Qué tablas se ven afectadas?

cliente

c. Condiciones

substr(nit,1,3) in ('900') and substr(nit,10,1) in ('4','5');

d. ¿Qué comandos se debe utilizar?

Select, substr

e. Sintaxis: select nombrecliente, nit from cliente where substr(nit,1,3) in ('900') and substr(nit,10,1) in ('4','5');


8. listar los cargos cuya descripcion se menor o igual a 30

a. ¿Qué se desea consultar y de que tablas?

Cargo.nombre

Cargo.descripcion

b. ¿Qué tablas se ven afectadas?

cargo

c. Condiciones

character_length(descripcion) <= 30;

d. ¿Qué comandos se debe utilizar?

Select, carácter_length

e. Sintaxis:              select nombre, descripcion from cargo where character_length(descripcion) <= 30;


9. Consultar los moldes que tienen precio mayor a 1000 y menor igual a 100000, y sacar un mensaje que diga económico, de lo contrario debe salir un mensaje que diga costoso.

a. ¿Qué se desea consultar y de que tablas?

Molde.descripcion

valoracion

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

(valor>1000 and valor<=100000

d. ¿Qué comandos se debe utilizar?

Select, if

e. Sintaxis: select descripcion,if(valor>1000 and valor<=100000, 'Económico','Costoso') Valoracion from molde;


10. consultar que día se reparó el ultimo molde

a. ¿Qué se desea consultar y de que tablas?

Día de la reparación

b. ¿Qué tablas se ven afectadas?

reparacion

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, case

e. Sintaxis: select @fecha:=min(fechareparacion) from reparacion;

select case(weekday(@fecha)) when 0 then 'lunes' when 1 then 'martes' when 2 then 'miercoles' when 3 then 'jueves' when 4 then 'viernes' when 5 then 'sabado' when 6 then 'domingo' end;


11. encriptar la ubicación del cliente Exco.

a. ¿Qué se desea consultar y de que tablas?

Cliente.ubicacion

b. ¿Qué tablas se ven afectadas?

cliente

c. Condiciones

nombrecliente ='Exco';

d. ¿Qué comandos se debe utilizar?

Select, encode, @clave:=

e. Sintaxis: select @ubicacion:= ubicacion from cliente where nombrecliente ='Exco';

select encode('Ubicacion','dia');


12. crear una vista con las ubicaciones de los clientes encriptadas.

a. ¿Qué se desea consultar y de que tablas?

Cliente.ubicacion

b. ¿Qué tablas se ven afectadas?

cliente

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select , view, encode

e. Sintaxis: create view encriptados as select encode(ubicacion,'123') 'Ubicacion' from cliente;


13. desencriptar las ubicaciones de los cliente

a. ¿Qué se desea consultar y de que tablas?

Encriptados.ubicacion

b. ¿Qué tablas se ven afectadas?

encriptados

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, decode

e. Sintaxis:           select decode(ubicacion,1997) from encriptados;


14. localizar la primera letra o en los nombre de los cargos.

a. ¿Qué se desea consultar y de que tablas?

Posición de la letra o

b. ¿Qué tablas se ven afectadas?

cargo

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, position

e. Sintaxis:                 select position('o' in nombre)'Posicion' from cargo;


15. Consultar los moldes que se van a ser modificados. (Dato tipo set)

a. ¿Qué se desea consultar y de que tablas?

reparacion *

b. ¿Qué tablas se ven afectadas?

reparacion

c. Condiciones

descripcion like'%Modificacion%'

d. ¿Qué comandos se debe utilizar?

select, like

e. Sintaxis:                    select * from reparacion where descripcion like'%Modificacion%';


16. Consultar los moldes que son de tipo perfil (Dato tipo set)

a. ¿Qué se desea consultar y de que tablas?

Molde.descripcion

Molde.tipo

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

tipo = perfil

d. ¿Qué comandos se debe utilizar?

select

e. Sintaxis:                     select descripcion, tipo from molde where tipo =2;


17. Consultar los cargos que trabajan día completo. (Dato tipo enum)

a. ¿Qué se desea consultar y de que tablas?

*

b. ¿Qué tablas se ven afectadas?

cargo

c. Condiciones

horario Dia completo

d. ¿Qué comandos se debe utilizar?

Select, like

e. Sintaxis:              select * from cargo where horario like '%Dia completo%';


18. consultar que máquinas requieren protector facial

a. ¿Qué se desea consultar y de que tablas?

*

b. ¿Qué tablas se ven afectadas?

maquina

c. Condiciones

descripcion like '%protector facial%';

d. ¿Qué comandos se debe utilizar?

Select, like

e. Sintaxis:                select * from maquina where descripcion like '%protector facial%';


19. crear otra tabla a partir de la tabla cargo con los diferentes cargos que hay en la empresa.

a. ¿Qué se desea consultar y de que tablas?

Cargo.nombre

b. ¿Qué tablas se ven afectadas?

cargo

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, create

e. Sintaxis:                              Create table cargos

                                                select distinct nombre as Cargo

                                                from cargo;


20. crear otra tabla con el valor total por tipo de molde.

a. ¿Qué se desea consultar y de que tablas?

Molde.tipo        

Sum(valor)

b. ¿Qué tablas se ven afectadas?

molde

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, create, sum, group by

e. Sintaxis:                 create table valortotal

                                   select tipo, sum(valor) 'Valor Total' from molde

                                   group by tipo;


21. crear una tabla e insertar en ella los jefes y las zonas que administra.

a. ¿Qué se desea consultar y de que tablas?

Zona.jefeinmediato

Zona.piso

b. ¿Qué tablas se ven afectadas?

zona

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

 Select, insert

e. Sintaxis 

                              create table zona2

                              (jefeinmediato varchar(40),

                              piso varchar(20));


                              insert into zona2

                              select z.jefeinmediato, z.piso

                              from zona as z


22. Consultar la información de los moldes relacionada con los clientes. (cross join)

a. ¿Qué se desea consultar y de que tablas?

Molde *

Cliente *

b. ¿Qué tablas se ven afectadas?

Molde

cliente

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

Select, Cross join

e. Sintaxis                    select m.*,c.*

                                     from molde as m

                                     cross join cliente as c;


23. Consultar nombre del cliente y el respectivo nombre de molde (inner join).

a. ¿Qué se desea consultar y de que tablas?

cliente.nombrecliente

molde.nombre

b. ¿Qué tablas se ven afectadas?

cliente

molde

climolorden

c. Condiciones

NA

d. ¿Qué comandos se debe utilizar?

select, inner join

e. Sintaxis            select nombrecliente, descripcion from cliente inner join climolorden on cliente.codcliente=climolorden.codcliente inner join molde on climolorden.numeromolde=molde.numeromolde;


24. Consultar que moldes no son reutilizados ( left join).

a. ¿Qué se desea consultar y de que tablas?

molde.nombre

reutilizado.fecha

reutilizado.numeromolde

reutilizado.nuevonumeromolde

b. ¿Qué tablas se ven afectadas?

molde

reutilizado

c. Condiciones

reutilizado.numeromolde is null

d. ¿Qué comandos se debe utilizar?

left join

e. Sintaxis            select molde.descripcion, reutilizado.fecha, reutilizado.numeromolde, reutilizado.nuevonumeromolde from molde left join reutilizado on molde.numeromolde=reutilizado.numeromolde where reutilizado.numeromolde is null;

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