Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos em Banco de Dados Material Teórico Responsável pelo Conteúdo: Prof. Ms. Rodrigo da Rosa Revisão Técnica: Prof. Me. Douglas Almendro Revisão Textual: Profa. Ms. Luciene Oliveira da Costa Santos Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) • Conceitos em Bancos de Dados em Nuvem • Conceitos em Bancos de Dados Espaciais • Conceitos em Bancos de Dados Distribuídos • Conceitos em Bancos de Dados Não Relacionais · Reconhecer diferenças e semelhanças entre sistemas de banco de dados. Além disso, deverá compreender aspectos fundamentais sobre as novas tecnologias referentes a banco de dados. OBJETIVO DE APRENDIZADO Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) Orientações de estudo Para que o conteúdo desta Disciplina seja bem aproveitado e haja uma maior aplicabilidade na sua formação acadêmica e atuação profissional, siga algumas recomendações básicas: Assim: Organize seus estudos de maneira que passem a fazer parte da sua rotina. Por exemplo, você poderá determinar um dia e horário fixos como o seu “momento do estudo”. Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma alimentação saudável pode proporcionar melhor aproveitamento do estudo. No material de cada Unidade, há leituras indicadas. Entre elas: artigos científicos, livros, vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você também encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados. Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discussão, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e aprendizagem. Organize seus estudos de maneira que passem a fazer parte Mantenha o foco! Evite se distrair com as redes sociais. Mantenha o foco! Evite se distrair com as redes sociais. Determine um horário fixo para estudar. Aproveite as indicações de Material Complementar. Procure se alimentar e se hidratar quando for estudar, lembre-se de que uma Não se esqueça de se alimentar e se manter hidratado. Aproveite as Conserve seu material e local de estudos sempre organizados. Procure manter contato com seus colegas e tutores para trocar ideias! Isso amplia a aprendizagem. Seja original! Nunca plagie trabalhos. UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) Novas Tecnologias em Banco de Dados Nesta unidade, vamos abordar conceitos importantes a respeito de tecnologias emergentes que têm recebido destaque e aceitação por parte dos usuários de sistemas de banco de dados. A sociedade, de modo geral, está cada vez mais conectada à Internet, e este fato faz com que um imenso volume de dados seja gerado a cada minuto no mundo inteiro. Os sistemas convencionais, muitas vezes, não conseguem se adaptar às demandas tecnológicas e, por isso, novos sistemas devem ser estudados, definidos e implementados. Banco de Dados em Nuvem Computação em nuvem (cloud computing) é um termo que está associado à ideia de possibilidade de acesso a dados e programas por meio da Internet. Imagine que você gostaria de acessar arquivos de músicas que estão armazenados no HD de seu computador pessoal. São músicas que te agradam e a cada dia você disponibiliza certo tempo para ouvi-las. Enquanto você estiver perto de seu equipamento, poderá ouvir suas músicas, porém, como fará isso em um dia que estiver distante dele, mesmo que esteja utilizando outro PC? Esse problema é resolvido se suas canções estiverem armazenadas em servidores da web. Nesse caso, você poderá acessar seus arquivos de qualquer computador que tenha acesso à Internet. Isso é computação em nuvem. Ex pl or A figura a seguir mostra uma representação simples do conceito de computação em nuvem: 0:00/2:56 Figura 1 - Ideia básica de computação em nuvem Fonte: Acervo do Conteudista 8 9 As empresas, de modo geral, têm buscado armazenar seus dados (banco de dados) em nuvem para que funcionários, clientes e até mesmo usuários possam acessar tais dados que sejam de interesse e que haja permissões para isso. Por exemplo, as empresas de e-commerce hospedam seus dados na nuvem, e os clientes, quando necessitam de algum produto, acessam o site específico e utilizam a busca de produtos para realizarem as suas compras ou pesquisas. Existem empresas (Amazon, Microsoft, Google, IBM, outras) que comercializam serviços de armazenamento de dados em seus servidores, na nuvem. Os clientes podem gerenciar banco de dados relacionais ou não relacionais diretamente nesses provedores. Algumas companhias conhecidas, como a Netflix, já migraram 100% dos seus centros de dados para a Infraestrutura como Serviço em Nuvem (VALOR. COM.BR, 2016). Para a escolha da melhor empresa de prestação deste tipo de serviço, algumas características devem ser levadas em consideração (CLOUD21.COM.BR, 2016): » Provedor com credibilidade e estabilidade financeira: a preferência deve ser para empresas com credibilidade no mercado local e que tenham estabilidade financeira para hospedar as aplicações de negócios de sua empresa; » Localização do Data Center: é importante identificar onde os dados da empresa ficarão armazenados fisicamente; » Recuperação de desastres: a empresa deve contar com outros Data Centers distribuídos geograficamente para reduzir riscos e garantir a continuidade de negócios em casos de incidentes. Ter mais de uma localização é uma medida importante para recuperação de desastres; » Segurança para proteção de dados: a segurança é uma das maiores preocupações das empresas na migração de dados de negócios para nuvem. É importante conhecer os mecanismos adotados pelo provedor para proteção de dados sigilosos como firewall, criptografia robusta, sistemas de combate a ataque DDoS (Distributed Denial of Service), ou negação de serviço distribuída e outras técnicas contra ameaças virtuais; » Suporte técnico: o suporte técnico 24 horas é um item que pesa na hora e analisar a qualidade dos serviços em Cloud Computing. Este serviço deve funcionar e com técnicos que entendam na língua do usuário/cliente. Bancos de Dados Espacial Banco de dados espacial (BDE) ou geográfico (BDG) é um tipo de banco de dados que permite o armazenamento de dados geográficos. A partir destes dados armazenados é possível realizar cálculos de áreas, distâncias, entre outros, para se obter informações a respeito de algum contexto de localidade, por exemplo. 9 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) Oracle, MySQL e PostgreSQL são exemplos de SGDBRs que dão suporte ao gerenciamento de dados geográficos por meio de uma extensão. Os tipos de dados aceitos são retas, polígonos, pontos, entre outros. O PostgreSQL, por exemplo, possui uma extensão espacial chamada PostGIS. Ela é capaz de interagir com softwares de SIG (Sistemas de Informações Geográficas). SIG é um sistema que processa e armazena dados geográficos e permite que sejam gerados mapas de satélite, tabelas, gráficos, entre outros. O conjunto de dados de uma mesma localidade, por exemplo, permite que sejam estudadas as evoluções espaciais desta região. Ex pl or Como exemplos de SIG, podemos citar: » GPS (Sistema de Posicionamento Global): é um sistema de navegação baseado em satélite que possibilita a localização de um objeto, veículo, ou pessoa, a partir de suas características de posição (coordenadas geográficas); » Sensoriamento remoto: conjunto de técnicas que utilizam sensores de satélites para gerarem imagens da superfície terrestre; » Geoprocessamento: éa técnica de coleta e tratamento de dados espaciais que envolve GPS e sensoriamento remoto. É mais do que um SIG, pois seu conceito está associado com um conjunto de outros SIGs. O ArcGIS é um exemplo de software de SIG. É uma plataforma que fornece ferramentas contextuais para mapeamento e análise espacial, permitindo a exploração de dados baseados em localização. A figura a seguir apresenta um exemplo de mapa gerado no ArcGIS: Figura 2: Bases de Cavernas, Rios, Ferrovias e Rodovias do Brasil, no ArcGIS Fonte: andersonmedeiros.com 10 11 Bancos de Dados Distribuídos Durante a década de 1970, as corporações implementaram sistemas de gerenciamento de banco de dados centralizados para atender às suas necessidades de informações estruturadas. Esse tipo de informação normalmente é apresentado como relatórios formais emitidos regularmente em um formato-padrão. As necessidades de informações estruturadas são bem atendidas por sistemas centralizados (ROB; CORONEL, 2011). Em um sistema de banco de dados centralizado, os dados estão armazenados em um único local e são executados em apenas uma máquina.Ex pl or A figura a seguir apresenta um exemplo de sistema de gerenciamento de banco de dados centralizado: A aplicação emite uma solicitação de dados para SGBD Usuário �nal SGBD Dados Leitura Solicitação Resposta Banco de dados local Figura 3: Exemplo de sistema de gerenciamento de banco de dados centralizado. Fonte: Adaptado de Rob e Coronel (2011) Podemos perceber, neste caso, que um sistema computacional comunica- se com um sistema gerenciador de banco de dados, solicitando informações e recebendo respostas. Em um sistema de banco de dados distribuído, os dados ficam dispostos em computadores diferentes, muitas vezes, em diferentes localidades geográficas. Eles não compartilham memória principal ou discos. Os computadores em um sistema distribuído podem variar em tamanho e função, desde estações de trabalho até sistemas de mainframe (SILBERSCHATZ; KORTH; SUDARSHAN, 2012). Como exemplo de um sistema de banco de dados distribuído, podemos pensar em um sistema comercial composto por três lojas de artigos esportivos. Cada loja possui um computador com banco de dados que armazena informações sobre seus clientes, produtos, estoque, vendas, entre outros. Uma matriz gerencia os dados de todas estas lojas, podendo realizar consultas e extrair relatórios diversos. 11 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) A figura a seguir apresenta um exemplo de banco de dados distribuído: Computador 2 Computador 1 Banco de dados 1 Banco de dados 2 Computador 3 Banco de dados 3Rede de Comunicação Figura 4 - Exemplo de banco de dados distribuído Os sistemas distribuídos podem armazenar os dados de duas maneiras: » Réplica: são armazenadas cópias idênticas dos dados em cada computador do sistema. No caso da figura anterior, haveria uma cópia dos dados da empresa nos bancos de dados dos computadores 1, 2 e 3. A vantagem é que, se um computador falhar, a cópia existente em outro computador garante que o sistema continue funcionando (disponibilidade). A desvantagem é que existe a possibilidade de haver inconsistências de dados armazenados, pois, se um registro for atualizado em uma cópia, as outras deverão receber a mesma atualização; » Fragmento: os dados são subdivididos (fragmentados) e cada subdivisão é armazenada em um computador do sistema. No caso da figura anterior, um fragmento dos dados seria armazenado no banco de dados do computador 1, outro no banco de dados do computador 2 e ainda outro no banco de dados do computador 3. A vantagem e a desvantagem são semelhantes ao processo de replicação, porém, ao inverso, ou seja, não ocorre disponibilidade como no item anterior, porém, fica livre de inconsistências. Os sistemas de banco de dados distribuídos podem ser: » Homogêneos: utilizam os mesmos sistemas de gerenciamento de banco de dados em todos os computadores do arranjo. Computador 2 Computador 1 Oracle Oracle Computador 3 OracleRede de Comunicação Figura 5 - Exemplo de sistema de banco de dados distribuído homogêneo. 12 13 Podemos perceber que todos os SGBDRs nos computadores do sistema são Oracle. » Heterogêneos: podem utilizar diferentes sistemas de gerenciamento de banco de dados em seus computadores. Computador 2 Computador 1 MySQL Oracle Computador 3 SQL ServerRede de Comunicação Figura 6 - Exemplo de sistema de banco de dados distribuído heterogêneo Neste caso, cada computador possui um SGBDR diferente (MySQL, Oracle, SQL Server). Bancos de Dados não Relacionais Vivemos em um momento da história em que, a cada dia, cresce ainda mais o número de dispositivos sendo desenvolvidos, e estes possuindo conexão com a Internet. A Internet das Coisas refere-se a uma revolução tecnológica que tem como objetivo conectar os itens usados do dia a dia à rede mundial de computadores. Cada vez mais, surgem eletrodomésticos, meios de transporte e até mesmo tênis, roupas e maçanetas conectadas à Internet e a outros dispositivos, como computadores e smartphones (TECHTUDO.COM.BR, 2017). Ex pl or A figura a seguir apresenta um exemplo de fechadura que pode ser integrada com smartphones: Figura 7: Fechadura Genius Smart Lock, integrada com smartphones Fonte: techtudo.com.br 13 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) O volume de dados que são produzidos diariamente é algo que tem levado pesquisadores a buscarem soluções que possam atender a toda esta demanda gerada. Quanto tempo você passa diariamente enviando mensagens pelo whatsapp? E postando imagens, vídeos e textos no facebook? Utiliza o linkedin e o twiter? Todas estas mensagens e postagens geram dados que trafegam pela Internet. Imagine agora essa quantidade de dados sendo propagada por mais de 1 bilhão de pessoas em todo o mundo pelo whatsapp (ESTADÃO.COM.BR, 2016) e pelo facebook (GLOBO.COM, 2016). Ex pl or Para que haja controle dessa avalanche de dados, os bancos de dados devem ser capazes de fornecer segurança, escalabilidade e eficiência. É comum os bancos de dados relacionais não suportarem imensos volumes de dados, por exemplo. Estabilidade: é a capacidade de um sistema suportar crescente volume de dados sem perder desempenho funcional. Ex pl or NoSQL (Not Only SQL) é o termo utilizado para descrever bancos de dados não relacionais, que surgiram no ano de 1998. São projetados para suportar acesso a dados em grande escala e trabalham com sistema de armazenamento distribuído de dados. Não há o conceito ACID (Atomicidade, Consistência, Isolamento e Durabilidade), inerente aos bancos de dados relacionais, em muitos destes bancos de dados de abordagem não relacional. Importante! ACID é um termo que envolve os conceitos sobre banco de dados relacionais, de: 1. Atomicidade: uma transação é armazenada por inteiro ou não é armazenada. Por exemplo, ao inserir uma nova linha em uma tabela de um banco de dados relacional, devemos confirmar a inclusão. Se confirmarmos, a linha será registrada, porém, se não confirmarmos, a linha não existirá no banco de dados. 2. Consistência: deve assegurar que o banco de dados permaneça consistente após qualquer transação. Por exemplo, se uma coluna de uma determinada tabela de banco de dados relacional foi definida para não permitir armazenar dados nulos, ela deve recusar a inserção de uma linha com dados nulos nesta coluna após a tentativa por parte de qualquer usuário. 3. Isolamento: nenhuma transação deve afetar outra transação até que a primeira seja concluída, a menos que ambas sejam de consulta. 4. Durabilidade: os dados armazenados no banco de dados devem durar até que alguma transação de exclusão ou atualização remova-os de lá. Você Sabia? As informações necessárias, em NoSQL, estarão agrupadas no mesmo registro, diferentemente do modelo relacional,que precisaria de tabelas relacionando-se entre si para armazenar os mesmos registros. 14 15 A seguir, algumas diferenças entre os modelos (AMAZON.COM, 2017): Tabela 1: Diferenças entre bancos de dados relacionais e não relacionais Banco de dados relacional Banco de dados NoSQL Modelos de dados Normaliza dados em estruturas tabulares conhecidas como tabelas, que consistem em linhas e colunas. Um schema define estritamente as tabelas, colunas, índices, relações entre tabelas e outros elementos do banco de dados. Normalmente, não aplicam um schema. Geralmente, uma chave de partição é usada para recuperar valo- res, conjuntos de colunas ou documentos semiestru- turados JSON, XML ou outros que contenham atribu- tos de itens relacionados. Propriedades ACID RGBDRs tradicionais são compatíveis com um con- junto de propriedades definido pela sigla ACID: Ato- micidade, Consistência, Isolamento e Durabilidade. Normalmente, trocam algumas propriedades ACID de SGBDRs por um modelo de dados mais flexível que escala horizontalmente. Essas características fazem dos bancos de dados NoSQL uma excelente opção em situações em que os SGBDRs deparam com desafios de arquitetura e precisam solucionar uma combi- nação de gargalos de desempenho, escalabilidade, complexidade operacional e custos crescentes de administração e suporte. Desempenho O desempenho normalmente depende do subsistema do disco. A otimização de consultas, índices e estrutura de tabela é necessária para alcançar máximo desempenho. Desempenho geralmente é uma função do tamanho do cluster do hardware subjacente, da latência de rede e da aplicação que faz a chamada. Escala Mais fácil de aumentar a escala "verticalmente" com hardware mais rápido. Outros investimentos são ne- cessários para tabelas relacionais para abranger um sistema distribuído. Projetado para aumentar a escala "horizontalmente" usando clusters distribuídos de hardware de baixo custo para aumentar a transferência sem aumentar a latência. APIs As solicitações para armazenar e recuperar dados são comunicadas usando consultas compatíveis com SQL. Essas consultas são analisadas e execu- tadas por SGBDRs. APIs baseadas em objetos permitem que desenvol- vedores de aplicações armazenem e restaurem facil- mente estruturas de dados na memória. As chaves de partição permitem que os aplicativos procurem pares de chave-valor, conjuntos de colunas ou documentos semiestruturados contendo objetos e atributos de aplicativos serializados. Ferramentas Os bancos de dados SQL normalmente oferecem um rico conjunto de ferramentas para simplificar o desenvolvi- mento de aplicações orientadas ao banco de dados. Os bancos de dados NoSQL normalmente oferecem ferramentas para gerenciar clusters e escalabilida- de. As aplicações são a interface principal com os dados subjacentes. Vamos descrever brevemente, então, alguns bancos de dados não relacionais: » MongoDB: escrito em linguagem de programação C++, o mongoDB possui código aberto e é orientado a documentos, ou seja, todos os dados são contidos em um único documento. É dotado de alta performance e não trabalha com esquemas. Foi concluído em 2009. É compatível com Windows, Mac OS, Linux e outros. A figura a seguir apresenta o NoSQL Manager for MongoDB, ferramenta para gerenciamento, administração e desenvolvimento de banco de dados Mongo. 15 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) Figura 8: NoSQL Manager for MongoDB Fonte: mongodbmanager.com São estas algumas empresas que utilizam MongoDB (MONGODB.COM, 2017): 1. Google 2. Facebook 3. eBay 4. Cisco 5. EA 6. Bosch 7. Adobe 8. Nokia 9. SAP 10. Telefonica 11. GAP 12. The New York Times » Cassandra: desenvolvido inicialmente pelo facebook como open source em 2008, o Cassandra exerce a função de repositório de dados. Ele é leve e desenvolvido na plataforma Java. Não apresenta a sobrecarga de recurso do banco de dados convencionais. O projeto é baseado na tecnologia NoSQL e encontra-se incubado pela Fundação Apache (FARIA, 2017). A figura a seguir apresenta o NoSQL Manager for Cassandra, ferramenta de administração para o gerenciamento, controle e desenvolvimento de banco de dados Cassandra: 16 17 Figura 9: NoSQL Manager for Cassandra Fonte: mongodbmanager.com/cassandra Alguns dos pontos positivos do Cassandra são (IBM.COM, 2017): 1. Alta escalabilidade e disponibilidade (tempo que pode dedicar-se a executar tarefas sem interrupções), sem um ponto único de falha; 2. Implementação da família de colunas NoSQL; Importante! Família de colunas (column family) é usada com o intuito de agrupar colunas que armazenam o mesmo tipo de dados. Observe o exemplo da fi gura a seguir, que modela o conceito de amigos, em que, primeiro, nome e sobrenome são colunas pertencentes à família de colunas denominada nome. As colunas endereço, cidade e estado pertencem à família local (LÓSCIO; OLIVEIRA; PONTES, 2011). Trocando ideias... Figura 10 - Exemplo de modelo baseado em colunas Fonte: LÓSCIO; OLIVEIRA; PONTES (2011) 17 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) 3. Rendimento de gravação muito alto e bom rendimento de leitura; 4. Linguagem de consulta semelhante a SQL e suporte para procura por índices secundários; 5. Consistência ajustável e suporte para replicação; 6. Esquema flexível. São estas algumas empresas que utilizam o Apache Cassandra (INFOQ.COM, 2017): 1. Netflix 2. Spotify 3. Apple 4. Outros 18 19 Material Complementar Indicações para saber mais sobre os assuntos abordados nesta Unidade: Sites Apache Cassandra https://goo.gl/uBJN MongoLab Brasil https://goo.gl/8JAa7e Leitura Artigo - Análise de Linguagem em um Banco de Dados Relacional Comparada ao Modelo NoSQL https://goo.gl/njduhj Artigo - Mapeamento da criminalidade na cidade de Castanhal utilizando ferramenta de integração e análise de dados espaciais https://goo.gl/PBgepE 19 UNIDADE Bancos de Dados em Nuvem, Bancos de Dados Espacial, Distribuídos, Não Relacionais (novas tecnologias) Referências AMAZON.COM. O que é NoSQL? Disponível em https://aws.amazon.com/pt/nosql. Acesso em 19/02/2017. CLOUD21.COM.BR. Como escolher o provedor de cloud computing. 24 de agosto de 2016. Disponível em https://cloud21.com.br/computacao-em-nuvem/como-escolher-o-prove- dor-de-cloud-computing. Acesso em 26/02/2017. FARIA, Alessandro de Oliveira. Apache Cassandra, conheça a tecnologia NoSQL. Disponível em https://pt.opensuse.org/ARTIGOS:Apache_Cassandra,_conhe%C3%A7a_a_tecnologia_NoSQL. Acesso em 26/02/2017. IBM.COM. Considerações sobre o Banco de Dados Apache Cassandra. Disponível em https:// www.ibm.com/developerworks/br/library/os-apache-cassandra. Acesso em 26/02/2017. INFOQ.COM. Seis anos de experiência com o Apache Cassandra. Disponível em https:// www.infoq.com/br/interviews/seis-anos-de-experiencia-com-apache-cassandra. Acesso em 26/01/2017. LÓSCIO, B. F., OLIVEIRA, H. R. e PONTES, J. C. S. (2011). NoSQL no desenvolvimento de aplicações Web colaborativas. VIII Simpósio Brasileiro de Sistemas Colaborativos. ROB, P.; CORONEL, C. Sistemas de Banco de Dados – projeto, implementação e adminis- tração. 8. ed. São Paulo: Cengage Learning, 2011. 711p. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 6. ed. Elsevier, 2012. 904p. TECHTUDO.COM.BR. Internet das Coisas: entenda o conceito e o que muda com a tecnologia. Disponível em: http://www.techtudo.com.br/noticias/noticia/2014/08/internet-das-coisas- entenda-o-conceito-e-o-que-muda-com-tecnologia.html. Acesso em 19/02/2017. VALOR.COM.BR. Empresas optam cada vez mais por infraestrutura em nuvem. 19/09/2016. Disponível em http://www.valor.com.br/patrocinado/embratel/tendencias-ti-e-telecom/empre- sas-optam-cada-vez-mais-por-infraestrutura-em-nuvem. Acesso em 26/02/2017. 20
Compartilhar