Você está na página 1de 14

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

SUMRIO
INTRODUO .......................................................................................................................... 2
OBJETIVOS ............................................................................................................................... 2
METODOLOGIA....................................................................................................................... 2
O PROGRAMA.......................................................................................................................... 3
RESULTADOS .......................................................................................................................... 3
DIAGRAMA ENTIDADE RELACIONAMENTO ................................................................... 6
REFERNCIAS BIBLIOGRFICAS ....................................................................................... 9

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.
2

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.

Figura 2: menu drop-down para inserir dados do usurio.

Figura 3: pgina dedicada para insero de usurios.

Figura 4: homepage do usurio.

Figura 5: Inserindo saldos.

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).
6

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.

7. ESQUEMA DE BANCO DE DADOS RELACIONAL


Usurio
ID
Senha
Nome
NICKNAME
Saldo
ID
ID_USUARIO
Ano
Ms
Dia
Descrio
Valor
Positive
NICKNAME_USUARIO
CATEGORIA_NOME

Categoria
Nome

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.

REFERNCIAS BIBLIOGRFICAS
EXAME.

Economia

encolhe

0,6%

no

tri

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=portuguesportugues&palavra=economia. ltimo acesso em 03 de setembro de 2014.

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
ID_CATEGORIA

INTEGER
VARCHAR(15)

NOT NULL AUTO_INCREMENT,


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,

10

POSITIVE

BOOL

FOREIGN KEY(ID_CATEGORIA)

NOT NULL,
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 $$

11

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$$

12

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 ;

13

Você também pode gostar