Tópicos abordados nesta apresentação realizada em 25/05/2016 durante o Mobile & Cloud Hack Days, evento online realizado pelo grupo Monkey Nights Dev:
- O paradigma NoSQL: uma visão geral
- Conhecendo o DocumentDB
- Exemplos práticos
5. Modelo relacional: um breve histórico
◦ Proposto por Edgar F. Codd na década de 1970
◦ Foco em uma estrutura mais rígida, com tabelas,
campos, linhas, relacionamentos e uma série de
restrições
◦ Linguagem SQL
◦ Muito utilizado no ambiente corporativo
6. Limitações do modelo relacional
◦ Disponibilidade
◦ Escalabilidade
◦ Estrutura nem sempre adequada a agrupamentos
de dados mais complexos
◦ Impedance mismatch → Conflitos entre
representação em memória (objetos) e o
equivalente numa base relacional
7. Uma alternativa: NoSQL (“Not only SQL)
◦ Alta Disponibilidade
◦ Escalabilidade facilitada
◦ Flexibilidade
◦ Diversos tipos de soluções NoSQL
◦ Orientado a documentos
◦ Chave-valor
◦ Orientado a colunas
◦ Orientado a grafos
14. DocumentDB: uma visão geral
◦ Banco de dados NoSQL orientado a documentos
◦ Serviço na nuvem
◦ Flexível por ser “schemaless”
◦ Uso do padrão JSON para a representação dos dados DocumentDB
15. DocumentDB: uma visão geral
◦ Comunicação via protocolo HTTP (REST)
◦ Suporte a transações baseado no modelo ACID
◦ Suporte a dados geoespaciais
◦ Consultas via LINQ ou expressões SQL
◦ Pago, com modalidades de cobrança baseadas no número
de requisições e uso de storage
DocumentDB
17. Como o DocumentDB está estruturado?
DocumentDB Account
◦ Conta que possibilita a administração de vários bancos
Banco de dados
◦ Repositório vinculado a uma conta específica do
DocumentDB
◦ Usuários e permissões podem ser definidos por banco
DocumentDB
18. Como o DocumentDB está estruturado?
Coleções
◦ Agrupamento de documentos JSON relacionados a uma
demanda comum
◦ Similar a uma tabela em uma base relacional
Documentos
◦ Agrupamento de dados no formato JSON
◦ Similar a um registro em uma tabela relacional DocumentDB
19. Como o DocumentDB está estruturado?
Attachments
◦ Referências para dependências externas (blob/media)
◦ Gerenciamento a partir do DocumentDB ou via providers
como OneDrive e DropBox
Stored procedures, triggers e UDFs
◦ Funcionamento similar às estruturas equivalentes em
soluções relacionais
◦ Implementação em JavaScript
◦ Pre-triggers, post-triggers
DocumentDB
20. Como utilizar o DocumentDB?
◦ Criar uma conta de acesso ao DocumentDB no Portal do
Azure
◦ Preencher as configurações para a conta de acesso
◦ Utilizando um SDK ou a API REST informar a URI da conta e
a Primary Key geradas no Portal do Azure
◦ Criar então novos databases, coleções e popular os
mesmos com dados
DocumentDB
22. E quando não existir um SDK?
A solução neste caso seria utilizar o
Azure DocumentDB REST API
23. E no caso do .NET Framework?
◦ Instalar o package Microsoft.Azure.DocumentDB
◦ O pacote Newtonsoft.Json também será
adicionado
◦ Podem ser utilizadas classes convencionais,
objetos anônimos e estruturas baseadas em tipos
dinâmicos
24. Como migrar para o DocumentDB?
◦ Utilizando o DocumentDB Data Migration tool
◦ Suporte a inúmeras fontes
◦ Arquivos JSON
◦ MongoDB
◦ SQL Server
◦ Arquivos CSV
◦ Azure Table Storage
◦ Amazon DynamoDB
◦ HBase
◦ Coleções do próprio DocumentDB
DocumentDB