Você está na página 1de 19

BANCO DE

TRABALHO DE
BANCO DE DADOS
DADOS
NOSQL
ORIENTADO A
DOCUMENTOS
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Definição
Um banco de dados de documentos é um tipo de banco de dados
não relacional projetado para armazenar e consultar dados como
documentos do tipo JSON. Os bancos de dados de documentos
facilitam para que os desenvolvedores armazenem e consultem
dados usando o mesmo formato de modelo de documento que usam
no código do aplicativo. A natureza flexível, semiestruturada e
hierárquica dos documentos e dos bancos de dados de documentos
permite que eles evoluam conforme as necessidades dos
aplicativos. O modelo de documentos funciona bem com casos de
uso como catálogos, perfis de usuários e sistemas de gerenciamento
de conteúdo, onde cada documento é único e evolui com o passar
do tempo. Os bancos de dados de documentos possibilitam uma
indexação flexível, consultas ad hoc eficientes e análises de dados
em grupos de documentos.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Definição

Neste tipo de banco de dados, os registros não precisam ter uma


estrutura uniforme. Assim, registros distintos podem ter coleções de
atributos diferentes. Além disso, os tipos de dados nas colunas
individuais podem ser diferentes para cada registro, o que não
ocorre em bancos relacionais.
Também é possível armazenar mais de um valor em uma mesma
coluna, como um array de valores (vetor). Em um banco relacional
isso representaria um atributo multivalorado, o qual seria eliminado
no processo de normalização.
Finalmente, os registros podem ter uma estrutura aninhada, o que
também é eliminado na normalização em um banco relacional.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

JSON

É um padrão leve de intercâmbio de dados, projetado para facilitar a


leitura e escrita de estruturas, também sendo de fácil interpretação e
geração por máquinas.
Suas estruturas são baseadas em um subconjunto da especificação
da linguagem JavaScript e permitem a construção de estruturas de
dados partindo de dois conceitos: uma coleção de pares chave/valor
e uma lista ordenada de valores. Foi projetado com o objetivo de ser
simples, portátil, textual.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Exemplo1
No exemplo a seguir, um documento semelhante ao JSON descreve um livro.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Exemplo2
BANCO DE DADOS ORIENTADO A DOCUMENTOS

XML

A XML é das tecnologias recentes mais promissoras, seja


simplesmente para marcação, para intercâmbio, ou para
estruturação e armazenamento de dados. Os bancos de dados XML
são uma subclasse de bancos de dados orientados a documentos
que são otimizados para trabalhar com documentos XML.
A estrutura de um documento XML tem grande importância quando
da escolha de qual forma de armazenamento será adotada para o
documento.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Exemplo1
O exemplo abaixo pode ser codificado em XML
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Document Type Definition (DTD)

Uma Document Type Definition (Definição de Tipo do Documento, ou


DTD) pode ser definida como um conjunto de regras que definem
quais os tipos de dados e entidades que farão parte de um
documento XML. Estas regras serão utilizadas para que o analisador
sintático verifique se o documento está correto ou não. A DTD pode
estar definida dentro do próprio arquivo XML ou em um arquivo à
parte com extensão dtd, que deve ser incluído no código XML. A
DTD pode ser usada para padronizar um documento XML e torná-lo
bastante coerente com as necessidades do programador, porém sua
criação não é obrigatória.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Exemplo1

Abaixo está uma DTD para nosso exemplo de carta em XML:


BANCO DE DADOS ORIENTADO A DOCUMENTOS

XML Schemas Definition


A XML Schemas Definition (XSD) é uma recomendação do W3C criada no
intuito de permitir que pessoas definam, através de regras, a estrutura, o
conteúdo e a semântica de um documento XML. Segundo Obasanjo (2002,
tradução nossa), “a recomendação de schema XML do W3C [...] fornece um
meio sofisticado de descrever a estrutura e restrições no modelo de
conteúdo de documentos XML”. A XSD tem a mesma função que DTDs,
porém ela possui uma infinidade de novas características que a torna muito
mais poderosa que DTDs. Ela usa uma sintaxe baseada em XML para
descrever as possíveis estruturas e elementos de um documento de XML.
Permite também que sejam especificados tipos de dados, inclusive com
verificação de seus valores limites. Por ser derivada da XML, é extensível e
escalável. Por fim, suporta alguns conceitos da programação orientada a
objetos, como herança e polimorfismo.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Exemplo1
A seguir temos um exemplo de XSD para definir a estrutura do nosso exemplo de carta:
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Características

• Permite que tenha redundância e inconsistência.


• Contêm todas as informações importantes em um único documento.
• Livre de esquemas
• Identificadores Únicos Universais (UUID)
• Consultar os documentos através de métodos avançados de
agrupamento e filtragem: MapReduce*.
• Cada documento é uma coleção de pares chave-valor
• Usualmente baseado nos formatos XML ou JSON
• Aplicações típicas: Aplicações web
*MapReduce (Framework desenvolvido pelo Google) – Modelo de programação paralela para processamento largamente
distribuído de grandes volumes de dados. MAP – Processo de mapear a requisição do originador. REDUCE – Processo de
agregação do resultado em algo consolidado.
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Vantagens
• Ganha flexibilidade, disponibilidade, linguagem de
consulta simples e performance.

Desvantagens

• Perda em consistência
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Diferenças entre BD Orientado a Documentos e BD Relacional

BD Orientado a Documentos BD RELACIONAL


Documentos autocontidos Tabelas
Sem necessidade de definir um esquema Colunas e chaves rigidamente definida
rígido
Inserção de um novo campo sem afetar Modificações posteriores é uma tarefa
outros documentos rígida e difícil
Os documentos não precisam armazenar Registros não podem ser adaptados para
valores de dados vazios para campos os diferentes circunstâncias. Por exemplo,
quais não possuem um valor deixar um campo vazio.

Os dados podem estar repetidos em Única entrada para cada dado sem
diversos documentos possibilidade de repetição.
Identificador Universalmente Único (UUID) Chaves primárias

Não suporta junções, mas possibilita criar Suporta junções usando chaves primárias e
uma visualização o qual permite gerar uma estrangeiras
BANCO DE DADOS ORIENTADO A DOCUMENTOS

Algumas Ferramentas utilizadas:


BANCO DE DADOS ORIENTADO A DOCUMENTOS

As 5 diferenças mais importantes entre CouchDB e MongoDB são:


Consultas: o CouchDB aceita consultas por meio de uma API RESTful HTTP, enquanto o
MongoDB tem sua própria linguagem de consulta.

Teorema CAP: o CouchDB prioriza a disponibilidade, enquanto o MongoDB prioriza a


consistência.

Base de usuários: o MongoDB tem uma base de usuários muito maior do que o CouchDB,
tornando mais fácil encontrar suporte e contratar funcionários.

Preço: CouchDB e MongoDB são projetos gratuitos e de código aberto, mas provavelmente
requerem um serviço totalmente gerenciado pago para implementação na produção.

Avaliações: o MongoDB parece ter análises um pouco melhores do que o CouchDB


BANCO DE DADOS ORIENTADO A DOCUMENTOS

Onde (e como) esses bancos de dados são implantados?


CouchDB: CouchDB foi escrito em Erlang e está disponível para Android, BSD, iOS, Linux, OS X,
Solaris e Windows.

Ele tem suporte para várias linguagens de programação, incluindo: C, C #, ColdFusion, Erlang,
Haskell, Java, JavaScript, Lisp, Lua, Objective-C, OCaml, Perl, PHP, PL / SQL, Python, Ruby e
Smalltalk.

MongoDB: MongoDB foi escrito em C ++ e pode ser implantado em Linux, OS X, Solaris e


Windows.

As seguintes linguagens de programação são suportadas no MongoDB: Actionscript, C, C #, C


++, Clojure, ColdFusion, D, Dart, Delphi, Erlang, Go, Groovy, Haskell, Java, JavaScript, Lisp, Lua,
MatLab, Perl, PHP, PowerShell , Prolog, Python, R, Ruby, Scala e Smalltalk.
Alunos:
Alexandra Cristina de Souza Coelho - 201708154604
Carlos Eduardo Perrut - 201707009601
TRABALHO DE Jean Michel Souza Lima - 201703210859
BANCO DE DADOS Juliana Luiz Braga - 201708146261
NOSQL Mateus Machado Guedes - 201708252584
Yago Roger de oliveira souza - 201508387419

Você também pode gostar