Buscar

CCT0617 - BANCO DE DADOS NOSQL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 195 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 195 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 195 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2021.1
BANCO DE DADOS NOSQL
CCT0617
PRO FESSOR: HE NRIQUE TAVARES
1
2021.1
CONTEÚDO
2
➢ REVISÃO
o Sistemas de Informação
o Conceitos sobre Dados
o Armazenamento de Dados
o Definição de Banco de Dados
o Gerenciamento e Desenvolvimento de Banco de Dados
o Consultas e Manutenção em Bancos de Dados
o Aplicações de Bancos de Dados
o Modelagem Conceitual
o Modelos de Bancos de Dados
2021.1
REVISÃO
3
2021.1
Relembrando Introdução aos 
Sistemas de Informação...
• A transformação de dados em informação é um processo, 
ou seja, uma série de tarefas logicamente relacionadas e 
executadas para atingir um resultado definido. 
• Por exemplo: 
• com os dados de peças em estoque, pedidos e vendedores pode-
se obter informações tão diferentes quanto: lista de peças que 
estão em falta no estoque, a média de venda por peça, os 
melhores e piores vendedores da companhia, e ainda relacionar 
os piores e melhores vendedores com as horas trabalhadas por 
cada um deles.
2021.1
Relembrando Introdução aos 
Sistemas de Informação...
• Os dados descrevem os fatos em sua forma primária, como por exemplo:
• um nome de um empregado 
• o número de horas trabalhadas em uma semana
• números de peças em estoque
• pedidos de vendas.
• Quando estes fatos estão organizados ou arranjados de maneira significativa, 
eles se tornam uma informação. 
• Informação, portanto, é um conjunto de fatos organizados de tal forma que 
adquirem um valor adicional, além do valor do fato em si.
2021.1
Conceitos básicos
sobre os dados
• Os dados podem assumir diversas formas, entre as quais:
• dados alfanuméricos tradicionais, composta de números e 
caracteres alfabéticos e outros que descrevem transações 
de negócios e outros eventos,
• dados de texto, que consistem de orações e parágrafos 
utilizados nas comunicações escritas,
• dados de imagem, como formas e cifras gráficas,
• dados auditivos, como a voz humana e outros sons.
2021.1
Armazenamento do
recurso de dados
• Armazenamento é um componente básico dos Sistemas de 
Informação. 
• É a atividade dos sistemas de informação na qual os dados 
e informações são guardados de uma maneira organizada
para uso posterior.
• Isto facilita seu uso posterior no processamento ou sua 
recuperação como saída, quando requisitadas pelos 
usuários de um sistema. 
2021.1
Armazenamento do
recurso de dados
• Os dados são organizados logicamente em:
• Caracter – um caracter é o elemento de lógico mais básico 
dos dados. Consiste em um único símbolo alfabético, 
numérico ou outro.
• Campo– um campo consiste em um grupamento de 
caracteres. Identifica uma característica ou propriedade do 
objeto representado.
• Registro – campos de dados relacionados agrupados para 
formarem um registro. 
2021.1
Armazenamento do
recurso de dados
• Arquivo 
• Dizemos que um arquivo é um conjunto de informações
relacionadas em forma de registros. 
• Exemplos: arquivo de folha de pagamento, arquivo de estoque, 
arquivo de documento ou arquivo de imagem gráfica.
• Banco de Dados 
• Um banco de dados é um conjunto integrado de registros ou objetos 
logicamente afins.
• Um banco de dados consolida registros previamente armazenados 
em arquivos separados em uma fonte comum de registros de dados 
que fornece dados para muitas aplicações. 
2021.1
Armazenamento do
recurso de dados
 
 Elementos Lógicos dos Dados Elementos Lógicos dos Dados 
Banco de Dados 
de Pessoal 
Funcionário 
Registro 2 
Funcionário 
Registro 1 
Funcionário 
Registro 3 
Funcionário 
Registro 4 
Nome PS Salário Nome PS Salário Nome PS Salário Nome PS Salário 
Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados Dados 
Arquivo de 
Folha de 
Pagamento 
Arquivo 
de 
Benefícios 
2021.1
Definições de Banco de Dados
• “É uma coleção de dados relacionados. Dados, por sua vez são uma 
coleção de fatos que podem ser guardados e que tem um significado 
implícito. Como exemplo, considere o nome, o endereço e o telefone 
das pessoas que você conhece. Você pode guardar esses dados num 
caderno de telefone, ou pode guardar num disquete usando um 
software como ACCESS ou EXCEL. Isto é uma coleção de dados 
relacionados com significado explicito” (Navathe, 1994)
• “É uma coleção organizada de fatos e informações” (Stair, 1996)
• “É uma coleção de fatos registrados que refletem o estado de certos 
aspectos de interesse do mundo real. “(Machado e Abreu, 1995)
2021.1
Sistema Gerenciador de
Banco de Dados (SGBD)
• “É uma coleção de programas que permite ao usuário criar e manter 
um banco de dados. ” (Navathe, 1994)
• “É um sistema computadorizado de armazenamento de dados , ou 
seja, um sistema cujo objetivo geral é manter informações e fazer 
com que estas informações estejam disponíveis quando solicitado” 
(Date, 1987)
• “ É uma coleção de programas e utilitários para organizar, armazenar, 
atualizar e recuperar dados “ ( Hackathorn, 1993)
2021.1
Sistema Gerenciador de
Banco de Dados (SGBD)
2021.1
Sistema Gerenciador de 
Banco de Dados (SGBD)
Os quatro maiores usos de um SGBD incluem: 
• Desenvolvimento de Bancos de Dados
• Consulta de Bancos de Dados
• Manutenção de Bancos de Dados
• Aplicações de Bancos de Dados
2021.1
Desenvolvimento de 
Bancos de Dados
• Pacotes de gerenciamento de bancos de dados permitem aos 
usuários finais desenvolverem seus próprios bancos de dados, através 
de uma linguagem de definição de dados para:
• desenvolver e especificar o conteúdo, 
• relações e estruturas dos dados em cada banco de dados e 
• modificar as especificações desses bancos de dados sempre que 
necessário.
• Essas informações são catalogadas e armazenadas em um banco de 
dados de definições e especificações de dados chamado dicionário de 
dados.
2021.1
A capacidade de consulta aos 
bancos de dados é um 
benefício maior de um sistema 
de gerenciamento de bancos 
de dados.
Os usuários finais podem 
utilizar um SGBD pedindo 
informações de um banco de 
dados utilizando uma 
linguagem de consulta ou um 
gerador de relatórios.
Um dicionário de dados é um 
catálogo ou diretório baseado 
no computador contendo 
software de metadados (dados 
sobre dados) para gerenciar 
um banco de definições sobre 
a estrutura dos dados
2021.1
Consulta ao 
Banco de Dados
• Características de uma linguagem de consulta:
• Os usuários recebem uma resposta imediata na forma de telas de 
vídeo ou relatórios impressos. 
• Não é necessária nenhuma programação complexa. 
• Os usuários podem obter respostas imediatas a pedidos 
específicos.
• Características de um gerador de relatórios:
• Os usuários recebem uma resposta imediata na forma de telas de 
vídeo ou relatórios impressos. 
• Não é necessária nenhuma programação complexa. 
• Os usuários podem especificar um formato de relatório para as 
informações que desejam apresentadas como relatório.
2021.1
Manutenção de 
Bancos de Dados
• Os gerentes precisam de informações precisas para tomarem 
decisões eficazes. Quanto mais precisa, relevante e oportuna 
for a informação, melhor será o gerenciamento informado ao se 
tomar decisões.
• Dessa forma, os bancos de dados de uma organização precisam 
ser constantemente atualizados para refletirem as novas 
transações empresariais e outros eventos. 
• Este processo de manutenção de bancos de dados é 
acompanhado por programas de processamento de transações 
e outros pacotes de aplicativos para o usuário final, com o apoio 
do SGBD.
2021.1
Desenvolvimento de Aplicações
• Os pacotes SGBD desempenham um papel importante no 
desenvolvimento de aplicações. O desenvolvimento de 
aplicações se torna mais fácil por meio de formulações em 
linguagem de manipulação de dados (DML) que podem ser 
incluídas em programas de aplicativos para permitir que o SGBD 
realize as atividades necessárias de manipulação de dados. 
2021.1
SGBD X Sistemas de 
Gerenciamento de Arquivos
• A melhor maneira de entender a natureza geral e as características 
dos bancos de dados de hoje é olharpara as características dos 
sistemas que antecederam o uso da tecnologia de banco de dados:
Sistemas de Gerenciamento de Arquivos (SGA)
vs.
Sistemas Gerenciadores de Bancos de Dados (SGBD)
2021.1
Sistemas de Gerenciamento
de Arquivos (SGA)
• Cada usuário define e implementa os arquivos necessários para uma aplicação 
específica, acarretando repetição dos dados gerando inconsistência nas 
informações.
• O acesso aos dados está escrito nos programas que o manipulam, subordinando 
os programas aos arquivos.
• A manipulação dos dados contidos nos arquivos pelas aplicações específicas 
dificulta o desenvolvimento de novos sistemas e torna a manutenção dos 
aplicativos difícil e cara. 
• Tomemos como exemplo a necessidade de inclusão de um novo campo em um arquivo, 
esta alteração implica na alteração de todos os programas que utilizam este arquivo. dados 
separados e isolados.
• O sistema possibilita uma redundância não controlada de dados e inconsistência 
ao permitir que em um sistema um dado seja alterado e esse mesmo dado não 
seja alterado em outro.
• A responsabilidade sobre os procedimentos de backup e recuperação esta a 
cargo da aplicação.
2021.1
Sistemas Gerenciadores
de Bancos de Dados (SGBD)
• Um arquivo (tabela) é definido uma única vez e atende a várias aplicações
• Armazena-se junto com os dados toda as informações referentes à forma 
como foram estruturados os dados e onde eles estão armazenados 
fisicamente. Essas informações estão armazenadas em um catálogo que é 
chamado de meta-data.
• Há separação entre programas e dados. No SGBD os acessos são escritos no 
banco de dados e os programas enviam comandos solicitando o acesso aos 
dados. 
• São permitidas visões diferenciadas sobre a mesma base de dados para 
aplicações diferentes.
• É permitido acesso simultâneo de vários usuários ao mesmo dado. Essa 
simultaneidade é tratada através do gerenciamento da concorrência.
2021.1
Aplicações de 
Bancos de Dados
• Avanços contínuos na informática e suas aplicações 
empresariais têm resultado na evolução de diversos tipos 
principais de bancos de dados. 
• Cinco categorias conceituais importantes de bancos de dados 
que podem ser encontradas nas organizações usuárias de 
computadores incluem:
• Bancos de Dados Operacionais
• Data Warehouse
• Bancos de Dados Distribuídos
• Bancos de Dados Externos
2021.1
Bancos de Dados Operacionais
• Esses bancos de dados armazenam dados detalhados 
necessários para apoiar as operações da organização como um 
todo. Eles também são chamados bancos de dados de 
transações ou bancos de dados de produção. 
• São exemplos: os bancos de dados de clientes, bancos de dados 
de pessoal, bancos de dados de estoque e outros bancos de 
dados contendo dados gerados pelas operações empresariais.
2021.1
Data Warehouse
• Um data warehouse armazena dados do ano em curso e anos 
anteriores que foram extraídos dos vários bancos de dados 
operacionais e gerenciais de uma organização.
• É uma fonte central de dados que foram classificados, editados, 
padronizados e integrados de tal forma que podem ser 
utilizados por gerentes e outros profissionais usuários finais ao 
longo de toda uma organização.
• Os data warehouse podem ser subdivididos em mercados de 
dados [data marts], que guardam subconjuntos específicos de 
dados a partir do depósito.
2021.1
Bancos de Dados Distribuídos
• Muitas organizações reproduzem e distribuem cópias ou partes de 
bancos de dados para servidores de rede em uma multiplicidade de 
locais. Esses bancos de dados distribuídos podem residir em 
servidores de rede na Rede Mundial de Computadores, em intranets 
ou extranets , ou em outras redes da empresa.
• Os bancos de dados distribuídos podem ser cópias de bancos de 
dados operacionais ou analíticos, bancos de dados em hipermídia ou 
de discussão, ou qualquer outro tipo de banco de dados. A 
reprodução e distribuição de bancos de dados é feita para melhorar o 
desempenho e a segurança do banco de dados. 
2021.1
Bancos de Dados Externos
• O acesso a bancos de dados ou bases de dados on-line,
particularmente adquiridas e externas, é disponível mediante 
uma taxa para usuários finais e organizações em serviços 
comerciais on-line, e com ou sem tarifas de muitas fontes na 
Internet, particularmente na Rede Mundial de Computadores.
• Exemplos:
• Amazon Redshift
• MongoDB Atlas
• Banco de Dados SQL do Microsoft Azure
• Oracle Cloud Database
• Cloud Couchbase
2021.1
 
 - Principais Tipos de Bancos de Dados Principais Tipos de Bancos de Dados 
Servidor 
de Rede 
Servidor 
de Rede 
Bancos de Dados 
Externos na 
Internet e Serviços 
Online 
PC ou 
NC do 
Cliente 
Bancos de Dados 
Operacionais 
da Organização 
Bancos de Dados 
Analíticos dos 
Dados 
Críticos da 
Organização 
Bancos de 
Dados do 
Usuário Final 
Bancos de Dados 
Distribuídos em 
Intranets e 
Outras Redes 
Depósito 
de Dados 
2021.1
Usuários de BD
• Administrador de dados (AD): responsáveis por identificar os 
dados a serem armazenados no BD e por escolher as estruturas 
apropriadas para representar e armazenar esses dados. 
Comunicação c/ usuários p/ identificação de visões (esquemas 
conceituais), desenvolve e mantém o dicionário de dados, 
garante as necessidade corporativas de dados
• Administradores do BD (DBA): desenvolve os esquemas 
internos através da construção das tabelas, índices, etc., 
autoriza o acesso ao banco de dados, de modo a coordenar e 
monitorar seu uso, garante a segurança dos dados, bem como 
seu backup e recuperação em caso de falhas, garante a 
performance do banco de dados e desenvolve visões que 
atendam ao esquema externo
2021.1
Usuários de BD
• Analistas de sistemas : determinam os requisitos dos usuários 
finais e desenvolvem especificações de transações que 
satisfaçam esses requisitos
• Programadores de aplicação : implementam as especificações 
das transações como programas, testando-os, corrigindo-os e 
documentando-os. 
• Usuários finais: utilizam os sistemas projetados pelo analista de 
sistemas cuja base de dados é mantida e monitorada pelo DBA 
e cuja integração com o conjunto da corporação é garantido 
pelo esquema conceitual mantido pelo AD.
• Pessoal de Suporte.
2021.1
MODELAGEM
CONCEITUAL
31
2021.1
Percepção do mundo real: 
Níveis de Abstração
Modelo
Conceitual
Modelo
Logico
Modelo
FisicoBD
MINIMUNDO
Realidade 
Nebulosa
observa
Analista
organiza ideias
descreve
2021.1
Percepção do mundo real
Toda realidade é sempre, em 
princípio, bastante nebulosa e 
informal. Através da
observação podemos extrair 
desta realidade fatos que nos 
levam a conhece-la de uma 
forma mais organizada.
Realidade 
Nebulosa
observa
Analista
Em um negócio, existem fatos
observados e modelados, que dizem 
algo a respeito do funcionamento deste 
negócio.
Estes fatos estão ligados diretamente 
ao funcionamento da realidade, a qual 
temos interesse em compreender e 
manter. 
2021.1
Percepção do mundo real
O que se quer criar é uma ABSTRAÇÃO da 
realidade, que seja capaz de registrar os 
acontecimentos nela existentes, de modo que 
se possa implementar um sistema automatizado 
que atenda às reais necessidades de informação
MINIMUNDO
Analista
organiza ideias
2021.1
Percepção do mundo real
MINIMUNDO
Analista
organiza ideias
Ao coletar e relacionar os fatos relevantes, 
devemos identificar os elementos geradores 
de informação, as leis que regem esta 
realidade, bem como as operações que 
incidem sobre os elementos básicos (dados).
2021.1
Percepção do mundo real
MINIMUNDO
Analista
organiza ideias
Para que possamos retratar estes fatos, 
para que possam nos levar a futuras 
decisões e ações, é preciso registra-los. 
Este registro é feito através da criação de 
um MODELO, isto é, algo que nos mostre 
como as informações estão relacionadas.
Modelo
Conceitual
descreve
2021.1
Percepção do mundo real: 
elementos de abstração
• Minimundo: 
Porção específica da realidade,captada pelo analista, objeto de 
observação detalhada. Caso a análise do minimundo torne-se 
muito complexa, o analista pode subdividi-lo em pontos 
menores, chamados de “visões”.
• Banco de Dados: 
Coleção de fatos registrados que refletem certos aspectos de 
interesse do mundo real. Cada mudança em algum item do 
banco de dados reflete uma mudança ocorrida na realidade.
2021.1
Percepção do mundo real: 
Níveis de Abstração
Modelo
Conceitual
Modelo
Logico
Modelo
FisicoBD
MINIMUNDO
Realidade 
Nebulosa
observa
Analista
organiza ideias
descreve
2021.1
Percepção do mundo real: 
elementos de abstração
Modelo
Conceitual
MINIMUNDO
• Modelo Conceitual : 
• Representa e/ou descreve a realidade do ambiente, 
constituindo uma visão global dos principais dados e 
relacionamentos (estruturas de informação), independente 
das restrições de implementação.
• Descreve as informações contidas em uma realidade, que 
estarão armazenadas em um banco de dados
Analista
organiza ideias
descreve
2021.1
Percepção do mundo real: 
elementos de abstração
Modelo
Conceitual
Modelo 
Lógico
MINIMUNDO
• Modelo Lógico:
• Descreve as estruturas que estarão contidas no banco de 
dados, sem considerar nenhuma característica específica de 
um Sistema Gerenciador de Banco de Dados (SGBD)
• Tem seu início a partir do Modelo Conceitual e resulta em um 
esquema lógico de dados.
2021.1
Percepção do mundo real: 
elementos de abstração
Modelo
Conceitual
Modelo
Lógico
Modelo
Físico
MINIMUNDO
• Modelo Físico: 
• Descreve as estruturas físicas de armazenamento de dados, 
tais como: tamanho dos campos, índices, tipo de 
preenchimento destes campos, etc... 
• Tem origem no Modelo Lógico e detalha o estudo dos 
métodos de acesso ao SGBD
2021.1
Programa de
aplicação de BDSGBD
Programa de
aplicação de BD
Programa de
aplicação
dados
?!
Desenvolver um projeto de sistema
de informação consiste em traduzir
um “problema” do mundo real
numa “solução” que envolve a
organização, pessoas e tecnologia
(hardware e software).
SISTEMA DE INFORMAÇÃO
Mundo
Real
2021.1
Requisitos
de Dados
Projeto Conceitual 
Projeto Lógico
Projeto Físico
Coleta/Especificação
de Requisitos Requisitos
Funcionais
Análise Funcional
Projeto Funcional
Programação
Programa de
aplicação de BDSGBD
Programa de
aplicação de BD
Programa de
aplicação
dados
Mundo
Real
2021.1
Modelo de Dados
• Forma de representação gráfica do conhecimento que se tem 
sobre um ambiente qualquer
• Mostra uma arrumação das informações de interesse e dos 
vínculos existentes entre elas, num determinado momento
• O Modelo de Dados é definido pelo arranjo dos dados, uma 
forma de arrumação, para melhor representá-los
• O Modelo de SGBD é definido pelo Modelo de Dados adotado
2021.1
Conceitos de Negócio
CLIENTE
PEDIDO
PRODUTO
faz contem
2021.1
Entidades
• Define-se entidade como sendo o conceito existente 
no mundo real com identificação distinta e com 
significado próprio.
• São as conceitos envolvidos no próprio negócio, ou 
ainda, descrevem o negócio em si.
CLIENTE PRODUTO
2021.1
Atributos
• As propriedades caracterizadas por atributos e 
valores que descrevem as ocorrências de uma 
entidade.
• O que descreve CLIENTE ? Cliente é descrito por:
• um código de identificação, 
• nome, 
• endereço, 
• telefone de contato, 
• CNPJ ou CPF, etc.... 
CPF
NOME
CÓDIGO
2021.1
 
 - Estruturas de Banco de Dados Modelos de Banco de Dados 
Depto. 
A 
B 
C 
Nº. Func. Depto. 
1 A 
2 B 
3 C 
Modelo Relacional 
Modelo em Rede Modelo Hierárquico 
2021.1
Evolução dos
Modelos de SGBD’s
• Modelo Hierárquico, 
• Modelo em Rede, 
• Modelo Relacional 
• Modelo Relacional-Objeto
• Modelo Orientado a Objetos
• Modelo NoSQL
2021.1
Modelo Hierárquico
• Os primeiros pacotes SGBD para computador central utilizavam o modelo hierárquico, 
no qual:
• As relações entre os registros formam uma hierarquia ou estrutura de tipo árvore. 
• Os registros são dependentes e dispostos em estruturas de níveis múltiplos (ou 
segmentos), que consistem em um registro raiz e qualquer número de níveis 
subordinados.
• As relações entre os registros são de um-para-muitos, já que cada elemento de 
dados se relaciona apenas com um elemento acima dele. 
• O elemento de dados ou registro no nível mais alto da hierarquia é chamado de 
elemento raiz. Todo elemento de dados pode ser acessado passando-se 
progressivamente para baixo a partir da raiz e ao longo dos ramos da árvore até 
que o registro desejado seja localizado.
2021.1
Modelo Hierárquico
2021.1
Modelo em Rede
• Pode representar relações lógicas mais complexas e ainda é 
utilizada por muitos pacotes SGBD de computador central. 
• Permite relações de muitos registros para muitos registros.
• Em outras palavras, o modelo em rede pode acessar um 
elemento de dados seguindo um dentre vários caminhos, 
porque qualquer elemento ou registro de dados pode ser 
relacionado com qualquer número de outros elementos de 
dados. 
2021.1
Modelo em Rede
2021.1
Modelo Relacional
• Tornou-se a mais popular das seis estruturas de bancos de 
dados
• Os elementos dos dados dentro do banco de dados são 
armazenados na forma de tabelas simples. 
• Os pacotes SGBD baseados no modelo relacional podem 
vincular elementos de dados de várias tabelas para fornecer 
informações para os usuários. 
2021.1
Modelo Relacional
2021.1
Modelo Relacional-Objeto
• É uma variação do modelo relacional que utiliza estruturas 
multidimensionais para armazenar dados e relações entre os dados
• Um benefício maior dos bancos de dados multidimensionais é a 
maneira compacta e inteligível de visualizar e manipular elementos 
de dados que possuem muitas inter-relações. 
• Os bancos de dados multidimensionais se tornaram a estrutura 
mais popular para os bancos de dados analíticos que suportam 
aplicações de processamento analítico on-line (OLAP). 
2021.1
Modelo Relacional-Objeto
2021.1
Modelo em Objetos
• Em uma estrutura baseada em objetos, um objeto consiste em valores 
de dados que descrevem os atributos de uma entidade, mais as 
operações que podem ser executadas sobre tipos mais complexos de 
dados (gráficos, voz, texto) do que outras estruturas de bancos de dados.
• Suporta herança, ou seja, novos objetos podem ser automaticamente 
criados mediante a reprodução de algumas ou todas as características 
de um ou mais objetos pais. 
• As capacidades e herança dos objetos tornaram populares os sistemas de 
gerenciamento de bancos de dados orientados a objetos (SGBDOO)
2021.1
Modelo em Objetos
2021.1
Avaliação dos 
Modelos dos SGBD’s
Modelo Vantagens Desvantagens
Hierárquico Facilidade com que os dados 
podem ser armazenados e 
recuperados em tipos 
estruturados e rotineiros de 
transações.
Facilidade com que os dados 
podem ser extraídos para fins 
de apresentação de 
relatórios.
Os tipos estruturados e 
rotineiros de processamento 
de transações são rápidos e 
eficientes. 
Relações hierárquicas um-
para-muitos devem ser 
estipuladas de antemão e 
não são flexíveis.
Não pode manipular 
facilmente requisições de 
informação específica.
A modificação de uma 
estrutura hierárquica de 
bancos de dados é complexa.
Exige conhecimento de uma 
linguagem de programação. 
2021.1
Avaliação dos
Modelos dos SGBD’s
Modelo Vantagens Desvantagens
Rede Mais flexível que o modelo 
hierárquico.
Capacidade de fornecer 
relações lógicas sofisticadas 
entre os registros. 
As relações muitos-a-muitos 
em rede devem ser 
estipuladas de antemão.
O usuário está limitado a 
recuperar dados que podem 
ser acessados utilizando os 
links estabelecidos entre os 
registros. Não pode 
manipular facilmente 
requisições de informação 
específica.
Exige conhecimento de uma 
linguagem de programação. 
2021.1
Avaliação dos
Modelos dos SGBD’s
Modelo Vantagens Desvantagens
Multidimensional Forma compacta e de fácil 
compreensão para 
visualização e manipulação 
de elementosde dados que 
possuem muitas inter-
relações.
Suporta aplicações OLAP na 
qual respostas rápidas para 
consultas empresarias 
complexas são requisitadas. 
Não desenvolvida 
atualmente para amplo uso 
de aplicações empresariais.
2021.1
Avaliação dos
Modelos dos SGBD’s
Modelo Vantagens Desvantagens
Relacional Flexível uma vez que pode 
manipular requisições de 
informação específica. 
Não pode processar grandes 
quantidades de transações 
empresariais tão depressa e 
com tanta eficiência como os 
modelos hierárquico e em 
rede. 
2021.1
Avaliação dos
Modelos dos SGBD’s
Modelo Vantagens Desvantagens
Baseado em Objetos Manipula tipos complexos de dados 
(gráficos, imagens, voz e texto) 
melhor do que outras estruturas.
Relativamente fácil de utilizar.
Tecnologia chave sendo utilizada 
em aplicações de multimídia 
baseadas na rede para a Internet e 
intranets e extranets empresariais.
Suporta herança – novos objetos 
podem ser automaticamente 
criados mediante a reprodução de 
algumas ou de todas as 
características de um ou mais 
objetos pais. 
Não desenvolvida 
atualmente para amplo uso 
empresarial.
2021.1
TIPOS DE DADOS
✓DADO ESTRUTURADO
✓DADO SEMIESTRUTURADO
✓DADO NÃO ESTRUTURADO
65
2021.1
Tipos de Dados
2021.1
Dados Estruturados
• Dados estruturados são aqueles organizados e representados 
com uma estrutura rígida, a qual foi previamente planejada 
para armazená-los.
• Em outras palavras, os dados estruturados de um mesmo 
bloco (registro) possuem uma relação.
• Alguns exemplos de dados estruturados:
• Planilhaseletrônicas (Excel)
• Esquema estruturante de Bancos de dados
• Arquivos CSV
2021.1
Pense em um formulário de 
cadastro com os campos...
2021.1
Pense em uma planilha 
eletrônica com suas células...
2021.1
Dados Semiestruturados
• Dados semiestruturados apresentam uma 
representação estrutural heterogênea, não sendo 
nem completamente não-estruturados nem 
estritamente tipados. 
• Dados Web se enquadram nessa definição:
• em alguns casos os dados possuem uma descrição 
uniforme (um catálogo de produtos), 
• em outros, algum padrão estrutural pode ser identificado 
(um conjunto de documentos no formato de artigo)
2021.1
Dados semiestruturados (exemplo)
2021.1
Características principais de 
dados semiestruturados
• Definição à posteriori:
• esquemas para dados semiestruturados são 
usualmente definidos após a existência dos dados, 
com base em uma investigação de suas estruturas 
particulares e da análise de similaridades e 
diferenças.
• Isto não significa que sempre existe um esquema
associado a um dado semiestruturado;
2021.1
Esquema Flexível
2021.1
Esquema Flexível
2021.1
Características principais de 
dados semiestruturados
• Diferentemente dos bancos de dados SQL, nos quais você deve 
determinar e declarar o esquema de uma tabela antes de 
inserir dados, documentos XML e/ou JSON, por padrão, não 
exigem que seus documentos tenham o mesmo esquema. 
• Isto é, para alterar a estrutura dos documentos XML e/ou JSON 
(como adicionar novos campos, remover campos existentes ou 
alterar os valores dos campos para um novo tipo), basta 
atualizar os documentos para redefinir a estrutura: 
O documento determina a estrutura, não o contrário!
2021.1
Características principais de 
dados semiestruturados
• Coleções extensas de dados semanticamente similares estão 
organizados de maneiras diferentes, podendo algumas 
ocorrências terem informações incompletas ou adicionais
em relação a outras. 
• Em suma, não existe um esquema padrão para esses dados, 
pois as estruturas são irregulares
• Exemplo: curriculum vitae possui várias formatações
2021.1
Dado Não Estruturado
2021.1
Common MIME types for video...
2021.1
2021.1
Entendendo os 5 Vs do Big Data
2021.1
Entendendo os 5 Vs do Big Data
#1º V: V de Volume
• O primeiro grande desafio para utilizar o Big Data é 
justamente o volume de dados disponíveis: estamos falando 
em uma cifra que hoje gira em torno de 250 exabytes por 
ano, sendo cerca de 2,5 quintilhões de bytes por dia. 
• Até 2020, a estimativa é que esse número chegue a 44 
zetabytes (ou o mesmo que 44 trilhões de gigabytes) anuais.
Em outros termos: o volume hoje já é grande, mas a 
tendência é que continue a crescer ainda mais!
2021.1
Entendendo os 5 Vs do Big Data
#2º V: V de Velocidade
• Não apenas o volume de dados é gigantesco, mas a 
velocidade em que esses dados são produzidos e em que se 
tornam desatualizados é vertiginosa. 
• Por isso, o segundo desafio do Big Data é o tempo necessário 
para processamento desses dados. O objetivo, portanto, é 
alcançar formas de trabalhar o processamento dessas 
informações em tempo real.
2021.1
Entendendo os 5 Vs do Big Data
#3º V: V de Variedade
• Os dados de que dispomos atualmente são provenientes das 
mais diversas fontes: 
• redes sociais, 
• aplicativos, 
• cookies, 
• IoT – Internet das Coisas...
• e-mails
• processamento de áudios e imagens.
2021.1
Entendendo os 5 Vs do Big Data
#3º V: V de Variedade
Isso significa que não seguem um único
padrão e nem fornecem todos o mesmo tipo 
de informações, tornando a tarefa de 
compilar esses dados em um banco de dados 
tradicional impossível. 
2021.1
Entendendo os 5 Vs do Big Data
#4º V: V de Veracidade
• Dentre a grande massa dos dados que circulam, é preciso 
estabelecer quais os dados que são verídicos e que ainda 
correspondem ao momento atual. 
• Dados desatualizados podem ser considerados inverídicos 
porque não correspondem mais à realidade, levando à 
tomada de decisões equivocadas.
• Big Data deve, portanto, determinar a relevância dos dados 
disponíveis, de forma que essas informações possam servir 
de guia para o planejamento mais seguro.
2021.1
Entendendo os 5 Vs do Big Data
#5º V: V de Valor
• O quinto desafio posto pelo Big Data pelas empresas é o de 
definir a abordagem que será feita dessa massa de dados 
que está circulando. 
• Nem toda informação que está circulando é relevante ou útil
para os objetivos específicos da sua empresa.
• Uma abordagem bem feita permite agregar valor à sua 
empresa, colocando-a à frente da concorrência no mercado.
2021.1
Big Data: 
Structure + Unstructure
2021.1
2021.1
Introdução aos Sistemas NoSQL
2021.1
Introdução aos Sistemas NoSQL
⚫ Por que BD relacionais se tornaram dominantes?
− Capacidade de armazenar grandes quantidades de dados persistentes
⚫ Permite acessar partes do BD de maneira rápida e fácil
− Controle de concorrência por meio de transações
⚫ Provê acesso concorrente de múltiplas aplicações ou vários usuários
− Recuperação após falhas
⚫ Restaura o BD para um estado anterior ao estado da falha
− Integração compartilhada de BD
⚫ Aplicações armazenam seus dados em uma única BD
− Uso de um modelo de dados padrão
⚫ Dialetos SQL usados por diversos fornecedores são similares 
2021.1
Introdução aos Sistemas NoSQL
⚫ Por que existe uma ascensão de BD NoSQL?
− Incompatibilidade de impedância entre o modelo relacional e as estruturas de 
dados na memória principal
⚫ Valores de uma tupla relacional têm de ser simples
⚫ Para armazenar dados em disco, é preciso traduzir a estrutura de dados não 
atômica da memória para a
⚫ representação relacional
⚫ Incompatibilidade de impedância: duas representações diferentes que requerem 
tradução
Modelo Relacional
2021.1
Introdução aos Sistemas NoSQL
⚫ Exemplo de Incompatibilidade de Impedância
− Um pedido que aparenta ser uma estrutura única na GUI é 
dividido em muitas linhas de muitas tabelas relacionais
2021.1
Introdução aos Sistemas NoSQL
⚫ SGBD relacionais dominaram o mercado na 
década de 2000, mas alguns problemas 
começaram a surgir em seu domínio
− Desvantagens do BD de integração:
⚫ Uma estrutura projetada para integrar muitas aplicações acaba se tornando 
mais complexa do que qualquer necessidade de uma única aplicação
⚫ Se uma aplicação precisar modificar seu armazenamento de dados precisará 
coordenar essamodificação com as demais que usam o BD
⚫ Aplicações diferentes possuem requisitos estruturais e de desempenho 
diferentes
− Um índice requerido por uma aplicação pode causar problemas nas 
inserções da outra
⚫ Como cada aplicação pertence a uma equipe diferente significa que o SGBD 
precisa assumir a responsabilidade de manutenção da integridade dos 
dados
2021.1
Introdução aos Sistemas NoSQL
⚫ BD de integração x BD de aplicativos
− Por que SGBDR prevaleceram sobre SGBDOO?
⚫ Uso de SQL como mecanismo de integração entre as 
aplicações
⚫ BD de integração: várias aplicações 
desenvolvidas por equipes distintas armazenam 
seus dados num único local
− Melhora a comunicação porque as aplicações 
operam sobre um conjunto consistente de dados 
persistentes
− Possui algumas desvantagens....
2021.1
BD de integração x BD de aplicativos
⚫ BD de aplicativos: só é acessado diretamente por uma 
única aplicação que é gerenciada por apenas uma equipe
− Facilidade de manutenção e desenvolvimento de esquema porque apenas 
uma equipe precisará conhecer sua estrutura
− Uma vez que essa equipe controla o BD e o código da aplicação, a 
responsabilidade pela integridade do BD é dada a esse código
⚫ Há um movimento na direção ao uso de BD de aplicativos
− Defende-se o encapsulamento de BD em aplicativos e a integração por meio 
de serviços
⚫ Uso de serviços web como mecanismo de integração:
− Desacopla o BD e os serviços responsáveis pela comunicação com o mundo 
exterior
− Não importa aos serviços como os dados são armazenados, permitindo que 
opções não relacionais sejam consideradas
2021.1
Evolução
2021.1
Evolução
2021.1
Arquitetura de
Banco de Dados Centralizado
2021.1
Arquitetura de
Banco de Dados Distribuído
2021.1
2021.1
Escalabilidade
Performance aumenta 
proporcionalmente ao aumento dos 
recursos envolvidos (expectativa...)
2021.1
Escalabilidade Vertical
2021.1
Escalabilidade Horizontal
2021.1
Escalabilidade Vertical
2021.1
Escalabilidade Vertical
2021.1
Particionamento (Sharding)
2021.1
Particionamento (Sharding)
2021.1
Sharding (exemplo)
2021.1
Pontos chave...
⚫ Há um movimento na direção contrária à 
utilização de bancos de dados como pontos de 
integração.
⚫ Em vez disso, defende-se o encapsulamento de 
bancos de dados em aplicativos e a integração 
por meio de serviços….
NoSQL Essencial (Pramod Sadalage & Martin Fowler)
https://s3.novatec.com.br/capitulos/capitulo-9788575223383.pdf
2021.1
Pontos chave...
⚫ O fator vital para uma mudança no 
armazenamento de dados foi a necessidade de 
suporte a grandes volumes de dados por meio da 
execução em clusters.
⚫ Bancos de dados relacionais não são projetados 
para serem executados eficientemente neles...
NoSQL Essencial (Pramod Sadalage & Martin Fowler)
https://s3.novatec.com.br/capitulos/capitulo-9788575223383.pdf
2021.1
2021.1
Padrões NoSQL de 
Arquitetura dos dados 
2021.1
NoSQL: “Not Only SQL”
2021.1
2021.1
Classificações dos 
Bancos de Dados NoSQL
⚫ Armazenamento chave-valor
⚫ Orientado a documentos
⚫ Armazenamento orientado a colunas
⚫ Banco de dados baseado em grafos
2021.1
Armazenamento chave-valor
Cada item é armazenado como uma “chave” (identificador 
exclusivo) junto com seu valor. Esta é a versão mais simples de um 
banco de dados NoSQL. Exemplos incluem Redis e Aerospike. 
2021.1
Orientado a Documentos
• Cada “chave” é combinada com 
um "documento" de dados 
estruturados (estrutura de dados).
• Os documentos podem conter 
muitos pares de valores-chave 
diferentes em um formato 
hierárquico aninhado, como 
Javascript Object Notation (JSON).
2021.1
Armazenamento orientado a colunas
Projetado para lidar com grandes consultas de conjuntos de dados. Os dados são 
armazenados em colunas, em vez de linhas, o que torna mais eficiente consultar 
dados em colunas frequentemente referenciadas e armazenar dados esparsos (onde 
as linhas podem ter apenas alguns valores de dados espalhados pelas várias 
colunas). Exemplos incluem Apache Cassandra, HBase e Scylla.
2021.1
Baseado em grafos
• Bancos deste tipo empregam conceitos da teoria de grafos para a 
representação de relacionamentos entre diferentes conjuntos de dados, tais 
como conexões sociais e outras redes de informações de dados. 
• Exemplos: Neo4J e Giraph.
2021.1
Banco de dados NoSQL
Orientados a Documentos
120
2021.1
Sistemas
monousuários e multiusuários
2021.1
2021.1
Transação
➢Transação: 
• Execução completo e integral que forma uma 
unidade lógica de processamento no BD
• Inclui uma ou mais operações de acesso ao BD: 
• inserção, 
• exclusão, 
• alterações ou 
• consultas
2021.1
Transações no SGBD
Na execução de uma transação o SGBD deve garantir: 
(1) Todas as operações na transação foram 
completadas com sucesso e seu efeito será 
gravado permanentemente no BD
(2) Transação NÃO terá nenhum efeito sobre o 
BD ou outras transações (TRANSAÇÃO FALHAR 
DURANTE EXECUÇÃO)
2021.1
Propriedades ACID das 
transações 
• Atomicidade
• Consistência
• Isolamento
• Durabilidade
2021.1
Propriedades ACID
• Atomicidade
• uma transação é uma unidade atômica
• todas as operações das transações são finalizadas e 
refletidas no BD ou nenhuma delas é finalizada e 
refletida
• Consistência
• transformações preservam a consistência
• a execução correta de uma transação leva o BD de 
um estado consistente a outro estado consistente
2021.1
Propriedades ACID
• Isolamento
• transações são isoladas umas das outras
• cada transação assume que está sendo executada 
sozinha no sistema, e o SGBD garante que os 
resultados intermediários da transação são escondidos 
de outras transações executando concorrentemente
• Durabilidade
• os valores dos dados alterados durante a execução de 
uma transação devem persistir após a finalização desta
2021.1
Cluster
Cluster é um sistema 
que compreende 
dois ou mais 
computadores ou 
sistemas, 
denominados nodos, 
os quais trabalham 
em conjunto para 
executar aplicações 
ou realizar tarefas
2021.1
2021.1
Teorema CAP
• Propriedades
• consistência (Consistency)
• disponibilidade (Availability)
• tolerância à partição (Partition Tolerance)
• Teorema
• é impossível garantir essas três propriedades ao 
mesmo tempo
• é possível garantir quaisquer duas dessas propriedades 
ao mesmo tempo 
2021.1
2021.1
Teorema CAP
2021.1
Consistency (Consistência)
• O sistema garante a leitura do dado mais atualizando. 
• Isso significa que o cliente pode ler o mesmo dado no 
mesmo nó que este dado foi escrito, ou de um nó 
diferente, retornado para a aplicação cliente. 
• Mesmo que alguém tenha mudado o estado do 
domínio da aplicação com novas informações, o 
comportamento de consistência garantirá que o cliente 
não verá dados velhos, apenas os novos dados serão 
visualizados.
2021.1
Availability (Disponibilidade)
• O que aconteceria (ou acontece) na maioria dos sistemas 
quando algum nó esteja momentaneamente indisponível? 
• Na maioria dos sistemas, surgem mensagens de erro do 
tipo: 
• O sistema encontra-se indisponível no momento. 
• Retorne mais tarde! 
• São exemplos de frases interessantes e que dá uma 
satisfação para o usuário final da aplicação.....Porém não é 
algo que o usuário tem que se preocupar, certo?
2021.1
Partition Tolerance
(Tolerância a Partição de Rede / Tolerância a Falhas)
• Significa que o sistema continua operando, mesmo que 
aconteça alguma falha na rede (quebra de conectividade). 
• Exemplo: 
• Um banco de dados distribuído em alguns nós da rede (Ex.: 10 
NÓS) e, estes nós, estão ligados através de um cluster.
• Caso uma das partes do cluster falhe, o sistema continuaria 
operando sem aparentar problema, porque a outra parte que se 
encontra operacional do cluster garantirá que pelo menos as 
operações de leitura continuem funcionando normalmente.
2021.1
Exemplo....
2021.1
Relacional versus NoSQL
✓Bancos de dados Relacionais
• dados estruturados• esquema bem definido
• ... garantem as propriedades ACID
✓Bancos de dados NoSQL
• dados semiestruturados ou não estruturados
• esquema flexível ou nenhum esquema
• ... relaxam as propriedades ACID
✓teorema CAP e propriedades BASE
2021.1
Banco de Dados Relacional vs. 
Orientado a Documentos
• Bancos de Dados Relacionais
• Cada coluna continua reservado no BD aguardando um valor
• Bancos de Dados Orientados a Documentos
• Cada documento pode ser inserido na mesma Coleção com 
número de campos distintos
2021.1
Modelo de Dados: 
Relacional para Documentos
2021.1
Modelo de Dados: 
Relacional para Documentos
2021.1
Modelo de Dados: 
Relacional para Documentos
2021.1
Formação de Documentos
Estratégia
Composição de Informações
através da formação de 
Agregados
2021.1
Modelo Relacional
2021.1
Modelo de Documento
2021.1
MongoDB
• Sintaxe
• [Database].[coleção].[ação]( );
• Criando um Banco de Dados
• Use [NomeBanco]
• Cria e já comença a usar o Banco
• DB – retorna o banco utilizado no momento
• Show DBS – Retorna a lista de Banco de Dados
• Mongod: Inicia o serviço (No servidor)
• Mongo: Inicia o client
2021.1
MongoDB
Insert
• Exemplo 1
//Inserindo – com parâmetros
db.teste.insert({a: true});
• Exemplo 2
//Inserindo – com declaração de 
variável
var json = {b: 'TESTE'}
db.teste.insert(json)
db.teste.find()
{
"_id":
ObjectId("546142385b9f2b586cb31d06"),
"a": true
},
{
"_id":
ObjectId("546142665b9f2b586cb31d07"),
"b": "TESTE"
}
2021.1
MongoDB: ObjectId
• ObjectId
• Insert
• Insert de um objeto:
var disciplina =
{
'descricao':‘Banco de Dados NoSQL',
'Categoria':‘Banco de Dados',
‘Professor’: ‘Henrique Tavares'
}
db.disciplinas.insert(disciplina)
db.disciplinas.find()
2021.1
MongoDB: Coleções
• Insert
• Coleções
var pessoas = [
{‘nome’:’pessoa 1’,’idade’:27},
{‘nome’:’pessoa 2’,’idade’:29},
{‘nome’:’pessoa 3’,’idade’:40}
]
db.pessoas.insert(pessoas)
db.pessoas.find()
2021.1
MongoDB
• Save – Insere e altera valores
var pessoa = {‘nome’:’pessoa 5’,’idade’:27};
db.pessoas.save(pessoa)
db.pessoas.find()
var query = {‘nome’: ‘Pessoa 5’}
var p = db.pessoas.findOne(query)
//É possível imprimir os valores do objeto
Ex :
p
p.nome ou p.idade
p.nome = ‘Novo nome’
db.pessoas.save(p)
2021.1
MongoDB
• Find
• Retorna um cursor que é convertido em array
var query = {idade:27}
var campos = {nome: 1, idade: 0}
//Nos campos o valor determina que o propriedade será exibida no select
db.pessoas.find(query,campos)
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
2021.1
Bancos de Dados
Chave-Valor
o Redis
o Riak
o Berkeley DB
o DynamoDB
Definição de banco de 
dados de chave-valor
• Um banco de dados de chave-valor é 
um tipo de banco de dados não 
relacional que usa um método de 
chave-valor simples para armazenar 
dados.
• Um banco de dados de chave-valor 
armazena dados como um conjunto 
de pares de chave-valor em que uma 
chave funciona como um 
identificador exclusivo. 
• A chave e os valores podem ser qualquer 
coisa, desde objetos simples até objetos 
compostos complexos.
• Bancos de dados de chave-valor são 
altamente particionáveis e permitem 
escalabilidade horizontal que outros tipos de 
bancos de dados não conseguem alcançar.
• Por exemplo, o Amazon DynamoDB alocará 
partições adicionais a uma tabela se uma 
partição existente for preenchida até o limite 
de capacidade e mais espaço de 
armazenamento for necessário.
Definição de banco de 
dados de chave-valor
https://aws.amazon.com/dynamodb/
O diagrama a seguir mostra um exemplo de dados armazenados como
pares de chave-valor no DynamoDB
2021.1
1. Um aplicativo orientado por sessão, como um aplicativo da Web, começa uma 
sessão quando o usuário faz login e fica ativo até que o usuário se desconecte 
ou a sessão expire. 
2. Durante esse período, o aplicativo armazena todos os dados relativos à sessão 
na memória principal ou em um banco de dados.
3. Os dados da sessão podem incluir informações de perfil do usuário, 
mensagens, dados e temas personalizados, recomendações, promoções 
direcionadas e descontos.
4. Cada sessão de usuário tem um identificador exclusivo. Os dados de sessão 
nunca são consultados por nada além de uma chave primária, então um 
armazenamento de chave-valor rápido é mais adequado para dados de 
sessão. 
5. Em termos gerais, os bancos de dados de chave-valor podem proporcionar 
menor sobrecarga por página do que bancos de dados relacionais.
Casos de uso:
Armazenamento de sessões
2021.1
• Na temporada de compras de fim de ano, um site de 
comércio eletrônico pode receber bilhões de pedidos em 
questão de segundos.
• Bancos de dados de chave-valor podem lidar com a 
escalabilidade de grandes quantidades de dados e volumes 
extremamente altos de mudanças de estado enquanto 
atendem a milhões de usuários simultâneos por meio do 
processamento e armazenamento distribuído. 
• Bancos de dados de chave-valor também têm redundância 
incorporada, que podem lidar com a perda de nós de 
armazenamento.
Casos de uso:
Carrinho de compras
Redis
• O Redis é um armazenamento de 
estrutura de dados de chave-valor de 
código aberto e na memória. 
• O Redis oferece um conjunto de 
estruturas versáteis de dados na 
memória que permite a fácil criação 
de várias aplicações personalizadas.
• Os principais casos de uso do Redis 
incluem cache, gerenciamento de 
sessões, PUB/SUB e classificações. É o 
armazenamento de chave-valor mais 
conhecido atualmente:
http://db-engines.com/en/ranking/key-value+store
http://db-engines.com/en/ranking/key-value+store
http://db-engines.com/en/ranking/key-value+store
2021.1
• Utilizado
• Session Cache:
• Lojas online para carrinho de vendas
• Cache de Página
• Diversos plugin para lojas virtuais
• Wordpress
• Majento
• Filas
• Análise em tempo real de eventos
• Estatísticas (Contagem/Scores)
• Exemplos de projetos que utilizam redis
• https://redislabs.com/solutions
Redis
https://redislabs.com/solutions
2021.1
• Basicamente um Dicionário chave-valor. 
• C#: Dictionary
• Java: HashMap
• O Redis armazena em memória RAM os dados, e de 
tempos em tempos transfere o conteúdo da memória 
para o disco.
Redis
2021.1
• Porque usar? 
• Insanamente rápido 
• Leve e pequeno 
• Dados armazenados em memória/disco 
• É OpenSource
Redis
2021.1
• Vantagens
• Acesso aos dados é realizado de forma ágil, sem acesso ao 
disco. 
• Desvantagens
• Não permite JOINS do SQL 
• Necessário ter o mesmo espaço de memória do mesmo 
tamanho do dado que deseja armazenar
Redis
2021.1
• Tipos de dados 
• Strings
• Integers
• Hash
• Lists
• Sets 
• Sorted Sets
Redis
2021.1
• Armazena dados simples 
• Strings
• Números 
• Dados complexos 
• Lists
• Sets 
• Hashes
• Sorted Sets
Redis
2021.1
• Exemplo: 
• redis> set disciplina “Banco de Dados NoSQL” 
• redis> get disciplina 
• “Banco de Dados NoSQL”
Redis
2021.1
• Operações 
• get/set
• push/pop
• add/remove
• union/intersect/diffs
• e muito mais, incluindo opções de ordenação.
Redis
2021.1
• Download 
• https://github.com/MSOpenTech/redis/releases
• http://redis.io/commands
• Avançar... Avançar...
• Abrir redis-cli.exe 
Ou 
• CMD = redis-cli
Redis
https://github.com/MSOpenTech/redis/releases
http://redis.io/commands
2021.1
• Trabalhando com strings e inteiros
• set key = definie um valor a uma chave
• get key = retorna o valor de uma chave 
• append key = concatena um novo valor ao valor atual de uma 
chave e altera o valor atual da chave 
• mget key [key...] = retorna o valor de várias chaves 
• substr key args args = retorna um intervalo do valor de uma chave 
• Incr key = incrementa valor 1 a uma chave do tipo inteiro 
• incrby num arg = incrementa valor especificado a uma chave do 
tipo inteiro 
• decr num = decrementa valor 1 a uma chave do tipo inteiro
Redis
2021.1
• Trabalhando com strings einteiros
• set nome “Niterói” 
• get nome
• “Niterói” 
• set disciplina “Banco de Dados ” 
• append disciplina “NoSQL” 
• mget nome disciplina 
• 1. “Niterói” 
• 2. “Banco de Dados NoSQL” 
• substr nome 2 6 
• “erói”
Redis
2021.1
• Trabalhando com strings e inteiros
• set num 1 
• incr num 
• (interger) 2 
• incrby num 8 
• (interger) 10 
• decr num 
• (interger) 9 
• get num
• “9”
Redis
2021.1
• Trabalhando com Listas 
• rpush key = insere um item a direita da lista (final) 
• lpush key = insere um item a esquerda da lista (início)
• lrangekey arg arg = retorna parte da lista definido pelo 
intervalo
• lpop key = retorna um elemento a esquerda da lista e o 
remove 
• rpop key = retorna um elemento a direita da lista e o remove
Redis
2021.1
• Trabalhando com Listas 
• rpush lista 1 
• rpush lista 2 
• lpush lista 0 
• lrange lista 0 2 
• 1) “0”
• 2) “1” 
• 3) “3”
• lrange lista 0 1 
• 1) “0” 
• 2) “1”
Redis
2021.1
• Trabalhando com Listas 
• lpop lista 
• “0” 
• lrange lista 0 -1 
• 1) “1” 
• 2) “2” 
• rpop lista 
• “2” 
• lrange lista 0 -1 
• 1) “1”
Redis
2021.1
• Trabalhando com SET - Coleções de String – Não Ordenadas 
• sadd key = adiciona um item a uma coleção 
• smembers key = retorna os itens de uma coleção 
• sunion key [key...] = realiza a união de duas ou mais coleções 
• sinterkey [key...] = retorna intercessão entre coleções 
• sdiff key [key...] = retorna a diferença entre coleções 
• srem key arg = remove um item específico de uma coleção
Redis
2021.1
• Trabalhando com SET - Coleções de String – Não 
Ordenadas 
• sadd usuarios “bené”
• sadd usuarios “odilon” 
• sadd usuarios “fernando” 
• smembers usuarios
• 1) “odilon” 
• 2) “bené” 
• 3) “fernando”
Redis
2021.1
• Trabalhando com SET - Coleções de String – Não Ordenadas 
• sadd log “bené” 
• sinter usuarios log 
• 1) “bené”
• sdiff usuarios log 
• 1) “odilon” 
• 2) “fernando” 
• sunion usuarios log 
• sremusuarios “fernando”
• smembers usuarios
• 1) “odilon” 
• 2) “bené”
Redis
2021.1
• Trabalhando com SORTED SET - Coleções de String –
Ordenadas 
• zadd nomes 1 “Fulano” 
• zadd nomes 2 “Cicrano” 
• zrangenomes 0 -1 
• 1) “Fulano” 
• 2) “Cicrano” 
• zrevrangenomes 0 -1 
• 1) “Cicrano” 
• 2) “Fulano” 
• zremnomes 1
Redis
2021.1
• Trabalhando com HASH 
• hset pessoa nome “Niterói” 
• hmset pessoa email “nosql at estacio.br” senha “123” 
• hkeys pessoa 
• 1) “nome” 
• 2) “email” 
• 3) “senha” 
• hvals pessoa 
• 1) “Niterói” 
• 2) “nosql at estacio.br” 
• 3) “123”
Redis
2021.1
• Trabalhando com HASH 
• hgetall pessoa 
• 1) “nome” 
• 2) “email” 
• 3) “senha”
• 4) “Niterói” 
• 5) “nosql at estacio.br” 
• 6) “123” 
• hdel pessoa senha 
• hmget pessoa nome email
• 1) " Niterói“ 
• 2) “nosql at estacio.br”
Redis
2021.1
• Documentação 
• http://redis.io/documentation
• Comandos
• http://redis.io/commands
Redis
http://redis.io/documentation
http://redis.io/commands

Outros materiais