Você está na página 1de 31

CONSTRUCCIÓN DE ELEMENTOS DE PROGRAMACIÓN

PARA EL PROYECTO DE FORMACIÓN

Informe Escrito

Presentado por:

EDUARD ANDRES ROMERO ECHEVERRY

Aprendiz

SERVICIO NACIONAL DE APRENDIZAJE SENA

ANALISIS Y DESARROLLO DE SISTEMAS DE INFORMACION

2018
INTRODUCCIÓN

De acuerdo con el diseño de la base de datos estructurado durante la fase anterior, se

seleccionó MySQL como sistema de gestión de base de datos y además se utilizó a MySQL 5.7

como administrador de la base de datos; a partir de ahí se construyó la estructura de tablas

correspondiente, incorporando las restricciones de diseño definidas para el mismo y sobre estas

se construirán los elementos de programación para el sistema de información como los

procedimientos de almacenado, funciones y desencadenadores.


CONSTRUCCIÓN DE LA BASE DE DATOS DEL SISTEMA

DE INFORMACIÓN PARA REGISTRO DE DATOS DE LOS CONJUNTOS

RESIDENCIALES SEGURIDAD BRIN

SENTENCIAS UTILIZADAS EN LA CONSTRUCCION DE LOS OBJETOS DE LA BASE

DE DATOS

Crear base de datos llamada ‘conjuntos’.

CREATE DATABASE `conjuntos`;


SHOW DATABASES;
USE DATABASE ` conjuntos`;

Diagrama Relacional de la Base de Datos Proyecto de Formación.


1. Construya minimo 10 procedimientos Almacenados para inserción de registros de la
BD del proyecto de formación.

1.1. PROCEDIMIENTO DE INSERCION DE CONJUNTO:


Delimiter //
CREATE PROCEDURE insertarconjunto (
IN ConNit char(10),
IN ConNombre varchar (50) ,
IN ConDireccion varchar (50),
IN ConTelrecepcion char (10)
)
BEGIN
INSERT INTO conjunto
(ConNit, ConNombre, ConDireccion, ConTelrecepcion)
VALUES
(Nit, Nombre, Direccion, Telefono);
End //

CALL insertarconjunto ('0000000001','Andromeda','av agosto', '3114493253');

1.2. PROCEDIMIENTO DE INSERCION DE APARTAMENTOS:


Delimiter //
CREATE PROCEDURE insertarapartamentos (
IN Numero int(4),
IN Conjunto char(10),
IN Propietario char(10),
IN Parqueaderoasignado char(1)
)
BEGIN
INSERT INTO apartamentos
(ApaNumero, ApaConjunto, ApaPropietario, ApaParqueaderoasignado)
VALUES
(Numero, Conjunto, Propietario, Parqueaderoasignado);
End //

CALL insertarapartamentos ('5','0000000001','1094904734','5'),

1.3. PROCEDIMIENTO DE INSERCION DE PROPIETARIOS:


Delimiter //
CREATE PROCEDURE insertarpropietarios (
IN Cedula char(10),
IN Nombre varchar(50),
IN Apellido varchar(50),
IN Telefono int(11)
)
BEGIN
INSERT INTO propietarios
(ProCedula, ProNombre, ProApellido, ProTelefono)
VALUES
(Cedula, Nombre, Apellido, Telefono);
End //

CALL insertarpropietarios ('1094904734','Andres','Echeverry','3145678');

1.4. PROCEDIMIENTO DE INSERCION DE VEHICULOS:


Delimiter //
CREATE PROCEDURE insertarvehiculos (
IN Placa char(6),
IN Propietario char(10),
IN Tipo varchar(10),
IN Marca varchar(10),
IN Modelo int(11)
)
BEGIN
INSERT INTO vehiculos
(VehPlaca, VehPropietario, VehTipo, VehMarca, VehModelo)
VALUES
(Placa, Propietario, Tipo, Marca, Modelo);
End //

CALL insertarvehiculos ('BMA100','1094904734','Camioneta','Chevrole X','2018');

1.5. PROCEDIMIENTO DE INSERCION DE VISITANTES:


Delimiter //
CREATE PROCEDURE insertarvisitantes (
IN Identificacion char(10),
IN Nombre varchar(50),
IN Apellido varchar(50),
IN Telefono char(10),
IN Propietario char(10),
IN Parentesco varchar(30),
IN Vehiculo varchar(30)
)
BEGIN
INSERT INTO visitantes
(VisIdentificacion, VisNombre, VisApellido, VisTelefono, VisPropietario, VisParentesco,
VisVehiculo)
VALUES
(Identificacion, Nombre, Apellido, Telefono, Propietario, Parentesco, Vehiculo);
End //

CALL insertarvisitantes
('14212211','Adonay','Roncancio','3147650','1094904734','Hermano','');

1.6. PROCEDIMIENTO DE INSERCION DE INGRESOS:


Delimiter //
CREATE PROCEDURE insertaringresos (
IN Codigo int(11),
IN Visitante char(10),
IN Apartamentodestino int(4),
IN Fecha date,
IN Horaingreso time,
IN Horasalida time
)
BEGIN
INSERT INTO ingresos
(RegCodigo, RegVisitante, RegApartamentodestino, RegFecha, RegHoraingreso,
RegHorasalida)
VALUES
(Codigo, Visitante, Apartamentodestino, Fecha, Horaingreso, Horasalida);
End //

CALL insertaringresos ('5','14212211','5','2018-04-18','10:00:00','17:00:00');

1.7. PROCEDIMINTO DE CONSULTA DE PROPIETARIOS POR (CEDULA).


Delimiter //
CREATE PROCEDURE consultarpropietario (cedula int)
SELECT ProCedula, ProNombre, ProApellido, ProTelefono, ApaNumero, VehTipo
FROM propietarios join apartamentos join vehiculos
ON ApaPropietario = ProCedula and VehPropietario = ProCedula
WHERE ProCedula = cedula;

End //

BUSQUEDA: debe de ir entre (); SIN COMILLAS


CALL consultarpropietario (1094904734);

1.8. PROCEDIMINTO DE CONSULTA DE VISITANTES POR (CEDULA).

Delimiter //
CREATE PROCEDURE consultarvisitante (cedula int)
SELECT VisIdentificacion, VisNombre, VisApellido, VisTelefono, ApaNumero,
VisParentesco, ProNombre, RegHoraingreso
FROM propietarios join apartamentos join Visitantes join ingresos
ON ApaPropietario = ProCedula and VisPropietario = ProCedula and RegVisitante =
VisIdentificacion
WHERE VisIdentificacion = cedula;
End //

BUSQUEDA: debe de ir entre (); SIN COMILLAS


CALL consultarvisitante (14212211);

1.9. PROCEDIMINTO DE CONSULTA DE VISITANTES POR (NOMBRE).

Delimiter //
CREATE PROCEDURE consultarnombrevis (apellido text)
SELECT VisNombre, VisApellido, ApaNumero, VisParentesco, ProNombre,
RegHoraingreso
FROM propietarios join apartamentos join Visitantes join ingresos
ON ApaPropietario = ProCedula and VisPropietario = ProCedula and RegVisitante =
VisIdentificacion
WHERE VisNombre = apellido;

End //
CALL consultarnombrevis ('adonay');

1.10. PROCEDIMINTO DE CONSULTA DE VISITANTES POR (NOMBRE).

Delimiter //
CREATE PROCEDURE listapropietarios ()
SELECT ProCedula, ProNombre, ProApellido, ProTelefono, ApaNumero, VehTipo
FROM propietarios join apartamentos join Visitantes join ingresos join vehiculos
ON ApaPropietario = ProCedula and VisPropietario = ProCedula and RegVisitante =
VisIdentificacion and VehPropietario = ProCedula;
End //

CALL listapropietarios ();


1.11. PROCEDIMINTO DE CONSULTA DE TABLAS (BD).

Delimiter //
CREATE PROCEDURE tablas ()
SHOW tables
FROM conjuntos;
End //

CALL tablas ();

2. CONTRUCION DE FUNCIONES (MIN 5) DE LA BD, DEL PROYECTO DE


FORMAION
2.1. Lista de los propietarios ordenados por Apellidos:
SELECT proapellido, pronombre
FROM propietarios
ORDET BY proapellido;
2.2. Mostrar cuantos apartamentos tienen propietarios en el conjunto andromeda
SELECT count(apanumero)
FROM apartamentos;

2.3. Mostrar la Marca, Tipo y Modelo del vehiculo de placas AAA000.


SELECT VehMarca, VehTipo, VehModelo
FROM vehiculos
WHERE VehPlaca = 'AAA000';

2.4. Mostrar Todos los nombres de los visitantes con la hora de ingreso y el apartamento
SELECT VisNombre, VisApellido, VisTelefono, ApaNumero, RegHoraingreso
FROM propietarios join apartamentos join Visitantes join ingresos
ON ApaPropietario = ProCedula and VisPropietario = ProCedula and RegVisitante =
VisIdentificacion;
2.5. Mostrar la hora de ingreso del visitante de nombre Juan Pérez
SELECT VisNombre, VisApellido, VisTelefono, ApaNumero, RegHoraingreso
FROM propietarios join apartamentos join Visitantes join ingresos
ON ApaPropietario = ProCedula and VisPropietario = ProCedula and RegVisitante =
VisIdentificacion
WHERE visNombre = 'juan';

3. CONSTRUYA MINIMO 5 DISIPADORES PARA CONTROLAR LA


ACTUALIZACIÓN, INSERCIÓN Y BORRADO DE REGISTROS DE LA BD DEL
PROYECTO DE FORMACIÓN.

3.1. PROCEDIMIENTO DE CONSTRUCCIÓN DE DISIPADORES DE LA TABLA


APARTAMENTOS:

CREACION DE TABLA INSERTAR


CREATE TABLE apartamentoseliminados (
ApaNumero int(4),
ApaConjunto char(10),
ApaPropietario char(10),
ApaParqueaderoasignado char(1),
ApaModificado datetime(6),
ApaUsuario varchar(15),
ApaAccion varchar(45),
primary key (ApaNumero),
foreign key (ApaConjunto) references conjunto (ConNit),
foreign key (ApaPropietario) references propietarios (ProCedula)
);

CREACION DE TRIGGER INSERTAR DE TIPO AFTER(DESPUÉS)


CREATE TRIGGER apartamentosAI AFTER INSERT
ON apartamentos
FOR EACH ROW
INSERT INTO insertarapartamentos (
ApaNumero,
ApaConjunto,
ApaPropietario,
ApaParqueaderoasignado,
ApaModificado,
ApaUsuario,
ApaAccion)
VALUES(
NEW.ApaNumero,
NEW.ApaConjunto,
NEW.ApaPropietario,
NEW.ApaParqueaderoasignado,
NOW(), CURRENT_USER(), 'Registro Insertado');

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER apartamentosBU BEFORE UPDATE


ON apartamentos
FOR EACH ROW
INSERT INTO apartamentosmodificados (
ApaNumero,
ApaConjunto,
ApaPropietario,
ApaParqueaderoasignado,
ApaModificado,
ApaUsuario,
ApaAccion)
VALUES(
OLD.ApaNumero,
OLD.ApaConjunto,
OLD.ApaPropietario,
OLD.ApaParqueaderoasignado,
NOW(), CURRENT_USER(), 'Registro Modificado');

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER apartamentosBD BEFORE DELETE


ON apartamentos
FOR EACH ROW
INSERT INTO apartamentoseliminados(
ApaNumero,
ApaConjunto,
ApaPropietario,
ApaParqueaderoasignado,
ApaModificado,
ApaUsuario,
ApaAccion)
VALUES(
OLD.ApaNumero,
OLD.ApaConjunto,
OLD.ApaPropietario,
OLD.ApaParqueaderoasignado,
NOW(), CURRENT_USER(), 'Registro Eliminado');
Resultados obtenidos
En la inserción, actualizacion y eliminacion

3.2. PROCEDIMIENTO DE CONSTRUCCIÓN DE DISIPADORES DE LA TABLA


PROPIETARIOS:

CREACION DE TABLA INSERTAR


CREATE TABLE propietarioseliminados (
ProCedula char(10),
ProNombre varchar(50),
ProApellido varchar(50),
ProTelefono int(11),
ProModificado datetime(6),
ProUsuario varchar(15),
ProAccion varchar(45),
primary key (ProCedula));
CREACION DE TRIGGER INSERTAR DE TIPO AFTER(DESPUÉS)
CREATE TRIGGER propietariosAI AFTER INSERT
ON propietarios
FOR EACH ROW
INSERT INTO insertarpropietarios (
ProCedula,
ProNombre,
ProApellido,
ProTelefono,
ProModificado,
ProUsuario,
ProAccion)
VALUES(
NEW.ProCedula,
NEW.ProNombre,
NEW.ProApellido,
NEW.ProTelefono,
NOW(), CURRENT_USER(), 'Registro Insertado');

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER propietariosBU BEFORE UPDATE


ON propietarios
FOR EACH ROW
INSERT INTO propietariosmodificados (
ProCedula,
ProNombre,
ProApellido,
ProTelefono,
ProModificado,
ProUsuario,
ProAccion)
VALUES(
OLD.ProCedula,
OLD.ProNombre,
OLD.ProApellido,
OLD.ProTelefono,
NOW(), CURRENT_USER(), 'Registro Modificado');

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER propietariosBD BEFORE DELETE


ON propietarios
FOR EACH ROW
INSERT INTO propietarioseliminados (
ProCedula,
ProNombre,
ProApellido,
ProTelefono,
ProModificado,
ProUsuario,
ProAccion)
VALUES(
OLD.ProCedula,
OLD.ProNombre,
OLD.ProApellido,
OLD.ProTelefono,
NOW(), CURRENT_USER(), 'Registro Eliminado');
Resultados obtenidos
En la inserción, actualizacion y eliminacion

3.3. PROCEDIMIENTO DE CONSTRUCCIÓN DE DISIPADORES DE LA TABLA


VISITANTES:

CREACION DE TABLA INSERTAR


CREATE TABLE visitantesinsertados (
VisIdentificacion char(10),
VisNombre varchar(50),
VisApellido varchar(50),
VisTelefono char(10),
VisPropietario char(10),
VisParentesco varchar(30),
VisVehiculo varchar(30),
VisModificado datetime(6),
VisUsuario varchar(15),
VisAccion varchar(45),
primary key (VisIdentificacion),
foreign key (VisPropietario) references propietarios (ProCedula));

CREACION DE TRIGGER INSERTAR DE TIPO AFTER(DESPUÉS)


CREATE TRIGGER visitantesAI AFTER INSERT
ON visitantes
FOR EACH ROW
INSERT INTO visitantesinsertados (
VisIdentificacion,
VisNombre,
VisApellido,
VisTelefono,
VisPropietario,
VisParentesco,
VisVehiculo,
VisModificado,
VisUsuario,
VisAccion)
VALUES(
NEW.VisIdentificacion,
NEW.VisNombre,
NEW.VisApellido,
NEW.VisTelefono,
NEW.VisPropietario,
NEW.VisParentesco,
NEW.VisVehiculo,
NOW(), CURRENT_USER(), 'Registro Insertado');
Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER visitantesBU BEFORE UPDATE


ON visitantes
FOR EACH ROW
INSERT INTO visitantesmodificados (
VisIdentificacion,
VisNombre,
VisApellido,
VisTelefono,
VisPropietario,
VisParentesco,
VisVehiculo,
VisModificado,
VisUsuario,
VisAccion)
VALUES(
OLD.VisIdentificacion,
OLD.VisNombre,
OLD.VisApellido,
OLD.VisTelefono,
OLD.VisPropietario,
OLD.VisParentesco,
OLD.VisVehiculo,
NOW(), CURRENT_USER(), 'Registro Modificado');
Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER visitantesBD BEFORE DELETE


ON visitantes
FOR EACH ROW
INSERT INTO visitanteseliminados (
VisIdentificacion,
VisNombre,
VisApellido,
VisTelefono,
VisPropietario,
VisParentesco,
VisVehiculo,
VisModificado,
VisUsuario,
VisAccion)
VALUES(
OLD.VisIdentificacion,
OLD.VisNombre,
OLD.VisApellido,
OLD.VisTelefono,
OLD.VisPropietario,
OLD.VisParentesco,
OLD.VisVehiculo,
NOW(), CURRENT_USER(), 'Registro Eliminado');
Resultados obtenidos
En la inserción, actualizacion y eliminacion

3.4. PROCEDIMIENTO DE CONSTRUCCIÓN DE DISIPADORES DE LA TABLA


VEHICULOS:

CREACION DE TABLA INSERTAR


CREATE TABLE vehiculoseliminados (
VehPlaca char(6),
VehPropietario char(10),
VehTipo varchar(10),
VehMarca varchar(10),
VehModelo int(11),
VehModificado datetime(6),
VehUsuario varchar(15),
VehAccion varchar(45),
primary key (VehPlaca),
foreign key (VehPropietario) references propietarios (ProCedula));
CREACION DE TRIGGER INSERTAR DE TIPO AFTER(DESPUÉS)
CREATE TRIGGER vehiculosAI AFTER INSERT
ON vehiculos
FOR EACH ROW
INSERT INTO vehiculosinsertados (
VehPlaca,
VehPropietario,
VehTipo,
VehMarca,
VehModelo,
VehModificado,
VehUsuario,
VehAccion)
VALUES(
NEW.VehPlaca,
NEW.VehPropietario,
NEW.VehTipo,
NEW.VehMarca,
NEW.VehModelo,
NOW(), CURRENT_USER(), 'Registro Insertado');

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER vehiculosBU BEFORE UPDATE


ON vehiculos
FOR EACH ROW
INSERT INTO vehiculosmodificados (
VehPlaca,
VehPropietario,
VehTipo,
VehMarca,
VehModelo,
VehModificado,
VehUsuario,
VehAccion)
VALUES(
OLD.VehPlaca,
OLD.VehPropietario,
OLD.VehTipo,
OLD.VehMarca,
OLD.VehModelo,
NOW(), CURRENT_USER(), 'Registro Modificado');

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER vehiculosBD BEFORE DELETE


ON vehiculos
FOR EACH ROW
INSERT INTO vehiculoseliminados (
VehPlaca,
VehPropietario,
VehTipo,
VehMarca,
VehModelo,
VehModificado,
VehUsuario,
VehAccion)
VALUES(
OLD.VehPlaca,
OLD.VehPropietario,
OLD.VehTipo,
OLD.VehMarca,
OLD.VehModelo,
NOW(), CURRENT_USER(), 'Registro Eliminado');
Resultados obtenidos
En la inserción, actualizacion y eliminacion

3.5. PROCEDIMIENTO DE CONSTRUCCIÓN DE DISIPADORES DE LA TABLA


INGRESOS:

CREACION DE TABLA INSERTAR


CREATE TABLE ingresoseliminados (
RegCodigo int(11),
RegVisitante char(10),
RegApartamentodestino int(4),
RegFecha date,
RegHoraingreso time,
RegHorasalida time,
RegModificado datetime(6),
RegUsuario varchar(15),
RegAccion varchar(45),
primary key (RegCodigo),
foreign key (RegVisitante) references visitantes (VisIdentificacion),
foreign key (RegApartamentodestino) references apartamentos (ApaNumero));

CREACION DE TRIGGER INSERTAR DE TIPO AFTER(DESPUÉS)


CREATE TRIGGER ingresosAI AFTER INSERT
ON ingresos
FOR EACH ROW
INSERT INTO ingresosinsertados (
RegCodigo,
RegVisitante,
RegApartamentodestino,
RegFecha,
RegHoraingreso,
RegHorasalida,
RegModificado,
RegUsuario,
RegAccion)
VALUES(
NEW.RegCodigo,
NEW.RegVisitante,
NEW.RegApartamentodestino,
NEW.RegFecha,
NEW.RegHoraingreso,
NEW.RegHorasalida,
NOW(), CURRENT_USER(), 'Registro Insertado');

Creacion de Trigger ACTUALIZAR de Tipo before(Antes)

CREATE TRIGGER ingresosBU BEFORE UPDATE


ON ingresos
FOR EACH ROW
INSERT INTO ingresosmodificados (
RegCodigo,
RegVisitante,
RegApartamentodestino,
RegFecha,
RegHoraingreso,
RegHorasalida,
RegModificado,
RegUsuario,
RegAccion)
VALUES(
OLD.RegCodigo,
OLD.RegVisitante,
OLD.RegApartamentodestino,
OLD.RegFecha,
OLD.RegHoraingreso,
OLD.RegHorasalida,
NOW(), CURRENT_USER(), 'Registro Modificado');

Creacion de Trigger ELIMINAR de Tipo After(Después)

CREATE TRIGGER ingresosBD BEFORE DELETE


ON ingresos
FOR EACH ROW
INSERT INTO ingresoseliminados (
RegCodigo,
RegVisitante,
RegApartamentodestino,
RegFecha,
RegHoraingreso,
RegHorasalida,
RegModificado,
RegUsuario,
RegAccion)
VALUES(
OLD.RegCodigo,
OLD.RegVisitante,
OLD.RegApartamentodestino,
OLD.RegFecha,
OLD.RegHoraingreso,
OLD.RegHorasalida,
NOW(), CURRENT_USER(), 'Registro Eliminado');

Resultados obtenidos
En la inserción, actualizacion y eliminacion

Você também pode gostar