Gabarito A
Bancos de dados orientado a Colunas
De todos os modelos de armazenamento NoSQL, provavelmente o orientado a colunas seja o mais complexo. Esse modelo também é considerado uma extensão do armazenamento orientado a chave-valor e possui conceitos similares ao do modelo relacional, como a criação de linhas e colunas. Entretanto, é preciso ficar atento, pois existem diferenças fundamentais no modo como essas estruturas são criadas. Como o banco de dados orientado a colunas se diferencia do banco de dados relacional nesse cenário? Esse tipo de banco busca resolver principalmente o problema de escalabilidade e flexibilidade no armazenamento de dados. No que se refere à flexibilidade, ao invés de definir antecipadamente as colunas necessárias para armazenar um registro, o responsável pela modelagem de dados define o que é chamado de "famílias de colunas". As famílias de colunas são organizadas em grupos de itens de dados que são frequentemente usados em conjunto em uma aplicação. A partir das "famílias de colunas" definidas, o desenvolvedor possui a flexibilidade de inserir as colunas que considerar necessárias em cada registro armazenado, sem precisar alterar a estrutura dos dados já armazenados. Outra informação armazenada no banco de dados orientado a colunas é otimestamp de cada item gravado. Essa abordagem é utilizada para prover o versionamento das colunas. Com essa estratégia de armazenamento por famílias de colunas, além de fornecer flexibilidade, esse modelo oferece também grande escalabilidade. O registro de um item pode ter informações gravadas em diversas famílias de colunas, que podem estar armazenadas em diferentes servidores. Isso é possível pelo fato de que os dados são armazenados fisicamente em uma sequência orientada a colunas e não por linhas. Dessa forma, mesmo em um ambiente distribuído, com milhões de colunas, o banco de dados orientado a colunas pode distribuir as consultas em um grande número de nós de processamento sem realizar operações de join. Se sua aplicação trabalha com volumes imensos de dados, se ela necessita de alto desempenho e de alta disponibilidade na leitura e escrita dos dados, ou se você necessita de inclusão de campos dinâmicos e sua solução tolera eventuais inconsistências, provavelmente o banco de dados orientado a colunas é a solução mais adequada. Por atender tais necessidades, esse modelo é muito utilizado por aplicações de larga escala, como ocorre com o serviço de mensagens do Facebook (Marquesone, 2017). Seguem exemplos de bancos de dados orientados a Colunas:
BigTable do Google: https://cloud.google.com/bigtable/
Accumulo (open source): https://accumulo.apache.org/
Cassandra (open source): http://cassandra.apache.org/
HBase: https://hbase.apache.org/
Hypertable: http://www.hypertable.org/
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !