Home Page Image


Relatório da ListEx6
                        

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' 

E_E_CODIGO

PRO_CPF

3

4

 

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.

 

   
           
Hosted by www.Geocities.ws

1