gestor financeigestor financeiro baseado em mysql e javaro baseado em mysql e java
DESCRIPTION
Projeto para criação de um programa simples para controle de gastos.TRANSCRIPT
-
UNIVERSIDADE FEDERAL DO ABC
PROJETO FINAL DE BANCO DE DADOS:
Gestor financeiro baseado em MySQL e JAVA
Jorge Messa Junior, RA.: 11069411
Mateus Zitelli, RA.: 11002512
Prof. Dr. Andr G. R. Balan
Santo Andr
Setembro, 2014
-
1
SUMRIO
INTRODUO .......................................................................................................................... 2
OBJETIVOS ............................................................................................................................... 2
METODOLOGIA ....................................................................................................................... 2
O PROGRAMA .......................................................................................................................... 3
RESULTADOS .......................................................................................................................... 3
DIAGRAMA ENTIDADE RELACIONAMENTO ................................................................... 6
REFERNCIAS BIBLIOGRFICAS ....................................................................................... 9
-
2
1. INTRODUO
Segundo o dicionrio Michaelis, Economia a cincia que estuda as leis que regulam a
produo, distribuio e consumo de bens e arte de pr em prtica as normas que daquelas se
deduzem, ou tambm, a boa administrao ou ordem da casa, de estabelecimento, bens
particulares ou pblicos. A Economia , sem sombra de dvidas, um setor muito importante
nas vidas das pessoas, e gera muita preocupao, e necessidade se ter um controle acerca de sua
funo no dia-a-dia. Um grande exemplo do peso do papel da Economia na vida das pessoas
o fato do Brasil ter entrado em recesso tcnica devido a dois trimestres de Produto Interno
Bruto (PIB) negativo, o que est intimamente ligado com consumo baixo, alta inflao entre
outros atributos econmicos que mudam os costumes dos brasileiros no que se refere educao
financeira de cada indivduo, estrutura familiar, setores pblicos, privados etc.
Atualmente estamos numa era de computao ubqua, em que a informao est
extremamente ligada vida das pessoas de modo geral e podem ser utilizadas para facilitar e
tornar as tarefas cotidianas mais eficientes. Isso pode ser aplicado, por exemplo, no controle de
gastos de uma pessoa, auxiliando a no extrapolar oramentos, ou planejar investimentos
futuro. Baseado nessa problemtica fundamental o desenvolvimento de uma ferramenta
computacional que atua em mais uma rea no dia-a-dia do cidado - a Economia, e mais
detalhadamente a microeconomia, contabilizando as despesas e investimentos de uma pessoa
fsica, pois possui um balano contbil menos complexo.
2. OBJETIVOS
Aplicar os conhecimentos assimilados na disciplina de Banco de Dados para
desenvolver um sistema que utilize o Sistema de Gerenciamento de Banco de Dados (SGBD)
MySQL e JAVA para persistir, excluir, consultar e fazer operaes em dados importantes para
o contexto ao qual seja aplicada.
3. METODOLOGIA
A metodologia empregada foi inicialmente o planejamento do banco de dados,
projetando um Diagrama de Entidade e Relacionamento (DER) e aps isso foi utilizada o
mtodo Botton-UP para gerar classes a partir do banco de dados.
-
3
Alm disso para a interface grfica com o usurio foram empregados componentes Web,
como classes servlets do Java e Java Server Pages (JSP), CSS, JavaScript e JQuery.
4. O PROGRAMA
O programa basicamente um site baseado em JAVA, HTML, CSS, JSP e JQuery
gerenciador de despesas e oramentos, permitindo inserir, excluir e alterar dbitos e crditos no
ms fiscal do usurio, retornando o valor total de crditos, dbitos e a diferena entre essas
totalidades. possvel organizar os saldos em categorias pr-existentes no banco de dados (no
sendo possvel inserir mais categorias). O site tambm exibe a quantidade de saldos por
categoria, mostrando ao usurio com o que ele mais gasta.
5. RESULTADOS
Como possvel observar nas figuras abaixo, temos a interao com o usurio.
Figura 1: Janela de boas-vindas do sistema.
-
4
Figura 2: menu drop-down para inserir dados do usurio.
Figura 3: pgina dedicada para insero de usurios.
-
5
Figura 4: homepage do usurio.
Figura 5: Inserindo saldos.
-
6
Figura 6: inserindo saldos.
Figura 7: inserindo dados.
6. DIAGRAMA ENTIDADE RELACIONAMENTO
Foi optado pela simplicidade para elaborar a estrutura do banco de dados. H poucas
entidades e relacionamentos, mas que so suficientes para realizar as funes propostas pelo
programa. Como segue na figura 8, possvel ver o Diagrama Entidade Relacionamento (DER).
-
7
Atrelados entidade Usurio temos os atributos:
ID: parte da chave primria e auto incrementado a cada insero de usurio.
NICKNAME: parte da chave primria uma string que armazena o login do usurio.
Senha: armazena a senha do usurio.
Nome: armazena o nome do usurio.
Os atributos atrelados entidade Saldo, temos:
ID: a chave primria da entidade e auto incrementado a cada insero.
Ano: armazena o ano em que o saldo foi adicionado.
Valor: armazena o valor da transao;
Descrio: armazena a descrio da transao.
Ms: armazena o ms em quem foi feita a transao.
Positive: atributo diferenciador de entidade filha.
ID_USURIO: chave estrangeira que referencia a entidade usurio.
CATEGORIA_ID: chave estrangeira que referencia a entidade categoria.
Os atributos atrelados entidade Categoria, temos:
Nome: a chave estrangeira e o prprio nome de um elemento da categoria.
-
8
7. ESQUEMA DE BANCO DE DADOS RELACIONAL
8. IMPLEMENTAO MYSQL E STORED PROCEDURES
A base de dados em MySQL tambm faz uso de procedimentos, conhecidos por Stored
Procedures que sero exibidos em anexo juntamente com a implementao em MySQL.
Usurio
ID
Senha
Nome
NICKNAME Saldo
ID
ID_USUARIO
Ano
Ms
Dia
Descrio
Valor
Positive
NICKNAME_USUARIO
CATEGORIA_NOME
Categoria
Nome
-
9
REFERNCIAS BIBLIOGRFICAS
EXAME. Economia encolhe 0,6% no 2 tri e est em recesso tcnica.
http://exame.abril.com.br/economia/noticias/pib-do-brasil-caiu-0-6-no-2o-trimestre. ltimo
acesso em 03 de setembro de 2014.
MICHAELIS. Definio: economia.
http://michaelis.uol.com.br/moderno/portugues/index.php?lingua=portugues-
portugues&palavra=economia. ltimo acesso em 03 de setembro de 2014.
-
10
ANEXO
drop DATABASE countinglifes;
CREATE DATABASE countinglifes;
CREATE TABLE countinglifes.usuario(
ID INTEGER NOT NULL AUTO_INCREMENT,
NOME VARCHAR(30) NOT NULL,
NICKNAME VARCHAR(15) NOT NULL,
SENHA VARCHAR(10) NOT NULL,
PRIMARY KEY (ID,NICKNAME)
);
CREATE TABLE countinglifes.categoria(
NOME VARCHAR(15) NOT NULL,
PRIMARY KEY(NOME)
);
CREATE TABLE countinglifes.saldo(
ID INTEGER NOT NULL AUTO_INCREMENT,
ID_CATEGORIA VARCHAR(15) NOT NULL,
ANO INTEGER NOT NULL,
MES INTEGER NOT NULL,
DIA INTEGER NOT NULL,
DESCRICAO VARCHAR(40),
VALOR DOUBLE NOT NULL,
ID_USUARIO INTEGER NOT NULL,
NICKNAME_USUARIO VARCHAR(15) NOT NULL,
-
11
POSITIVE BOOL NOT NULL,
FOREIGN KEY(ID_CATEGORIA) REFERENCES CATEGORIA(NOME),
FOREIGN KEY(ID_USUARIO, NICKNAME_USUARIO) REFERENCES USUARIO(ID,NICKNAME)
ON DELETE CASCADE ,
PRIMARY KEY (ID)
);
Stored Procedures
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `ANOMAXIMO`(
IN VNICK VARCHAR(15)
)
BEGIN
SELECT MAX(ANO) AS ANO FROM SALDO WHERE NICKNAME_USUARIO=VNICK;
END$$
DELIMITER ;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `ANOMINIMO`(
IN VNICK VARCHAR(15)
)
BEGIN
SELECT MIN(ANO) AS ANO FROM SALDO WHERE NICKNAME_USUARIO=VNICK;
END$$
DELIMITER ;
DELIMITER $$
-
12
CREATE DEFINER=`root`@`localhost` PROCEDURE `buscausuario`(
IN VNICKNAME VARCHAR(15)
)
BEGIN
SELECT * FROM USUARIO WHERE NICKNAME=VNICKNAME;
END$$
DELIMITER ;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `contarCategoria`(
IN UNICKNAME varchar(15),
IN CNOME varchar(15)
)
BEGIN
select count(*) from usuario u join saldo s on u.id=s.ID_USUARIO
and u.NICKNAME=s.NICKNAME_USUARIO where u.nickname=unickname and s.id_categoria = cnome;
END$$
DELIMITER ;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mesmaximo`(
IN VNICK VARCHAR(15)
)
BEGIN
SELECT max(MES) FROM SALDO WHERE NICKNAME_USUARIO = VNICK;
END$$
-
13
DELIMITER ;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mesminimo`(
IN VNICK VARCHAR(15)
)
BEGIN
SELECT MIN(MES) FROM SALDO WHERE NICKNAME_USUARIO = VNICK;
END$$
DELIMITER ;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `saldoBYUserMesAno`(
IN VNICK VARCHAR(15),
IN VMES INTEGER,
IN VANO INTEGER
)
BEGIN
SELECT * FROM SALDO WHERE NICKNAME_USUARIO = VNICK AND MES = VMES AND
ANO=VANO;
END$$
DELIMITER ;