Prévia do material em texto
1) O que é e como funciona o banco de dados NoSQL orientado a documentos?
2) Quais são suas características?
3) Quais são suas distinções frente ao Modelo Relacional?
4) Como funciona a modelagem de dados orientada a documentos?
5) Quais são os pontos fortes e fracos de seus modelos de modelagem?
6) O que é o MongoDB?
7) Como funciona o MongoDB?
8) Quais são os tipos de dados suportados?
9) O que são Operações CRUD e como elas se dão no MongoDB?
10) Quais são as características de transações no MongoDB?
11) Quais são as características de disponibilidade?
12) Quais são as características de consistência?
13) Qual seria um caso de uso apropriado?
RESPOSTAS
1)
· Extensão do modelo chave-valor (P. 3)
· 2 Tipos
· Repositórios comuns (Editores de texto, planilhas)
· Bases de dados para/ armazenar componentes de documentos ou conjuntos dinâmicos de suas partes
· Conj de Documentos = Coleção -> Conj de coleções = BD (P.9)
2)
· Estruturas flexíveis, dados semiestruturados (P.3)
· Ex: XML, JSON, BSON.
· Documento = Linha na tabela. Conj de doc = Tabela toda.
· Permite consultas e filtros sobre os valores armazenados (P.4)
· Diferente do chave-valor q só permite consulta pela chave.
· Infos importantes em um único doc (P.5)
· Identificadores únicos universais
3)
· N tem esquemas, relacionamentos entre os docs, chave estrangeira.
· Tabelas = Documentos
· Linhas = Registros. Colunas = Atributos
· Dados são integrados ao próprio documento (Ex Doc de cadastro de clientes P.4), não em tabelas/armazenamento separado (p6) como no Relacional.
4)
· 2 Formatos (P.7)
· Incorporada (Embbed)
· Dados acessados juntos, como um documento dentro do outro. Um só.
· Referenciada
· Docs separados, mas um tem referência pro outro.
5)
· Na incorporada leituras são o principal positivamente, sendo seu problema a escritura, pois a info sendo alterada pode estar sendo replicada em vários docs (P. 8)
· A referenciada é eficiente pra trabalho em partes, sem duplicação de dados e com muita referência (P.8)
6)
· BD NoSQL sem conceito de tabela, linha, esquema, SQL, etc (P.9)
· Orientado a documentos, armazena dados em coleções de docs BSON.
7)
· Precisa definir coleções e índices na modelagem. Porém ñ precisa predefinir estrutura.
· Docs sempre constituídos de pares chave-valor (P.10)
· Todo doc possui um id chave único (E é feito automaticamente caso esqueça, gerando um binário de até 12 bytes) (P.11)
8)
· String, int, boolean, Double, Arrays e Null
9)
· Acrônimo pras operações Create, Read (Select), Update e Delete (P19)
· No MongoDB:
· Create = Insert()
· Read = Find()
· Update = Update()
· Delete = Delete()
· Cria banco c/use, porém só é efetivamente criado após o 1° registro (P.19)
· Insert
· Inserir documentos em coleções
· db.coleção.insertOne() ou .insertMany()
· Find
· Leitura
· Mesmo comando só que .find(). Podendo ter filtros e usar operações lógicas
· Filtro ex: .find({idade: 18})
· Operações lógicas: gt, gte (greater than or equal), lt, lte
· Update (P21)
· Primeiro parâmetro = chave
· Set define o atributo que será modificado
· db.coleção.updateOne({atributo:”valor”}, $set:{atributo:valor})
· Delete
· Mesmo comando só que .deleteOne ou Many()
· Filtra por atributo-valor
· deleteMany({idade: 25})
10)
· A atomicidade de documento único (que gera relacionamento de dados em uma mesma estrutura) realiza então operações atômicos. (P.22)
· Porém, o MangoDB tb oferece suporte para transações em vários documentos.
11)
· Usa arquitetura replica set. Nodo primário (de onde os dados são lidos e escritos) e nodos secundários (cópias do primário, para consulta ou substituição).
· Disponibilidade dos nodos testada pelo recurso heartbeat.
12)
· Garante conformidade ACID como Documento.
· Porém diversos documentos não tem garantia de consistência e integridade.
13)
· Apps que trabalham diretamente com coleções de documentos (Págs web, catalogação docs de uma empresa, gerenciamento de inventário de um e-commerce)
· Apps que usam JSON.