
|
 |
1.Objetivos
Esta lista de exercícios tem por objetivo integrar os Bancos de Dados Setoriais (BDS) ou Corporate Databases de duas empresas ou corporações, SIG-PT e SIG-PA, visando a melhorar as suas deficiências corporativas e reduzir os seus desperdícios de recursos.
Além disso, esta lista também visa implementar a Integração dos Bancos de Dados Setoriais (BDSs ou Subject Databases) em dois Bancos de Dados Corporativos (BDCs) ou Corporate Database de duas empresas ou corporações fictícias, visando testar o aumento de suas funcionalidades com as suas integrações debaixo do SGBD ORACLE 10g Spatial previamente escolhido, e verificar a melhoria de suas eficiências corporativas e a redução de desperdícios de seus recursos.
Os Bancos de Dados Setoriais a serem integrados e integrados da empresa SIG-PT são: Setor de Transporte (PT-TRA), Setor de Recursos Humanos (PT-RHU), Setor de Núcleos de Controle (PT-NCT), Setor de Comunicação PCDs (PT-COM), Setor de Controle PCDs (PT-CTL), Setor de Rios (PT-RIO), Setor de Bacias (PT-BAC), Setor de Nascentes (PT-NAS) e Setor de Represas (PT-REP).
2. Conteúdo
2.1. Integração dos Bancos de Dados Setoriais (BDSs)
Para realizar a integração dos BDCs, os BDSs da empresa SIG-PT foram separados por afinidades, resultando em três frentes de trabalhos:
Frente 1 |
Recursos Humanos (PT-RHU) e Transportes (PT-TRA) |
Frente 2 |
Núcleos de Controle (PT-NCT), Comunicação PCDs (PT-COM) e Controle PCDs (PT-CTL) |
Frente 3 |
Rios (PT-RIO), Bacias (PT-BAC), Nascentes (PT-NAS) e Represas (PT-REP) |
A divisão das frentes de trabalho, bem como os responsáveis por cada função, podem ser visualizadas na Figura 1.

Figura 1 – Divisão das frentes de trabalho
2.2 Criação das Tabelas e Inserção dos Valores
Os arquivos contendo as entradas para a criação das tabelas e para a inserção dos valores estão disponíveis em minha página de índices, nos seguintes endereços:
http://www.geocities.com/douglasym/scripts.zip
http://www.geocities.com/douglasym/ScriptsPopulaoTrasnporte-ListEx6.txt
2.3. Dicionarização
2.3.1. Dicionário de Dados
O Dicionário de Dados também está disponível no seguinte endereço:
http://br.geocities.com/daniel_sbr/ce240/DicionarioDeDados.htm
2.3.2. Diretório de Dados
Entidade |
Atributo |
Relacionamento |
Entidade-Relacionamento |
ATRACACAO |
(PK) atr_codigo |
(FK) atr_codigo |
MOVIMENTO_CARGA |
EXTREMO_ROTA |
CARGA |
(PK) car_codigo |
(FK) car_codigo |
MOVIMENTO_CARGA |
DESCRICAO_ROTA |
(PK) des_codigo |
|
|
EMBARCACAO |
(PK) emb_codigo |
(FK) emb_codigo |
ATRACACAO |
TRIPULANTE |
EMPREGADO_EMBARCACAO |
EMPREGADO_EMBARCACAO |
(PK) e_e_codigo |
|
|
EMPREGADO_PORTO |
(PK) e_p_numero |
|
|
EXTREMO_ROTA |
(PK) ext_codigo |
|
|
NATUREZA |
(PK) nat_codigo |
(FK) nat_codigo |
CARGA |
PORTO |
(PK) por_codigo |
(FK) por_codigo |
ATRACACAO |
EMPREGADO_PORTO |
PROPRIETARIO |
(PK) ppt_codigo |
(FK) ppt_codigo |
EMBARCACAO |
CARGA |
ROTA |
(PK) rot_codigo |
(FK) rot_codigo |
EXTREMO_ROTA |
DESCRICAO_ROTA |
TIPO |
(PK) tip_codigo |
(FK) tip_codigo |
EMBARCACAO |
TRECHO |
(PK) tre_codigo |
(FK) tre_codigo |
DESCRICAO_ROTA |
2.4.3. Dicionário de Recursos de Dados
SGBD |
Oracle 10g Spatial |
Address |
http://seti.fcmf.ita.br/ |
Alias |
orcl |
Projeto |
Banco de Dados Setorial Transporte (PT-TRA) |
Sistema Operacional |
Windows XP Professional |
Memória RAM |
1 GB |
Utilização |
24 h |
2.4.4. Dicionário de Metadados
O Dicionário de Metadados também está disponível em minha página de índices, no seguinte endereço:
http://www.geocities.com/douglasym/modelo.zip
2.5. Testes de Verificação
Para verificar a integração do Banco de Dados Setorial, foram realizadas consultas.
2.5.1. 1ª Consulta
“Listar todas as informações do Porto de Manaus”.
SELECT *
FROM PORTO
WHERE por_nome= 'Porto de Manaus'
POR_CODIGO |
POR_NOME |
POR_ENDERECO |
POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) |
1 |
Porto de Manaus |
Rua Santa Maria, 3 |
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-2, -10.1, 50), NULL, NULL) |
2.5.2. 2ª Consulta
“Listar os horários de chegada das embarcações nos portos.”
SELECT atr_horario_entrada, por_codigo
FROM ATRACACAO
ATR_HORARIO_ENTRADA |
POR_CODIGO |
17-MAY-07 |
1 |
20-MAY-07 |
2 |
19-MAY-07 |
2 |
25-MAY-07 |
1 |
2.5.3. 3ª Consulta
“Listar o código e o nome da embarcação, o código da atracação e o código do porto cuja embarcação possui como porto de atracação o Porto de Manaus.”
SELECT EMBARCACAO.emb_codigo, EMBARCACAO.emb_nome, ATRACACAO.atr_codigo, PORTO.por_codigo
FROM EMBARCACAO, PORTO, ATRACACAO
WHERE PORTO.por_nome='Porto de Manaus' AND ATRACACAO.emb_codigo=EMBARCACAO.emb_codigo AND ATRACACAO.por_codigo=PORTO.por_codigo
EMB_CODIGO |
EMB_NOME |
ATR_CODIGO |
POR_CODIGO |
2 |
Titanic |
1 |
1 |
3 |
Ana Luzia |
4 |
1 |
2.5.4. 4ª Consulta
“Listar a posição do porto no qual trabalha o empregado Marcos Rosa.”
SELECT PORTO.por_posicao
FROM PORTO, EMPREGADO
WHERE PORTO.por_codigo=EMPREGADO.por_codigo and EMPREGADO.emp_nome='Marcos Rosa'
Anomalia: A tabela EMPREGADO passou a ser denomida EMPREGADO_PORTO, enquanto o atributo “emp_nome” foi excluído e foi inserido o atributo “e_p_numero”.
Novo enunciado: “Listar a posição do porto no qual trabalha o empregado de número 2.”
SELECT PORTO.por_posicao
FROM PORTO, EMPREGADO_PORTO
WHERE PORTO.por_codigo=EMPREGADO_PORTO.por_codigo and EMPREGADO_PORTO.e_p_numero='2'
POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) |
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-5, -30.1, 50), NULL, NULL) |
2.5.5. 5ª Consulta
“Listar as informações dos tripulantes da embarcação Ana Luiza.”
SELECT TRIPULANTE.tri_codigo, TRIPULANTE.tri_nome, TRIPULANTE.tri_cargo, TRIPULANTE.tri_telefone
FROM EMBARCACAO, TRIPULANTE
WHERE EMBARCACAO.emb_codigo=TRIPULANTE.emb_codigo and EMBARCACAO.emb_nome='Ana Luzia'
Anomalia: A tabela TRIPULANTE foi excluída do BDS, sendo inserida a tabela EMPREGADO_EMBARCACAO.
Novo enunciado: “Listar as informações dos empregados da embarcação Ana Luiza.”
SELECT EMPREGADO_EMBARCACAO.e_e_codigo, EMPREGADO_EMBARCACAO.pro_cpf
FROM EMBARCACAO, EMPREGADO_EMBARCACAO
WHERE EMBARCACAO.emb_codigo=EMPREGADO_EMBARCACAO.e_e_codigo and EMBARCACAO.emb_nome='Ana Luzia'
2.5.6. 6ª Consulta
“Listar os portos em que se encontram as embarcações cujos proprietários são pessoas físicas.”
SELECT DISTINCT (PORTO.por_nome)
FROM PORTO, ATRACACAO, EMBARCACAO, PROPRIETARIO
WHERE PROPRIETARIO.pro_tipo='fisica' AND PROPRIETARIO.pro_codigo=EMBARCACAO.pro_codigo AND EMBARCACAO.emb_codigo=ATRACACAO.emb_codigo AND PORTO.por_codigo=ATRACACAO.por_codigo
Anomalias: A nomenclatura de todos atributos da tabela PORTO mudaram seu início de “pro” para “ppt”.
SELECT DISTINCT (PORTO.por_nome)
FROM PORTO, ATRACACAO, EMBARCACAO, PROPRIETARIO
WHERE PROPRIETARIO.ppt_tipo='fisica' AND PROPRIETARIO.ppt_codigo=EMBARCACAO.ppt_codigo AND EMBARCACAO.emb_codigo=ATRACACAO.emb_codigo AND PORTO.por_codigo=ATRACACAO.por_codigo
POR_NOME |
Porto de Manaus |
Porto de Japioca |
2.5.7. 7ª Consulta
“Listar o nome e o tipo das embarcações com capacidade de 10000 ou 100000 cujas periculosidades das rotas sejam altas.”
SELECT DISTINCT(EMBARCACAO.emb_nome), TIPO.tip_nome
FROM EMBARCACAO, TIPO, ATRACACAO, EXTREMO_ROTA, ROTA
WHERE (TIPO.tip_capacidade='10000' OR TIPO.tip_capacidade='100000') AND ROTA.rot_periculosidade='alta' AND EMBARCACAO.tip_codigo=TIPO.tip_codigo AND ATRACACAO.emb_codigo=EMBARCACAO.emb_codigo AND EXTREMO_ROTA.atr_codigo=ATRACACAO.atr_codigo AND ROTA.rot_codigo=EXTREMO_ROTA.rot_codigo
EMB_NOME |
TIP_NOME |
Titanic |
Navios |
Ana Luzia |
Barco |
2.5.8. 8ª Consulta
“Listar os dados dos portos e suas distâncias ao ponto de latitude e longitude zero cujo código de atracação também é dois.”
SELECT PORTO.*, SDO_GEOM.SDO_DISTANCE(PORTO.por_posicao,MDSYS.SDO_GEOMETRY(2001,NULL,MDSYS.SDO_POINT_TYPE(0,0,0),NULL,NULL) ,1) AS DISTANCIA
FROM PORTO, ATRACACAO
WHERE PORTO.por_nome='Porto de Japioca' AND ATRACACAO.por_codigo=PORTO.por_codigo AND ATRACACAO.atr_codigo='2'
POR_CODIGO |
POR_NOME |
POR_ENDERECO |
POR_POSICAO(SDO_GTYPE, SDO_SRID, SDO_POINT(X, Y, Z), SDO_ELEM_INFO, SDO_ORDINATES) |
DISTANCIA |
2 |
Porto de Japioca |
Av JK, 3000 |
SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-5, -30.1, 50), NULL, NULL) |
30.5124565 |
2.5.9. 9ª Consulta
“Listar os nomes e cargos dos profissionais que pertencem ao Setor de Represas e que possuem vínculo com a embarcação cujo código é 2. ”
SELECT DISTINCT(PROFISSIONAL.pro_nome), PROFISSIONAL.pro_cargo
FROM SETOR_RH, PROFISSIONAL, EMPREGADO_EMBARCACAO
WHERE EMPREGADO_EMBARCACAO.emb_codigo='2' AND PROFISSIONAL.set_codigo=SETOR_RH.set_codigo AND SETOR_RH.set_nome='Represas'
PRO_NOME |
PRO_CARGO |
José da Silva |
Motorista |
Augusto de Souza |
Diretor Financeiro |
2.5.10. 10ª Consulta
“Listas os valores dos pagamentos dos profissionais que trabalham no Setor de Transporte e que têm vínculo com o porto de código 3, bem como o nome e a carga horária de cada um.”
SELECT DISTINCT(PROFISSIONAL.pro_nome), PAGAMENTO.pag_vl_liquido, TREINAMENTO.tre_carga_horaria
FROM PROFISSIONAL, PAGAMENTO, SETOR_RH, TREINAMENTO, EMPREGADO_PORTO
WHERE EMPREGADO_PORTO.por_codigo='3' AND EMPREGADO_PORTO.pro_cpf=PROFISSIONAL.pro_cpf AND PAGAMENTO.pro_cpf=PROFISSIONAL.pro_cpf AND PROFISSIONAL.set_codigo=SETOR_RH.set_codigo AND SETOR_RH.set_nome='Transporte' AND SETOR_RH.set_codigo=TREINAMENTO.set_codigo
PRO_NOME |
PAG_VL_LIQUIDO |
TRE_CARGA_HORARIA |
Júlio Soares |
3619 |
24 |
2.5.11. 11ª Consulta
“Listar a distâncias entre os pontos relativos a cada profissional que trabalha no Porto de Manaus e este porto.”
SELECT PROFISSIONAL.pro_nome, SDO_GEOM.SDO_DISTANCE(PONTO.pon_geo, PORTO.por_posicao,1) AS DISTANCIA
FROM PROFISSIONAL, EMPREGADO_PORTO, PONTO, PORTO
WHERE PORTO.por_nome='Porto de Manaus' AND PORTO.por_codigo=EMPREGADO_PORTO.por_codigo AND PROFISSIONAL.pro_cpf=EMPREGADO_PORTO.pro_cpf AND PONTO.pon_id=PROFISSIONAL.pon_id
PRO_NOME |
DISTANCIA |
José da Silva |
621.998.794 |
Augusto de Souza |
610.203.777 |
3. Conclusão
Nesta lista de exercícios foram integrados e implementadas as integrações dos Bancos de Dados Setoriais de duas empresas, denominadas SIG-PT e SIG-PA, de modo a formarem dois Bancos de Dados Corporativos.
Os testes de verificação foram realizados com sucesso, o que indica a implementação correta da integração dos Bancos de Dados Setoriais.
Como sugestão para futuras turmas, a quantidade de consultas ao BD poderia ser maior, pois desse jeito os alunos poderiam treinar mais os comandos e realizar uma verificação melhor da integração dos BDSs.
|
|
|