Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Inserir de Dados
Aqui
Inserir
Não Estruturados
Título Aqui
Banco de Dados Não-Relacional
Revisão Textual:
Profa. Dra. Silvia Albert
Banco de Dados Não-Relacional
Caro Aluno(a)!
Nesta unidade, abordaremos operações com outros objetos do banco de dados não-
-relacional.
Bons Estudos!
UNIDADE
Banco de Dados Não-Relacional
Introdução ao Tema
Caro(a) aluno(a),
Alguns objetos do banco de dados são usados para melhorar o desempenho geral
do sistema. Índices e capped collection são objetos que, tipicamente, auxiliam no
desempenho do MongoDB. Uma capped collection é uma coleção limitada, com um
tamanho fixo, que sobrescreve, automaticamente, as atualizações antigas sempre que
atinge o tamanho máximo. Dessa forma, ela é utilizada, principalmente, para garantir
desempenho, pois o otimizador trabalha melhor quando o espaço reservado para o
objeto é pré-alocado. Esses objetos comportam-se como um registro de eventos circular.
Nesse tipo de coleção, os dados antigos são sobrescritos pelos novos, mas
preserva-se a ordem de inserção dos dados, sem a necessidade de índices adicionais.
Além disso, uma capped collection tem melhor desempenho em inserções massiva
de dados (BULK INSERT) e operações de pesquisa. Ela só pode ser criada através do
método createCollection(). Apesar das operações de inclusão, alteração e consulta
não sofrerem alterações, não é possível remover dados de uma capped collection.
Todo índice possui uma ou mais chaves. Chaves são atributos que são usados para
organizar internamente os dados. O índice pode ser criado em ordem crescente (1)
ou decrescente (-1). Vale lembrar que índices ocupam espaço em disco. Toda coleção
contém um índice no campo _id. A função createIndex pode ser usada para criar um
índice básico. Já os métodos dropIndex e dropIndexes são usados para eliminar índices.
Além disso, os índices de uma coleção podem ser listados pelo método getIndexes().
6
Existem vários tipos de índices. Dentre eles, destacamos:
• Índices de campo único: índice que inclui apenas os dados de um único campo
dos documentos em uma coleção. O índice pode ser criado em qualquer documento
ou sub-documento de uma coleção.
• Índices compostos: índice que inclui mais de um campo dos documentos em
uma coleção.
• Índices multikey: índice em um campo de array, adicionando uma chave de índice
para cada valor no array.
• Índices geoespaciais: índice que suporta pesquisas baseadas em geo-localização,
sendo armazenado em objetos GeoJSON.
• Índices de texto: índice que suporta busca em sequência de caracteres em documentos.
• Índice de hash: índice usado para manter as entradas de hash dos valores de campos
indexados, sendo utilizado em sharded clusters para suportar índices particionados.
$nin - Procura por valores que não existem dentro de um array. Exemplos:
$size - Retorna qualquer array que tenha o número especificado de elementos. Exemplo:
7
7
UNIDADE
Banco de Dados Não-Relacional
Ao trabalharmos com datas devemos levar em consideração que o valor das datas
é armazenado internamente como um inteiro de 64 bits (com valores positivos e
negativos) que contém a quantidade de milissegundos desde primeiro de janeiro de
1970. Valores positivos indicam datas depois deste marco inicial e valores negativos
indicam datas anteriores a ele. As funções Date() ou ISODate() trabalham de maneira
análoga em manipulações de datas no JavaScript.
Alguns métodos podem ser usados para simplificar a operação com datas:
• Date() - Retorna uma data como texto ou como um objeto do tipo Date.
• new Date() - Retorna a data corrente como um objeto do tipo Date.
• new Date (“<YYYY-mm-dd>”) - Retorna à data especificada no texto (“<YYYY-
mm-dd>”) como um objeto do tipo Date.
Exemplo:
db.ColDate.find();
doc.aDate;
Além disso, existem métodos que extraem parte de uma data. Apresentamos, a
seguir, esses métodos:
• getMonth() - Retorna o mês de uma data. O primeiro mês é o mês 0 (janeiro) e o
último mês é o mês 11 (dezembro).
• getDate() - Retorna o dia do mês.
• getFullYear() - Retorna o ano com quatro dígitos.
Exemplo:
8
Vale lembrar que em cálculos com datas, as operações de soma ou subtração de datas
sempre retornam valores em milissegundos. É necessário converter os microssegundos
na unidade de tempo desejada. Exemplo:
var z = x - y;
z/(24*3600*1000);
Vimos, nessa unidade, outras operações com outros objetos do banco de dados não-
-relacional como as coleções limitadas ou capped collections, operações com vetores ou
arrays, além de operações com data e uso de índice.
Esperamos ter alcançado o objetivo de levá-lo não só a entender os aspectos relevantes do
uso desses objetos, mas também a saber onde podem ser melhor aplicados para ajustar as
operações do banco de dados não-relacional.
Não deixe de fazer as leituras indicadas na unidade e as atividades, para que possa construir
e solidificar novos conhecimentos! Bom trabalho!
9
9
UNIDADE
Banco de Dados Não-Relacional
Leitura Obrigatória
Caro(a) aluno(a),
Considerando que a ideia central desta unidade é lhe mostrar os principais conceitos
que envolvem o banco de dados não-relacional, é de suma importância que primeiro
conheçamos os princípios de banco de dados relacional.
Atento(a) a esses aspectos, inicie suas leituras pelo capítulo Arquitetura de Sistemas de
Banco de Dados , da página 28 a 46 – da obra de C.J. Date, Introdução a Sistemas de Banco
de Dados, disponível na Biblioteca Virtual Universitária.
Passe, então, para o capítulo Normalização Avançada I: 1FN, 2FN, 3FN, FNBC, da página
302 a 323. Em seguida, reveja os conceitos de Banco de Dados distribuído, da página 554 a
583 e os princípios de Word Wide Web e XML, da página 768 a 801.
Para acessar esta obra, percorra o seguinte caminho:
Após entrar em sua “área do aluno” https://goo.gl/ViBv20, no menu à esquerda da tela,
clique em “Serviços”, depois em “Biblioteca” e, no centro da tela, clique em “E-books - Bib.
Virtual Universitária”. No topo da tela que abrirá haverá um campo de busca para autor,
título, assunto etc., nesse espaço digite “Introdução a Sistemas de Bancos de Dados” (sem
as aspas) e clique na capa que aparecer como resultado.
Para ler os capítulos e páginas indicados, utilize a seta ao lado direito da tela para avançar
página a página. Observe também que os ícones no rodapé da tela correspondem a
determinadas funções, entre as quais ampliar a visualização (zoom), marcar a obra como
favorita, imprimir trechos que escolher e pular para um número específico de página.
Referência: DATE, C.J. Introdução a Sistemas de Bancos de Dados. Trad. Daniel Vieira. Rio
de Janeiro: Elsiever Editora, 2015.
10
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Array Update Operators
https://goo.gl/SQhXpF
Date Aggregation Operators
https://goo.gl/vkvLXn
Vídeos
Capped Collections
https://youtu.be/-N9i-YXoQBE
11
11
UNIDADE
Banco de Dados Não-Relacional
Referências
DATE, C.J. Introdução a Sistemas de Bancos de Dados. Trad. Daniel Vieira. Rio
de Janeiro: Elsiever Editora, 2015.
12