UERJ – Universidade do Estado do Rio de Janeiro Mestrado em Engenharia da Computação – Geomática Docente: Oscar Luiz Monteiro de Farias Disciplina: Banco de Dados Alunos: Elisa Santos de Oliveira Teixeira ME1010112 Najara Proença Marques ME 1010119 Wilson Messias dos Santos ME 1010123 TRABALHO DE BANCO DE DADOS – POSTGRES MINI-MUNDO: BD PARA GERENCIAMENTO DE UNIDADES DE CONSERVAÇÃO Rio de Janeiro, 22 de junho de 2010. TRABALHO DE BANCO DE DADOS – POSTGRES MINI-MUNDO: BD PARA GERENCIAMENTO DE UNIDADES DE CONSERVAÇÃO 1 – OBJETIVO Modelagem de um banco de dados para gerenciamento de unidades de conservação estaduais localizadas no Estado do Rio de Janeiro, visando à atualização de relatórios anuais sobre as pesquisas nas mesmas, o andamento de realização dos Planos de Manejos, funcionários que trabalham nas unidades (cargo, função, especialidade), administração de recursos entre outros. 2 – CONTEXTUALIZAÇÃO Geralmente toda descrição é uma seleção dos atributos que a caracterizam e, portanto, são escolhidos fatores que realmente determinam a existência do objeto analisado. Através da observação da realidade podemos extrair fatos que nos levam a conhecer a necessidade de forma mais organizada, ou seja, é possível construir o que chamamos de mini-mundo. No mini-mundo, existem fatos que, quando observados e modelados, dizem algo a respeito do funcionamento esperado do sistema. Para que possamos retratar estes fatos e que os mesmos possam nos levar a futuras decisões e ações, é necessário analisá-los e registrá-los. Para que este registro seja organizado da melhor forma possível, é feito, através da constituição do mini-mundo, a modelagem conceitual, ou seja, a determinação dos objetos a serem mapeados e quais suas principais características (atributos). A próxima etapa é a modelagem lógica, onde são determinadas, a partir do modelo conceitual, as tabelas que serão confeccionadas e preenchidas pelo registros, além do tipo de dados dos mesmos. E, para finalizar o processo de registro, temos a modelagem física, que corresponde a implementação dos dados em um espaço físico de fato, que no caso, corresponde a um programa no computador. O sucesso ou o fracasso dos registros é determinado pela qualidade dos três níveis de modelagem feito pelo autor ou autores. Portanto, é de suma importância o total empenho nas três etapas. No presente trabalho foi projetado um Bando de Dados (BD) destinado a Gerência e Monitoramento das Unidades de Conservação de Proteção Integral do Estado do Rio de Janeiro teve a produção da análise de requisitos. O objetivo da Modelagem Conceitual é descrever as informações contidas no mini-mundo, as quais deverão ser armazenadas em um Banco de Dados. O Modelo Lógico tem seu início a partir do Modelo Conceitual, levando em consideração uma das abordagens: Hierárquica, Rede, Orientado a Objetos e Entidade Relacional (ER). A utilizada no Projeto do banco de dados das unidades de conservação foi Entidade Relacional (ER). A abordagem de Entidade Relacional é a mais flexível e adequada ao solucionar os vários problemas que se colocam no nível da concepção e implementação da base de dados. A estrutura fundamental é a relação (tabela). Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar. Cada instância (linha) é chamada de tupla (registro). O Modelo Físico irá partir do Modelo Lógico e descreve as estruturas físicas do armazenamento de dados, tais como: tamanho de campos, índices, tipo de preenchimento destes campos, nomenclaturas, etc. Projetadas de acordo com os requisitos de processamento e uso mais econômico dos recursos computacionais, este modelo detalha o estudo dos métodos de acesso do BD, para elaboração dos índices de cada informação colocada nos Modelos Conceitual e Lógico. No Projeto do BD para as Unidades de Conservação, tivemos a produção dos atributos das entidades que especificam quais variáveis serão usadas, os índices, os tipos, tamanhos de cada campo, etc. Todo o projeto de um BD necessita de um ponto central. A modelagem de um sistema através da abordagem Entidade Relacional (ER) representa este ponto central. O objetivo da Modelagem de Dados é transmitir e apresentar uma representação única, não redundante e resumida, dos dados de uma aplicação. Em projetos conceituais de BD o modelo ER é o mais utilizado. O projeto de um BD é uma atividade complexa que inclui planejamento, especificações e o desenvolvimento de vários componentes. Portanto, é aconselhável seguir a sequência destas atividades em uma ordem que possa resultar em ganhos de produtividade e confiabilidade dos BD's desenvolvidos, eliminando-se sensivelmente as falhas de sistemas após a sua implantação. No Projeto do banco de dados destinado as Unidades de Conservação, a nossa preocupação é ordenar e reunir uma grande quantidade de informações para serem armazenadas em diferentes tabelas. Esta grande quantidade de dados, se não controladas e armazenadas adequadamente, pode ocasionar lentidão no sistema e até o desaparecimento de informações. Pensando nisso convencionou-se a restringir o mini-mundo somente as Unidades de Proteção Integral (UPI), geridas pelo Instituto Estadual do Ambiente (INEA). 3 – DESCRIÇÃO DO MINI-MUNDO "Sistema de Gerenciamento e Monitoramento das Unidades de Conservação de Proteção Integral do Estado do Rio de Janeiro”. Fomos contratados para trabalhar em uma Unidade de Conservação na Ilha Grande, o Parque Estadual da Ilha Grande (PEIG), quando chegamos no local verificamos que as informações da UC não estavam cadastradas em nenhum local elas estavam em fichas de papel perdidas por toda a área administrativa da UC. Resolvemos então criar um banco de dados para a UC e tentar resolver os problemas de organização do local. Este sistema tem por objetivo monitorar e gerenciar as unidades de proteção integral visando reunir e armazenar de forma uma rápida, eficiente e segura os dados da UC. Todas as informações serão transmitidas das sedes de unidades para o servidor central localizado na sede do PEIG, aonde as informações serão pós-processadas e reenviadas às unidades referentes. Como havíamos feito a aula de banco de dados do Professor Oscar resolvemos criar um banco de dados que englobasse 10(dez) das UC de Proteção Integral (mesmo tipo daquela que estávamos trabalhando) do Estado do Rio de Janeiro. Para iniciar a criação do nosso banco de dados verificamos as Entidades que deveriam ser levadas em consideração, e posteriormente cada atributo correspondente a cada entidade. Inicialmente foram levantados todos os funcionários relacionados a UC, com suas descrições de cargo, data de início do contrato, nome, CPF, formação. Consideramos também as características principais da UC, como uso do solo, status de conservação, ano de criação, cadastro no SNUC (Sistema Nacional de Unidade de Conservação), regularização fundiária, possui demarcação física de seus limites, possui Plano de Manejo e área territorial (que seria um atributo composto por município e coordenadas), nome da UC e código da UC. Serão verificados também no banco de dados todas as ocorrências da UC, como tipo da ocorrência, data da ocorrência, ações relevantes, localização da ocorrência, nome da ocorrência e código da ocorrência. Todos os projetos em desenvolvimento nas UC também estarão em nosso banco de dados, onde serão considerados o nome do projeto, o código do projeto, área de atuação, a Instituição de vinculação, ano de início do projeto e autor responsável. Foram considerados ainda para o banco de dados a infra-estrutura da UC, com os atributos Sede, estradas, patrimônios, energia elétrica, esgoto e água. E a entidade Meio Físico da UC com os atributos nome do meio físico, localização do meio físico, código do meio físico e grupo do meio físico. 4 – SOFTWARE ESCOLHIDO: POSTGRESQL Abrindo o PostgreSQL Depois de instalado o programa pode ser aberto, mas será necessária a definição do nome do usuário e a senha. Assim que a senha é digitada, o servidor é liberado e daí é possível trabalhar dentro do programa. Para se criar um novo banco de dados clica com o botão direito em Banco de Dados e seleciona a opção Novo Banco de Dados. Com essa seleção nomeia-se o novo banco de dados que já é carregado com catálogo, esquemas e replicação. É dentro de esquemas aonde vão se concentrar a maior parte das ações do banco, pois é nele onde estão alocadas as tabelas e os respectivos registros. No caso do presente trabalho, o banco de dados foi nomeado como BD_Ambiental. Criar Tabela Em Esquema do banco de dados (BD_Ambiental), clicar com o botão direito sobre tabelas e selecionar Nova Tabela. Após nomear a nova tabela, já é possível definir as colunas, o tipo de dados de cada uma delas além das restrições (chaves). Veja a ilustração abaixo. Inserir dados nas Tabelas Com as tabelas já criadas, temos que inserir os registros nas mesmas. Clicando com o botão direito na tabela, selecionar Visualizar Dados e depois Ver todos Registros, conforme mostra a ilustração abaixo. Com essa seleção será aberta outra tela com a tabela e suas colunas em branco. A inserção dos dados é possível com a entrada manual (digitação) diretamente nas linhas das tabelas, ou ainda copiando e colando as informações nas células, como destacado acima. Determinação das Chaves Com a criação das tabelas já é possível estabelecer as chaves primárias e chaves estrangeiras, se for o caso. Em Propriedades da tabela, selecionar Restrições. Nessa área é possível determinar chave primária, chave secundária, unicidade e verificação. Quando a opção de chave primária é selecionada, o programa automaticamente ativa a lista das colunas que compõem a tabela. Cabe ao usuário indicar a coluna, ou as colunas, que serão a chave primária. O mesmo procedimento é utilizado para definição da chave estrangeira. 5 – CONSULTAS EM SQL Para testarmos as funcionalidades do nosso banco de dados, criamos algumas consultas: 1)Quantos biólogos trabalham na Unidade de Conservação PEIG? EM SQL: SELECT nome_uc, cod_uc, formacao_func, nome_func FROM uc, funcionario WHERE nome_uc= 'PARQUE ESTADUAL DA ILHA GRANDE (PEIG) ' AND formacao_func='Biologia' 2)Quantas ocorrências do tipo Queimadas foram registradas no ano de 2010? SELECT tipo FROM ocorrencia WHERE tipo='Queimada' AND data >=('2010/01/01') 3)Qual é o total de projetos em de Plano de Manejo? SELECT COUNT (*) FROM projeto WHERE nome_projeto='Plano de Manejo ' O resultado dessa consulta será conforme a figura abaixo: 4)Qual o nome do Funcionário de Gerencia do Projeto EF001? SELECT cod_projeto, nome_projeto, cpf_func, nome_func FROM projeto, funcionario WHERE cod_projeto='EF001' AND cpf_func=cpf 5)Qual o nome da Unidade de Conservação em que foram registrados o maior numero de desmatamentos no ano de 2010. SELECT tipo, COUNT ('Queimada'), cod_uc_oco, nome_uc FROM ocorrencia, uc WHERE tipo='Queimada' AND cod_uc_oco=cod_uc GROUP BY tipo, cod_uc_oco, nome_uc 6 ) Para cada Unidade de Conservação recupere o seu código, o seu nome e o n o de estradas que possui a UC. SELECT cod_uc, estradas COUNT(*), FROM UC, infra-estrutura WHERE cod_uc=cod_uc_inf GROUP BY cod_uc, estradas 7) Listar o patrimônio das unidades que não tenham plano de manejo. SELECT cod_uc, nome_uc, patrimonios FROM uc, infraestrutura WHERE cod_uc=cod_uc_infra AND plano_manejo=FALSE 6 – CONSULTAS POR ÁLGERA RELACIONAL Mesmo tendo a consciência que o PostgreSQL não trabalha com álgebra relacional, consideramos importante mostrar como ficariam as consultas utilizando esse método. 1)Quais são os biólogos trabalham na Unidade de Conservação PEIG? σ formação=biólogo(Funcionários) – Result 1 Result 1 X Funcionário – Result 2 π nome (Result 2) – Result Final 2)Quantas ocorrências do tipo Queimadas foram registradas no ano de 2010? σ TIPO=QUEIMADAS (OCORRÊNCIAS UC) – RESULT 1 σ cout ANO=2010 (RESULT 1) – RESULT FINAL 3)Em quais UC estão sendo desenvolvidos projetos de Plano de Manejo? σ nome=plano de manejo(Projeto) – Result 1 Result 1 CPF X Funcionário CPF – Result 2 σ cod_uc (Result 2) – Result 3 π nome (Result 3) – Result Final 4)Qual o nome do Funcionário que Gerencia do Projeto EF001? σ cod_p (Projeto) – Result 1 Result 1 X Funcionários – Result 2 π nome (Result 2) – Result Final 5)Qual o nome das Unidades de Conservação em que foram registrados desmatamentos no ano de 2010. σ tipo=desmatamento (Ocorrências UC) – Result 1 Result 1 X UC – Result 2 π nome (Result 2) – Result Final 7- MODELAGEM CONCEITUAL 8 – MODELAGEM LÓGICA