Prévia do material em texto
............................................................................................................................... SISTEMAS DE INFORMAÇÃO MARCELY FRANCISCO DA SILVA - 221372022 BANCO DE DADOS NOSQL ........................................................................................................................................ Guarulhos 2023 MARCELY FRANCISCO DA SILVA BANCO DE DADOS NOSQL Trabalho apresentado ao Curso Sistemas de Informação do Centro Universitário ENIAC para a disciplina Banco de dados com NoSQL. Prof. Eduardo Galvão Guarulhos 2023 O termo "NoSQL" faz referência a tipos de bancos de dados não relacionais, os quais armazenam dados de maneira distinta das tabelas utilizadas pelos bancos de dados relacionais. Os bancos de dados NoSQL podem ser consultados utilizando APIs específicas da linguagem, linguagens declarativas estruturadas para consulta e até linguagens de exemplo para consulta. Isso é o motivo pelo qual eles também são conhecidos como bancos de dados "não apenas SQL". Os bancos de dados NoSQL foram desenvolvidos para lidar com desafios de escalabilidade, flexibilidade e volume de dados que podem não ser facilmente abordados pelos bancos de dados relacionais tradicionais. Eles podem armazenar dados em formatos diversos, como documentos, grafos, pares chave-valor ou colunas, permitindo maior adaptação a situações onde os dados não possuem uma estrutura fixa ou onde a escala é primordial. Apesar de não utilizarem a linguagem SQL tradicionalmente associada aos bancos de dados relacionais, os bancos de dados NoSQL oferecem mecanismos para consulta e recuperação de dados por meio de APIs e linguagens de consulta específicas para cada sistema. Essas linguagens podem ser específicas da plataforma e foram projetadas para trabalhar com os tipos de dados particulares do respectivo banco de dados NoSQL. A expressão "não apenas SQL" enfatiza a ideia de que esses bancos de dados não estão restritos ao uso exclusivo da linguagem SQL, como é comum nos bancos de dados relacionais. Isso dá aos desenvolvedores maior flexibilidade para escolher a abordagem mais adequada às necessidades de seus projetos, seja optando por bancos de dados relacionais convencionais ou adotando os bancos de dados NoSQL. SQL x NoSQL Basicamente os bancos de dados SQL são relacionais, enquanto os bancos de dados NoSQL são não relacionais. O sistema de gerenciamento de banco de dados relacional (RDBMS) é a base para a linguagem de consulta estruturada (SQL), que permite aos usuários acessar e manipular dados em tabelas altamente estruturadas. Tipos de bancos de dados NoSQL Existem diversos tipos de bancos de dados NoSQL, cada um feito para atender a distintas exigências e cenários de aplicação. Eis os principais tipos de bancos de dados NoSQL: Bancos de Dados de Documentos: - Exemplos: MongoDB, Couchbase, Elasticsearch. - Armazenam dados em formato de documentos, geralmente em JSON ou BSON. - Cada documento pode ter uma estrutura flexível, o que é útil para dados não uniformes. Bancos de Dados de Grafos: - Exemplos: Neo4j, Amazon Neptune, ArangoDB. - Projetados para armazenar e consultar dados relacionais em forma de grafos. - Ideais para modelar relacionamentos complexos entre entidades. Bancos de Dados de Pares Chave-Valor: - Exemplos: Redis, Amazon DynamoDB, Riak. - Armazenam dados como pares de chave e valor, semelhante a um dicionário. - Oferecem alta velocidade na recuperação de dados, sendo ideais para caches e armazenamento em memória. Bancos de Dados de Colunas: - Exemplos: Cassandra, HBase, Google Bigtable. - Armazenam dados em colunas, em vez de linhas como nos bancos de dados relacionais. - Eficientes para consultas analíticas e manipulação de grandes volumes de dados. Bancos de Dados Multi-Modelo: - Exemplos: Couchbase, ArangoDB, OrientDB. - Combinam características de diferentes tipos de bancos de dados NoSQL, permitindo o uso de múltiplos modelos de dados. Bancos de Dados de Tempo-Série: - Exemplos: InfluxDB, OpenTSDB, TimescaleDB. - Especializados em armazenar dados que têm uma dimensão de tempo, como registros de sensores e métricas. Bancos de Dados de Eventos: - Exemplos: Apache Kafka, Amazon Kinesis. - Projetados para capturar, armazenar e processar eventos em tempo real, como logs e dados de streaming. Cada categoria de banco de dados NoSQL apresenta suas próprias vantagens e desvantagens, e a seleção do tipo adequado depende das necessidades específicas do seu projeto. Além disso, é válido notar que o cenário NoSQL é diversificado e está em contínua evolução, com novos tipos de bancos de dados surgindo para suprir demandas emergentes. Exemplos de aplicações Tecnologia Web e Móvel: - Plataformas online, redes sociais e aplicativos móveis aproveitam bancos de dados NoSQL para armazenar perfis de usuários, interações sociais e outros dados dinâmicos. Análise de Grandes Dados: - Bancos de dados NoSQL são empregados para armazenar volumes massivos de dados provenientes de sensores, dispositivos IoT e fluxos de eventos, facilitando análises em tempo real e insights avançados. E-Commerce: - Plataformas de comércio eletrônico utilizam bancos de dados NoSQL para gerenciar inventários, históricos de compras e preferências de clientes, permitindo personalização e sugestões relevantes. Jogos Online: - Jogos multiplayer online de grande escala dependem de bancos de dados NoSQL para rastrear ações dos jogadores, conquistas, itens de jogo e interações em tempo real. Gestão de Conteúdo: - Sistemas de gerenciamento de conteúdo e blogs recorrem a bancos de dados NoSQL para guardar artigos, multimídia e outros tipos de conteúdo com flexibilidade de estrutura. Aplicações em Tempo Real: - Setores que requerem baixa latência, como recomendações em tempo real, análises de fraude e processamento de eventos, dependem dos bancos de dados NoSQL. Logística e Rastreamento: - Sistemas de rastreamento e logística utilizam bancos de dados NoSQL para armazenar e processar informações de localização, rotas e entregas. Gestão de Sensores: - Dispositivos IoT e sistemas de monitoramento dependem de bancos de dados NoSQL para armazenar informações de sensores, medições e eventos em tempo real. Mídia e Entretenimento: - Plataformas de streaming de música, vídeo e outros tipos de mídia confiam em bancos de dados NoSQL para gerenciar catálogos e preferências de usuário. Conclusão Ao longo do desenvolvimento do trabalho pude aprender sobre os diversos aspectos dos bancos de dados NoSQL e suas aplicações em variados cenários atuais. Por ter uma grande diversidade de tipos de bancos de dados NoSQL, cada um com suas próprias características e linguagens de consulta, pude perceber que ao optar por usar o banco de dados NoSQL posso ter uma dificuldade em escolher um modelo ideal para o meu projeto. Um outro ponto que pode gerar um trabalho a mais quando optamos por usar o banco de dados NoSQL é que constantemente a tecnologia avança, então como tudo dentro dessa área, é essencial manter-se atualizado sobre as tendências emergentes nos bancos de dados NoSQL e considerar cuidadosamente as necessidades específicas de cada projeto antes de tomar decisões.