PROJETO DE SISTEMAS DE BANCO DE DADOS
LISTA DE EXERCÍCIOS 5 (LISTEX 5)_____________________________________________________
ITA – Instituto Tecnológico de Aeronáutica
_____________________________________________________
Projeto de Sistemas de Banco de Dados
LISTA DE EXERCÍCIOS 5 (LISTEX 5)1. INTRODUÇÃO 1.2 TÍTULO
Integração de Aplicativos de BD num Banco de Dados Setorial (BDS) e sua Implementação.
1.2 MOTIVAÇÃO
Aplicar técnicas apresentadas pelo professor em sala de aula na pratica, testando assim meu Protótipo de Aplicativo de Banco de Dados (ABD), em um sistema de Banco de dados geral, bem como integra os aplicativos em um modelo setorial.
1.1 OBJETIVO
1.1.1 OBJETIVO 1
Integrar Aplicativos de BD nos Bancos de Dados Setoriais – BDS ou Subject Databases das Empresas ATD (Sistema de Informações Georreferenciadas para a Aquisição e o Tratamento de Dados Hidrológicos) e MDD (Sistema de Informações Georreferenciadas para o Monitoramento e a Difusão de Dados Hidrológico) escolhidas como Estudo de Caso, visando a melhorar as suas eficiências setoriais e a reduzir os seus desperdícios de recursos.
1.1.2 OBJETIVO 2
Implementar a integração de Aplicativos de BD nos Bancos de Dados Setoriais - BDS ou Subject Databases das Empresas ATD e MDD, visando testar as funcionalidades de suas integrações setoriais debaixo do SGBD previamente escolhido (ORACLE 11g Spatial), e verificar a a melhoria das suas eficiências setoriais e a redução dos desperdícios de seus recursos.
3
2. PROCEDIMENTOS REALIZADOS
A integração dos aplicativos de bd teve início com a re-contextualização; a re-objetivação (redefinição do problema e da alternativa de solução escolhida para o seu setor); a re-intitulação do setor, conforme descrito a seguir.
Temática
Desenvolver um aplicativo de banco de dados para o projeto SisATMH 2 (Sistema de Aquisição, Tratamento, Monitoramento e Difusão de Dados Hidrológicos) para visualizar localização e informações das PCDs e mapas georreferenciados das áreas monitoradas pelo sistema e difundir os dados através do padrão XML.
Motivação
Participar de um projeto acadêmico no desenvolvimento de um aplicativo de banco de dados, contribuindo com a pesquisa realizada pelos professores do ITA, e adquirir conhecimento e experiência no trabalho em equipe, realizando a integração sucessiva deste aplicativo com outros aplicativos complementares formando um banco de dados setorial, corporativo e em nível de holding.
Atender à necessidade da ANA (Agência Nacional de Águas), que realiza o monitoramento hidrometeorológico das estações de coleta de dados, em visualizar os mapas de cada bacia hidrográfica, e as informações em camadas georeferenciadas, facilitando a visualização das informações de cada região sobre os mapas.
O sistema SisATMH necessita também de um modo padronizado para a difusão e o armazenamento de informações entre as diferentes áreas do sistema, bem como se comunicar com sistemas diferentes através de um protocolo definido utilizando a linguagem XML.
Para realizar este trabalho será utilizada a tecnologia de sistema de informação geográfica, que é um sistema de hardware, software, informações espaciais e procedimentos computacionais que permite e facilita a análise, gestão ou representação do espaço e dos fenômenos que nele ocorrem.
Ao participar da matéria CE-240 neste primeiro semestre de 2010, o autor desta proposta, deparou-se com a necessidade de investigar soluções para resolver problemas envolvendo técnicas de banco de dados em informações geográficas. Com isso a principal motivação para este trabalho surgiu com a necessidade de se obter um conjunto de objetos capaz de realizar buscas em dados geográficos visando à utilização de banco de dados ORACLE 11G com sua extensão GIS para a visualização e buscas por meio das posições de latitude e longitude de um rio, bacia, pcd.
Contextualização
Bancos de Dados Geográficos são bancos de dados preparados para armazenar dados sobre informações espaciais. São comumente chamados de Sistemas de Informações Geográficas (SIG). Este tipo de banco de dados tem o intuito manipular um imenso volume de informações de grande complexidade, como
mapas e imagens de satélite. Um sistema de alta tecnologia inclui vários elementos: software, hardware, pessoas, conhecimentos, bases de dados, documentações e procedimentos. A engenharia de sistemas ajuda a traduzir as necessidades de negócio num modelo de sistema que faz uso de um ou mais destes elementos.
Após avaliar a documentação do projeto SisATMH 2 foi destacado a necessidade de um aplicativo para Visualização Geográfica – VG. Este aplicativo ou ambiente propicia a visualização das informações de elementos de interesse tais como: estações convencionais ou telemétricas (pluviométricas ou fluviométricas), reservatórios e usinas hidrelétricas monitorados pela ANA e localidades.
O sistema necessita de um padrão de repositório para armazenamento de dados referentes à difusão de informações em formato XML, onde os protocolos e os serviços disponíveis são armazenados. Os dados devem ser acessíveis pelo próprio sistema, bem como sistemas externos que necessitam acessar os dados armazenados, assim torna se necessário a criação de um protocolo comum em linguagem XML para esse propósito
O núcleo de estudos hidrológicos realiza estudos técnicos na área de hidrologia visando a subsidiar as ações da ANA como os diagnósticos sobre a oferta de recursos hídricos no país e a implantação do sistema nacional de informações sobre recursos hídricos.
O ITA iniciou o projeto de integração e cooperação para modernização do monitoramento hidrológico. Para facilitar as ações na sala de situação da ANA, faz-se necessário um sistema amigável para interpretação da situação das diversas bacias monitoradas podendo, por exemplo, determinar iminência de cheias, secas ou poluição.
Efeitos Adversos
Ea1: Tempo gasto na consulta de mapas impressos.
Ea2: Dificuldade para interpretar as diversas informações existentes em cada região monitorada.
Ea3: Não existem formas de busca para as informação de interesse por Localização geográfica as PCD´s.
Ea4: Identificação através de um código de cores a situação funcional das PCD´s, apresentadas em camadas distintas;
Ea5: Histórico completo da situação funcional, a partir da seleção no mapa de uma determinada PCD;
Ea6 - Problemas de comunicação e difusão de dados entre sistemas informatizados diferentes.
5
Ea7 - Dificuldade em documentar padrões de comunicação para usuários do sistema.
Causas (Por que está errado?)
C1: Não deve gastar tanto tempo para encontrar uma determinada área de monitoramento no meio de tantos papéis e mapas do acervo.
C2: Como se trata de um sistema dinâmico, o número elevado de atualizações e novas informações da região oneram demais a realização de novos mapas.
C3: Juntar todas as informações de uma dada região e seu mapa requer um grande tempo para análise e tomada de decisões.
C4: Não existem meios para buscar as informação de interesse por localização geográfica das PCDs.
C5 - Falta de protocolos de comunicação padronizados para a difusão dos dados. C6 - Falta de um repositório centralizado de padrões de comunicações e difusão de dados.
Objetivação
Tarefa (O que, quem, quando se deseja realizar a tarefa?)
T1: Dotar o sistema SisATMH de um banco de dados capaz de propiciar a visualização de mapas, buscas e localizações geográficas de PCDs das regiões monitoradas pela ANA, e desenvolver uma área para armazenamento de padrões de comunicação e difusão de dados via XML, como funções e seus protocolos de comunicação e difusão de dados em XML até o final do primeiro semestre de 2010, realizando o desenvolvimento nas dependências do ITA.
Propósito (Para que se deseja realizar tal tarefa?)
P1: Propiciar aos usuários um sistema ágil de consulta aos mapas, informações hidrológicas e de localização das PCDs, a fim de permitir que os profissionais da sala de controle possam tomar decisões rápidas diante de situações adversas reduzindo os problemas ocorridos entre as comunicações e difusões de dados dos sistemas informatizados heterogêneos.
Alternativas de soluções possíveis ASP (Analise + Solução + Proposta)
ASP 1 - Manter a solução atual.
ASP 2 - Contratar mais profissionais para realizar as atualizações, consultas e realizar análise de dados para obter informações adequadas a serem enviadas à sala de situação.
ASP 3 - Adquirir uma solução disponível no mercado.
ASP 4 - Dotar o sistema SisATMH 2 com a visualização das informações de
interesse citadas acima, a fim de melhorar a eficiência das consultas, que propicie a documentação centralizada dos padrões de difusão de dados via XML, através do desenvolvimento de um sistema de banco de dados.
Análise de Adequabilidade, Praticabilidade e Aceitabilidade (APA)
APA 1 - Não atende a solicitação do cliente.
APA 2 - Não é uma solução aceitável nem praticável devido ao alto custo da solução, e também não obterá uma redução sensível no tempo gasto para a consulta e organização dos mapas e informações.
APA 3 - Não atende a solicitação do cliente, por não existir uma aplicação que atenda à todos os requisitos e possa ser moldado para às necessidades da ANA. APA 4 - Melhor opção para o cliente atendendo a solicitação por completo.
Alternativa de Solução Escolhida (ASE)
ASE: ASP4 – Desenvolver um aplicativo de banco de dados visando propiciar ao usuário a visualização de mapas, situação e localização das PCD’s utilizando um sistema georreferenciado propiciando a documentação centralizada dos padrões de difusão de dados via XML, como funções e seus protocolos.
7
Intitulação
Aplicativo de banco de dados setorial para Visualização Geográfica (VG).
6. Especificação de Requisitos
- Buscar uma localização geográfica de uma região hidrográfica através da seleção de uma área do mapa geral com um clique do mouse.
- Visualização das sub-bacias de uma região com os pontos onde há o monitoramento hidrológico.
- Visualizar as informações de elementos de interesse como: reservatórios, usinas, cobertura vegetal e índices pluviométricos, através de camadas
georeferenciadas, conforme a solicitação do usuário.
- Acessar informações de uma PCD através do clique do mouse sobre o mapa.
- Recurso de zoom para selecionar e ampliar áreas de interesse, facilitando as ações de monitoramento.
- Realizar buscas por meio das posições de latitude e longitude de um rio, bacia, pcd.
- Realizar buscas Selecionando elementos de Interesse: seleciona os temas com seus respectivos elementos de interesse, por meio da seleção por área e carrega a janela JVA.
- Realizar consultas personalizadas: permite consultar informações de um determinado tema e selecioná-las espacialmente por meio de uma simples seleção do nome ou código.
- Definir um protocolo de formatação de dados utilizando a linguagem XML; - Propiciar a fácil comunicação com aplicativos externos ao sistema; - Difusão de informações para outros aplicativos; e
- Criação de um repositório padronizado para o armazenamento dos dados.
2.1 INTEGRANTES
O Banco de Dados Setrorial chamado Difusão de Dados (MDD-DD), será constituído pela integração dos seguintes aplicativos de banco de dados: DWS, GDD e PDD.
Os seguintes integrantes possuem as seguintes funções conforme tabela abaixo:
Nome Sigla do
Aplicativo Função
Alexandre Bittencourt Faria VBL Normalizador
Elder VMG Suporte Técnico
José Luiz Moreira VSF Integrador Renato Tegon Forti PDD Suporte Técnico
2.2 NORMALIZAÇÃO
2.2.1. DESCRIÇÃO DA 3ª FORMA NORMAL DO ABD
Primeiro Modelo Envolvido Na Integração: Segundo Modelo Envolvido Na Integração:
Terceiro Modelo Envolvido Na Integração: Quarto Modelo Envolvido Na Integração:
9
ENTIDADES TRIGRAMACAO
CIDADE = { CID_ID , UFG_ID , CID_NOME } CID
DADO_COLETADO = { DEC_ID, ETE_ID, DEC_DATA, DEC_VALOR } DEC EQUIPAMENTO = { EQU_ID, EQU_NOME, EQU_DESCRICAO } EQU ESTACAO = { EST_ID, CID_ID, OPE_ID, EST_NOME, EST_DESCRICAO, EST_GEO } EST ESTACAO_SERVICO = { ESS_ID, EST_ID, SER_ID, ESS_NOME, ESS_DESCRICAO } ESS ESTACAO_EQUIPAMENTO = { ETE_ID, EST_ID, EQU_ID } ETE HISTORICO = { HIS_ID, SIT_ID, EST_ID, HIS_DESCRICAO, HIS_DATA_INICIO, HIS_DATA_FIM } HIS PROTOCOLO = { PRO_ID, SER_ID, PRO_NOME, PRO_DESCRICAO, PRO_MODELO } PRO OPERACAO = { OPE_ID , OPE_NOME, OPE_DESCRICAO, PRO_DESCRICAO, PRO_MODELO } OPE
SERVICO = { SER_ID, SER_NOME, SER_DESCRICAO} SER
SITUACAO = { SIT_ID, SIT_COR, SIT_DESCRICAO } SIT
UF = { UFG_ID, UFG_NOME, UFG_GEO } UFG
2.2.2 MODELO ENTIDADE RELACIONAMENTO
O modelo entidade-relacionamento (MER) final do aplicativo de banco de dados é apresentado na figura abaixo.
Figura 1 : Modelo MER do aplicativo de banco de dados setorial.
O Aplicativo CASE utilizado para a confecção do modelo do aplicativo de manco de dados foi o ERWin, da CA. A figura abaixo ilustra o modelo no ERWin.
Figura 2 : ERWin da CA, com o modelo MER setorial.
2.3.3 IMPLEMENTAÇÃO DO MODELO FÍSICO EM DDL
Tabela CIDADE
CREATE TABLE CIDADE
(
CID_ID NUMBER(38, 0) NOT NULL
, CID_NOME VARCHAR2(70 BYTE)
, UF_ID CHAR(2 BYTE)
, CONSTRAINT CIDADE_PK PRIMARY KEY
( CID_ID ) ) ;
ALTER TABLE CIDADE
ADD CONSTRAINT CIDADE_UF_FK FOREIGN KEY
( UF_ID ) REFERENCES UF ( UF_ID );
Tabela DADO_COLETADO
CREATE TABLE DADO_COLETADO
(
DEC_ID NUMBER(38, 0) NOT NULL
, ETE_ID NUMBER(38, 0)
, DEC_DATA DATE
, DEC_VALOR NUMBER
, CONSTRAINT DADO_COLETADO_PK PRIMARY KEY
( DEC_ID )
) ;
ALTER TABLE DADO_COLETADO
ADD CONSTRAINT DADO_COLETADO_EST_EQ_FK FOREIGN KEY
( ETE_ID) REFERENCES EST_EQ ( ETE_ID );
Tabela EQUIPAMENTO
CREATE TABLE EQUIPAMENTO
(
EQU_ID NUMBER(38, 0) NOT NULL
, EQU_NOME VARCHAR2(60 BYTE)
, EQU_DESCRICAO VARCHAR2(256 BYTE)
11
, CONSTRAINT EQUIPAMENTO_PK PRIMARY KEY
( EQU_ID )
) ;
Tabela EST_EQ
CREATE TABLE EST_EQ
(
ETE_ID NUMBER(38, 0) NOT NULL
, EST_ID NUMBER(38, 0)
, EQU_ID NUMBER(38, 0)
, CONSTRAINT EST_EQ_PK PRIMARY KEY
( ETE_ID )
) ;
ALTER TABLE EST_EQ
ADD CONSTRAINT EST_EQ_EQUIPAMENTO_FK FOREIGN KEY
( EQU_ID ) REFERENCES EQUIPAMENTO ( EQU_ID );
ALTER TABLE EST_EQ
ADD CONSTRAINT EST_EQ_ESTACAO_FK FOREIGN KEY
( EST_ID ) REFERENCES ESTACAO ( EST_ID );
Tabela EST_SERV
CREATE TABLE EST_SERV
(
ESS_ID NUMBER(38, 0) NOT NULL
, ESS_NOME VARCHAR2(60 BYTE)
, ESS_DESCRICAO VARCHAR2(256 BYTE)
, EST_ID NUMBER(38, 0)
, SER_ID NUMBER(38, 0)
, CONSTRAINT EST_SERV_PK PRIMARY KEY
( ESS_ID ) );
ALTER TABLE EST_SERV
ADD CONSTRAINT EST_SERV_ESTACAO_FK FOREIGN KEY
( EST_ID) REFERENCES ESTACAO ( EST_ID );
ALTER TABLE EST_SERV
ADD CONSTRAINT EST_SERV_SERVICO_FK FOREIGN KEY
( SER_ID) REFERENCES SERVICO ( SER_ID );
Tabela ESTACAO
CREATE TABLE ESTACAO
(
EST_ID NUMBER(38, 0) NOT NULL
, EST_DT_INSTALACAO DATE
, EST_LOCALIZACAO MDSYS.SDO_GEOMETRY
, CID_ID NUMBER(38, 0)
, OPE_ID NUMBER(38, 0)
, EST_ALT NUMBER
, CONSTRAINT ESTACAO_PK PRIMARY KEY
( EST_ID )
);
ALTER TABLE ESTACAO
ADD CONSTRAINT ESTACAO_CIDADE_FK FOREIGN KEY
( CID_ID ) REFERENCES CIDADE ( CID_ID );
ALTER TABLE ESTACAO
ADD CONSTRAINT ESTACAO_OPERACAO_FK FOREIGN KEY
( OPE_ID ) REFERENCES OPERACAO ( OPE_ID );
CREATE INDEX ESTACAO_SPATIAL_IDX ON ESTACAO (EST_LOCALIZACAO) INDEXTYPE IS
MDSYS.SPATIAL_INDEX
PARAMETERS('SDO_INDX_DIMS=2,LAYER_GTYPE="POINT"');
CREATE UNIQUE INDEX PCD_PK ON ESTACAO (EST_ID ASC) ;
Tabela HISTORICO
CREATE TABLE HISTORICO
(
, EST_ID NUMBER(38, 0) NOT NULL
, SIT_ID NUMBER(38, 0) NOT NULL
, HIS_DATA_INI DATE NOT NULL
, HIS_DATA_FIM DATE
, HIS_OBS VARCHAR2(200 BYTE)
, CONSTRAINT HISTORICO_PK PRIMARY KEY
( HIS_ID )
);
ALTER TABLE HISTORICO
ADD CONSTRAINT HISTORICO_UNIQUE_REG UNIQUE
( EST_ID , SIT_ID , HIS_DATA_INI );
ALTER TABLE HISTORICO
ADD CONSTRAINT HISTORICO_ESTACAO_FK FOREIGN KEY
( EST_ID ) REFERENCES ESTACAO ( EST_ID );
ALTER TABLE HISTORICO
ADD CONSTRAINT HISTORICO_SITUACAO_FK FOREIGN KEY
( SIT_ID ) REFERENCES SITUACAO ( SIT_ID );
Tabela OPERACAO
CREATE TABLE OPERACAO
(
OPE_ID NUMBER(38, 0) NOT NULL
, OPE_NOME VARCHAR2(60 BYTE)
, OPE_DESCRICAO VARCHAR2(256 BYTE)
, CONSTRAINT OPERACAO_PK PRIMARY KEY
( OPE_ID )
);
Tabela PROTOCOLO
CREATE TABLE PROTOCOLO
(
PRO_ID NUMBER(38, 0) NOT NULL
, PRO_NOME VARCHAR2(60 BYTE)
, PRO_DESCRICAO VARCHAR2(256 BYTE)
, PRO_MODELO VARCHAR2(256 BYTE)
, SER_ID NUMBER(38, 0)
, CONSTRAINT PROTOCOLO_PK PRIMARY KEY
( PRO_ID )
) ;
ALTER TABLE PROTOCOLO
ADD CONSTRAINT PROTOCOLO_SERVICO_FK FOREIGN KEY
( SER_ID ) REFERENCES SERVICO ( SER_ID );
Tabela SERVICO
CREATE TABLE SERVICO
(
SER_ID NUMBER(38, 0) NOT NULL
, SER_NOME VARCHAR2(60 BYTE)
, SER_DESCRICAO VARCHAR2(256 BYTE)
, CONSTRAINT SERVICO_PK PRIMARY KEY
( SER_ID )
) ;
Tabela SITUACAO
CREATE TABLE SITUACAO
(
SIT_ID NUMBER(38, 0) NOT NULL
, SIT_DESCRICAO VARCHAR2(20 BYTE) NOT NULL
, SIT_COR VARCHAR2(10 BYTE)
, CONSTRAINT SITUACAO_PK PRIMARY KEY
( SIT_ID )
) ;
Tabela UF
CREATE TABLE UF
(
13
, UF_NOME VARCHAR2(60 BYTE)
, CONSTRAINT UF_PK PRIMARY KEY
( UF_ID )
) ;
2.3.4 IMPLEMENTAÇÃO DA MASSA DE DADOS EM DML
******** tabela UF
insert into UF values('AC','Acre');
insert into UF values('AL','Alagoas');
insert into UF values('AM','Amazonas');
insert into UF values('AP','Amapa');
insert into UF values('BA','Bahia');
insert into UF values('CE','Ceara');
insert into UF values('DF','Distrito Federal');
insert into UF values('ES','Espirito Santo');
insert into UF values('GO','Goias');
insert into UF values('MA','Maranhao');
insert into UF values('MG','Minas Gerais');
insert into UF values('MS','Mato Grosso do Sul');
insert into UF values('MT','Mato Grosso');
insert into UF values('PA','Para');
insert into UF values('PB','Paraiba');
insert into UF values('PE','Pernambuco');
insert into UF values('PI','Piaui');
insert into UF values('PR','Parana');
insert into UF values('RJ','Rio de Janeiro');
insert into UF values('RN','Rio Grande do Norte');
insert into UF values('RO','Rondonia');
insert into UF values('RR','Roraima');
insert into UF values('RS','Rio Grande do Sul');
insert into UF values('SC','Santa Catarina');
insert into UF values('SE','Sergipe');
insert into UF values('SP','Sao Paulo');
insert into UF values('TO','Tocantins');
***** tabela CIDADE
INSERT INTO CIDADE VALUES (1,'Seringal Fortaleza','AM');
INSERT INTO CIDADE VALUES (2,'São Gabriel da Cachoeira','AM');
INSERT INTO CIDADE VALUES (3,'Humaitá','AM'); ***** tabela SITUACAO
INSERT INTO SITUACAO VALUES (1,'Operacional','Verde');
INSERT INTO SITUACAO VALUES (2,'Inoperante','Vermelho');
INSERT INTO SITUACAO VALUES (3,'Manutenção','Amarelo'); ****** tabela OPERACAO
insert into OPERACAO values(1,'pluviometrica','estacao do tipo pluviometrica');
insert into OPERACAO values(2,'fluviometrica','estacao do tipo fluviometrica'); ****** tabela ESTACAO
insert into
ESTACAO(est_id,est_dt_instalacao,est_localizacao,cid_id,ope_id,est_alt) values
(3200,to_date('2009-03-01','yyyy-mm-dd'),
MDSYS.SDO_GEOMETRY( 2001, 8307, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-66.93,-7.68) ),
1,1,150);
insert into
ESTACAO(est_id,est_dt_instalacao,est_localizacao,cid_id,ope_id,est_alt) values
(3400,to_date('2010-02-02','yyyy-mm-dd'),
MDSYS.SDO_GEOMETRY( 2001, 8307, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-67.08,-0.13) ),
2,1,61);
insert into
ESTACAO(est_id,est_dt_instalacao,est_localizacao,cid_id,ope_id,est_alt) values
(3600,to_date('2009-03-01','yyyy-mm-dd'),
MDSYS.SDO_GEOMETRY( 2001, 8307, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-63.02,-7.5) ),
3,2,61);
************ tabela HISTORICO
HISTORICO (his_id, est_id, sit_id, his_data_ini, his_data_fim, his_obs)
values ( 1, 3200, 2,
to_date('2009-10-10','yyyy-mm-dd'),
to_date('2009-10-15','yyyy-mm-dd'),
'sem TX de dados, aguardando visita');
insert into
HISTORICO (his_id, est_id, sit_id, his_data_ini, his_data_fim, his_obs)
values ( 2, 3200, 3,
to_date('2009-10-16','yyyy-mm-dd'),
to_date('2009-10-17','yyyy-mm-dd'),
'Troca de bateria');
insert into
HISTORICO (his_id, est_id, sit_id, his_data_ini, his_data_fim, his_obs)
values ( 3, 3200, 1,
to_date('2009-10-16','yyyy-mm-dd'), null,
'TX normal');
*********** tabela SERVICO
INSERT INTO SERVICO(ser_id, ser_nome, ser_descricao) VALUES
(1,'hidrológicas','Recuperar informações hidrológicas');
INSERT INTO SERVICO(ser_id, ser_nome, ser_descricao) VALUES
(2,'PDCs','Recuperar informações de PDCs');
INSERT INTO SERVICO(ser_id, ser_nome, ser_descricao) VALUES
(3,'Controle','Recuperar informações de Controle'); ************* tabela EQUIPAMENTO
******* tabela PROTOCOLO
INSERT INTO PROTOCOLO(pro_id, pro_nome, pro_modelo, ser_id) VALUES
(1,'Protocolo XML de difusão de dados hidrológicos.', 'prot_hidro.xml',1);
INSERT INTO PROTOCOLO(pro_id, pro_nome, pro_modelo, ser_id) VALUES
(2,'Protocolo XML de difusão de dados dps PDCs.', 'prot_pdc.xml',2);
INSERT INTO PROTOCOLO(pro_id, pro_nome, pro_modelo, ser_id) VALUES
(3,'Protocolo XML de difusão de dados de controle.', 'prot_ctrl.xml',3); ****** tabela EQUIPAMENTO
insert into EQUIPAMENTO (equ_id, equ_nome, equ_descricao, equ_unidade)
values(1,'Pluviometro','Precipitação','mm');
insert into EQUIPAMENTO (equ_id, equ_nome, equ_descricao, equ_unidade)
values(2,'Barometro','Pressão Atmosférica','mB');
insert into EQUIPAMENTO (equ_id, equ_nome, equ_descricao, equ_unidade)
values(3,'Bateria','Alimentação da PCD','volts'); ******* tabela EST_EQ
insert into EST_EQ (ete_id, est_id, equ_id) values(1,3200,1);
insert into EST_EQ (ete_id, est_id, equ_id) values(2,3200,2);
insert into EST_EQ (ete_id, est_id, equ_id) values(3,3200,3);
insert into EST_EQ (ete_id, est_id, equ_id) values(4,3400,1);
insert into EST_EQ (ete_id, est_id, equ_id) values(5,3400,2);
insert into EST_EQ (ete_id, est_id, equ_id) values(6,3400,3);
insert into EST_EQ (ete_id, est_id, equ_id) values(7,3600,2);
insert into EST_EQ (ete_id, est_id, equ_id) values(8,3600,3); ******** tabela DADO_COLETADO
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(1, 1, to_date('2010-05-27','yyyy-mm-dd'),5);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(2,2, to_date('2010-05-27','yyyy-mm-dd'),900);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(3, 3, to_date('2010-05-27','yyyy-mm-dd'),12);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(4, 4, to_date('2010-05-27','yyyy-mm-dd'),10);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(5,5, to_date('2010-05-27','yyyy-mm-dd'),500);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
15
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(7, 7, to_date('2010-05-27','yyyy-mm-dd'),900);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(8,8, to_date('2010-05-27','yyyy-mm-dd'),12);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(9, 1, to_date('2010-05-28','yyyy-mm-dd'),8);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(10,2, to_date('2010-05-28','yyyy-mm-dd'),950);
insert into DADO_COLETADO (dec_id, ete_id, data, valor)
values(11, 3, to_date('2010-05-28','yyyy-mm-dd'),12); ****** tabela EST_SERV
insert into EST_SERV ( ess_id, est_id, ser_id)
values(1,3200,1);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(2,3200,2);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(3,3200,3);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(4,3400,1);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(5,3400,2);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(6,3400,3);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(7,3600,1);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(8,3600,2);
insert into EST_SERV ( ess_id, est_id, ser_id)
values(9,3600,3);
2.3.5 DICIONARIZAÇÃO
Esta seção ajuda a permitir a organização, padronização, documentação e manter atualizados os quatro (04) componentes do Sistema de Dicionário de Dados do Banco de Dados (BD) Setorial Difusão de Dados (MDD-DD), evitando inconsistências, duplicidades, homônimos ou quaisquer outras anomalias e discrepâncias, utilizando a Técnica de Trigramação. Um Sistema de Dicionário de Dados pode ser considerado como um BD da Função de Administração dos Recursos de Informação. O Sistema de Dicionário de Dados, descrito a seguir, possuI quatro (4) componentes: um Dicionário de Dados (DD), um Diretório de Dados, um Dicionário de Recursos de Dados e um Dicionário de Metadados.
2.3.5.1 DICIONÁRIO DE DADOS
Correspondem à descrição de Entidades, Relacionamentos, Atributos e objetos associados.
A seguir são apresentadas as características das entidades, relacionamentos e atributos, contemplando nome, conteúdo, estrutura, integridade e segurança.
ENTIDADE Nome
CIDADE DADO_COLETADO EQUIPAMENTO ESTACAO ESTACAO SERVICO EST_EQ HISTORICO PROTOCOLO OPERACAO SERVICO SITUACAO UF
Atributos da Entidade “CIDADE”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
cid_id Identificador da tabela CIDADE
Integer Sim Não
ufg_id Chave estrangeira proveniente da tabela UF
Integer Não Sim
cid_nome Nome da cidade Varchar(60) Não Não
Atributos da Entidade “DADO_COLETADO”
Nome Definição Tipo de Dado Primary Key Foreign
Key
dec_id Identificador da tabela DADO_COLETADO
Integer Sim Não
ete_id Chave estrangeira proveniente da tabela EST_EQ
Integer Não Sim
dec_data Especificação da data de coleta
Date Não Não
dec_valor Especificação do valor do dado
17
Atributos da Entidade “EQUIPAMENTO”
Nome Definição Tipo de Dado Primary Key Foreign
Key
equ_id Identificador da tabela
EQUIPAMENTO
Integer Sim Não
equ_nome Nome do
equipamento
Varchar(60) Não Não equ_descricao Descrição do
equipamento
Varchar(256) Não Não
Atributos da Entidade “ESTACAO”
Nome Definição Tipo de Dado Primary Key Foreign
Key
est_id Identificador da tabela ESTACAO
Integer Sim Não
est_nome Nome da Estação Varchar(60) Não Sim est_descricao Descrição da
Estação
Varchar(256) Não Não est_geo Localização
geográfica da Estação
Float Não Não
cid_id Chave estrangeira proveniente da tabela CIDADE
Integer Não Sim
ope_id Chave estrangeira proveniente da tabela OPERACAO
Integer Não Sim
Atributos da Entidade “EST_SERV”
Nome Definição Tipo de Dado Primary
Key Foreign Key ess_id Identificador da tabela ESTACAO_SERVICO
est_id Chave estrangeira proveniente da tabela ESTACAO
Integer Não Sim
ser_id Chave estrangeira proveniente da tabela SERVICO
Integer Não Sim
ess_nome Nome do serviço fornecido pela estação
Varchar(60) Não Não
ess_descricao Descrição do serviço fornecido pela estação
Varchar(256) Não Não
Atributos da Entidade “EST_EQ”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
ete_id Identificador da tabela EST_EQ
Integer Sim Não est_id Chave estrangeira
proveniente da tabela ESTACAO
Integer Não Sim
equ_id Chave estrangeira proveniente da tabela EQUIPAMENTO
Integer Não Sim
Atributos da Entidade “HISTORICO”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
his_id Identificador da tabela Histórico
Integer Sim Não his_descricao Descrição do
histórico
Varchar(256) Não Não sit_id Chave estrangeira
proveniente da
19 tabela SITUACAO est_id Chave estrangeira
proveniente da tabela ESTACAO
Integer Não Sim
his_data_inicio Data inicial do dado hostórico
Date Não Não
his_data_fim Data final do dado hostórico
Date Não Não
Atributos da Entidade “PROTOCOLO”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
pro_id Identificador da tabela PROTOCOLO
Integer Sim Não ser_id Chave estrangeira
proveniente da tabela SERVICO
Integer Não Sim
pro_nome Especificação do nome do tipo do Protocolo
Varchar(60) Não Não
pro_descricao Descrição do protocolo
Varchar(256) Não Não pro_modelo Especificação do
modelo do Protocolo
Varchar(256) Não Não
Atributos da Entidade “OPERACAO”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
ope_id Identificador da tabela OPERACAO
Integer Sim Não ope_nome Nome da Operação Varchar(60) Não Não ope_descricao Descrição da
Operação
Varchar(256) Não Não
Atributos da Entidade “SERVICO”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
tabela SERVICO ser_nome Especificação do
nome do serviço
Varchar(60) Não Não ser_descricao Descrição do serviço Varchar(256) Não Não
Atributos da Entidade “SITUACAO”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
sit_id Identificador da tabela SITUACAO
Integer Sim Não sit_cor Especificação do
número atribuído a uma situação
Integer Não Não
sit_descricao Descrição do serviço Varchar(256) Não Não
Atributos da Entidade “UF”
Nome Definição Tipo de Dado Primary
Key
Foreign Key
ufg_id Identificador da tabela UF
Integer Sim Não ufg_nome Nome do Estado Varchar(60) Não Não ufg_geo Dado geográfico da
União Federativa
Float Não Não
2.3.5.2 DIRETÓRIO DE DADOS
Corresponde à Descrição de Processos Associados às Entidades.
Relacionamento
Pai Filho Definição
ESTACAO SERVICO Uma Estação pode
possuir muitos Serviços assim como vários Serviços podem referir-se a uma única Estação ESTACAO EQUIPAMENTO Uma Estação pode ser
composta por um ou mais Equipamentos, porém um equipamento
poderá compor apenas uma Estação
21
OPERACAO ESTACAO Uma Operação pode ser feita por várias estações
assim como muitas Estações podem executar uma mesma
operação
UF CIDADE Uma UF pode ter váiras
Cidades mas uma Cidade só pode estar em
uma única UF
CIDADE ESTACAO Uma Cidade pode ter
muitas Estações mas uma Estação só pode estar em uma Cidade SERVICO PROTOCOLO Um serviço pode usar um
ou mais protocolos e muitos protocolos podem
ser usados pelo mesmo serviço
ESTACAO DADO_COLETADO Uma Estação pode conter um ou mais Dados Coletados, mas um Dado só pode ser coletado por
uma Estação
ESTACAO SITUACAO Uma Estação mantém
histórico de uma ou mais Situações mas uma Situação pode estar contida no histórico de
apenas uma Estação
EQUIPAMENTO EST_EQ Uma instância de
Equipamento refere-se a uma composição
ESTACAO EST_EQ Uma instância de
Estação refere-se a uma ou mais composições DADO_COLETADO EST_EQ Uma instância de Dado
Coletado refere-se a uma única coleta SERVICO EST_SERV Uma instância de Serviço
refere-se a uma ou mais Estações
Estação refere-se a um ou mais Serviços
ESTACAO HISTÓRICO Uma instância de
Estação refere-se a um ou mais Históricos
SITUACAO HISTÓRICO Uma instância de
Situação refere-se a um único Histórico
2.3.5.3 USUÁRIOS:
• Procedimentos: Acesso às Entidades;
• Programas: Acesso por meio dos procedimentos à Entidades; • Peopleware: Usuário dos Programas.
Tipos de entidades que devem relacionar dados ou informações com usuários:
• Formulários, documentos ou fontes de entrada: Captar dados ou informações;
• Transações ou documentos de processamento: Associar a ocorrência de um único dado a um ou mais eventos;
• Relatórios, documentos de saída e/ou informações na tela de computador: Agregar dados ou informações.
2.3.5.4 USUÁRIOS COMUNS
• Procedimentos de visualização de dados;
• Procedimentos de preenchimento apenas às entidades acessíveis pela Internet.
2.3.5.5 DBA
• Procedimentos de Criação, Configuração, Administração e Manipulação de Entidades e seus atributos;
• Responsabilidades de Administração e Segurança do SGBD.
2.3.5.6 DIRETÓRIO DE RECURSOS
Corresponde à Descrição Física das Entidades e de seus Ambientes Associados.
23 Visualização Geográfica (VG) VMG Visualização de Mapas Georreferenciados em Camadas VBL Visualização de Buscas e Localizações Geográficas VSF Visualização da Situação Funcional das PCD’s PDD Padronização da Difusão de Dados via XML
DIG Difusão de Informações Georreferenciadas (ArcGis) ESPECIFICAÇÕES DE ÁREA Nome Definição SGBD Oracle 11g Spatial MODELAGEM BD ERWIN v7
Localização do Banco seti.fcmf.ita.br
Sistema Operacional Windows 2003 SERVER
Memória RAM 2 GB
IP SERVIDOR 161.24.9.5
2.3.5.7 DICIONÁRIO DE METADADOS
Corresponde à Descrição Conceitual das Entidades num Nível Alto de Abstração.
Figura 3 – Dicionário de metadados
2.3.6 CONSULTAS OPERACIONAIS E TÁTICAS ESTACAO
ESTACAO ESTACAO ESTACAO
est_id: INTEGER Number est_nome: VARCHAR(60) String est_descricao: VARCHAR(256) String est_geo: FLOAT Gis cid_id: INTEGER Number (FK) ope_id: INTEGER Number (FK) sit_situacao: INTEGER Number (FK)
CIDADE CIDADE CIDADE CIDADE
cid_id: INTEGER Number ufg_id: INTEG ER Number (FK) cid_nome: VARCHAR(60) String
SERVICO SERVICO SERVICO SERVICO
ser_id: INTEGER Number ser_nome: VARCHAR(60) String ser_descricao: VARCHAR(256) String
PROTOCOLO PROTOCOLO PROTOCOLO PROTOCOLO
pro_id: INTEGER Number ser_id: INTEGER Number (FK) pro_nome: VARCHAR(60) String pro_descricao: VARCHAR(256) String pro_modelo: VARCHAR(256) String
ESTACAO_SERVICO ESTACAO_SERVICOESTACAO_SERVICO ESTACAO_SERVICO
est_id: INTEGER Number (FK) ser_id: INTEGER Number (FK) ess_nome: VARCHAR(60) String ess_descricao: VARCHAR(256) String
UF UFUF UF
ufg_id: INTEGER Number ufg_nome: VARCHAR(60) String ufg_geo: FLOAT Gis
HISTORICO HISTORICO HISTORICO HISTORICO
his_id: INTEGER Number his_descricao: VARCHAR(256) String est_id: INTEGER Number (FK) his_situacao: INTEGER Number his_data_inicio: DATE Datetime his_data_fim: DATE Datetime
OPERACAO OPERACAO OPERACAO OPERACAO
ope_id: INTEGER Number ope_nome: VARCHAR(60) String ope_descricao: VARCHAR(256) String
DADO_COLETADO DADO_COLETADODADO_COLETADO DADO_COLETADO
dec_id: INTEGER Number est_id: INTEGER Number (FK) ete_id: INTEGER Number (FK)
EST_EQ EST_EQ EST_EQ EST_EQ
ete_id: INTEGER Number ope_id: INTEGER Number (FK) equ_id: INTEGER Number (FK)
EQUIPAMENTO EQUIPAMENTO EQUIPAMENTO EQUIPAMENTO
equ_id: INTEGER Number equ_nome: VARCHAR(60) String equ_descricao: VARCHAR(256) String
SITUACAO SITUACAO SITUACAO SITUACAO
sit_situacao: INTEGER Number sit_cor: INTEGER Number
2.3.6.1 CONSULTA 1
Figura 4 – Resultado da primeira consulta no SQLDeveloper
2.3.6.2 CONSULTA 2
Consulta 1
Linguagem
Natural Listar o ID e a data de instalação das estações.
SQL Select est_id, est_dt_instalacao from ESTACAO;
Consulta 2
Linguagem Natural
Listar o ID e a data de instalação da estação instalada em Seringal Fortaleza
SQL Select e.est_id, e.est_dt_instalacao from ESTACAO e, CIDADE c
25 Figura 5 – Resultado da segunda consulta no SQLDeveloper
2.3.6.3 CONSULTA 3
and c.cid_id = e.cid_id;
Consulta 3
Linguagem
Natural Listar o período em que a estação de Seringal Fortaleza
esteve inoperante.
SQL
Select h.his_data_ini, h.his_data_fim
from ESTACAO e, CIDADE c, SITUACAO s, HISTORICO h where (c.cid_nome = 'Seringal Fortaleza'
and c.cid_id = e.cid_id)
and (s.sit_descricao = 'Inoperante') and (s.sit_id = h.sit_id
and e.est_id = h.est_id);
Figura 6 – Resultado da terceira consulta no SQLDeveloper
2.3.6.4 CONSULTA 4 (GEORREFERENCIADA)
Consulta 4
Linguagem Natural
Listar o ID e o nome da cidade das estações instaladas no perímetro: Longitude entre 60º W e 70º W e Latitude entre 2º S e 12º S.
SQL
SELECT e.est_id, c.cid_nome FROM ESTACAO e, CIDADE c WHERE sdo_filter( e.est_localizacao, SDO_geometry( 2003, 8307, NULL, SDO_elem_info_array(1,1003,3), SDO_ordinate_array(-70,-12, -60,-2) --retangulo ) ) = 'TRUE'
27 Figura 7 – Resultado da quarta consulta no SQLDeveloper
2.3.6.4 CONSULTA 5
Consulta 5
Linguagem
Natural Listar o ID e o nome das operações das estações.
SQL Select e.est_id, o.ope_nome
from ESTACAO e, OPERACAO o where e.ope_id = o.ope_id;
Figura 8 – Resultado da quinta consulta no SQLDeveloper
2.3.6.4 CONSULTA 6
Consulta 6
Linguagem
Natural Listar o Estado em que estão instaladas as estações
Pluviométricas.
SQL
Select distinct uf.uf_nome
from ESTACAO e, OPERACAO o, UF uf, CIDADE c where o.ope_nome = 'pluviometrica'
and o.ope_id = e.ope_id and e.cid_id = c.cid_id and c.uf_id = uf.uf_id;
29 Figura 9 – Resultado da sexta consulta no SQLDeveloper
2.3.6.4 CONSULTA 7
Consulta 7
Linguagem
Natural Listar o ID e o nome do serviço disponível para as estações
Pluviométricas.
SQL
Select e.est_id, ser.ser_nome, ser.ser_descricao from ESTACAO e, OPERACAO o, EST_SERV ess, SERVICO ser
where o.ope_nome = 'pluviometrica' and o.ope_id = e.ope_id
and e.est_id = ess.est_id and ess.ser_id = ser.ser_id order by 1;
Figura 10 – Resultado da sétima consulta no SQLDeveloper
2.3.6.4 CONSULTA 8 (GEORREFERENCIADA)
Consulta 8
Linguagem Natural
Listar o ID e os equipamentos das estações instaladas no perímetro: Longitude entre 60º W e 70º W e Latitude entre 2º S e 12º S.
SQL
SELECT e.est_id, equ.equ_nome
FROM ESTACAO e, EST_EQ ete, EQUIPAMENTO equ WHERE sdo_filter( e.est_localizacao, SDO_geometry( 2003, 8307, NULL, SDO_elem_info_array(1,1003,3), SDO_ordinate_array(-70,-12, -60,-2) --retangulo ) ) = 'TRUE'
and e.est_id = ete.est_id and ete.equ_id = equ.equ_id order by 1;
31 Figura 11 – Resultado da oitava consulta no SQLDeveloper
6. CONCLUSÃO
A ListEx5 teve como Objetivo Integrar Aplicativos de BD nos Bancos de Dados Setoriais – BDS ou Subject Databases das Empresas ATD (Sistema de Informações Georreferenciadas para a Aquisição e o Tratamento de Dados Hidrológicos) e MDD (Sistema de Informações Georreferenciadas para o Monitoramento e a Difusão de Dados Hidrológico) escolhidas como Estudo de Caso, visando a melhorar as suas eficiências setoriais e a reduzir os seus desperdícios de recursos; e implementar a integração de Aplicativos de BD nos Bancos de Dados Setoriais - BDS ou Subject Databases das Empresas ATD e MDD, visando testar as funcionalidades de suas integrações setoriais debaixo do SGBD previamente escolhido (ORACLE 11g Spatial), e verificar a a melhoria das suas eficiências setoriais e a redução dos desperdícios de seus recursos.
Os processos de integração dos 5(cinco) aplicativos de BD e de implementação do banco de dados setorial no ORACLE 11g Spatial foram executados com sucesso. Todas as redundâncias de informações foram eliminadas, evitando qualquer tipo de anomalia na base de dados.
O banco de dados setorial resultante deste trabalho será essencial para os próximos passos de integração e implementação do banco de dados Corporativo e Holding.