Professor. Adilsom Marques da Cunha
Listex 02
Wellingtonn Vergílio Fortes
Barra do Piraí, 10 de abril de 2004
- Motivação
Com o desenvolvimento deste projeto estaremos obtendo experiência para desenvolver Projetos de Bancos de Dados com eficácia.
Aplicar técnicas de Banco de Dados com objetivo de trazer um alto nível de qualidade ao Banco de Custo Com Frota
- Objetivo
Nesta parte do projeto damos início a produção do Banco de Dados mencionado na especificação do projeto ( Listex 02). O projeto inicialmente estará no nível de Interação 1. O banco a ser projetado será o SYS-CFR ( Custo com Frota ).
- Descrição dos Procedimentos
Para caracterizarmos o banco como de alta qualidade aplicaremos as Técnicas de Normalização até o 3 nível e Trigamação e também iremos utilizar a “Heurística dos Cinco mais ou menos Dois Elementos” para não deixar o banco extenso.
- Normalização
Inicialmente o banco foi apresentado com a seguinte estrutura.
Entidade: Custo
Atributos: {cod_custo, veiculo, custokm, leasing, taxas, materialconsumo}
· 1FN
Ao aplicando a 1ª Forma Normal estaremos deixando todos os atributos atômicos.
Entidade : custo
Atributos
: {cod_custo,cod_veiculo, placa, ano, modelo,
cod_percuso,cidade_origem,cidade_destino,tempo_percorrido,km_percorrido,cod_leasing,descricao,data_vencimento_parcela,valor_parcela,
quitado, cod_taxa, descricao, valor, data_pagamento, cod_material, descricao,
valor, data_consumo}
· 2FN
Requer que todos os atributos não chave devem conter informações, que se referem à chave inteira, e não somente à parte do registro.
Entidade: VEICULO
Atributos: {cod_veiculo, placa, ano, modelo}
Entidade: CUSTOKM
Atributos: {cod_percuso, cidade_origem, cidade_destino, tempo_percorrido, km_percorrido}
Entidade: LEASING
Atributos: {cod_leasing, descricao, data_vencimento_parcela, valor_parcela, quitado}
Entidade: TAXAS
Atributos: {cod_taxa, descricao, valor, data_pagamento}
Entidade: MATERIALCONSUMO
Atributos: {cod_material, descricao, valor, data_consumo}
· 3FN
Refere-se ao agrupamento de Relações requeridas na 2FN,
com cada atributo não chave referindo-se diretamente a chave.
Entidade: LEASING
Atributos: {cod_leasing, descricao}
Entidade: LEASINGPARCELA
Atributos: {num_leasing_parcela, data_vencimento_parcela, valor_parcela, quitado}
-
Trigramação
Foi aplicada a técnica de trigramação.
Entidade: VEICULO
Atributos: {vei_cod_veiculo, vei_placa, vei_ano, vei_modelo}
Entidade: CUSTOKM
Atributos: {cus_cod_percuso, cus_cidade_origem, cus_cidade_destino, cus_tempo_percorrido, cus_km_percorrido}
Entidade: LEASING
Atributos: {lea_cod_leasing, lea_descricao}
Entidade: LEASINGPARCELA
Atributos: {lep_num_leasing_parcela, lep_data_vencimento_parcela, lep_valor_parcela, lep_quitado}
Entidade: TAXAS
Atributos: {tax_cod_taxa, tax_descricao,tax_valor, tax_data_pagamento}
Entidade: MATERIALCONSUMO
Atributos: {mat_cod_material,mat_descricao, mat_valor, mat_data_consumo}
O Banco definitivo é demonstrado abaixo.
|
SYS-CFR |
|||||||||||
|
VEICULO |
|||||||||||
|
vei_cod_veiculo |
vei_placa |
vei_ano |
vei_modelo |
||||||||
|
|
|
|
|
||||||||
|
CUSTOKM |
|||||||||||
|
cus_cod_percuso |
cus_cidade_origem |
cus_cidade_destino |
cus_tempo_percorrido |
cus_km_percorrido |
|||||||
|
|
|
|
|
|
|||||||
|
LEASING |
|||||||||||
|
lea_cod_leasing |
lea_descricao |
||||||||||
|
|
|
||||||||||
|
LEASINGPARCELA |
|||||||||||
|
lep_cod_leasing_parcela |
lep_data_vencimento_parcela |
lep_valor_parcela |
lep_quitado |
||||||||
|
|
|
|
|
||||||||
|
TAXAS |
|||||||||||
|
tax_cod_taxa |
tax_descricao |
tax_valor |
tax_data_pagamento |
||||||||
|
|
|
|
|
||||||||
|
MATERIALCONSUMO |
|||||||||||
|
mat_cod_material |
mat_descricao |
mat_valor |
mat_data_consumo |
||||||||
|
|
|
|
|
||||||||
-
Modelo de Entidade e Relacionamento

-
Tuples
|
SYS-CFR |
|||||||||||
|
VEICULO |
|||||||||||
|
vei_cod_veiculo |
vei_placa |
vei_ano |
vei_modelo |
||||||||
|
1 |
Jkl4567 |
2000 |
FORD 4000 |
||||||||
|
2 |
Yui4569 |
1984 |
FORD 10000 |
||||||||
|
3 |
Ase7814 |
2003 |
VOLVO SCANIA |
||||||||
|
|
|
|
|
||||||||
|
CUSTOKM |
|||||||||||
|
cus_cod_percuso |
cus_cidade_origem |
cus_cidade_destino |
cus_tempo_percorrido |
cus_km_percorrido |
|||||||
|
1 |
Barra
do Piraí |
São
Jose dos Campos |
4 |
300 |
|||||||
|
2 |
Volta
Redonda |
São
Jose dos Campos |
3 |
230 |
|||||||
|
3 |
Rio
de Janeiro |
São
Jose dos Campos |
6 |
600 |
|||||||
|
|
|
|
|
|
|||||||
|
LEASING |
|||||||||||
|
lea_cod_leasing |
lea_descricao |
||||||||||
|
1 |
Feito
pelo Banco Real |
||||||||||
|
2 |
Feito
pelo Banco Real |
||||||||||
|
3 |
Feito
pelo Banco Unibanco |
||||||||||
|
|
|
||||||||||
|
LEASINGPARCELA |
|||||||||||
|
lep_cod_leasing_parcela |
lep_data_vencimento_parcela |
lep_valor_parcela |
lep_quitado |
||||||||
|
1 |
12/04/2004 |
R$
1000,00 |
SIM |
||||||||
|
2 |
20/04/2004 |
R$
10000,00 |
Não |
||||||||
|
2 |
05/05/2004 |
R$
13000,00 |
Não |
||||||||
|
|
|
|
|
||||||||
|
TAXAS |
|||||||||||
|
tax_cod_taxa |
tax_descricao |
tax_valor |
tax_data_pagamento |
||||||||
|
1 |
Pedágio |
R$
12,00 |
|
||||||||
|
2 |
ICM |
R$
300,00 |
30/05/2004 |
||||||||
|
3 |
Pedágio |
R$
5,80 |
|
||||||||
|
|
|
|
|
||||||||
|
MATERIALCONSUMO |
|||||||||||
|
mat_cod_material |
mat_descricao |
mat_valor |
mat_data_consumo |
||||||||
|
1 |
Óleo
para motor |
R$
20,00 |
02/02/2004 |
||||||||
|
2 |
Óleo
para freio |
R$
30,00 |
30/04/2004 |
||||||||
|
3 |
Pneus |
R$
300,00 |
|
||||||||
-
Criando o Banco
create
table VEICULO(
vei_cod_veiculo varchar(10) not null,
vei_ano int,
vei_placa varchar(7),
vei_modelo varchar(100),
primary key(vei_cod_veiculo));
create table CUSTOKM(
cus_cod_percuso varchar(10) not null,
cus_tempo_percorrido int not null,
cus_km_percorrido int not null,
cus_cidade_origem varchar(70)not null,
cus_cidade_destino varchar(70)not null,
primary
key(cus_cod_percuso));
create
table LEASING(
lea_cod_leasing
varchar(10) not null,
lea_descricao
varchar(100)not null,
primary
key(lea_cod_leasing));
create
table LEASINGPARCELA(
lep_cod_leasing_parcela
varchar(10) not null,
lep_data_vencimento_parcela DATE not null,
lep_valor_parcela
int not null,
lep_quitado
varchar(1),
primary
key(lep_cod_leasing_parcela));
create
table TAXA(
tax_cod_taxa
varchar(10) not null,
tax_descricao
VARCHAR(200)not null,
tax_valor
int not null,
tax_data_pagamento
DATE NOT NULL,
primary
key(tax_cod_taxa));
create
table MATERIALCONSUMO(
mat_cod_material
varchar(10) not null,
mat_descricao
VARCHAR(200)not null,
mat_valor
int not null,
mat_data_consumo
DATE NOT NULL,
primary
key(mat_cod_material));
create
table MISSAO(
mis_cod
varchar(4) not null,
vei_cod_veiculo
varchar(10) not null,
cus_cod_percuso
varchar(10) not null,
primary
key(mis_cod));
create
table GASTOTAX(
gtx_cod
varchar(4) not null,
cus_cod_percuso
varchar(10) not null,
tax_cod_taxa
varchar(10) not null,
primary
key(gtx_cod));
create
table GASTOMAT(
gmt_cod
varchar(4) not null,
cus_cod_percuso
varchar(10) not null,
mat_cod_material
varchar(10) not null,
primary
key(gmt_cod));
ALTER TABLE
"MISSAO" ADD CONSTRAINT "FK1" FOREIGN KEY
("VEI_COD_VEICULO") REFERENCES VEICULO ("VEI_COD_VEICULO");
ALTER TABLE
MISSAO ADD CONSTRAINT FK2 FOREIGN KEY (cus_cod_percuso) REFERENCES CUSTOKM
(cus_cod_percuso)
ALTER TABLE
LEASING ADD CONSTRAINT FK1 FOREIGN KEY (vei_cod_veiculo) REFERENCES VEICULO
(vei_cod_veiculo)
ALTER TABLE
LEASINGPARCELA ADD CONSTRAINT FK2 FOREIGN KEY (lea_cod_leasing) REFERENCES
LEASING (lea_cod_leasing)
ALTER TABLE
GASTOTAX ADD CONSTRAINT FK3 FOREIGN KEY (cus_cod_percuso) REFERENCES CUSTOKM
(cus_cod_percuso)
ALTER TABLE
GASTOMAT ADD CONSTRAINT FK4 FOREIGN KEY (cus_cod_percuso) REFERENCES CUSTOKM
(cus_cod_percuso)
ALTER TABLE
GASTOMAT ADD CONSTRAINT FK5 FOREIGN KEY (mat_cod_material) REFERENCES
MATERIALCONSUMO (mat_cod_material)
ALTER TABLE
GASTOTAX ADD CONSTRAINT FK6 FOREIGN KEY (tax_cod_taxa) REFERENCES TAXAS
(tax_cod_taxa)

Nesta Listex nós permitiu visualizar as melhorias que determinadas técnicas podem trazer para um projeto de banco de dados.