Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Apresentação Oracle Spatial - ERBD 2013

Apresentação Oracle Spatial - ERBD 2013

No inicio dos bancos de dados, apenas informações na forma textual e numérica eram produzidas e armazenadas. Isso porque os Sistemas Gerenciadores de Banco de Dados (SGBDs) foram criados para atender a necessidade de aplicativos comerciais armazenarem e recuperarem dados de forma simples e segura. Contudo, com o passar dos anos, outras informações começaram a ser produzidas e, com isso, necessitavam ser armazenadas. Estas novas informações são conhecidas como complexas e abrangem dados na forma de imagem, áudio, sequências temporais, dados geográficos, entre outros. Entre os dados complexos, as informações geográficas têm crescido consideravelmente, sendo este crescimento impulsionado por empresas, órgãos militares e instituições ambientais, que desejam armazenar informações geográficas vindas de satélites, medições e áreas de terrenos, pontos de interesse militar, dados 3D, entre outros. Para suprir a necessidade de armazenamento seguro e facilidade de recuperação destes dados, os SGBDs tem se adaptado. Os principais bancos de dados do mercado têm criado em sua estrutura formas de armazenar, representar e recuperar dados geográficos com a mesma facilidade dos dados simples, como textos e informações numéricas. Entre os bancos de dados que tratam informações geográficas, está o Oracle Database com suas soluções Oracle Spatial e Oracle Locator. Estas soluções, em conjunto, fornecem ao desenvolvedor a possibilidade de trabalhar com dados 3D, Web Services Espaciais, funções espaciais, mecanismo de criação de rotas, entre outras opções.

Avatar for Marcelo Kruger

Marcelo Kruger

July 14, 2013

More Decks by Marcelo Kruger

Other Decks in Programming

Transcript

  1. Roteiro •  Introdução •  O que é a Oracle? • 

    Principais produtos da Oracle •  SGBD Oracle e forma de licenciamento •  Estrutura do SGBD Oracle •  Oracle Locator e suas funções •  Oracle Spatial e suas funções •  Integrando informações geográficas com o GeoKettle •  Oque é ETL? •  Oque é o Kettle e GeoKettle? •  Principais funções do GeoKettle •  Conclusão
  2. Quem sou eu? •  Graduando em ciência da computação pela

    Universidade do Vale do Itajaí (UNIVALI). •  Atua no setor de banco de dados desde 2008. •  Desenvolvedor Java e C. •  Especialista em ETL com Pentaho Data Integration (Kettle). •  Especialista em bancos de dados Oracle e DB2. •  Atualmente atua no setor de banco de dados da Digitro Tecnologia.
  3. E vocês? •  Já utilizou um banco de dados? • 

    Já administrou um banco de dados? •  Já utilizou alguma extensão ou função geográfica do banco de dados? •  Já utilizou o banco de dados Oracle? •  Desenvolvedor •  Administrador •  Já utilizou o Oracle Spatial ou Locator?
  4. Introdução •  Desde os primeiros registros de escrita até os

    dias atuais grande quantidade de dados textuais e numéricos vem sendo produzidos. •  Novos tempos, novos meios de geração de informação. Grande quantidade de dados tradicionais (Textuais e Numéricos) e complexos. •  Armazenar e recuperar informações textuais e complexas é necessário. •  Informações textuais já são armazenadas e manipuladas em SGBDs. •  É possível utilizar SGBDs também para dados complexos?
  5. Introdução •  Dados de cunho complexo podem ser armazenados e

    recuperados em SGBDs •  Banco de dados Oracle fornecem a possibilidade de tratar informações complexas. •  Dados multimídia: Oracle interMedia •  Dados geográficos: Oracle Spatial e Oracle Locator
  6. O que é a Oracle •  Comumente conhecida como desenvolvedora

    de banco de dados. •  Surgiu de uma oportunidade vislumbrada por: Larry Ellison Bruce Scott Bob Miner Ed Oates
  7. O que é a Oracle •  Surgiu da oportunidade do

    desenvolvimento de um sistema de banco de dados que implementasse o modelo relacional. •  Larry Ellison acompanhou trabalhos da IBM, um deles o projeto System/R que utilizava modelo proposto por Edgar Frank Codd. O SEQUEL/2 ou SQL. •  O uso do modelo SEQUEL/2 tornou a Oracle líder em banco de dados, e a segunda maior empresa de software independente no mundo.
  8. O que é a Oracle •  Hardware and Software, Engineered

    to Work Together”(Hardware e Software, Projetado para trabalhar em conjunto)
  9. O que é a Oracle Curiosidades •  A Oracle foi

    fundada em agosto de 1977, inicialmente foi chamada de Software Development Labs (SDL), uma empresa de consultoria que contava com Bob Miner (presidente), Ed Oates e Bruce Scott (engenheiros de software). •  Larry Ellison, um dos grandes nomes da Oracle, trabalhava na empresa para a qual a SDL, prestava a consultoria. •  Antes de formar a Oracle, Bob Miner foi gerente de Larry Ellison em um projeto da CIA, apelidado de “Oracle”. Nome este que foi colocado posteriormente na empresa e em seu principal produto.
  10. O que é a Oracle Curiosidades •  Bruce Scott é

    o SCOTT, e TIGER era o nome do gato de sua filha. Scott/tigger é usado até hoje nos schemas de exemplo do sistema gerenciador de banco de dados da Oracle. + =
  11. O que é a Oracle Curiosidades •  Scott deixou a

    Oracle em 1982, depois de aproximadamente cinco anos trabalhando. Quando saiu, foi terminada a versão 3 do banco de dados. •  Parte do código do analisador no banco de dados atual ainda pode ser de Scott.
  12. O que é a Oracle Curiosidades •  A aquisição da

    Sun foi ponto importante para Oracle. Adquirida em 2010, a Sun teve seus produtos, tecnologia e soluções incorporadas ao catalogo de soluções Oracle. A solução de Hardware Sun, proporcionou a Oracle a criação de Hardwares de altíssima qualidade e poder de processamento, um exemplo é o Exadata. Na parte de Software o Java foi incorporado em grande parte dos produtos, incluindo ferramentas de desenvolvimento e banco de dados.
  13. •  Até 128 núcleos de CPU e 2 TB de

    memória para processamento de banco de dados •  Até 22,4 TB de Exadata Smart Flash Cache •  Até 224 TB de espaço por rack •  Sistema operacional Oracle Linux ou Solaris
  14. Principais Produtos Oracle Database •  1977 - Oracle release 1

    •  Construído utilizando linguagem assembly PDP-11. Este banco executava em maquina DEC PDP-11. Versão não comercializada. •  1979 - Oracle release 2 •  Construído utilizando linguagem assembly PDP-11. Este banco executava em maquina DEC PDP-11. Força aérea americana e a CIA foram os primeiros clientes a utilizar o Oracle V2. •  1983 - Oracle release 3 •  Esta versão foi escrita em linguagem C, e executava em mainframes, minicomputadores, PCs ou hardwares que executavam compiladores C. Versão já suportava instruções SQL e controle de transações.
  15. Principais Produtos Oracle Database •  1984 - Oracle release 4

    •  Incluía suporte para leitura consistente e também a introdução dos utilitários de exportação/importação e do escritor de relatório, o que permite uma capacidade de criar um relatório baseado em uma consulta. •  1985 - Oracle release 5 •  Esta versão foi equipada com a capacidade de ligar o software dos clientes através de uma rede para um servidor de banco de dados. A tecnologia de cluster foi introduzido nesta versão, tornando a Oracle em pioneira este novo conceito. •  1988 - Oracle release 6 •  A linguagem PL / SQL do Oracle veio com a versão 6 em 1988.
  16. Principais Produtos Oracle Database •  1992 - Oracle release 7

    •  Foram quatro anos de trabalho e dois anos de testes antes do lançamento para o mercado. Esta versão do Oracle fornecia uma vasta gama de novos recursos e capacidades em áreas como segurança, administração, desenvolvimento e desempenho. Versão 7 também permitiu monitorar cada comando, o uso de privilégios e acesso do usuário para um determinado item. Com o Oracle 7, usuários poderiam usar procedimentos armazenados e tinha triggers para fazer valer regras de negócio. •  1997 - Oracle release 8 •  Desenvolvido para trabalhar com a Oracle Network Computer (NC). Esta versão suportava Java, HTML e OLTP. •  1998 - Oracle release 8i •  Trabalhava com o sistema operacional Linux.
  17. Principais Produtos Oracle Database •  2001 - Oracle release 9i

    •  Oracle Real Application Cluster veio com banco de dados Oracle 9i em 2001. Suporte XML nativo também foi um novo recurso do Oracle 9i e este foi o primeiro banco de dados relacional a ter essas características. •  2003 - Oracle release 10g •  Com o lançamento trouxeram a introdução de tecnologia Grid Computing. Os centros de dados podem agora compartilhar recursos de hardware, reduzindo assim o custo da infra-estrutura de computação. 10g foi também a primeira versão do Oracle com suporte para 64 bits no Linux. Com o Oracle Database 10g e Real Application Cluster agora era possível passar de mainframes para uma infra-estrutura que se baseia em custos baixos, como UNIX ou Windows.
  18. Principais Produtos Oracle Database •  2005 - Oracle release 10g

    XE •  Com a introdução do Express 10g Edition, em 2005, a Oracle deu a empresas de pequeno porte uma opção viável para uso de seu banco de dados. •  2007 - Oracle release 11g
  19. SGBD Oracle e forma de licenciamento •  Oracle XE –

    Express Edition •  Oracle Standard Edition One •  Oracle Standard Edition •  Oracle Enterprise Edition
  20. SGBD Oracle e forma de licenciamento •  Oracle XE –

    Express Edition •  Sem custo / Sem suporte da Oracle. •  Oracle Standard Edition One •  Perpetuo: US$5.800,00 (RS$ 11.600,00) / Processador •  1 ano: US$1.160,00 (RS$ 2.320,00) / Processador •  Suporte: US$1.276,00 (RS$ 2.552,00) / Ano •  Oracle Standard Edition •  Perpetuo: US$17.500,00 (RS$ 35.000,00) / Processador •  1 ano: US$3.500,00 (RS$ 7.000,00) / Processador •  Suporte: US$3.850,00 (RS$ 7.700,00) / Ano •  Oracle Enterprise Edition •  Perpetuo: US$47.500,00 (RS$ 95.000,00) / Processador •  1 ano: US$9.500,00 (RS$ 19.000,00) / Processador •  Suporte: US$10.450,00 (RS$ 20.900,00) / Ano * Dados de 04/13 | Valor do Dólar: RS$ 2,00
  21. SGBD Oracle e forma de licenciamento •  Oracle Locator • 

    Sem custo •  Disponível em todas as versões do SGBD Oracle. •  Oracle Spatial (Somente para Oracle Enterprise Edition) •  Perpetuo: US$17.500,00 (RS$ 35.000,00) / Processador •  1 ano: US$3.500,00 (RS$ 7.000,00) / Processador •  Suporte: US$3.850,00 (RS$ 7.700,00) / Ano * Dados de 04/13 | Valor do Dólar: RS$ 2,00
  22. •  Composta por uma área de memoria (SGA) •  Composta

    por processos em segundo plano •  É a estrutura necessária para acessar e manipular os dados de um determinado esquema. (Coração do banco de dados)
  23. •  Área de memoria do banco de dados •  Partilhado

    pelo utilizadores da instancia •  Armazena dados, informações de controle e instruções SQL. •  Atua como buffer, quando maior sua dimensão, menor o tempo de resposta do banco (Tempo de memoria menor que tempo de I/O).
  24. •  Utilizada para armazenar o dicionário de dados •  Comandos

    executados recentemente (SQL / PLSQL) •  Cache de resultado de função •  ...
  25. •  Contem os blocos lidos do datafile. Parte dos dados

    do disco estão nesta área de memoria •  Área compartilhada com todos os usuários conectados a instancia •  A principal funcionalidade é não deixar fazer I/O no disco.
  26. •  Utilizado para registrar as alterações feitas no banco de

    dados •  A principal função é tornar possível refazer uma determinada transação. Ligado as instruções de rollback e checkpoint.
  27. Processos Background •  LGWR (LogWriter Process): Processo responsável pela gestão

    do Redo Log Buffer •  DBWR (Database Write Process): Escreve o buffer sujo (dirty) do Buffer Cache no datafile •  CKPT (Checkpoint Process): Utiliza timestamps para marcar os datafiles e controlfiles para indicar um ponto de recuperação. •  SMON (System Monitor Process): Processo que executa a recuperação, se necessário na inicialização da instância. Responsável pela limpeza dos segmentos temporários.
  28. Processos Background •  PMON (Process Monitor Process): Realiza o processo

    de recuperação, quando um processo do usuário falhar. É responsável pela limpeza do cache no buffer no banco de dados e libera recursos que o processo do usuário estava utilizando. •  ARC (Archiver Processes): Copia os dados do redo log files e armazena dentro do Archived Log file. Só irá funcionar este processo de ARC se o banco de dados estiver no modo ARCHIVELOG e se o arquivamento estiver ativado automaticamente.
  29. select * from employees where employee_id=:1 for update of salary;

    update employees set salary=:2 where employee_id=:1; commit; Cliente envia SQL para o Processo Servidor
  30. Server process procura no shared pool uma instrução identica a

    que vai ser executada. Se não encontrar vai compilar a mesma e armazena-la na shared pool.
  31. Se não encontrar os blocos no buffer cache o server

    process vai até os datafiles buscar as informações necessarias. Esta operação é mais lenta que a busca no buffer cache, uma vez que os datafiles estão em disco.
  32. Terminado o select for update é submetida a segunda instrução;

    update. Esta instrução também sofre o mesmo processo de parsing do select e busca de blocos. A probabilidade dos dados estarem na memoria é maior. Uma cópia de todos os blocos selecionados para update é guardada nos segmentos de rollback. Os blocos são depois alterados pelo update. Tudo isto é feito na buffer cache.
  33. À medida que os blocos vão sendo alterados em RAM

    uma cópia da operação é escrita no redo buffer;
  34. Quando o comando Commit é submetido pelo cliente, o Oracle

    tem que garantir que todos os redo buffers associados à transação são escritos no redo log. Só depois disso é confirmado o commit ao cliente e são libertados os locks dos blocos
  35. Se a base de dados estiver em Archive Mode, logo

    que um redo log fica inativo o processo Archiver, que corre em background, copia o seu conteúdo para um arquivo definitivo em outro diretório.
  36. São feitos checkpoint regulares na base de dados. Estes checkpoints

    migram os dados que estão no buffer cache para os datafiles.
  37. Oracle Locator e suas funções •  Possui estrutura e funções

    básicas para dados geográficos. •  É parte do Oracle Spatial. •  Está incluso em TODAS as versões do Oracle. Isso inclui a versão Express Edition (XE). •  Não é projetado para atender todas as necessidades de um sistema de informação geográfica, uma vez que o mesmo é limitado a algumas funções, não respondendo a consultas com alto grau de complexidade. •  Igual ao Spatial, o Locator não é projetado para ser uma aplicação para usuário final. Eu intuito é fornecer capacidades espaciais para desenvolvedores de aplicativos.
  38. Oracle Locator e suas funções •  O Locator inclui os

    tipos de dados, operadores, e as capacidades de indexação do Oracle Spatial (RTREE), juntamente com um conjunto limitado de funções e procedimentos. Estão incluídos no Locator. •  Tipo básico de dados geográficos (SDO_GEOMETRY). Este objeto descreve e suporta qualquer geometria. •  Capacidade de indexação de dados espaciais. •  Operadores espaciais que usam o índice espacial sobre o dado de geometria. •  A l g u m a s f u n ç õ e s e s p a c i a i s e d e a g r e g a ç ã o (SDO_AGGR_MBR).
  39. Oracle Locator e suas funções SDO_GEOMETRY •  Tipo básico para

    geometria no Oracle. •  Armazena qualquer geometria. •  Tipo do dado SDO_GEOMETRY
  40. Oracle Locator e suas funções SDO_GEOMETRY •  Estrutura do tipo

    SDO_GEOMETRY •  SDO_GTYPE: Especifica o tipo de geometria (Ponto, linha, polígono, multi polígono, etc.). •  SDO_SRID: Especifica o sistema geodésico (Sistema de coordenada) da geometria. Ex: SAD69 = SRID 4618. •  SDO_POINT: Se a geometria é um ponto, as coordenadas estarão armazenadas neste campos. •  SDO_ORDINATES: Armazena as coordenadas de todos os elementos da geometria. •  SDO_ELEM_INFO: Especifica onde um elemento começa e como ele está conectado.
  41. Oracle Locator e suas funções Indexação de dados espaciais • 

    Índices espaciais do Oracle utilizam o RTREE. •  A criação do índice espacial é similar a um índice simples. A diferença de um BTREE para o espacial é o tipo MDSYS.SPATIAL_INDEX. •  Objetivo do índice espacial é otimizar as consultas que utilizam os campos que possuem geometria.
  42. Oracle Locator e suas funções Indexação de dados espaciais • 

    Antes de criar um índice espacial é necessário especificar as i n f o r m a ç õ e s d o c a m p o q u e p o s s u í o t i p o SDO_GEOMETRY. •  A definição do campo de tipo SDO_GEOMETRY deve ser inserida na view USER_SDO_GEOM_METADATA. •  Caso não seja preenchida a view será liberado o seguinte erro.
  43. Oracle Locator e suas funções Indexação de dados espaciais • 

    Exemplo de inserção na view USER_SDO_GEOM_METADATA. Especifica a configuração da geometria. Informa nome de dimensão, limites e tolerância
  44. Oracle Locator e suas funções Operadores espaciais •  O Oracle

    Locator possibilita o uso dos seguintes operadores. •  SDO_FILTER: Especifica que geometrias podem interagir com uma determinada geometria. •  SDO_JOIN: Executa uma junção espacial com base em uma ou mais relações topológicas. •  SDO_NN: Determina os vizinhos mais próximos de uma determinada geometria. •  SDO_NN_DISTANCE: Retorna a distancia de um objeto retornado pelo SDO_NN. •  SDO_RELATE: Determina de duas geometrias interagem de uma maneira especifica. •  SDO_WITHIN_DISTANCE: Determina se duas geometrias estão dentro de uma distancia especificada.
  45. Oracle Spatial e suas funções •  Presente APENAS na versão

    Enterprise. •  É necessário licenciamento. •  Além das funções e tipos presentes no Oracle Locator, o Spatial possui: •  Geração de buffer •  Agregados Espaciais •  Cálculos de área e distancia •  Inclui o tipo de dados GeoRaster para armazenar e gerenciar dados e metadados de raster de imagens e em grade. •  Mecanismos de geo codificação e criação de rotas •  Funções de analise espacial e mineração. •  Suporte a Webservices espaciais.
  46. Oracle Spatial e suas funções Funções espaciais •  Spatial possui

    diversas funções de manipulação de dados espaciais. As mais comuns estão localizadas nos seguintes pacotes. •  SDO_GEOM •  SDO_UTIL
  47. Oracle Spatial e suas funções Pacote SDO_GEOM •  As principais

    funções do pacote SDO_GEOM são: •  SDO_GEOM.WITHIN_DISTANCE •  SDO_GEOM.SDO_UNION •  SDO_GEOM.SDO_LENGTH •  SDO_GEOM.SDO_INTERSECTION •  SDO_GEOM.SDO_DISTANCE •  SDO_GEOM.SDO_CENTROID
  48. Oracle Spatial e suas funções Pacote SDO_UTIL •  As principais

    funções do pacote SDO_GEOM são: •  SDO_UTIL.FROM_WKTGEOMETRY •  SDO_UTIL.FROM_WKBGEOMETRY •  SDO_UTIL.CONVERT_UNIT •  SDO_UTIL.GETVERTICES •  SDO_UTIL.TO_WKBGEOMETRY •  SDO_UTIL.TO_WKTGEOMETRY
  49. Oracle Spatial e suas funções Estrutura •  Grande parte das

    funções do Oracle Spatial, seguem a seguinte estrutura. •  PACOTE.NOME_FUNCAO ( GEOMETRIA 1, GEOMETRIA 2, TOLERANCIA, OPCAO ); •  SDO_GEOM.SDO_DISTANCE( GEOM_TI, GEOM_FUNAI, 0.5, 'UNIT=KM’ );
  50. Referências •  http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_objgeom.htm •  http://docs.oracle.com/cd/F49540_01/DOC/inter.815/a67295/sdo_objg.htm •  http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_util.htm •  http://docs.oracle.com/html/B10826_01/sdo_operat.htm • 

    http://www.spatialdbadvisor.com/oracle_spatial_tips_tricks/55/oracle-locator-vs- enterprise-licensing-the-sdogeom-package •  http://www.oracle.com/us/products/database/enterprise-edition/comparisons/ index.html#ct02-Download •  http://profissionaloracle.com.br/blogs/portilho/2009/03/15/quanto-custa-o-oracle/ •  http://aserlorenzo.com/manSQL/Oracle/introducao/oracleArquitectura.htm •  http://aprenderoracle.com/2011/05/arquitetura-do-banco-de-dados/ •  http://www.linhadecodigo.com.br/artigo/99/a-arquitetura-do-oracle.aspx •  Livro Pro Oracle Spatial for Oracle Database 11g. Ravi Kothuri, Albert Godfrind, Euro Beinat.