Instituto
Tecnológico de Aeronáutica
Divisão da Ciência da Computação
Curso de Pós-Graduação
CE-240 Projeto
de Banco de Dados
Professor. Adilsom Marques da Cunha
Listex 05
SIS-MANUT Wellingtonn
Vergílio Fortes - Normalizador
SIS-CFR JOSÉ FERNANDO Basso Brancalion – Dicionalizador
http://geocities.yahoo.com.br/jfbrancalion/ListaExercicios5Banco.htm
SISEF SÉRGIO Luiz Pires de Barros – Integrador
http://sergiopbarros.sites.uol.com.br/ce_240/listex_05/listex_05_n1.htm
Barra do Piraí, 30 de maio de 2004
Atualização, 06 junho de 2004
Integração 1º e 2º nível do “Sistema de Gestão de Frota de Apoio à Logística de Cargas - SIS-GFR”.
Melhorar a experiência em desenvolvimento de Banco de Dados e desenvolvimento de projeto em grupo.
Integrar os bancos do grupo CFR no 1º nivel e no 2º o Banco DELTA. E assim preparando o Modelo de Entidade e Relacionamento para os outros integrantes da equipe dicionarizar e integrar os bancos.
Será mostrado os procedimento da integração.
Inicialmente o banco
de dados Gestão de Frota foi divididos
em 3 partes para facilitar a sua produção e agilizar os processos: SYS-MANUT, SIS-FRO, SIS-CFR.
Nesta fase será
feita a 1º interação entre estes sub bancos, para se cria o banco GFR (Gestão
de Frotas).
Para efetuarmos a 1º
interação serão aplicados os seguintes processos:
SIS-CFR
VEICULO { vei_num_veiculo, vei_placa, vei_ano, vei_modelo}
CUSTO_KM
{ vei_num_veiculo, cus_custo_km,
cus_ponto_partida, cus_ponto_chegada, cus_distancia, cus_gastos}
LEASING{
vei_num_veiculo, lea_num_leasing, lea_descrição, lea_quantidadeparcelas,
lea_valor}
LEASING_PARCELA{ lea_num_leasing,
lep_leasing_parcela, lep_data_vencimento, lep_data_pagamento}
TAXA{
vei_num_veiculo, tax_num_taxa, tax_descrição,
tax_valor, tax_data_pagamento}
MATERIAL_CONSUMO{
vei_num_veiculo,
mat_num_material_consumo,
mat_descrição, mat_valor , mat_data }
ALOCACAO { vei_num,
frt_num, mot_num }
HIST_VEI {vei_num,
vei_placa, vei_modelo, vei_fabricante, vei_ano_fab, vei_data_compra,
vei_preco_compra}
FRETE {frt_num, frt_destino,
frt_data_partida, frt_data_chegada}
MOTORISTA {mot_num,
mot_nome, mot_carteira, mot_dn, mot_end, mot_telefone, mot_sal}
SEGURANÇA {vei_num,
seg_extintor, seg_ult_troca_pneus, seg_ult_troca_oleo}
FROTA_TER { vei_num,
ter_frota, ter_transp}
oficina { ofi_codofic, ofi_nome, ofi_endereco, ofi_bairro,
ofi_cidade, ofi_uf, ofi_tel}
veículo {vei_codveiculo, vei_placa, vei_ano, vei_modelo}
manutencao { man_codmanut, man_dataentrada, man_datasaida }
MATERIAL
{mat_codmaterial, mat_descrição, mat_quantidade, mat_valorunit}
servico {ser_codservicos, ser_descricao, ser_valor}
cotacao { cot_codcotacao, cot_data, cot_aprovacao}
OCORRENCIA
{oco_cod, man_codmanut, vei_codveiculo}
TEM{
tem_cod, man_codmanut, ser_codservico}
VINCULO{
vin_cod , mat_codmaterial, ser_codservico}
PRESTA
{ pre_cod , man_codmanut, ofi_codofic}
Adaptando o banco
para 1º Integração
* SIS-CFR VEICULO { vei_num_veiculo,
vei_placa, vei_ano, vei_modelo}
* SIS-FRO HIST_VEI {vei_num, vei_placa,
vei_modelo, vei_fabricante, vei_ano_fab, vei_data_compra, vei_preco_compra}
*
SYS-MANUT veículo {vei_codveiculo, vei_placa,
vei_ano, vei_modelo}
-
Foi feito a junção das tabelas a cima, procurando manter os atributos necessários
das das tabelas.
VEICULO {vei_num, vei_placa, vei_modelo,
vei_fabricante, vei_ano_fab, vei_data_compra, vei_preco_compra}
______________________________________________________________________
* SIS-CFR
CUSTO_KM { vei_num_veiculo, cus_custo_km, cus_ponto_partida, cus_ponto_chegada, cus_distancia,
cus_gastos}
* SIS-FRO
FRETE
{frt_num, frt_destino, frt_data_partida, frt_data_chegada}
- Foi feito a junção das tabelas a cima, procurando
manter os atributos necessários das das tabelas. A trigramação tambem foi
alterada para utilizar as 3 primeiras letra da tabela.
FRETE { fre_num, fre_ponto_partida,
fre_ponto_chegada, fre_distancia, fre_gastos, fre_data_partida,
fre_data_chegada}
______________________________________________________________________
SIS-CFR MATERIAL_CONSUMO{ vei_num_veiculo, mat_num_material_consumo,
mat_descrição, mat_valor , mat_data }
SYS-MANUT MATERIAL {mat_codmaterial, mat_descrição,
mat_quantidade, mat_valorunit}
- Foi feito
a junção das tabelas a cima, procurando manter os atributos necessários das
entidades. Nesta entidade foram acrescentado 2 atributos a mais (mat_data_ entrada, mat_data_ saída)
MATERIAL
{mat_codmaterial, mat_descrição, mat_quantidade, mat_valorunit, mat_data_ entrada, mat_data_ saída }
______________________________________________________________________
SIS-FRO SEGURANÇA {vei_num, seg_extintor,
seg_ult_troca_pneus, seg_ult_troca_oleo}
- Com a integração esta tabela se tornou
desnecessária pois sua função é sanada pela tabela MATERIAL
______________________________________________________________________
-
Foram mantidas apenas os atributos necessários das das tabelas
SIS-CFR LEASING{ vei_num_veiculo, lea_num_leasing, lea_descrição, lea_quantidadeparcelas,
lea_valor}
-
Foi alterada a chave estrangeira vei_num_veiculo para vei_num
SIS-CFR LEASING{ lea_num_leasing, vei_num, lea_descrição,
lea_valor}
__________________________________________________________________
SIS-CFR LEASING_PARCELA{ lep_leasing_parcela, lea_num_leasing, lep_data_vencimento, lep_data_pagamento}
__________________________________________________________________
SIS-CFR TAXA{ vei_num_veiculo, tax_num_taxa, tax_descrição, tax_valor, tax_data_pagamento}
-
Foi alterada a chave estrangeira vei_num_veiculo para vei_num
SIS-CFR TAXA{ tax_num_taxa, vei_num, tax_descrição, tax_valor, tax_data_pagamento}
__________________________________________________________________
SIS-FRO MOTORISTA {mot_num,
mot_nome, mot_carteira, mot_dn, mot_end, mot_telefone, mot_sal}
SIS-FRO ALOCACAO { vei_num, frt_num, mot_num
}
SIS-FRO FROTA_TER { vei_num, ter_frota,
ter_transp}
SYS-MANUT oficina { ofi_codofic, ofi_nome, ofi_endereco, ofi_bairro,
ofi_cidade, ofi_uf, ofi_tel}
SYS-MANUT manutencao { man_codmanut,
man_dataentrada, man_datasaida }
SYS-MANUT
servico {ser_codservicos,
ser_descricao, ser_valor}
SYS-MANUT
cotacao {
cot_codcotacao, cot_data, cot_aprovacao}
SYS-MANUT OCORRENCIA {oco_cod,
man_codmanut, vei_codveiculo}
-
Foi alterada a chave estrangeira
vei_codveiculo para vei_num
SYS-MANUT OCORRENCIA {oco_cod,
man_codmanut, vei_num}
______________________________________________________________________
SYS-MANUT TEM{ tem_cod, man_codmanut,
ser_codservico}
SYS-MANUT VINCULO{ vin_cod ,
mat_codmaterial, ser_codservico}
SYS-MANUT PRESTA { pre_cod ,
man_codmanut, ofi_codofic}
______________________________________________________________________
Aplicando a 1FN
Devido a boa aplicação desta técnica no primeiro
estágio do projeto não houve ocorrência de discordância na 1º Integração.
Aplicando a 2FN
Devido a boa aplicação desta técnica no primeiro
estágio do projeto não houve ocorrência de discordância na 1º Integração.
Aplicando a 3FN
Detectamos uma discordância da 3FN nas entidadeLEASING o atributo
lea_valor (ou seja valor total) não é mutuamente independente. Ele é divisível
em parcelas. Para criar uma concordância com a 3FN este atributo será
transferido para entidade LEASING_PARCELA. E para saber o total do leasing será necessário somar
as parcelas.
LEASING{
vei_num, lea_num_leasing, lea_descrição,
lea_quantidadeparcelas, lea_valor}
LEASING_PARCELA{ lep_leasing_parcela,
lea_num_leasing, lep_data_vencimento, lep_data_pagamento}
Normalizado
LEASING{
vei_num, lea_num_leasing, lea_descrição,
lea_quantidadeparcelas}
LEASING_PARCELA{ lep_leasing_parcela,
lea_num_leasing, lep_data_vencimento, lep_data_pagamento, , lep_valorparcela}
Estrutura do Novo Banco
VEICULO {vei_num, vei_placa, vei_modelo,
vei_fabricante, vei_ano_fab, vei_data_compra, vei_preco_compra}
FRETE { fre_num, fre_ponto_partida, fre_ponto_chegada,
fre_distancia, fre_gastos, fre_data_partida, fre_data_chegada}
MATERIAL
{mat_codmaterial, mat_descricao, mat_quantidade, mat_valorunit, mat_data_ entrada, mat_data_ saída }
LEASING{
lea_num_leasing, vei_num, lea_descricao}
LEASING_PARCELA{ lep_leasing_parcela,
lea_num_leasing, lep_data_vencimento, lep_data_pagamento, lep_valorparcela}
TAXA{
tax_num_taxa, vei_num, tax_descricao, tax_valor, tax_data_pagamento}
MOTORISTA {mot_num,
mot_nome, mot_carteira, mot_dn, mot_end, mot_telefone, mot_sal}
ALOCACAO { vei_num, frt_num, mot_num }
FROTA_TER { vei_num, ter_frota, ter_transp}
oficina { ofi_codofic, ofi_nome, ofi_endereco, ofi_bairro,
ofi_cidade, ofi_uf, ofi_tel}
manutencao { man_codmanut, man_dataentrada, man_datasaida }
servico {ser_codservicos, ser_descricao, ser_valor}
cotacao { cot_codcotacao, cot_data, cot_aprovacao}
OCORRENCIA {oco_cod, man_codmanut, vei_num}
TEM{ tem_cod, man_codmanut, ser_codservico}
VINCULO{ vin_cod , mat_codmaterial,
ser_codservico}
PRESTA { pre_cod , man_codmanut, ofi_codofic}
Modelo
de Entidade e Ralacionamento
Consulta 4 Nivel 1
Seleciona o veiculo que sofreu a manutenção e a taxa gasta pelo veiculo. Assim comprova a integração do banco SYS-MANUT com o banco SYS-CFR. Os dois bancos foram integrados ao banco GFR.

select
veiculo.vei_placa,manutencao.man_dataentrada, manutencao.man_datasaida,taxa.tax_valor,taxa.tax_data
from manutencao,ocorrencia,
veiculo,taxa where
veiculo.vei_placa='kmk7370'
and
manutencao.man_num=ocorrencia.man_num and ocorrencia.vei_num=veiculo.vei_num
and veiculo.vei_num=taxa.vei_num
Consulta 5 Nivel 1
Seleciona o gasto com o veiculo, no percurso feito para entrega de um frete. Para efetuar esta consulta foi necessário a integração dos bancos SYS-MANUT, SYS-CFR, SYSEF. Os três bancos foram integrados ao banco GFR.

select
frete.frt_num,frete.frt_gastos,veiculo.vei_placa,manutencao.man_dataentrada, manutencao.man_datasaida,taxa.tax_valor,taxa.tax_data
from manutencao,ocorrencia,
veiculo,taxa, alocacao,frete where
veiculo.vei_placa='kmk7370'
and
manutencao.man_num=ocorrencia.man_num and ocorrencia.vei_num=veiculo.vei_num
and veiculo.vei_num=taxa.vei_num
and frete.frt_num=alocacao.frt_num
and veiculo.vei_num=alocacao.vei_num
Consulta 6 Nivel 2
Esta consulta mostra o problema ocorridos com determinado veiculo em determinada viagem e qual o serviço prestado para solucionar o problema. A consulta foi gerada no nível 2, em cima do banco DELTA.

select viagem.vag_id,
servico.sem_descricao,manutencao.man_dthr_ent,
manutencao.man_dthr_saida,servico_est.ser_desc,
veiculo.vei_placa,veiculo.vei_modelo
from servico,manutencao, servico_est, veiculo,viagem
where servico.man_id=manutencao.man_id
and servico_est.ser_id=manutencao.ser_id
and servico_est.vei_id=veiculo.vei_id
and
viagem.vag_id=servico_est.vag_id
Com
este modelo de exercício foi possível verificar a capacidade das equipes
interagirem. Isso nos proporciona uma grande visão gerencial de Projetos de Banco
de Dados e nos prepara para atuarmos em grandes projetos.