Lista de Exercícios 5 (ListEx 5)
CE-240 Projeto de Sistema de BD
Prof. Dr. Adilson Marques da Cunha
Título: Integração de
Aplicativos de BD num Banco de Dados
Setorial (BDS) e sua
Implementação
1. - Objetivos:
1)
Integrar Aplicativos de BD nos Bancos de Dados Setoriais – BDS ou Subject Databases das Empresas ALC e HALS escolhidas como Estudo de Caso, visando a melhorar as suas
eficiências setoriais e a reduzir os seus desperdícios de recursos; e
2)
Implementar a integração de Aplicativos de BD nos Bancos de Dados Setoriais -
BDS ou Subject
Databases das Empresas ALC e HALS, visando
testar as funcionalidades de suas integrações setoriais debaixo de um SGBD
previamente escolhido, e verificar a melhoria das suas eficiências setoriais e
a redução dos desperdícios de seus recursos.
2. – Descrição dos principais
passos:
O Normalizador deverá exercer, sempre que forem
necessárias, as funções de organizar, padronizar, documentar, normalizar,
renormalizar e manter atualizados: os Modelos Conceituais ou Modelos Entidades Relacionamentos
(MER); os Modelos de Dados Setoriais - MDS ou Subject Data Model – SDM; e as suas
cardinalidades, mantendo o número de atributos por Entidade menor ou igual a
sete. Exceções só poderão ser abertas com a autorização do Professor;
ü PRIMEIRA FORMA NORMAL (1FN)
Diz-se, por definição, que uma Relação está
na 1FN, quando todos os seus registros possuem o mesmo conjunto de atributos, e
esses atributos são atômicos, isto é, são itens indivisíveis.
CLIENTE {cli_id,
cli_nome, cli_endereco, cli_site, cli_telefone, cli_dtcadastro, cli_numsol,
cli_soldata, cli_soldescricao, cli_solprazo}
PEDIDO{ped_id, ped_dat, cli_id, cli_nome, ped_endereco, ped_datentrega,
ped_endentrega, ped_vlr, ped_cidentrega, ped_ufentrega}
ITEM_PEDIDO {ped_id,
serv_id, carga_id, serv_nome, carga_nome,
ped_cidorigem, ped_ciddestino, ped_vlr, cidorigem_id, ciddestino_id}
EXCLUSAO_GRUPO {exc_id,
par_id, cid_id, par_nome, par_endereco}
INCLUSAO_GRUPO {inc_id,
par_id, cid_id, par_nome, par_endereco}
CIDADE {cid_id,
uf_id, cid_nome}
Algumas tuplas agora se constituem de mais de
um atributo chave, sendo necessária a combinação de todos para identificar o
registro.
Diz-se então que estas tuplas encontram-se na
primeira forma normal (1FN), mas ainda contém algumas características
funcionais que podem ocasionar dificuldades na utilização.
Estas tuplas na 1FN contém Anomalias de Atualização e de Inclusão. Por exemplo, se quisermos atualizar as cidades de atendimento ou não de determinado parceiro, nós deveremos que atualizá-lo em várias tuplas, correndo o risco de gerar inconsistência no BD. Ao mesmo tempo, se quisermos inserir determinado cliente (novo), deveremos inseri-lo no BD, em diversos momentos gerando re-trabalho.
ü SEGUNDA FORMA NORMAL (2FN)
Por definição, a Segunda Forma Normal (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.
CLIENTE {cli_id,
cli_nome, cli_endereco, cli_site, cli_telefone, cli_dtcadastro}
SOLICITACAO {cli_id,
sol_num, sol_data, sol_descricao, sol_prazo}
CONTATO {con_id, con_nome, con_telefone, con_email, con_dep, car_id,
con_cargo, cli_id}
ORDEM_SERVICO {os_id,
orc_id, orc_valor, cli_id, cli_endereco, os_origem, os_destino, os_dataentrega}
PEDIDO{ped_id, ped_dataentrega, cli_id, cli_nome, ped_endereco, ped_endentrega, ped_vlr,
cidentrega, ufentrega}
ITEM_PEDIDO {ped_id, serv_id,
car_id, cidorigem, ciddestino, ped_vlr}
SERVICO {serv_id, serv_nome}
CARGA {car_id, car_nome}
PARCEIRO {par_id,
par_telefone, par_contato, par_endereco, par_nome, cid_id}
EXCLUSAO_GRUPO {exc_id,
par_id, cid_id, par_nome, par_endereco}
INCLUSAO_GRUPO {inc_id,
par_id, cid_id, par_nome, par_endereco}
CIDADE {cid_id,
uf_id, cid_nome}
Ainda, as mesmas anomalias de atualização, inclusão e exclusão podem ser encontradas na 2FN por haver duplicação de informações em diversas partes do BD, como é o caso de par_nome, par_endereco e cli_endereco.
ü
TERCEIRA
FORMA NORMAL (3FN)
Por definição, a Terceira Forma Normal (3FN) refere-se ao agrupamento de Relações requeridas na 2FN, com cada atributo não chave referindo-se diretamente a chave.
CLIENTE {cli_id,
cli_nome, cli_endereco, cli_site, cli_telefone, cli_cidade, cli_dtcadastro}
CONTATO {con_id, con_nome, con_telefone, con_email, dep_id, car_id,
cli_id}
CARGO {car_id,
car_descr}
DEPTO {dep_id,
dep_descr}
SOLICITACAO {sol_id,
cli_id, sol_data, sol_descr, sol_prazo}
ORDEM_SERVICO {or_id,
ite_id, par_id}
PEDIDO {ped_id, cli_id, ped_dataped, ped_endereco, ped_valor,
ped_status, ped_nf}
ITEM_PEDIDO {ite_id,
ser_id, car_id, fre_id, ped_id, ite_valor, ite_mobra, ite_gastosindiretos}
CARGA {car_id, car_nome}
SERVICO {ser_id, ser_nome}
FRETE {fre_id,
fre_valor, cid_idorigem, cid_iddestino}
PARCEIRO {par_id,
par_telefone, par_contato, par_endereco, par_nome}
EXCLUSAO_GRUPO {exc_id,
par_id, cid_id}
INCLUSAO_GRUPO {inc_id,
par_id, cid_id}
CIDADE {cid_id,
uf_id, cid_nome}
UF {uf_id, uf_sigla}
MER – MODELO ENTIDADE RELACIONAMENTO
INTEGRAÇÃO
MANUAIS
Quanto a Implementação da
integração de Aplicativos de BD nos Bancos de Dados Setoriais - BDS ou Subject Databases da ALC e da HALS – Cada
integrante de um BDS deverá:
(a) Checar as implementações realizadas pelos
demais integrantes do seu grupo na Lista de Exercícios anterior (ListEx 4),
verificando e testando se as 03 (três) consultas (queries) desenvolvidas, envolvendo
1, 2 e 3 relações dos Aplicativos de Banco de Dados são aceitáveis para o seu
BDS.
1ª CONSULTA – Aceitável
A Primeira Consulta deverá ser considerada como aceitável, se
envolver uma relação e pelo menos um comando Select e um Project (ou equivalentes).
Foi
realizado o seguinte comando em SQL:
SELECT ped_endereco
from PEDIDO
Obtivemos
o resultado a seguir:

2ª CONSULTA - Aceitável
A Segunda Consulta deverá ser considerada como aceitável, se
envolver duas relações e pelo menos um Select, um Project
e um Join (ou equivalentes).
Foi
realizado o seguinte comando em SQL:
select ped_valor
from PEDIDO, CLIENTE
where
CLIENTE.cli_nome='Shell';
Obtivemos
o resultado a seguir:

3ª CONSULTA - Aceitável
E a Terceira Consulta deverá ser considerada como aceitável, se
envolver três relações e pelo menos um Select, um Project
e um Join (ou equivalentes).
Foi
realizado o seguinte comando em SQL:
select DISTINCT ped_id
from PEDIDO, FRETE,
ITEM_PEDIDO
where
FRETE.fre_valor>1500 and ite_valor>1500;
Obtivemos
o resultado a seguir:

(b) Implementar 03 (três) consultas (queries)
adicionais como parte do seu Aplicativo de Banco de Dados, devidamente
integrado no seu BDS.
4ª CONSULTA - Aceitável
A Quarta Consulta,
deverá ser formulada e implementada no nível de decisão tático, envolvendo, simultaneamente,
pelo menos 01 (uma) relação do seu Aplicativo
de Banco de Dados e 02 (duas) relações de um Aplicativo de Banco de Dados
diferente, mas que esteja debaixo do seu Banco de Dados Setorial (BDS) de Nível 1 ou Subject
Database Level 1.
Foi
realizado o seguinte comando em SQL:
SELECT par_nome
from PARCEIRO,
ITEM_PEDIDO,PEDIDO
where ped_valor>500 and ite_valor>1000;
Obtivemos
o resultado a seguir:

5ª CONSULTA - Aceitável
A Quinta Consulta, deverá ser também formulada e implementada no
nível de decisão tático, envolvendo,
simultaneamente uma relação do seu Aplicativo
de Banco de Dados e 02 (duas) relações de 02 (dois) Aplicativos de Banco de
Dados diferentes, que estejam debaixo do seu Banco de Dados Setorial (BDS) de Nível 1 ou Subject
Database Level 1.
Foi
realizado o seguinte comando em SQL:
select DISTINCT par_nome
from ORDEM_SERVICO,
PARCEIRO, ITEM_PEDIDO
where
ITEM_PEDIDO.ite_valor>5000;
Obtivemos
o resultado a seguir:

A Sexta Consulta, deverá ser também formulada e implementada no nível
de decisão tático, envolvendo, simultaneamente
uma relação do seu Aplicativo
de Banco de Dados e 02 (duas) relações de 02 (dois) Aplicativos de Banco de
Dados diferentes, que estejam debaixo do seu Banco de Dados Setorial BDS de Nível 2 ou Subject
Database Level 2.
Esta
consulta foi prorrogada para a próxima segunda-feira, dia07/06/2004.
3. – Conclusões:
Durante
a integração dos Aplicativos de Banco de Dados, constatamos algumas anomalias
que foram eliminadas, retirando-se ou acrescendando-se relações e/ou atributos
nos Aplicativos, evitando, desta forma, eventuais inconsistências.
Para
a integração dos aplicativos, utilizamos as ferramentas Interbase e ErWin que
fornecerem facilidades para a execução da tarefa.