Criação de um Sistema para Controle de Viagens no Delphi com Firebird

Olá pessoal, este é um resumo/tutorial da criação de um sistema para controle de Viagens feito durante as aulas de Programação Comercial do prof. Fauzi Shubeita, durante o desenvolvimento serão usados as ferramentas Case Studio 2.25, IB Expert, Delphi 2007 e o Banco de Dados Firebird 1.5, ele está dividido em duas partes, nesta primeira vamos modelar e criar o banco de dados, na segunda parte será o desenvolvimento no Delphi, talvez não tudo, mas o principal.

Sobre as ferramentas utilizadas:

Case Studio: utilizado principalmente para modelagem de banco de dados, permite a criação de Diagramas de Fluxo de Dados e Diagramas de Entidades e Relacionamentos, tem suporte aos principais banco de dados relacionais. Mais Informações.

IB Expert: segundo Wikipedia, "O IB Expert é um poderoso gerenciador de banco de dados que permite realizar todas as tarefas necessárias para o suporte e manutenção do banco tanto local como remotamente. Com ele é possível administrar o banco criando tabelas, modificando campos, índices, executando scripts SQL e outras funções. O IB Expert realiza a geração do modelo de entidade relacionamento para bancos de dados Interbase e Firebird.". Mais informações e link para download da versão Costumer.

Delphi: segundo próprio site do desenvolvedor, Embarcadero: "Delphi é um dos mais respeitados e amplamente utilizado ambiente Rapid Application Development (RAD). Mais de 1,7 milhões de desenvolvedores em todo o mundo escolheram o Delphi sobre outras ferramentas porque Delphi muda radicalmente as velocidades de trabalho em desktop, workstation, touch, kiosk, e desenvolvimento de aplicações Web sem sacrificar muito tempo de programação ou controle. Os aplicativos criados com o Delphi são rápidos, compacto, fornecem interfaces (UIs) ricas e podem conectar-se a praticamente qualquer fonte de dados ou dados "out-of-the-box". Atualmente já temos a versão 2010, mas neste tutorial estaremos utilizando a 2007.

Firebird: é um banco de dados relacional muito utilizado por ser leve, rápido e de fácil utilização, também roda no Linux, Windows e plataformas Unix. Mais Informações, download Baixaki.

Obs.: Neste resumo não mostrarei passos de como instalar os softwares, apenas utilizar.


REQUISITOS FUNCIONAIS

1- Cadastro de Passageiros
2- Cadastro de Cidades
3- Cadastro de Locais Turísticos por Cidade
4- Cadastro de Veículos (onibus,van...)
5- Cadastro de Guias
6- Cadastro Viagem - data saída, chegada, dias.
7- Cadastro de Pasageiros por viagem.

REQUISITOS NÃO FUNCIONAIS

1- Cálculo de totais pagos por passageiro por viagem
2- Cálculo de tempo em dias
3- Pesquisar por nome de passageiro


Primeiramente faremos a modelagem do banco no Case Studio, ao abrir, selecione Banco Firebird, seguindo os requisitos chegamos ao seguinte diagrama ER no Case Studio. Clique nas imagens para visualizar melhor, se precisar.



Com o DER pronto, vamos gerar o Script SQL, para isso, pressione a tecla F9 para abrir uma janela pedindo onde você quer salvar o arquivo e o que pretende gerar, o ideal é que você crie um diretório com o nome "viagem", por exemplo, e coloque ali tudo que for referente a este sistema, começando com este diagrama, veja imagem abaixo.



Ele deve ter gerado algo parecido com isso.
/*
Created 6/10/2009
Modified 24/10/2009
Project
Model
Company
Author
Version
Database Firebird
*/


Create Table "PASSAGEIROS" (
"IDENTIDADE" Char(10) NOT NULL,
"NOME" Varchar(100),
"DTANASC" Date,
Primary Key ("IDENTIDADE")
);

Create Table "CIDADES" (
"CIDADE" Integer NOT NULL,
"CEP" Char(8) NOT NULL,
"NOME" Varchar(50),
"UF" Char(2),
Primary Key ("CIDADE")
);

Create Table "PONTOSTURISTICOS" (
"PONTO" Integer NOT NULL,
"CIDADE" Integer NOT NULL,
"DESCRICAO" Varchar(300),
"VALOR" Decimal(5,2),
Primary Key ("PONTO")
);

Create Table "VEICULOS" (
"PLACA" Char(7) NOT NULL,
"DESCRICAO" Varchar(50),
"NLUGARES" Integer,
"ESTRELAS" Integer,
Primary Key ("PLACA")
);

Create Table "GUIAS" (
"GUIA" Integer NOT NULL,
"NOME" Varchar(50),
Primary Key ("GUIA")
);

Create Table "VIAGENS" (
"VIAGEM" Integer NOT NULL,
"DTASAIDA" Date,
"DTACHEGADA" Date,
"NDIAS" Integer,
"VALOR" Decimal(5,2),
Primary Key ("VIAGEM")
);

Create Table "PASSAGEIROSVIAGEM" (
"IDENTIDADE" Char(10) NOT NULL,
"VIAGEM" Integer NOT NULL,
"STATUSPAGTO" Char(3),
Primary Key ("IDENTIDADE","VIAGEM")
);

Create Table "LOCAISVIAGEM" (
"VIAGEM" Integer NOT NULL,
"PONTO" Integer NOT NULL,
"DTAVISITA" Date,
Primary Key ("VIAGEM","PONTO")
);

Create Table "GUIASVIAGEM" (
"GUIA" Integer NOT NULL,
"VIAGEM" Integer NOT NULL,
Primary Key ("GUIA","VIAGEM")
);

Create Table "VIAGEMVEICULOS" (
"VIAGEM" Integer NOT NULL,
"PLACA" Char(7) NOT NULL,
Primary Key ("VIAGEM","PLACA")
);


Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("IDENTIDADE") references "PASSAGEIROS" ("IDENTIDADE") on update no action on delete no action ;
Alter Table "PONTOSTURISTICOS" add Foreign Key ("CIDADE") references "CIDADES" ("CIDADE") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("PONTO") references "PONTOSTURISTICOS" ("PONTO") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("PLACA") references "VEICULOS" ("PLACA") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("GUIA") references "GUIAS" ("GUIA") on update no action on delete no action ;
Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;

Bom, agora vamos verificar se o Firebird está instalado e rodando, para isso vá até o Painel de Controle e procure por "Firebird 1.5 Server Manager", de um duplo clique sobre e verifique, conforme imagem abaixo, se não estiver instalado já sabe -> instale ele.



Com o script SQL pronto e o Firebird rodando, vamos efetivamente criar o banco de dados, abra o IB Expert e no menu "DataBase", clique em "Create DataBase" para criarmos e registramos nosso banco neste excelente gerenciador :D.

Na janela que abriu, selecione que o servidor é local, na parte de DataBase selecione o diretório em que deseja criar o banco de dados, pode ser o mesmo que está o DER, de um nome para o banco, pode ser "bdViagem" e selecione o tipo .gdb, veja imagem abaixo.



Nesta mesma janela configuramos o Username é SYSDBA e senha é masterkey, selecione dialeto 3 no SQL Dialect. O Page size é o tamanho máximo que cada tabela poderá suportar, segundo professor Fauzi 4096 fica em torno de 1 GB, no Charset selecione WIN1252 para ter suporte a acentuação, mais imagens para ilustrar e ninguém se perder.



Clique em OK, ele abrirá uma nova janela onde selecionaremos a versão do Servidor, nosso caso Firebird 1.5, e preencheremos o Alias como "VIAGEM".



Clique em Register para registrar e pronto, se clicar duas vezes sobre o banco que apareceu na aba databases no lado esquerdo, ele vai conectar ao BD. Agora temos que executar o Script que geramos antes, para isso abra o SQL Editor no menu Tools e cole parte por parte do Script SQL gerado no Case Studio ou então use o Script Executive (CTRL+F12) para executar tudo de uma vez, é preciso marcar a opção Use current connect, depois F9 para executar.



Pronto, temos nossa base de dados Firebird rodando, para testar pode inserir alguns registros nela através do IB Expert, abra alguma tabela e procure por uma aba chamada Data (Dados) e cadastre.

Agradeço ao Gustavo Klaus que me encaminhou os requisitos, valeu!

Link para segunda parte, tela de manutenção no Delphi.

Até!!

Comentários

Postagens mais visitadas deste blog

Solução para problemas com impressora de cheque Bematech DP-20

Como bloquear Facebook Youtube no Mikrotik

SIOPE 2017 - Instalação e Restauração Cópia de Segurança