TEMA 02 Flashcards
O que é o DYNAMOBD?
O DynamoDB, ou simplesmente Dynamo, é um
banco de dados NoSQL de propriedade da Amazon Web Services – AWS.
O que é a estrutura Serverless da Amazon?
O AWS Serverless Application Repository (repositório de aplicativos sem servidor) é um modelo de computação em nuvem em que o servidor na nuvem executa o papel de servidor, gerenciando a alocação de recursos da máquina dinamicamente.
Ele permite que equipes, organizações e desenvolvedores individuais armazenem e reutilizem aplicativos e montem e implantem com facilidade arquiteturas sem servidor (AWS, 2020).
Quais são as características do Dynamo?
O Dynamo suporta estrutura de dados chave-valor e
documentos. Por ter uma estrutura serverless, todos os recursos necessários para o funcionamento
arquitetural da aplicação são gerenciados pela própria nuvem da AWS, a qual possibilita
disponibilidade global da aplicação.
Isso quer dizer que é possível selecionar localidades globais
para o processamento do servidor, obtendo com isso melhores recursos de tempo de resposta.
Diferentemente, há soluções em que o gerenciamento do servidor é um procedimento que precisa
ser configurado e gerenciado manualmente, o que consequentemente torna sua configuração e uso
mais complexo.
A estrutura serverless disponibiliza ao Dynamo integração com outros produtos da AWS, sendo
essa uma vantagem atribuída a comunicação arquitetural, que possibilita ganhos de processamento
e integração de serviços. Outro ponto a ser destacado é o custo atribuído pelo seu uso, quando o
processamento de dados é baixo, o custo é reduzido, à medida que há a necessidade de mais
recursos, o custo de utilização é proporcional.
Quais são as características do DynamoDB?
O DynamoDB é um banco de dados NoSQL totalmente
gerenciado pela AWS, possuindo presença global, o que significa que o banco de dados não precisa
estar hospedado em um único lugar, podendo ser disponibilizado em várias localidades geográficas em que a AWS esteja presente.
Capacidade de leitura e gravação adaptável, de acordo com as necessidades de uso
Alta escalabilidade, o que permite escalar o banco de dados de forma horizontal, sem a preocupação com o provisionamento de servidores, - Backup e recuperação sob demanda
Recurso TTL (Time to Live), que permite ao administrador do banco definir o tempo em que o dado permanecerá no banco de dados
Por se tratar de um banco de dados na nuvem, o DynamoDB disponibiliza alguns recursos para o controle de acesso, como por exemplo:
- Acesso via usuário ou grupos de usuários,
-Acesso via chaves privadas,
-Definir quais tipos de dados cada usuário pode acessar,
-Criptografia dos dados armazenados
- Definição de métricas de utilização e operacionais.
Basicamente existem três formas de acesso ao DynamoDB, sendo elas:
- Acesso pelo AWS Console;
-Acesso pelo AWS CLI (Command Line Interface), ou seja, por linha de comando,
- Acesso pelo AWS SDK, normalmente utilizado pelos desenvolvedores para acesso as APIs do DynamoDB, com alguma linguagem de programação especifica, como Python, Ruby, Java etc.)
Ao contrário dos bancos de dados relacionais, em que no esquema é especificado o banco de
dados, as tabelas e os relacionamentos entre essas tabelas por meio da definição das chaves
primárias e chaves estrangeiras, no DynamoDB esse esquema é inexistente. As tabelas são:
Independentes e possuem o nível mais alto no banco de dados, possuindo somente as chaves
primárias, não existindo a definição de chaves estrangeiras. Esse tipo de estrutura apresenta um
modelo bastante flexível, visto que uma tabela no DynamoDB pode possuir armazenamento de dados
do tipo chave-valor e, outra pode possuir armazenamento de dados do tipo documento.
Ao contrário das tabelas dos bancos de dados relacionais, em que a chave primária é opcional,
no banco de dados NoSQL DynamoDB a chave primária é obrigatória.
Enquanto no BD relacional a chave primária pode ser
composta por múltiplas colunas, no DynamoDB ela é composta por no mínimo um e no máximo dois
atributos.
Os tipos de dados suportados no DynamoDB são divididos em três grupos, sendo eles:
Scalar Type, Set
Type e Document Type
Fale sobre o grupo de dados Scalar Type:
O grupo de dados Scalar Type, somente permite um único valor por atributo,
sendo pertencentes a este grupo os índices e chaves primárias do bando de dados, que por sua vez
somente podem ser dos tipos string, número ou binário
Cinco tipos de dados compõem o grupo
scalar type: String, Número, Boolean, Binário e Null.
Fale sobre o grupo de dados Set Type:
O grupo de dados Set Type representa um conjunto de valores do tipo Scalar, podendo ser um
conjunto de Strings ou Números ou Boolean ou Binários ou Null.
Esse tipo de dados não necessita
ser ordenado, e por representar uma coleção de dados do tipo Scalar, também não pode conter
valores vazios, e muito menos representar uma coleção vazia. Do mesmo modo, também não é
permitido que um tipo de dados Set Type possua algum valor diferente dos tipos de dados
suportados pelo tipo Scalar Type.
Fale sobre o grupo de dados Document Type:
Já o grupo de dados Document Type, diferentemente do Set Type que tem um único atributo
com um conjunto de valores, o Document Type possui vários atributos, permite estruturas aninhadas
e complexas, possibilitando a criação de uma estrutura de dados em até 32 níveis.
Esse tipo de
dados apresenta uma característica interessante, pois aceita os tipos Maps e Lists, porém não
permite que sejam armazenados valores vazios dentro de Maps ou Lists, mas permite a existência de
Maps e Lists vazios.