Buscar

Aula 4 BBD Avançado

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 9 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 9 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 9 páginas

Prévia do material em texto

Disciplina: Banco de Dados Avançado
Aula 4: O paradigma NoSQL
Apresentação
Todos os modelos de banco de dados existentes foram desenvolvidos para atender às necessidades especí�cas de cada
período em que foram lançados. Na presente aula, veri�caremos a razão da criação do modelo de dados Not Only SQL.
Além das características principais desse paradigma, compreenderemos quais tipos de aplicações são as ideais para esse
tipo de modelo de banco de dados, que tem como objetivo o desenvolvimento de aplicações para atender às necessidades
de bancos para Big Data.
Será apresentada uma visão geral de cada categoria de banco de dados NoSQL existente atualmente e disponível no
mercado, de modo que se possa avaliar qual solução melhor se adequa a cada tipo de aplicação envolvendo banco de
dados.
Objetivos
Identi�car a necessidade do surgimento da tecnologia NoSQL;
Investigar os bancos de dados NoSQL;
Reconhecer as categorias de bancos de dados NoSQL.
Premissa
A área de banco de dados é uma das mais antigas da computação. Ela vem evoluindo de modo a melhor suprir as demandas que
são apresentadas pelas novas aplicações. O paradigma NoSQL é um conjunto de tecnologias que facilitam a resolução dos
problemas de uma ampla variedade de sistemas de gerenciamento de banco de dados que são distintos dos sistemas de bancos
de dados relacionais. A grande distinção é que a SQL não é usada como a principal linguagem de consulta e que esses sistemas
também são projetados para armazenamentos de dados distribuídos e apropriados para uso com a tecnologia Big Data.
Um banco de dados, de forma autônoma, não consegue trabalhar bem com grandes volumes de dados, ou seja, não foram
criados para a execução de tarefas volumes enormes em pouco tempo. Eles não preveem o crescimento de seu processamento,
sem que seja necessário um ajuste na con�guração.
Os robôs de busca e as informações geradas pelas redes sociais começaram a aumentar de uma forma tão acentuada que o
problema necessitou de medidas para o controle desse gerenciamento.
Inicialmente, foi considerado o aumento do número de equipamentos ou servidores para a obtenção de mais capacidade de
processamento, mas, mesmo assim, a conclusão foi que o volume de dados continuaria a ser um fator limitante, diminuindo o
desempenho do sistema no conjunto.
Efetuar a distribuição dos dados por nós foi uma outra tentativa realizada, porém, para colocar em prática essa abordagem,
necessitam-se mudanças no processamento das consultas e na arquitetura do sistema como um todo.
Diferenças entre NoSQL e o modelo relacional
As principais diferenças entre a base de dados desses modelos são:
Modelo relacional NoSQL
Esquema pré-definido Esquema dinâmico para dados não estruturados;
Tem como base tabelas, representam dados no formato de
tabelas que consistem em um número de linhas para seus
registros.
Baseiam-se em documentos, pares de chave-valor, bancos de dados em
grafos ou armazenamentos em colunas. 
No entanto, os bancos NoSQL são a coleções de pares chave-valor,
bancos de dados em grafos, documentos ou ainda armazenamentos em
coluna e que não necessitam de esquemas para os seus projetos;
Escalonamento vertical; Escalonamento no formato horizontal;
São dimensionados de acordo com o hardware disponível; São dimensionados por meio da inclusão de servidores de bancos de
dados no agrupamento de recursos;
Usam a SQL (linguagem de consulta estruturada) para
definição (DDL) e manipulação (DML) dos dados;
As consultas são focadas na coleta de documentos. A linguagem é
conhecida também como UnQL (Unstructured Query Language). A sintaxe
da linguagem tem variação entre SGBDs;
Exemplos: SQLite <https://www.sqlite.org> , Postgresql
<https://www.postgresql.org> , MySql
<https://www.mysql.com> , Oracle
<https://www.oracle.com/database> , e SQL Server
<https://www.microsoft.com/pt-br/sql-server/> ;
Exemplos: BigTable <https://cloud.google.com/bigtable/?hl=pt> , Redis
<https://redis.io> , MongoDB <https://www.mongodb.com> , Hbase
<https://hbase.apache.org> , Neo4j <https://neo4j.com> , Cassandra
<//cassandra.apache.org> e CouchDb <//couchdb.apache.org> ;
Não são adequados para o armazenamento hierárquico de
dados;
Se adequa melhor ao propósito do armazenamento hierárquico de dados,
pois segue o modo de pares de chave-valor para armazenar dados
semelhantes aos dados, como é o caso do formato JSON. O banco de
dados NoSQL é mais apropriado para grandes conjuntos de dados;
São adequados para o ambiente com consultas complexas; Não são adequados para esse tipo de consulta. O NoSQL não tem
interfaces específicas para executar consultas complexas, e as próprias
consultas no NoSQL não são tão eficientes quanto a linguagem de
consulta SQL;
Ampla disponibilidade e suporte são o que se encontra no
mercado para bancos de dados relacionais por meio de seus
fornecedores oficiais;
Para alguns bancos de dados NoSQL, necessita-se recorrer ao suporte da
comunidade e poucos especialistas para a configuração e implantação de
sistemas NoSQL de larga escala;
Em termos de escalabilidade, na grande maioria das
situações típicas, os bancos de dados relacionais são
escalonáveis verticalmente. Pode ser feito o gerenciamento
pelo aumento de carga via hardware em um único servidor;
São escalonáveis horizontalmente. Pode-se adicionar mais alguns
servidores na infraestrutura do banco de dados NoSQL para lidar com a
grande necessidade de tráfego;
São os mais adequados Em aplicações baseadas em alta
capacidade transacional, pois são mais estáveis e seguem as
propriedades ACID (Atomicidade, Consistência, Isolamento e
Durabilidade);
São baseados no Teorema CAP (Consistência, Disponibilidade e Tolerância
à Partição);
Classificado como de código aberto ou proprietários
(comerciais).
Classificado de acordo com objetivo ou forma de armazenamento dos
dados. Temos, assim: bancos de dados em grafos, de armazenamento de
chave-valor, orientados a documentos e orientados por colunas.
https://www.sqlite.org/
https://www.postgresql.org/
https://www.mysql.com/
https://www.oracle.com/database
https://www.microsoft.com/pt-br/sql-server/
https://cloud.google.com/bigtable/?hl=pt
https://redis.io/
https://www.mongodb.com/
https://hbase.apache.org/
https://neo4j.com/
http://cassandra.apache.org/
http://couchdb.apache.org/
1960
Desde a década de 1960, os primeiros SGBDs já existiam, como é o caso do IMS (Information Management System) da IBM,
que era um é um banco de dados hierárquico.
1970
Na década de 70, surge o modelo de banco de dados relacional, também criado pela IBM e baseado na Teoria de Conjuntos.
1980
Nos anos 80, surge o modelo relacional-objeto, com a inclusão de recursos da orientação objeto aos bancos relacionais já
existentes. Na mesma década, foram criados os bancos de dados orientados a objetos.
Características do modelo de dados NoSQL
Bancos de dados não relacionais não são recentes.
Essa evolução vem de muito tempo, o que acarretou no desenvolvimento de outros modelos
de dados, que foram baseados nas necessidades de cada época, assim como nas
tecnologias disponíveis.
Os bancos de dados NoSQL foram criados para uso em ambiente distribuído e, em decorrência disso, houve a necessidade de
criação de um controle diferente do controle de consistência (ACID) no modelo de dados relacional. Dessa forma, as bases de
dados NoSQL utilizam a consistência nomeada como eventual, pois o modelo de consistência foi criado para sistemas
distribuídos.
Assim, NoSQL signi�ca, na prática, um grupo de produtos com o objetivo de manipular grandes volumes de dados não limitados
apenas a SQL para sua manipulação. Não há um único conceito, mas sim uma certa quantidade de soluções, partindo de que não
há apenas um modelo de dados. Estes podem ser classi�cados em relação à arquitetura utilizada (distribuídos e não distribuídos),
quanto ao sistema de armazenamento (disco, memória ou ambos) e modelo de dados (chave-valor, documento, colunas ou em
grafos).
Outros novos conceitos também foram acrescidos com oNoSQL, são eles: 
• livre de esquema, 
• possuir uma API simples e 
• ter a consistência eventual.
Principais características
Esquema livre
Esquema livre (schema free) indica que a base de dados não possui uma estrutura �xa, ou seja, os dados não têm estrutura pré-
de�nida.
Surge assim a base de dados não relacional com mais �exibilidade, em que o
armazenamento dos dados não estruturados pode ser feito em qualquer formato, sem
normalização ou necessidade de uma de�nição prévia e possuindo ainda bom
desempenho em face das exigências do Big Data.
Desvantagem dessa característica
É a possibilidade da existência de dados com redundância ou com incoerência. Pode-se
compreender a consistência dos dados como uma escolha realizada em detrimento do
aumento da tolerância a falhas, de modo a permitir alcançar uma maior disponibilidade e o
ganho na distribuição de dados. Tais requisitos são fundamentais no trabalho com volumes
maciços de dados.
Categorias de bases de dados no modelo NoSQL
Clique nos botões para ver as informações.
Funciona de modo semelhante a recursos existentes em linguagens de programação, como collections e arrays. São
conjuntos de pares chave-valor, ou seja, primeiro a de�nição da chave, seguida do valor dado a ela. Comparativamente, no
banco de dados relacional, uma linha da tabela possui um número determinado de atributos, mas agora um registro ou linha
é formada por um grupo de pares no formato chave-valor, que necessariamente não precisam ter os mesmos pares. A
grande vantagem do modelo é o fato de ser simples quanto ao uso e à codi�cação, pois uma coleção de chaves tem um
valor único.
Chave-valor 
Um registro na base de dados faz relação com um documento. Os documentos normalmente são compostos por um
identi�cador e um valor. No valor, podem-se introduzir outros identi�cadores acompanhados de valores. A vantagem deste
modelo é a capacidade de suportar conjuntos de conjuntos de pares chave-valor.
Documento 
É um avanço do modelo baseado em chave-valor, observando que na hipótese de se ter um conjunto de pares chave-valor
sem um critério organizacional pequeno o su�ciente, podem ser acarretados problemas. Assim, para agrupar os pares, foi
de�nido que pares chave-valor poderiam ser agrupados horizontalmente. Nesse contexto, aparece também a de�nição de
superfamília de colunas, que é o par chave-valor composto por um id (identi�cador) e um grupo de colunas. Como fatores
positivos do modelo, surge a maior consistência pois as leituras paralelas são executadas por processos paralelizados na
ordem sequencial.
Colunas 
É um modelo baseado Teoria dos Grafos. Utiliza-se como componentes um conjunto de vértices e ramos na representação
dos dados, em vez de tabelas ou pares chave‐valor. Entre as vantagens destaca-se comparadas aos bancos de dados
relacionais, apresenta estrutura em grafo que facilita a representação de objetos e de suas propriedades. Assim como a
Teoria Matemática de Conjuntos, a Teoria dos Grafos é madura e faz uso de implementações de algoritmos para percorrer
os grafos à procura de dados de modo bastante otimizado. Permite mais �exibilidade para a obtenção de dados, e é possível
se adicionar e remover vértices ou ramos sem grandes problemas. Esse modelo é adequado para uso nas redes sociais, pois
é mais simples percorrer um grafo de associações do que fazer uma query.
Grafos 
Modelo Linguagem deconsulta MapReduce Tipo de dado Transação Exemplo
Relacional SQL, Python, C Não Tipado ACID postgreSQL. DB2,
Oracle
Coluna Ruby Hadoop Pré-definido e
tipado
Sim, se
habilitada
HBase
Grafo Walking, Cypher ou Search Não Não tipado ACID Neo4J
Documento Command JavaScript Tipado Não CouchDB, MongoDB
Chave-
valor
Command, Lucene JavaScript BLOB, semitipado não Redis, Riak
Tipos de modelos de dados e principais características. Fonte: HURWITZ,J.; NUGENT,A.; HALPER,D. ; KAUFMAN, M. Big Data para
leigos. 1. ed. Rio de Janeiro: Alta Book, 2015.
Atividade
1. Cite uma característica para cada tipo de modelo de dados NoSQL.
2. De�na “livre de esquema” ou “schema free”.
3. Cite um exemplo de sistema gerenciador de banco de dados para cada modelo de banco de dados apresentado.
4. Analise as sentenças abaixo e depois marque verdadeiro ou falso:
a) O pelo tem a função primordial de produzir sebo.
b) Existem mais de 20 tipos de colágeno na pele, cada um desempenhando uma função.
c) Somente a primeira camada de epiderme, a camada lúcida, possui a função de proteção do organismo.
d) A hipoderme também possui função importantes no organismo, como proteção contra traumas, isolante térmico e reserva energética.
e) As glândulas sudoríparas são abundantes na face e por isso terão grande importância nos tratamentos de acne e oleosidade.
5. Cite as funções das seguintes estruturas: queratinócitos, células de Langerhans, células de Merkel e melanócitos.
Referências
BENGFOR, B.; KIM, J. Analítica de dados com Hadoop: uma introdução para cientistas de dados. 1. ed. São Paulo: Novatec, 2016.
ELMASRI,R.; NAVATHE. Sistemas de banco de dados. 6 ed. São Paulo: Pearson Education, 2012.
HURWITZ,J.; NUGENT,A.; HALPER,D. ; KAUFMAN, M. Big Data para leigos. Col. Para Leigos. 1. ed. Rio de Janeiro: Alta Book, 2015.
Próxima aula
O modelo de dados NOSQL baseado em documentos;
As principais características do MongoDB.
Explore mais
Leia os textos: 
Mapeando tipos de dados para campos no HBase <https://www.ibm.com/support/knowledgecenter/pt-
br/SSPT3X_4.1.0/com.ibm.swg.im.infosphere.biginsights.analyze.doc/doc/bsql_encoding.html> .
O que é um banco de dados de chave-valor? <https://aws.amazon.com/pt/nosql/key-value/>
https://www.ibm.com/support/knowledgecenter/pt-br/SSPT3X_4.1.0/com.ibm.swg.im.infosphere.biginsights.analyze.doc/doc/bsql_encoding.html
https://aws.amazon.com/pt/nosql/key-value/

Continue navegando