INSTITUTO TECNOLÓGICO DA AERONÁUTICA
IEC - DIVISÃO DE PÓS-GRADUAÇÃO
CURSO DE PÓS-GRADUAÇÃO EM ENGENHARIA E ELÉTRICA
CE-240: PROJETO DE SISTEMA DE
BANCO DE DADOS
PROJETO FINAL
CIRO FERNANADES MATRIGRANI
PROFESSORES ADILSON CUNHA E VIEIRA DIAS
SÃO JOSÉ DOS CAMPOS
2011
1.1
Motivação
Dentro do conceito de TI Verde, tem-se o controle do uso de luzes e alrmes, bem como outros
equipamentos de emergência o qual está diretamente ligado à utilização inteligente dos recursos do meio
ambiente.
Dessa forma, incorporar práticas de sustentabilidade e gestão dos recursos tecnológicos é uma
maneira ecologicamente correta de agir e ainda proporciona ganhos positivos para a corporação que
empregar tais práticas.
Assim, a adequação de um sistema de banco de dados para automação industrial de última geração
o qual contemple o uso de software especializado para o monitoramento e controle da utilização de luzes e
alarmes resulta em ganhos reais tais como conhecimento para redução do consumo com estes dispositivos
e ascende maneiras de otimizar a utilização dos recursos em situações de emergência e planos de
contingência.
1.2
Contexto
A fusão das Empresas SPR e SPU resultou na Holding denominada Empresa de Sistemas Smart Grids
– SSG“. Seus serviços abrangem a geração, distribuição, coleta e medição de energia, incluindo o controle de
utilização de produtos, como por exemplo equipamentos de emergencia como luzes e alarmes.
Para isso, a SSG utiliza um sistema inteligente de controle de energia que conta com sensores e
equipamentos os quais alimentam o sistema, sendo que deve abranger a localização dos produtos
identificados por coordenadas georeferenciadas por latitude (em graus), longitude (em graus) e altitude
(em metros).
Os dispositivos possuem um código e integra diversos equipamentos os quais coletam dados
armazenados em séries históricas e podem ser manipulados por um operador. Cada operador é um
funcionário da SSG, sendo ainda que administradores e podem analisar os dados das séries históricas, aos
quais extraem relatórios gerenciais e estatísticas das informações armazenadas.
O Aplicativo de banco de dados que monitora luzes e alarmes (equipamentos de emergência) vem
compor este objeto sendo o componente focado neste trabalho, tanto em sua temática quanto sua
evolução durante as integrações.
1.3
Objetivo
O objetivo principal dessa listex de Projeto Final é implementar um Protótipo de Aplicativo de BD
inserido no contexto de um Sistema de Informações Corporativo baseado na aplicação das técnicas e das
tecnologias de BD, apresentado em 04 (quatro) diferentes níveis de abstração de: Aplicativos de Banco de
Dados, Banco de Dados Setorial, Banco de Dados Corporativo e Banco de Dados de uma Empresa Holding;
A heurística empregada na definição do problema, da solução e do objetivo pode ser verificada no
Anexo 1, no fim deste documento.
A especificação dos requisitos desse projeto pode ser verificada no Anexo 2, no fim deste
documento.
2 DESENVOLVIMENTO
A seguir são demonstrados os principais passos para desenvolvimento do modelo
relacional do Protótipo de Aplicativo de Banco de Dados de ILUminação INdustrial -
(ABD-ILU-IN)
2.1
Justificativas sobre a preferência de utilização do Modelo de
Dados escolhido
Diante do panorama da integração, o modelo relacional tente a atender melhor, uma
vez que o modelo de dados hierárquico tende a ficar demasiadamente extenso e complexo
com a evolução do processo de integração e o modelo de dados de rede tem limitações de
recursos se comparado ao modelo de dados relacional.
O modelo de dados orientado a objetos não é tão difundido entre as tecnologias
disponíveis no mercado atual quanto ao modelo relacional, e o modelo relacional, embora não
possuindo as características relacionadas aos paradigmas da orientação a objetos, atende aos
requisitos e possui um conjunto de conhecimento e heurísticas mais vasto em questão de
integração e opções para se trabalhar com dados espaciais.
2.2
Descrição dos principais componentes do Protótipo do seu
Aplicativo de BD
O aplicativo do sistema ABD-ILU-IN possui três entidades as quais são descritas na
tabela abaixo e podem ser visualizada na figura 1.
Entidade
Descrição
EMERGENCYNUMBER
Representa os modelos de equipamentos de luzes
e/ou alarmes
EMERGENCYNUMBERITEM
Armazena cada item de emergência possuído pela
instituição. .
EMERGENCYNUMBERITEMUSAGE
Contém os dados do históricos de usabilidade de
cada item considerando data e tempo de
2.3
Descrição dos quatro Componentes de Dicionário de Dados
A seguir serão mostrados os quatro componentes do dicionário de dados ABD-ILU-IN.
2.3.1
Dicionário de Dados
Corresponde à descrição das Entidades e seus atributos considerando o mínimo de
cinco campos: Nome, Conteúdo, Estrutura, Integridade, Segurança. A seguir é apresentado o
dicionário de dados do sistema ABD-ILU-IN.
O Dicionário de Dados desse projeto em nível operacional pode ser verificado no
Anexo 3, no fim deste documento.
2.3.2
Diretório de Dados
Complementa o Dicionário de Dados com informações sobre os relacionamentos,
usuários. A Seguir serão apresentados os itens que correspondem ao Diretório de Dados
O Diretório de Dados desse projeto em nível operacional pode ser verificado no Anexo
4, no fim deste documento.
2.3.3
Dicionário de Recursos de Dados
Descreve fisicamente as entidades e seus ambientes associados, complementa o
diretório de Dados com descrições físicas da estrutura do ABD e do ambiente. O ambiente
físico a ser utilizado será um computador servidor do SGBD o qual está localizado no
laboratório da FCMF, sendo que o mesmo possui as características relacionadas abaixo:
O Dicionário de Recursos de Dados em nível operacional desse projeto pode ser
verificado no Anexo 5, no fim deste documento.
2.3.4
Dicionário de Metadados
Corresponde ao modelo conceitual (MER – modelo entidade relacionamento
produzido pelo software colaborativo nas nuvens Gliffy (
http://www.gliffy.com/
).
O Dicionário de Metadados desse projeto em nível operacional pode ser verificado no
Anexo 6, no fim deste documento.
2.3.5
Evolução da 1aFN para a 2aFN e a última Versão da sua 3aFN
A Evolução da 1aFN para a 2aFN e a última Versão da sua 3aFN pode ser verificada no
Anexo 7, no fim deste documento.
2.3.6
Massa de Dados (Entidades / Relações / Relacionamentos e Tuplas para
Testes)
A Massa de Dados (Entidades / Relações / Relacionamentos e Tuplas para Testes) para
o protótipo em nível operacional pode ser verificada no Anexo 8, no fim deste documento.
2.3.7
Implementação e Implantação das 04 (quatro) Consultas (Queries)
Operacionais previstas na ListEx 4, devidamente atualizadas, nas últimas
versões, sem perder suas funcionalidades e identidades.
Esta subseção apresenta os testes do Protótipo de Aplicativo de BD. As Queries e os
resultados das mesmas para o protótipo em nível operacional pode ser verificada no Anexo 9,
no fim deste documento.
2.4
Banco de Dados Setorial - BDS-IN
A seguir são demonstrados os principais passos para desenvolvimento do modelo
relacional da Integração Setorial. A seguir são apresentados os outros protótipos que foram
integrados formando o sistema de Banco de Dados Setorial Industrial composto integrado
pelos sistemas ABD-ILU ABD-EQI, ABD-ADM e ABD-GRD.
2.4.1
Extensão do Dicionário de Dados para os elementos incorporados ao seu
Protótipo
Corresponde à descrição das Entidades e seus atributos considerando o mínimo de
cinco campos: Nome, Conteúdo, Estrutura, Integridade, Segurança. A seguir é apresentado o
dicionário de dados do sistema ABD-ILU-IN Integrado com os sistemas demais sistemas
apresentados anteriormente formando o BDS-IN – Banco de Dados Setorial Industrial. Grifada a
parte que corresponde ao aplicativo ABD-ILU-IN.
A Extensão do Dicionário de Dados para os elementos incorporados para o Protótipo
em nível tático pode ser verificada no Anexo 10, no fim deste documento.
2.4.2
Diretório de Dados em Nível Tático
Complementa o Dicionário de Dados com informações sobre os relacionamentos,
usuários. A Seguir serão apresentados os itens que correspondem ao Diretório de Dados do
banco de dados setorial industrial BDS-IN.
A Extensão do Diretório de Dados para os elementos incorporados para o Protótipo em
nível tático pode ser verificada no Anexo 11, no fim deste documento.
2.4.3
Dicionário de Recursos de Dados em Nível Tático
Descreve fisicamente as entidades e seus ambientes associados, complementa o
diretório de Dados com descrições físicas da estrutura do ABD e do ambiente. O ambiente
físico a ser utilizado será um computador servidor do SGBD o qual está localizado no
laboratório da FCMF, sendo que o mesmo possui as características relacionadas abaixo:
A Extensão do Dicionário de Recursos de Dados para os elementos incorporados para o
Protótipo em nível tático pode ser verificada no Anexo 12, no fim deste documento.
2.4.4
Dicionário de Metadados em Nível Tático
Corresponde ao modelo conceitual (MER – modelo entidade relacionamento
produzido pelo software Er-Win, pode ser visto no Anexo 13, no fim deste documento.
2.4.5
Extensão da 3aFN para os elementos incorporados ao seu Protótipo
A Extensão da 3aFN para os elementos incorporados para o Protótipo em nível tático
pode ser verificada no Anexo 14, no fim deste documento.
2.4.6
Extensão da Massa de Dados para os elementos incorporados para o
Protótipo (Entidades/ Relações / Relacionamentos e Tuplas para Testes)
A Extensão da Massa de Dados para os elementos incorporados para o Protótipo em
nível tático pode ser verificada no Anexo 15, no fim deste documento.
2.4.7
Extensão da Implementação e da Implantação das 4 (quatro) Consultas
(Queries) Táticas previstas na ListEx 5, devidamente atualizadas, nas últimas
versões, sem perder suas funcionalidades e identidades.
A Extensão da Implementação e da Implantação das 4 (quatro) Consultas (Queries)
Táticas previstas na ListEx 5, devidamente atualizadas, nas últimas versões, sem perder suas
funcionalidades e identidades para os elementos incorporados para o Protótipo em nível tático
pode ser verificada no Anexo 16, no fim deste documento.
2.5
Banco de Dados Corporativo - BDC
A seguir são demonstrados os principais passos para desenvolvimento do modelo
relacional da Integração Corporativa.
Para atender a finalidade de administrar os recursos privados, o Sistema de Banco de
Dados Corporativo Privado foi subdividido em alguns segmentos que devem ser capazes de
propiciar as seguintes funcionalidades:
Setor Privado Residencial
Administração de Ar Condicionado
1- Monitoramento dos Sensores de Temperatura;
2- Controle de Temperatura;
3- Cadastro de Perfis de Temperatura.
Administração de Eletrodomésticos
1- Gerenciamento Operacional;
2- Automatização;
3- Gerenciamento de Canais (TV).
Geração de Energia Residencial
1- Monitoramento da energia solar adquirida;
2- Monitoramento da energia eólica adquirida;
3- Monitoramento da energia sobressalente.
Conta/Consumo Residencial
1- Monitoramento do Consumo da Iluminação;
2- Monitoramento do Consumo dos Eletrodomésticos;
3- Gerenciamento da Energia Produzida.
Setor Privado Industrial
Controle de Luzes e Alarmes Industriais
1-Monitoramento de Luzes Industriais de Emergência;
2-Controle de Alarmes; e
3-Gerenciamento Operacional.
Controle do Acesso aos Equipamentos Industriais
1-Monitoramento de Acessos;
2-Controle Operacional de Máquinas; e
3-Gerenciamento de Câmeras de Monitoramento.
Controle dos Funcionários, Financeiro e Computadores
1-Gerenciamento dos Computadores;
2-Gerenciamento Financeiro; e
3-Monitoramento dos Cartões de Ponto.
Controle de Luzes, Nível de Combustível e Testes Periódicos
1-Monitoramento das Luzes de Emergência;
2-Monitoramento do Nível de Combustível;
3-Gerenciamento Operacional dos Alarmes e Testes Periódicos.
2.5.1
Extensão do Dicionário de Dados para os elementos incorporados para o
Protótipo em nível estratégico;
A Extensão do Dicionário de Dados para os elementos incorporados para o Protótipo
em nível estratégico pode ser verificada no Anexo 17, no fim deste documento.
2.5.2
Diretório de Dados em nível estratégico.
Apresenta as entidades e seus processos, detalhando mais sobre o dicionário de dados.
A tabela a seguir possui a descrição das entidades do Sistema SPR e dos processos por elas
realizadas.
A Extensão do Diretório de Dados em nível estratégico para os elementos incorporados
para o Protótipo pode ser verificada no Anexo 18, no fim deste documento.
2.5.3
Dicionário de Recursos de Dados em Nível Estratégico
Descreve fisicamente as entidades e seus ambientes associados, agregando ao
diretório de dados as descrições físicas da estrutura do Aplicativo de Banco de Dados e as
descrições do ambiente de processamento. O ambiente físico a ser utilizado será um
computador servidor do SGBD o qual está localizado no laboratório da FCMF, sendo que o
mesmo possui as características relacionadas abaixo:
A Extensão do Dicionário de Recursos de Dados em Nível Estratégico para os elementos
incorporados para o Protótipo pode ser verificada no Anexo 19, no fim deste documento.
2.5.4
Dicionário de Metadados em Nível Estratégico
Descreve conceitualmente as entidades em um nível alto de abstração. Um Dicionário
de Metadados apresenta a estrutura do sistema onde pode-se verificar as conexões e
integrações das entidades e aplicativos de banco de dados. Essa estrutura proporciona uma
visualização e entendimento global dos sistemas como um todo. Abaixo tem-se o modelo físico
do sistema SPR o qual foi gerado através da ferramenta Oracle SQL Developer 3.0.04.
A Extensão do Dicionário de Metadados em Nível Estratégico para os elementos
incorporados para o Protótipo pode ser verificada no Anexo 20, no fim deste documento.
2.5.5
Extensão do Modelo Entidade Relacionamento (MER) com as cardinalidades
dos elementos incorporados ao seu Protótipo
A Extensão do Modelo Entidade Relacionamento (MER) com as cardinalidades dos
elementos incorporados para o Protótipo em Nível Estratégico pode ser verificada no Anexo 21,
no fim deste documento.
2.5.6
Extensão da 3aFN para os elementos incorporados ao seu Protótipo;
Como extensão da normalização realizada no sistema BDS-IN, foram efetuados os
seguintes procedimentos:
A Extensão da 3aFN para os elementos incorporados para o Protótipo em Nível
Estratégico pode ser verificada no Anexo 22, no fim deste documento.
2.5.7
Extensão da Massa de Dados para os elementos incorporados para o
Protótipo (Entidades/ Relações / Relacionamentos e Tuplas para Testes) em
nível estratégico.
A Extensão da Massa de Dados para os elementos incorporados para o Protótipo em
nível estratégico pode ser verificada no Anexo 23, no fim deste documento.
2.5.8
Extensão da Implementação e Implantação das 03 (três) Consultas (Queries)
Estratégicas previstas na ListEx 6, devidamente atualizadas, nas últimas
versões, sem perder suas funcionalidades e identidades.
Esta seção exibe as queries requisitadas para testar o banco corporativo integrado.
Abaixo segue as Queries de banco:
A Extensão da Implementação e Implantação das 03 (três) Consultas (Queries)
Estratégicas previstas na ListEx 6, devidamente atualizadas, nas últimas versões, sem perder
suas funcionalidades e identidades para os elementos incorporados para o Protótipo em nível
estratégico pode ser verificada no Anexo 24, no fim deste documento.
2.5.9
Adaptação das Consultas Anteriores ao Banco de Dados Integrado:
Esta subseção apresenta as modificações executadas nas antigas consultas para que
continuem funcionando no database corporativo.
A adaptação das Consultas Anteriores ao Banco de Dados Integrado para os elementos
incorporados para o Protótipo em nível estratégico pode ser verificada no Anexo 25, no fim
deste documento.
2.6
Banco de Dados Holding
Esta seção apresenta os exercícios propostos no trabalho final no quarto nível de
abstração contando com a Queries propostas no Exercício de Simulação de Jogos de Empresas.
2.6.1
Extensão da Implementação e Implantação de 03 (três) Consultas (Queries)
georreferenciadas adicionais para a Empresa de SSG: a 12ª Operacional, a
13ª Tática e a 14ª Estratégica.
Esta subseção apresenta Extensão da Implementação e Implantação de 03 (três)
Consultas (Queries) georreferenciadas adicionais para a Empresa de SSG: a 12ª Operacional, a
13ª Tática e a 14ª Estratégica.
A Extensão da Implementação e Implantação de 03 (três) Consultas (Queries)
georreferenciadas adicionais para a Empresa de SSG: a 12ª Operacional, a 13ª Tática e a 14ª
Estratégica para os elementos incorporados para o Protótipo em nível estratégico da empresa
Holding pode ser verificada no Anexo 26, no fim deste documento.
2.6.2
Extensão da Implementação e Implantação das 03 (três) Consultas (Queries)
Estratégicas previstas na ListEx 6, devidamente atualizadas, nas
últimas versões, sem perder suas funcionalidades e identidades.
A Extensão da Implementação e Implantação das 03 (três) Consultas (Queries)
Estratégicas previstas na ListEx 6, devidamente atualizadas, nas últimas versões, sem
perder suas funcionalidades e identidades para o Protótipo em nível estratégico da empresa
Holding pode ser verificada no Anexo 27, no fim deste documento.
2.6.3
Exercício de Simulação de Jogos de Empresa
Em seguida deverão ser obedecidas as instruções contidas no Anexo 1 - Especificação
de Requisitos para o Projeto Final, nos seguintes subitens:
2.6.3.1
Cenário do Estudo de Caso;
2.6.3.2
Especificações de Requisitos;
2.6.3.3
Consultas a Serem Elaboradas;
2.6.3.4
Resultados Esperados; e
2.6.3.5
Resultados Obtidos.
3 CONCLUSÕES e RECOMENDAÇÕES
Esta lista de exercícios propiciou a integração dos subsistemas Residenciais resultando
em um Banco de dados Setorial consistente e completo, o qual atende a todos os requisitos
dos subsistemas especificados. Com a implementação e testes da integração dos Aplicativos de
BD nos Bancos de Dados Setoriais foi possível verificar uma melhoria das suas eficiências
setoriais e a redução dos desperdícios de seus recursos.
Esta lista de exercícios propiciou a integração dos subsistemas Residenciais resultando
em um Banco de dados Setorial consistente e completo, o qual atende a todos os requisitos
dos subsistemas especificados. Com a implementação e testes da integração dos Aplicativos de
BD nos Bancos de Dados Setoriais foi possível verificar uma melhoria das suas eficiências
setoriais e a redução dos desperdícios de seus recursos.
Esta lista de exercícios propiciou a integração dos subsistemas Residenciais resultando
em um Banco de dados Setorial consistente e completo, o qual atende a todos os requisitos
dos subsistemas especificados. Com a implementação e testes da integração dos Aplicativos de
BD nos Bancos de Dados Setoriais foi possível verificar uma melhoria das suas eficiências
setoriais e a redução dos desperdícios de seus recursos.
ANEXOS
ANEXO 1 : Definição do Problema e da Solução
Identificação do Problema.
Este anexo mostrará o processo de definição dos Elementos Essenciais:
EA(s) - Efeitos Adversos (O que está errado?):
O projeto Smart Grids precisa incluir o gerenciamento operacional e monitoramento do
uso de luzes de emergência e alarmes do setor industrial visando redução do consumo de
energia elétrica.
C(s) - Causas (Porque está errado?)
O setor industrial não possui um sistema que monitore e gerencie operacionalmente o
uso de luzes de emergência e alarmes no setor industrial visando economia de energia elétrica.
T - Tarefa (O que, quem, onde e quando se deseja realizar?)
(O quê?) Desenvolver um sistema de banco de dados que monitore e gerencie
operacionalmente o uso de luzes de emergência e alarmes;
(Em que âmbito?) No setor industrial, no módulo do projeto Smart Grid;
(Quando?) Até o final do primeiro semestre de 2011.
P – Propósito (Para quem se deseja realizar tal tarefa?)
Para reduzir o consumo de energia elétrica.
Enunciado do Problema.
Desenvolver (O que?) um sistema de banco de dados que monitore e gerencie
operacionalmente o uso de luzes de emergência e alarmes (em que âmbito?), no setor
industrial, como módulo do projeto Smart Grid, (Quando?) até o final do primeiro semestre de
2011, (Para que?) para reduzir o consumo de energia elétrica.
Definição da Solução.
Esta subseção detalhara o processo de redefinição da Versão 2.0 da Solução do
Protótipo de Projeto de Aplicativo de Banco de Dados ABD-ILU-IN:
ASP(s) - Alternativas de Soluções Possíveis
ASP1: Não incluir o aplicativo de banco de dados para o gerenciamento
operacional e monitoramento do uso de luzes de emergência e alarmes do setor
industrial no sistema Smart Grids.
ASP2: Contratar uma empresa especializada para realizar o gerenciamento
operacional e monitoramento do uso de luzes de emergência e alarmes do setor
industrial visando redução do consumo de energia elétrica.
ASP3: Desenvolver e implementar um módulo de aplicativo de banco de dados
para o sistema Smart Grids que propicie o gerenciamento operacional e
monitoramento do uso de luzes de emergência e alarmes do setor industrial visando
redução do consumo de energia elétrica.
ASP4: Fazer uma campanha para a redução do consumo de energia elétrica no
uso de luzes de emergência e alarmes do setor industrial sem necessidade
gerenciamento operacional e monitoramento.
Análise APA - Adequabilidade + Praticabilidade + Aceitabilidade
Adequabilidade: A solução ASP1 é Inadequada porque vai de encontro direto
com o (O Quê?) da Tarefa, por tanto falha no quesito “Integridade” da
Adequabilidade tonando-se definitivamente Inadequada. A solução ASP2 e ASP 4
falham no fator Âmbito pois não são direcionadas ao projeto Smart Grids, são
Inadequada. A solução ASP3 é considerada adequada em todos os fatores.
Praticabilidade: A ASP1 é torna-se praticável por não utilizar recurso nenhum e
nem exigir experiência, mas torna-se Impraticável por não trazer resultados. As
soluções ASP2 e ASP3 são Impraticáveis, pois carecem de recursos financeiros e
humanos que não estão disponíveis ao autor. A solução ASP3 é Praticável, pois exige
conhecimento técnico disponível para execução desta, e nenhum recurso financeiro
extravagante.
Aceitabilidade: A ASP1 foi considerada Inaceitável porque a alternativa de
solução “não convém”, os resultados são nulos de acordo com o problema. A solução
ASP2 tem um “risco” alto e o resultado pode não “compensar” os custos assim como
a solução ASP$4, ambas Inaceitáveis. A solução ASP3 foi considerada Aceitável
porque convém e não possui riscos.
ASE - Alternativa de Solução Escolhida
A solução escolhida foi a ASP3 “Desenvolver e implementar um Aplicativo de Banco de
Dados de aplicativo de banco de dados para o sistema Smart Grids que propicie o
gerenciamento operacional e monitoramento do uso de luzes de emergência e alarmes do
setor industrial visando redução do consumo de energia elétrica”.
Redefinição do Título.
A versão 1.0 do título é Aplicativo de Banco de Dados de ILUminação INdustrial
(ABD-ILU-IN). Para se adequar mais a solução é proposta uma redefinição do titulo para Aplicativo de
Banco de Dados (ABD-) Sistema Industrial de Monitoramento do Uso de Luzes e Alarmes
(SIMULA).
ANEXO 2 : Especificação dos Requisitos
Este Aplicativo de Banco de Dados de ILUminação INdustrial (ABD-ILU-IN) deverá ser
capaz de propiciar pelo menos as seguintes funcionalidades em nível operacional:
Monitoramento de Luzes de Emergência;
Controle de Alarmes e
Gerenciamento Operacional.
Este Aplicativo de Banco de Dados de ILUminação INdustrial (ABD-ILU-IN) deverá ser
capaz de propiciar pelo menos as seguintes funcionalidades em nível tático:
Realizar controle e monitoramento dos equipamentos de indústrias privadas de forma
integrada com os demais protótipos.
Este Aplicativo de Banco de Dados de ILUminação INdustrial (ABD-ILU-IN) deverá ser
capaz de propiciar pelo menos as seguintes funcionalidades em nível estratégico:
Realizar controle e monitoramento dos equipamentos de diferentes indústrias privadas
de forma integrada com os demais protótipos.
Realizar controle e monitoramento dos equipamentos de residências privadas de
forma integrada com os demais protótipos.
Este Aplicativo de Banco de Dados de ILUminação INdustrial (ABD-ILU-IN) deverá ser
capaz de propiciar pelo menos as seguintes funcionalidades em nível estratégico no nível
de integração da holding:
Realizar controle e monitoramento dos equipamentos de diferentes indústrias privadas
de forma integrada com os demais protótipos.
Realizar controle e monitoramento dos equipamentos de residências privadas de
forma integrada com os demais protótipos.
Realizar controle e monitoramento dos equipamentos de organizações públicas
inseridas no negocio de forma integrada com os demais protótipos.
ANEXO 4: Diretório de Dados em nível Operacional.
DIRETÓRIO DE DADOS – ENTIDADES
Entidade
Descrição
EMERGENCYNUMBER
Representa os modelos de equipamentos de luzes e/ou
alarmes
EMERGENCYNUMBERITEM
Armazena cada item de emergência possuído pela
instituição. .
EMERGENCYNUMBERITEMUSAGE
Contém os dados do históricos de usabilidade de cada item
considerando data e tempo de utilização.
A seguir, é apresentado o grupo de usuários os quais irão acessar o sistema ABD-ILU-IN.
Peopleware
o
Administradores de Bancos de Dados: Responsáveis pela manutenção e
otimização das bases, bem como o gerenciamento de modificações.
o
Desenvolvedores: responsáveis pelo desenvolvimento de novos recursos.
o
Usuários do sistema: responsáveis pela inserção e manipulação dos dados.
Hardware
Computador servidor do Sistema Gerenciador de Bando de Dados – SGBD. O hardware
é o responsável pelo processamento das transações executadas através do SGBD.
Softwares
o
SGBD: Oracle 11g;
o
Software para Manipulação de Dados: Oracle SQL Developer.;
o
Sistema Operacional: Windows XP;
o
Modelagem de Dados: ER-Win 7.3, software colaborativo nas nuvens Gliffy
(
http://www.gliffy.com/
).
Documentware
– Relatórios e diagramas produzidos pelos aplicativos citados, e apresentados neste
documento.
Relacionamentos entre entidades, dados ou informações com usuários:
A seguir são exibidas todas as relações e demais constraints pertencentes ao protótipo
ABD-ILU-IN.
ANEXO 5: Dicionário de Recursos de Dados em nível Operacional.
o
SGBD: Oracle 11g Spatial
o
Endereço de localização do Banco: 161.24.9.5
o
Porta: 1521
o
SID: ce240
o
Sistema Operacional Básico: Windows2000 Pro
o
Memória RAM: 1 GB
o
Frequência de Utilização: 24 horas
ANEXO 6: Dicionário de Metaados em nível Operacional.
ANEXO 7: Evolução da 1aFN para a 2aFN e a última Versão da sua 3aFN
Forma Normal Zero - 0FN
A coleção de campos a seguir foi colocada de forma a atender os requisitos mostrados
acima sem considerar o risco de anomalias de exclusão, inserção ou alteração.
Primeira Forma Normal - 1FN
Podemos ver que podem existir anomalias de inserção nos campos Description
que pode ser composto de varias informações (modelo, número serial...) e Localization,
podendo assumir vários tipos de descrições de localização (setor, coordenadas
geográficas, descrições textuais...). Isto ocorre por que estes campos não são atômicos e
suas instâncias podem assumir formatos não bem definidos.
A resolução deste problema foi a alteração destes campos por campos atômicos,
possibilitando instâncias desses campos que assumirão formatos bem definidos como
vemos na 1FN:
Segunda Forma Normal - 2FN
O modelo em 1FN ainda apresenta anomalias de atualização e exclusão. A modificação
do nome de um Supplier ou PartNumber gerará obrigatoriedade da alteração de vários
registros, como os das entradas de usabilidade. Isto ocorre porque não existe uma
dependência funcional dos campos com suas chaves. Ex: LastDurationUsage depende
funcionalmente de LastUsage, mas Supplier não. A alteração ou exclusão de um campo
Supplier não deve interferir em LastDurationUsage.
A resolução deste problema foi a criação de outras entidades fazendo com que todos
os campos permaneçam com dependência funcional de suas chaves como vemos na 2FN:
Terceira Forma Normal - 3FN
O modelo em 2FN ainda apresenta anomalias de atualização e exclusão. Vemos
que todos os campos possuem dependência funcional em relação as suas chaves, mas não é
uma dependência funcional direta. Supplier e Power-Wh depende funcionalmente de
PartNumber, mas Longitude e Latitude depende funcionalmente do SerialNumber. Na
Tabela EmergencyNumberUsage vemos que LastDurationUsage depende de SerialNumber
e LastUsage, mas não de PartNumber. A resolução deste problema foi a criação de outras
entidades fazendo com que todos os campos permaneçam com dependência funcional
direta de todas as suas chaves como vemos na 3FN:
ANEXO 8: Massa de Dados (Entidades / Relações / Relacionamentos e Tuplas para
Testes)
CRIAÇÃO DAS ENTIDADES E RELACIONAMENTOS
Esta subseção apresenta a implementação do Protótipo de Aplicativo de BD. Para
implementação foi utilizado o Oracle XE 10g através da interface Database Home Page
integrada. A modelagem foi feita no aplicativo cloud colaborativo Gliffy (http://www.gliffy.com)
Os scripts de implementação seguem abaixo
-- Tabela EMERGENCYNUMBER CREATE TABLE "EMERGENCYNUMBER"
( "EMN_ID" NUMBER(6,0) NOT NULL ENABLE, "EMN_PARTNUMBER" VARCHAR2(50) NOT NULL ENABLE, "EMN_SUPPLIER" VARCHAR2(50),
"EMN_POWERWH" NUMBER(3,0) NOT NULL ENABLE,
CONSTRAINT "EMERGENCYNUMBER_PK" PRIMARY KEY ("EMN_ID") ENABLE )
/
CREATE OR REPLACE TRIGGER "BI_EMERGENCYNUMBER" before insert on "EMERGENCYNUMBER" for each row
begin
select "EMERGENCYNUMBER_SEQ".nextval into :NEW.EMN_ID from dual; end;
/
ALTER TRIGGER "BI_EMERGENCYNUMBER" ENABLE /
-- Tabela EMERGENCYNUMBERITEM
( "ENI_SERIALNUMBER" NUMBER(6,0) NOT NULL ENABLE, "EMN_ID" NUMBER(6,0) NOT NULL ENABLE,
"ENI_LONGITUDE" NUMBER(15,0) NOT NULL ENABLE, "ENI_LATITUDE" NUMBER(15,0) NOT NULL ENABLE,
CONSTRAINT "EMERGENCYNUMBERITEM_PK" PRIMARY KEY ("ENI_SERIALNUMBER") ENABLE, CONSTRAINT "EMERGENCYNUMBERITEM_CON" FOREIGN KEY ("EMN_ID")
REFERENCES "EMERGENCYNUMBER" ("EMN_ID") ENABLE )
/
CREATE OR REPLACE TRIGGER "BI_EMERGENCYNUMBERITEM" before insert on "EMERGENCYNUMBERITEM" for each row
begin
select "EMERGENCYNUMBERITEM_SEQ".nextval into :NEW.ENI_SERIALNUMBER from dual; end;
/
ALTER TRIGGER "BI_EMERGENCYNUMBERITEM" ENABLE /
-- Tabela EMERGENCYNUMBERITEMUSAGE CREATE TABLE "EMERGENCYNUMBERITEMUSAGE"
( "ENI_SERIALNUMBER" NUMBER(6,0) NOT NULL ENABLE, "ENU_LASTUSAGE" TIMESTAMP (6) NOT NULL ENABLE, "ENU_LASTDURATIONUSAGE" NUMBER(18,0) NOT NULL ENABLE )
ANEXO 9: Implementação e Implantação das 04 (quatro) Consultas (Queries)
Operacionais previstas na ListEx 4, devidamente atualizadas, nas últimas versões,
sem perder suas funcionalidades e identidades.
1
Listar todos os PartNumbers
2
Listar todos os nomes das peças e números seriais
3
Listar os nomes das peças, números seriais e ultima utilização de todas as peças do
fornecedor ASSIS.
ANEXO 10: Extensão do Dicionário de Dados para os elementos incorporados para o
Protótipo em Nível Tático
DESCRIÇÃO
CONTEÚDO
ESTRUTURA
INTEGRIDADE
SEGURANÇA
Indústria Tabela das indústrias cadastradas no sistema
Tabela composta
por 4 atributos N/A
Informações disponíveis para qualquer usuário
do sistema
ind_id Código da indústria NOT NULL NUMBER(19) Primary Key
ind_razao_social Nome da indústria NOT NULL UNIQUE VARCHAR2(100) ind_cnpj CNPJ da Indústria NOT NULL UNIQUE VARCHAR2(100)
ind_localizacao
Localização georeferenciada da
indústria
NOT NULL MDSYS.SDO_GEOM ETRY
Computador Tabela que armazena os dados que do computador
Tabela composta
por 6 atributos N/A
Informações disponíveis para qualquer usuário
do sistema
com_id Código do computador NOT NULL NUMBER(19) Primary Key
ind_id Código da indústria que
possue o computador NOT NULL NUMBER(19) Foreign Key
com_nome Nome do computador NOT NULL UNIQUE VARCHAR2(100)
com_ip Número do IP do
computador NULL VARCHAR2(100)
com_descricao Descrição do computador NULL VARCHAR2(100)
com_localizacao
Localização georeferenciada do
computador
NOT NULL MDSYS.SDO_GEOM ETRY
Pessoa Tabela com dados de pessoas físicas
Tabela composta
por 3 atributos N/A
Informações disponíveis para qualquer usuário
do sistema
pes_id Código da pessoa NOT NULL NUMBER(19) Primary Key
pes_nome Nome da pessoa NOT NULL VARCHAR(100)
pes_cpf Número do CPF NOT NULL UNIQUE VARCHAR2(100)
FUNCIONARIO Tabela de funcionários das indústrias
Tabela composta
por 5 atributos N/A
Informações disponíveis para
usuário do sistema da mesma indústria
ind_id Código da indústria que
emprega o funcionário NOT NULL NUMBER(19) Foreign Key
pes_id Código da pessoa NOT NULL NUMBER(19) Foreign Key
fun_cargo Cargo do funcionário NULL VARCHAR2(100)
fun_salario Salário do funcionário NULL NUMBER(20,2)
PONTO
Tabela que armazena os registros de ponto dos
funcionários
Tabela composta
por 4 atributos N/A
Informações disponíveis parao
DRH das indústrias pon_id Código do registro do
ponto NOT NULL NUMBER(19) Primary Key
fun_id Código do funcionário NOT NULL NUMBER(19) Foreign Key
pon_data_hora_entrada Data/Hora da entrada do
funcionário NOT NULL TIMESTAMP(9)
pon_data_hora_saida Data/Hora da saída do
funcionário NULL TIMESTAMP(9)
ITEM Tabela de itens financeiros Tabela composta
por 4 atributos N/A
Informações disponíveis para
ao depto financeiro da
indústria
ite_id Código do Item NOT NULL NUMBER(19) Primary Key
ind_id Código da indústria que
possui o item NOT NULL NUMBER(19) Foreign Key
ite_nome Nome do Item financeiro NOT NULL VARCHAR2(100) ite_descricao Descrição do item
financeiro NULL VARCHAR2(100)
FINANCEIRO Tabela de registro de movimento financeiro
Tabela composta
por 6 atributos N/A
Informações disponíveis para
ao depto financeiro da
indústria fin_id Código do registro
financeiro NOT NULL NUMBER(19) Primary Key
ind_id
Código da indústria ao qual o registro financeiro
pertence
NOT NULL NUMBER(19) Foreign Key
ite_id
Código do item financeiro ao qual o registro financeiro se refere
NOT NULL NUMBER(19) Foreign Key
fin_ind_id
Código da outra possivel industria participante do
registro financeiro
NULL NUMBER(19) Foreign Key
fin_valor Valor do registro financeiro NOT NULL NUMBER(20,2) fin_data Data do registro financeiro NOT NULL TIMESTAMP(9)
GRD_ALARME_OCORREN CIA
Tabela de registro de ocorrências de alarme
Tabela composta
por 5 atributos N/A
Informações disponíveis para qualquer usuário
do sistema
grd_id Código do gerador NOT NULL NUMBER Primary Key
aoc_id Identificação da ocorrência NOT NULL NUMBER(7) Primary Key
aoc_data_ocorrencia Data da ocorrência NULL DATE
aoc_tipo_ocorrencia Tipo de ocorrência NULL NUMBER
aoc_ocorrencia Descrição da ocorrência NULL VARCHAR(150)
GRD_GERADOR Tabela dos geradores cadastrados no sistemas
Tabela composta por 7 atributos
Quandor for excluído, deverá ser excluído os registros do gerador em outras tabelas Informações disponíveis para qualquer usuário do sistema
grd_id Código do gerador. NOT NULL NUMBER Primary Key
ind_id Código da indústria onde o
gerador está instalado NOT NULL NUMBER(19) Foreign Key grd_especificacao Especificação do gerador NOT NULL VARCHAR(200)
grd_tipo_combustivel Tipo de combustível
utilizado no gerador NULL VARCHAR(3)
grd_localizacao
Localização georeferenciada do
computador
NOT NULL MDSYS.SDO_GEOM ETRY grd_capacidade_geracao_
energia
Capacidade de geração de
energia do gerador NULL NUMBER(7)
grd_energia_consumida Quantidade de energia
consumida pela indústria NULL NUMBER(7)
GRD_GERADOR_TESTE_P ERIODICO
Tabela de registro de testes periódicos
Tabela composta
por 4 atributos N/A
Informações disponíveis para qualquer usuário
do sistema
grd_id Código do gerador NOT NULL NUMBER Primary Key
tst_id Código do teste periódico NOT NULL NUMBER Primary Key
grt_data_teste Data que o teste foi
efetuado NOT NULL DATE
grt_resultado Descrição do resultado do
teste NOT NULL VARCHAR(100)
GRD_LUZ_EMERGENCIA
Tabela de registro de ocorrência de luz de
emergência
Tabela composta
por 5 atributos N/A
Informações disponíveis para qualquer usuário
do sistema.
grd_id Código do gerador NOT NULL NUMBER Primary Key
lem_data_ocorrencia Data da ocorrência NOT NULL DATE
lem_tipo_ocorrencia Tipo de ocorrência NOT NULL NUMBER
lem_ocorrencia Descrição da ocorrência NOT NULL VARCHAR(150)
GRD_TIPO_TESTE_PERIOD ICO
Tabela com a descrição dos testes periódicos a serem
feitos
Tabela composta
por 3 atributos N/A
Informações disponíveis ao
setor de manutenção
tst_id Código do Teste NOT NULL NUMBER Primary Key
tst_periodicidade Periodicidade do teste NOT NULL VARCHAR(15)
tst_descricao Descrição do teste NOT NULL VARCHAR(100)
EMERGENCY_NUMBER
tabela para
armazenar os
tipos(modelos ou
marcas dos
produtos) de itens
de emergencia
Tabela compostapor 5 atributos N/A
Informações disponíveis para qualquer funcionário da indústria. emn_id Identificador da
emergência NOT NULL ENABLE NUMBER(6,0) Primary Key ind_id Código da indústria NOT NULL ENABLE NUMBER(19) Foreign Key emn_part_number NOT NULL ENABLE VARCHAR2(50)
emn_supplier NOT NULL VARCHAR2(50)
emn_power_wh NOT NULL ENABLE NUMBER(3,0)
EMERGENCY_NUMBER_I TEM
tabela para
armazenar os itens
de emergencia
Tabela compostapor 4 atributos N/A
Informações disponíveis para
qualquer funcionário da
indústria. eni_serial_number NOT NULL ENABLE NUMBER(6,0) Primary Key
emn_id NOT NULL ENABLE NUMBER(6,0) Foreign Key
eni_location NOT NULL ENABLE NUMBER(15,0)
EMERGENCYNUMBERITE MUSAGE
Tabela pra
armazenar a
utilizaçao de cada
item
Tabela compostapor 4 atributos N/A
Informações disponíveis para
qualquer funcionário da
indústria.
enu_id NOT NULL ENABLE NUMBER(6,0) Primary Key
eni_serial_number NOT NULL ENABLE NUMBER(6,0) Foreign Key enu_last_usage NOT NULL ENABLE TIMESTAMP(6)
enu_last_duration_usage NOT NULL ENABLE NUMBER(18,0)
ACESSO Esta tabela contém informações sobre o acesso
de uma pessoa à uma
Tabela composta por 6 atributos
N/A Informações
disponíveis para qualquer
certaindústria. funcionário da indústria.
ace_id Identificação do acesso NOT NULL NUMBER(19) Primary Key
pes_id Código da pessoa NOT NULL NUMBER(19) Foreign Key
ace_data Data/hora de acesso NOT NULL DATE
ace_tipo Indicador de entrada ou
saída NOT NULL VARCHAR2(10)
por_id Identificação do portão NOT NULL INTEGER Foreign Key
ind_id Código da indústria a que
este registro pertence NOT NULL NUMBER(19) Foreign Key
CAMERA
Contém informações sobre uma câmera de monitoramento.
Tabela composta
por 4 atributos N/A
Acesso disponível aos funcionários
da segurança e aos diretores da
indústria. cam_id Código de identificação da
camera NOT NULL INTEGER Primary Key
cam_setor
Contém informações georreferenciadas sobre o
setor da indústria que esta câmera é capaz de
monitorar.
NOT NULL MDSYS.SDO_GEOM ETRY cam_posicao Contém informações georreferenciadas sobre a posição da câmera naindústria.
NOT NULL MDSYS.SDO_GEOM ETRY cam_status Contém informações referentes ao funcionamento da câmera. NULL VARCHAR2(20)
ind_id Código da indústria onde a
camera se encontra NOT NULL NUMBER(19) Foreign Key
MAQUINA
Contém informações sobre as máquinas das indústrias,
como tipo, data demanutenção e posição.
Tabela composta
por 7 atributos N/A
Informação disponível para qualquer funcionário da indústria que possui estamáquina. maq_id Código de identificação da máquina dentro de sua
indústria.
NOT NULL INTEGER Primary Key
tip_id Contém o código do tipo de
máquina. NOT NULL INTEGER Foreign Key
ind_id Código da indústria onde a
máquina está instalada NOT NULL NUMBER(19) Foreign Key maq_status Contém a situação atual
maq_data_manutencao Contém a data da próxima
manutenção da máquina. NULL DATE
maq_consumo/ Quantidade de energia
consumida pela máquina NULL FLOAT
maq_posicao Contém a posição georreferenciada da máquina. NULL MDSYS.SDO_GEOM ETRY PORTAO
Contém informações sobre os portões de acesso às
indústrias.
Tabela composta
por 3 atributos N/A
As informações contidas nesta tabela tem acesso
restrito aos funcionários daindústria
por_id
Código de identificação deste portão dentro de sua
indústria.
NOT NULL INTEGER Primary Key
por_localizacao
Informações georreferenciadas sobre a
posição do portão na indústria.
NOT NULL MDSYS.SDO_GEOM ETRY
TIPO_MAQUINA Tabela composta
por 3 atributos N/A
Informações disponíveis para qualquer usuário
do sistema. tip_id Contém o código do tipo de
máquina. NOT NULL INTEGER Primary Key
tip_nome Contém o nome do tipo de
máquina. NULL VARCHAR2(20)
tip_descricao Contém a descrição do tipo
ANEXO 11: Diretório de Dados em Nível Tático
Racionamentos
Relaciona-se Exportando para Importando de Relação
GERADOR grd_id GERADOR_TESTE_PERIODICO
GERADOR_TESTE_PERIODICO grd_id GERADOR
TIPO_TESTE_PERIODICO tst_id GERADOR_TESTE_PERIODICO
ALARME_OCORRENCIA grd_id GERADOR
LUZ_EMERGENCIA grd_id GERADOR
GERADOR grd_id INDUSTRIA
GERADOR_TESTE_PERIODICO ind_id INDUSTRIA
TIPO_TESTE_PERIODICO ind_id INDUSTRIA
ALARME_OCORRENCIA ind_id INDUSTRIA
LUZ_EMERGENCIA ind_id GERADOR
INDUSTRIA ind_id COMPUTADOR
INDUSTRIA ind_id FUNCIONARIO
INDUSTRIA ind_id ITEM
INDUSTRIA ind_id FINANCEIRO
PESSOA PES_ID FUNCIONARIO
FUNCIONARIO fun_id PONTO
ITEM ite_id FINANCEIRO
FINANCEIRO ind_id INDUSTRIA
EMERGENCY_NUMBER
ind_id
INDUSTRIAEMERGENCY_NUMBER_ITEM
emn_id
EMERGENCY_NUMBEREMERGENCY_NUMBER_ITEM_USAGE
eni_serial_nu
mber
EMERGENCY_NUMBER_ITEM
ACESSO ind_id INDUSTRIA
CAMERA ind_id INDUSTRIA
MAQUINA ind_id INDUSTRIA
PORTAO ind_id INDUSTRIA
ACESSO pes_id PESSOA
MAQUINA tip_id TIPO_MAQUINA
A seguir, é apresentado o grupo de usuários os quais irão acessar o sistema BDS-IN.
Peopleware
o
Administradores de Bancos de Dados: Responsáveis pela manutenção e
otimização das bases, bem como o gerenciamento de modificações.
o
Desenvolvedores: responsáveis pelo desenvolvimento de novos recursos.
o
Usuários do sistema: responsáveis pela inserção e manipulação dos dados.
Hardware
Computador servidor do Sistema Gerenciador de Bando de Dados – SGBD. O hardware
é o responsável pelo processamento das transações executadas através do SGBD.
Softwares
o
SGBD: Oracle 11g Spatial;
o
Software para Manipulação de Dados: Oracle SQL Developer.;
o
Sistema Operacional: Windows XP;
o
Modelagem de Dados: ER-Win 7.3.
Documentware
– Relatórios e diagramas produzidos pelos aplicativos citados, e apresentados neste
documento.
ANEXO 12: Dicionário de Recursos de Dados em Nível Tático
o
SGBD: Oracle 11g Spatial
o
Endereço de localização do Banco: 161.24.9.5
o
Porta: 1521
o
SID: ce240
o
Sistema Operacional Básico: Windows2000 Pro
o
Memória RAM: 1 GB
o
Frequência de Utilização: 24 horas
ANEXO 13: Dicionário de Metadados em Nível Tático
ANEXO 14: Extensão da 3aFN para os elementos incorporados ao seu Protótipo
Como extensão da normalização realizada no sistema ABD-ILU-IN, foi introduzida um
atributo IND_ID na tabela de itens de emergência, agora indicando qual a indústria pertence o
item de emergência. Os atributos de referencia mentos Longitude e Latitude se tornaram um
representado por um tipo BLOB.
Renormalização - BDS-IN
Os seguintes procedimentos foram executados, nessa ordem, para integração dos
protótipos de aplicativos de BD:
o
União das entidades INDUSTRIA dos protótipos de aplicativo de BD ADM e EQI,
mantendo os atributos mais relevantes;
o
Criação de relacionamentos 1..N entre as entidades identidade dos protótipos
de aplicativo de BD ILI e GRD e a entidade INDUSTRIA;
o
Separação da entidade FUNCIONARIO em FUNCIONARIO e PESSOA;
o
Criação de relacionamento 1..N entre as entidades ACESSO e PESSOA;
o
Padronização de nomenclatura nos nomes das entidades e seus atributos; e
o
Padronização dos tipos de dados utilizados.
Anomalias eliminadas
Nenhuma anomalia foi gerada durante o processo de integração. As entidade
mantiveram a 3FN durante todo o processo.
Experiências obtidas
Por não existirem requisitos para o protótipo de aplicativo de BD setorial, os protótipos
de aplicativos de BD individuais não possuíam características em comum. Isto resultou em uma
integração pobre, onde poucas informações úteis podem ser retiradas por consultas que
utilizem entidades de diferentes protótipos de aplicativos de BD individuais.
ANEXO 15:
Extensão da Massa de Dados para os elementos incorporados
para o Protótipo (Entidades/ Relações / Relacionamentos e Tuplas para
Testes)
CRIAÇÃO DAS ENTIDADES E RELACIONAMENTOS
CREATE TABLE INDUSTRIA ( ind_id NUMBER(19) NOT NULL,
ind_razao_social VARCHAR2(100) NOT NULL UNIQUE, ind_cnpj VARCHAR2(100) NOT NULL UNIQUE,
ind_localizacao MDSYS.SDO_GEOMETRY NOT NULL );
ALTER TABLE INDUSTRIA ADD CONSTRAINT INDUSTRIA_PK PRIMARY KEY (ind_id); CREATE SEQUENCE INDUSTRIA_SEQ;
INSERT INTO USER_SDO_GEOM_METADATA VALUES( 'INDUSTRIA', 'ind_localizacao',
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX INDUSTRIA_SDX ON INDUSTRIA (ind_localizacao) INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS ('SDO_INDX_DIMS=2 LAYER_GTYPE="POINT"');
CREATE TABLE COMPUTADOR ( com_id NUMBER(19) NOT NULL, ind_id NUMBER(19) NOT NULL,
com_nome VARCHAR2(100) NOT NULL UNIQUE, com_ip VARCHAR2(100) NULL,
com_descricao VARCHAR2(100) NULL,
com_localizacao MDSYS.SDO_GEOMETRY NOT NULL );
ALTER TABLE COMPUTADOR ADD CONSTRAINT COMPUTADOR_PK PRIMARY KEY (com_id);
ALTER TABLE COMPUTADOR ADD CONSTRAINT COMPUTADOR_FK1 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA;
CREATE SEQUENCE COMPUTADOR_SEQ;
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX COMPUTADOR_SDX ON COMPUTADOR (com_localizacao) INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS ('SDO_INDX_DIMS=2 LAYER_GTYPE="POINT"');
CREATE TABLE PESSOA ( pes_id NUMBER(19) NOT NULL, pes_nome VARCHAR2(100) NOT NULL, pes_cpf VARCHAR2(100) NOT NULL UNIQUE );
ALTER TABLE PESSOA ADD CONSTRAINT PESSOA_PK PRIMARY KEY (pes_id); CREATE SEQUENCE PESSOA_SEQ;
CREATE TABLE FUNCIONARIO ( fun_id NUMBER(19) NOT NULL, ind_id NUMBER(19) NOT NULL, pes_id NUMBER(19) NOT NULL, fun_cargo VARCHAR2(100) NULL, fun_salario NUMBER(20,2) NULL );
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNCIONARIO_PK PRIMARY KEY (fun_id);
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNCIONARIO_FK1 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA;
ALTER TABLE FUNCIONARIO ADD CONSTRAINT FUNCIONARIO_FK2 FOREIGN KEY (pes_id) REFERENCES PESSOA;
CREATE SEQUENCE FUNCIONARIO_SEQ;
CREATE TABLE PONTO (
pon_id NUMBER(19) NOT NULL, fun_id NUMBER(19) NOT NULL,
pon_data_hora_entrada TIMESTAMP NOT NULL, pon_data_hora_saida TIMESTAMP NULL );
ALTER TABLE PONTO ADD CONSTRAINT PONTO_FK1 FOREIGN KEY (fun_id) REFERENCES FUNCIONARIO; CREATE SEQUENCE PONTO_SEQ;
CREATE TABLE ITEM (
ite_id NUMBER(19) NOT NULL, ite_nome VARCHAR2(100) NOT NULL, ite_descricao VARCHAR2(100) NULL );
ALTER TABLE ITEM ADD CONSTRAINT ITEM_PK PRIMARY KEY (ite_id); CREATE SEQUENCE ITEM_SEQ;
CREATE TABLE FINANCEIRO ( fin_id NUMBER(19) NOT NULL, ind_id NUMBER(19) NOT NULL, ite_id NUMBER(19) NOT NULL, fin_ind_id NUMBER(19) NULL, fin_valor NUMBER(20,2) NOT NULL, fin_data TIMESTAMP NOT NULL );
ALTER TABLE FINANCEIRO ADD CONSTRAINT FINANCEIRO_PK PRIMARY KEY (fin_id);
ALTER TABLE FINANCEIRO ADD CONSTRAINT FINANCEIRO_FK1 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA;
ALTER TABLE FINANCEIRO ADD CONSTRAINT FINANCEIRO_FK2 FOREIGN KEY (fin_ind_id) REFERENCES INDUSTRIA;
ALTER TABLE FINANCEIRO ADD CONSTRAINT FINANCEIRO_FK3 FOREIGN KEY (ite_id) REFERENCES ITEM;
CREATE SEQUENCE FINANCEIRO_SEQ;
CREATE TABLE ALARME_OCORRENCIA ( grd_id NUMBER(19) NOT NULL, aoc_id NUMBER(7) NOT NULL,
aoc_data_ocorrencia TIMESTAMP NULL, aoc_tipo_ocorrencia NUMBER NULL, aoc_ocorrencia VARCHAR(150) NULL );
ALTER TABLE ALARME_OCORRENCIA ADD ( CONSTRAINT XPKGRD_ALARME_OCORRENCIA PRIMARY KEY (grd_id,
aoc_id) ) ;
CREATE TABLE GERADOR ( ind_id NUMBER(19) NOT NULL, grd_id NUMBER(19) NOT NULL,
grd_especificacao VARCHAR(200) NOT NULL, grd_tipo_combustivel VARCHAR2(3) NULL, grd_localizacao MDSYS.SDO_GEOMETRY NOT NULL, grd_capacidade_geracao_energia NUMBER(7) NULL, grd_energia_consumida NUMBER(7) NULL
);
ALTER TABLE GERADOR ADD ( CONSTRAINT XPKGRD_GERADOR PRIMARY KEY (grd_id) ) ;
CREATE TABLE GERADOR_TESTE_PERIODICO ( grd_id NUMBER(19) NOT NULL,
tst_id NUMBER(19) NOT NULL, grt_data_teste TIMESTAMP NOT NULL, grt_resultado VARCHAR(100) NOT NULL );
ALTER TABLE GERADOR_TESTE_PERIODICO ADD ( CONSTRAINT XPKGRD_GERADOR_TESTE_PERIODICO PRIMARY KEY
(grd_id, tst_id) ) ;
CREATE TABLE LUZ_EMERGENCIA_OCORRENCIA ( grd_id NUMBER(19) NOT NULL,
lem_id NUMBER(19) NOT NULL,
lem_data_ocorrencia TIMESTAMP NULL, lem_tipo_ocorrencia NUMBER NULL, lem_ocorrencia VARCHAR(150) NOT NULL );
ALTER TABLE LUZ_EMERGENCIA_OCORRENCIA ADD ( CONSTRAINT XPKGRD_LUZ_EMERGENCIA_OCORRENC PRIMARY KEY
CREATE TABLE TIPO_TESTE_PERIODICO ( tst_id NUMBER(19) NOT NULL,
tst_periodicidade VARCHAR(15) NULL, tst_descricao VARCHAR(100) NOT NULL );
ALTER TABLE TIPO_TESTE_PERIODICO ADD ( CONSTRAINT XPKGRD_TIPO_TESTE_PERIODICO PRIMARY KEY
(tst_id) );
ALTER TABLE ALARME_OCORRENCIA ADD ( CONSTRAINT R_104 FOREIGN KEY (grd_id) REFERENCES GERADOR );
ALTER TABLE GERADOR_TESTE_PERIODICO ADD ( CONSTRAINT R_102 FOREIGN KEY (tst_id) REFERENCES
TIPO_TESTE_PERIODICO );
ALTER TABLE GERADOR_TESTE_PERIODICO ADD ( CONSTRAINT R_101 FOREIGN KEY (grd_id) REFERENCES
GERADOR );
ALTER TABLE LUZ_EMERGENCIA_OCORRENCIA ADD ( CONSTRAINT R_93 FOREIGN KEY (grd_id) REFERENCES
GERADOR );
ALTER TABLE GERADOR ADD ( CONSTRAINT GRD_GERADOR_FK1 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA );
CREATE TABLE EMERGENCY_NUMBER (
ind_id NUMBER(19) NOT NULL ENABLE, emn_id NUMBER(19) NOT NULL ENABLE,
emn_part_number VARCHAR2(50) NOT NULL ENABLE, emn_supplier VARCHAR2(50),
emn_power_wh NUMBER(3,0) NOT NULL ENABLE,
CONSTRAINT EMERGENCY_NUMBER_PK PRIMARY KEY (emn_id) ENABLE, CONSTRAINT EMERGENCY_NUMBER_CON FOREIGN KEY (ind_id) REFERENCES INDUSTRIA (ind_id) ENABLE
CREATE TABLE EMERGENCY_NUMBER_ITEM (
eni_serial_number NUMBER(19) NOT NULL ENABLE, emn_id NUMBER(19) NOT NULL ENABLE,
eni_location MDSYS.SDO_GEOMETRY NOT NULL ENABLE,
CONSTRAINT EMERGENCY_NUMBER_ITEM_PK PRIMARY KEY (eni_serial_number) ENABLE, CONSTRAINT EMERGENCY_NUMBER_ITEM_CON FOREIGN KEY (emn_id)
REFERENCES EMERGENCY_NUMBER (emn_id) ENABLE );
CREATE TABLE EMERGENCY_NUMBER_ITEM_USAGE (
enu_id NUMBER(19) NOT NULL ENABLE,
eni_serial_number NUMBER(19) NOT NULL ENABLE, enu_last_usage TIMESTAMP NOT NULL ENABLE,
enu_last_duration_usage NUMBER(18,0) NOT NULL ENABLE,
CONSTRAINT EMERGENCY_NUM_ITE_USG_PK PRIMARY KEY (enu_id) ENABLE, CONSTRAINT EMERGENCY_NUM_ITE_USG_CON FOREIGN KEY (eni_serial_number) REFERENCES EMERGENCY_NUMBER_ITEM (eni_serial_number) ENABLE
);
CREATE TABLE ACESSO (
ace_id NUMBER(19) NOT NULL, pes_id NUMBER(19) NOT NULL, ace_data TIMESTAMP NOT NULL ,
ace_tipo VARCHAR2(10) NOT NULL CONSTRAINT ACES_ace__ace__1076492529 CHECK (ace_tipo IN
('ENTRADA', 'SAIDA')), por_id NUMBER(19) NOT NULL, ind_id NUMBER(19) NOT NULL );
CREATE TABLE CAMERA (
cam_id NUMBER(19) NOT NULL ,
cam_setor MDSYS.SDO_GEOMETRY NOT NULL , cam_posicao MDSYS.SDO_GEOMETRY NOT NULL ,
cam_status VARCHAR2(20) NULL CONSTRAINT CAME_cam__cam__792887176 CHECK (cam_status IN ('OFF', 'PERIODICA', 'PARADA')),
ind_id NUMBER(19) NOT NULL );
CREATE UNIQUE INDEX XPKCAMERA ON CAMERA ( cam_id ASC );
ALTER TABLE CAMERA ADD CONSTRAINT XPKCAMERA PRIMARY KEY (cam_id); CREATE TABLE MAQUINA
(
maq_id NUMBER(19) NOT NULL ,
maq_status VARCHAR2(100) NOT NULL CONSTRAINT MAQU_maq__maq__1167296408 CHECK (maq_status IN
('ON', 'OFF', 'QUEBRADA')),
maq_data_manutencao TIMESTAMP NULL , tip_id NUMBER(19) NOT NULL ,
maq_consumo FLOAT NULL , ind_id NUMBER(19) NOT NULL ,
maq_posicao MDSYS.SDO_GEOMETRY NULL );
CREATE UNIQUE INDEX XPKMAQUINA ON MAQUINA ( maq_id ASC );
ALTER TABLE MAQUINA ADD CONSTRAINT XPKMAQUINA PRIMARY KEY (maq_id);
CREATE TABLE PORTAO (
por_id NUMBER(19) NOT NULL ,
por_localizacao MDSYS.SDO_GEOMETRY NOT NULL, ind_id NUMBER(19) NOT NULL
);
CREATE UNIQUE INDEX XPKPORTAO ON PORTAO (por_id ASC);
CREATE TABLE TIPO_MAQUINA (
tip_id NUMBER(19) NOT NULL , tip_nome VARCHAR2(20) NULL , tip_descricao VARCHAR2(100) NULL );
CREATE UNIQUE INDEX XPKTIPO_MAQUINA ON TIPO_MAQUINA ( tip_id ASC );
ALTER TABLE TIPO_MAQUINA ADD CONSTRAINT XPKTIPO_MAQUINA PRIMARY KEY (tip_id);
ALTER TABLE ACESSO ADD (CONSTRAINT R_8 FOREIGN KEY (por_id) REFERENCES PORTAO(por_id)); ALTER TABLE ACESSO ADD (CONSTRAINT R_9 FOREIGN KEY (pes_id) REFERENCES PESSOA(pes_id)); ALTER TABLE ACESSO ADD (CONSTRAINT R_10 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA(ind_id));
ALTER TABLE CAMERA ADD (CONSTRAINT R_5 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA(ind_id));
ALTER TABLE MAQUINA ADD (CONSTRAINT R_3 FOREIGN KEY (tip_id) REFERENCES TIPO_MAQUINA(tip_id) ON
DELETE SET NULL);
ALTER TABLE MAQUINA ADD (CONSTRAINT R_4 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA(ind_id));
ALTER TABLE PORTAO ADD (CONSTRAINT R_6 FOREIGN KEY (ind_id) REFERENCES INDUSTRIA(ind_id));
INSERT INTO USER_SDO_GEOM_METADATA VALUES( 'CAMERA', 'cam_setor',
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX CAMERA_SDX1 ON CAMERA (cam_setor) INDEXTYPE IS MDSYS.SPATIAL_INDEX; INSERT INTO USER_SDO_GEOM_METADATA VALUES( 'CAMERA', 'cam_posicao',
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX CAMERA_SDX2 ON CAMERA (cam_posicao) INDEXTYPE IS MDSYS.SPATIAL_INDEX; INSERT INTO USER_SDO_GEOM_METADATA VALUES( 'PORTAO', 'por_localizacao',
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX PORTAO_SDX ON PORTAO (por_localizacao) INDEXTYPE IS MDSYS.SPATIAL_INDEX; INSERT INTO USER_SDO_GEOM_METADATA VALUES( 'MAQUINA', 'maq_posicao',
MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('LONG', -73.994423393, -28.835883971, 5.0E-8), MDSYS.SDO_DIM_ELEMENT('LAT', -33.752061377, 5.271806856, 5.0E-8)), null);
CREATE INDEX MAQUINA_SDX ON MAQUINA (maq_posicao) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
MASSA DE DADOS
INSERT INTO INDUSTRIA (ind_id, ind_razao_social, ind_cnpj, ind_localizacao) VALUES (INDUSTRIA_SEQ.NEXTVAL, 'ITA', '00.394.429/0144-03', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.6292615125, -45.3817900343))); INSERT INTO INDUSTRIA (ind_id, ind_razao_social, ind_cnpj, ind_localizacao) VALUES (INDUSTRIA_SEQ.NEXTVAL, 'CTA', '00.394.429/0140-80', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.6292615125, -45.9817900343))); INSERT INTO INDUSTRIA (ind_id, ind_razao_social, ind_cnpj, ind_localizacao) VALUES (INDUSTRIA_SEQ.NEXTVAL, 'Fundação Casimiro Montenegro Filho', '64.037.492/0001-72', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL, SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.1292615125, -45.3817900343)));
INSERT INTO COMPUTADOR (com_id, ind_id, com_nome, com_ip, com_descricao, com_localizacao) VALUES
(COMPUTADOR_SEQ.NEXTVAL, 1, 'PC1', '192.168.0.1', 'PC1', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.6392615125, -45.9817900343))); INSERT INTO COMPUTADOR (com_id, ind_id, com_nome, com_ip, com_descricao, com_localizacao) VALUES
(COMPUTADOR_SEQ.NEXTVAL, 1, 'PC2', '192.168.0.2', 'PC2', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.6492615125, -45.9817900343))); INSERT INTO COMPUTADOR (com_id, ind_id, com_nome, com_ip, com_descricao, com_localizacao) VALUES
(COMPUTADOR_SEQ.NEXTVAL, 1, 'PC3', '192.168.0.3', 'PC3', MDSYS.SDO_GEOMETRY( 2001, NULL, NULL,
SDO_ELEM_INFO_ARRAY (1,1,1), SDO_ORDINATE_ARRAY (-23.6392615125, -45.9717900343)));
INSERT INTO PESSOA (pes_id, pes_nome, pes_cpf) VALUES (PESSOA_SEQ.NEXTVAL, 'Huguinho', '245.323.124-71');