2.3 Technology and Reference Cases
2.3.1 Global Versus Local Optimization
H ardware
M inim o Intel Core 2 Duo de 2.2 Ghz.
M em oria RAM 2 Gb.
Disco Duro de 240 Gb.
Lector de Óptico M arcas
Software W indows XP Delphi 6.0 M ySQL 5.0 M icrosoft Office 2010 W inzip 32
Diagr ama Entidad Relación
Análisis del diseño de la base de datos
Estas son variables de entrada que pertenecen a la tabla tdatusu que es la tabla de los datos del usuario que en el caso de la compañía viene a ser el accionista; en esta tabla p odremos observar todos los datos de los accionistas que pertenecen a la compañía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
Estas son variables de entrada que pertenecen a la tabla tautos que es la tabla de los veh ículos que en el caso pertenecen a los accionistas de la compañía; en esta tabla podremos observar todos los datos de las unidades de transporte de los accionistas que pertenecen a la compañía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
Estas son variables de entrada que pertenecen a la tabla tcobros en la cual registra las deudas y pagos que poseen los accionistas que pertenecen a la compañía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
Estas son variables de entrada que pertenecen a la tabla tgencobros que es la tabla de la generación de cobros en la cual se generan todos los cobros que se realizan do a los accion istas que pertenecen a la compañía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
En estas tablas podremos ingresar nuevos parámetros de entrada para las tablas de usuario, autos y pagos en caso de ser necesarios
Fuente: Autor
Elaborado por: Cristian Vera.
Estas son variables de entrada q ue pertenecen a la tabla tmultas que es la tabla de las multas realizadas a los accionistas que pertenecen a la compañía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
En estas tablas podremos observar la forma de pagos de tickets, que realizan a diario los accionistas que pertenecen a la compañ ía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán, antes de laborar
Estas son variables de entrada que pertenecen a la tabla tusers que es la tabla que pe rmite administrar las contraseñas de id de usuarios que pertenecen a la compañ ía de taxis ejecutivos “Cacique Tulcanaza” de la Ciudad de Tulcán
Store procedures de la base de datos bdcaciques
Los strore procedures son procedim ientos que se los realizan e n la base de datos para luego enlazarlos y utilizarlos en el software com o m étodos crud.
Borrar
Este procedim iento perm ite elim inar registros de nuestra base de datos.
DELIM ITER $$DROP PROCEDURE IF EXISTS `bdc aciques`.`borrar`$$ CREATE DEFINER=`root`@ `localhost` PROCEDURE `borrar`()
BEGIN declare nvalor Decim al(8,2); select nvalor3 into nva lor from tvalores; se lect nvalor;E ND$$ D ELIM ITER ;
Spdiariofecha
Este procedim iento perm ite realizar una consulta de estado de unidades diario.
DELIM ITER $$DROP PROCEDURE IF EXISTS
`bdcaciques`.`spdiariofecha`$$ CREATE D EFINER=`root`@ `localhost` PROCEDURE `spdiariofecha`(IN sanio varchar(4), IN sm es varchar(2), IN sdia varchar(2)) BEGIN SELECT *FROM tdiariowhere
((year(dfechact)=sanio) and (m onth(dfechact)=sm es)
and(day(dfechact)=sdia)) and nidestado>0 order by niddisc o;EN D$$ DELIM ITER ;
Spdiariofechas
Este procedim iento perm ite consultar el esta do de unidades por fechas.
DELIM ITER $$
DROP PROCEDURE IF EXISTS `bdcaciques`.`spdiariofechas`$$
CREATE DEFINER=`root`@ `localhost` PROCEDURE `spdiariofechas`( IN sanio varchar(4), IN sm es varchar(2), IN sdia varchar(2),
IN sanio1 varchar(4), IN sm es1 varchar(2), IN sdia1 varchar(2))BEGIN SELECT *FROM tdiariowhere ((year(dfechact)=sanio)
and (m onth(dfechact)= sm es) and(day(dfechact)>= sdia) and
(year(dfechact)=sanio1) and (m onth(dfechact)=sm es1)and(day(dfechact)<=sdia1) and(nide stado>0)) order by niddisco; END $$ DELIM IT ER ;
Spdiariofechashoras
Este procedim iento perm ite consultar el esta do de unidades por fechas y horas.
Spdiariofechashoras
DELIM ITER $$
DROP PROCEDURE IF EXISTS `bdcaciques`.`spdiariofechashoras`$$
CREATE DEFINER=`root`@ `localhost` PROCEDURE ` spdiariofechashoras`( IN cfecha1 varchar(18), cfecha2 varchar(18))
BEGINSELECT *FROM tdiario
where ((dfechact>=cfecha1) and (dfechact<=cfecha2) and(nidesta do>0))order by niddisco; END$$DELIM ITER ;
Spmarcapagado
Este procedim iento se lo utiliza en el cobro de tickets diarios.
DELIM ITER $$
DROP PROCEDURE IF EXISTS `bdcaciques`.`spm arcapagado`$$
CREATE DEFINER=`root`@ `localhost` PROCEDURE `spm arcapagado`() BEGIN
update tcobros se t nestado=3, lpaga do='True', dfechact=now() where nestado= 2;E ND$$ DELIM ITER ;Fpaga do:tinyint(1)
DELIM ITER $$ DROP FUNCTION IF EXISTS `bdcaciques`.`fpagado`$$ CREATE DEFINER=`root`@ `localhost` FUNCTION `
fpagado`(ndisco integer) RETURNS tinyint(1)BEGIN DECLARE im par BOOL ;declare nresultado integer; SELECT count(*) into nresultado FR OM tcobros
where (date(dfechact)=date(now()) and (niddisco= ndisco) and (nestado=3));if (nresultado=0)then
SET im par=FALSE;e lse
set im par=true;e nd if;RE TURN (im par); END$$
Sprecorre
Este procedim iento se lo utiliza para ver cuantas carreras han realizado las unidades diariam ente y para el cobro de m ultas.
DELIM ITER $$ DROP PROCEDURE IF EXISTS `bdcacique s`.`sprecorre`$$ CREATE DEFINER=`root`@ `localhost` PROCEDURE `sprecorre`
(IN cfecha1 varchar(18), cfecha2 varchar(18))BEGIN declare nnum carr integer; declare ntotcarr inte ger;declare m yfecha date;declare ndisco integer;
declare ncuantas1 integer;DECLARE l_nam e VARCHAR(255); DECLARE exit_loop BOO LEAN ;declare lnvalor2 dec im al(8,2);
declare lnvalor3 decim al(8,2);D ECLARE exam ple_c ursor CURSOR FOR SELECT niddisco,dfechact, (count(*))FROM tdiario
where ((dfechact>=cfecha1) and (dfechact<=cfecha2)) and nidestado= 2 group by niddisco;
DECLARE CONTIN UE HAN DLER FOR NOT FOUN D SET exit_loop = TRUE ; select nvalor2, nvalor3 into lnvalor2, lnvalor3 from tvalores ;
set nnum carr=4;set ntotcarr=20;OPEN exam ple _cursor;exam ple_loop: LO OP -- read the nam e from next row into the variable l_nam e
FETCH exam ple_cursor INT O ndisco,m yfecha,ncuanta s1;-- m ulta 6am if((ncuantas1>0) and (ncuantas1< nnum carr)) theninsert into tm ulta s
(niddisco, dfecha, ncuantas, nva lor, ntotal, dfechact, ncodusu, ndescripc ion) values(ndisc o, m yfecha, ncuantas1,lnvalor2,((nnum carr -ncuantas1)*lnvalor2), now(),9,2);end if;-- m ulta diariaif((ncuantas1> nnum carr) and (ncuantas1<ntotcarr)) theninsert into tm ultas (niddisco, dfecha, ncuantas, nvalor, ntota l, dfechact,
ncodusu,ndescr ipcion)values(ndisco,m yfecha,ncuantas1,lnvalor3,((ntotcarr- ncuantas1)*lnvalor3), now(),9,3);end if;
-- check if the exit_loop flag ha s been set by m ysql, -- if it has been set we close the cursor and exit-- the loop IF exit_loop TH EN
CLOSE exam ple_cursor;LE AVE exam ple _loop;END IF;E ND LOOP exam ple _loop; select l_nam e;END$$ DELIM ITER ;
Sptddiarioinsert
Este procedim iento nos perm ite ingresar accionistas y vehíc ulos.
DELIM ITER $$
DROP PROCEDURE IF EXISTS `bdcaciques`.`sptdiarioinsert`$$
CREATE DEFINER=`root`@ `localhost` PROCEDURE `sptdiarioinsert`(IN disco INTEGER, IN idestado Integer, IN direccion varchar(45), codusu Integer, estado Integer) BEGin
insert into tdiario value s(0,disco,idestado,direccion,now(),codusu,estado); END$$
DELIM ITER ;
Vistas
Nos perm iten realizar una visua lización de nuestra s tablas
Vrepcobro
Nos perm ite visualizer los reports de cobros de los accionistas
CREATE ALGORIT HM =UND EFINED DEFIN ER=`root`@ `localhost` SQL SECURITY DEFINER VIEW `bdcaciques`.`vrepcobro` AS selec t `bdcacique s`.`tdatusu`.`nidtda tusu` AS `ncod_usu`,`bdcaciques`.`tdatusu`.`cnom bres` AS
`cnom bres`,`bdcaciques`.`tdatusu`.`ccedula` AS `ccedula`,`bdcaciques`.`tautos`.`c disco` AS `cdisco`,`bdcacique s`.`tcobros`.`ncod_cob` AS
`ncodcobro`,concat(`bdcaciques`.`tcobros`.`cm es`,_latin1' -',`bdcaciques`.`tcobros`.`canio`) AS `cfecha`,`bdcaciques`.`tcobros`.`nval1` AS `nval1`,`bdcaciques`.`tcobros`.`nval2` AS `nval2`,`bdcaciques`.`tcobros`.`nval3` AS `nval3`,`bdcaciques`.`tcobros`.`nval4` AS `nval4`,`bdcaciques`.`tcobros`.`nval5` AS `nval5`,`bdcaciques`.`tcobros`.`ntotal` AS `ntota l`,`bdcacique s`.`tcobros`.`dfechact` AS
`dfechact`,`bdcaciques`.`ttipopago`.`cdescripcion` AS `cdescr ipcion` from
(((`bdcaciques`.`tdatusu` join `bdcacique s`.`tautos`) join `bdcacique s`.`tcobros`) join `bdcaciques`.`ttipopago`) where ((`bdcaciques`.`tdatusu`.`nidtdatusu` =
`bdcaciques`.`tautos`.`nidtdatusu`) and (`bdcaciques`.`tautos`.`cdisc o` = `bdcaciques`.`tcobros`.`niddisco`) and (`bdcaciques`.`tcobros`.`ntipopago` = `bdcaciques`.`ttipopago`.`ncodigo`) and (`bdcaciques`.`tcobros`.`nestado` = 2));
Fuente: Autor
Elaborado por: Cristian Vera.