Back Story: Em 2016 eu estava a tirar um curso de Informática na Universidade de Albany e tive de fazer um curso de Introdução às Bases de Dados.
No curso, aprendi duas coisas:
Bases de Dados Relacionais e Não Relacionais, mas nunca aprendi verdadeiramente a diferença entre os dois, por isso quis reacender a minha curiosidade com as bases de dados e as diferenças entre os dois.
Definido por E.F Codd em 1970, uma base de dados relacional é uma base de dados digital baseada no modelo relacional de dados. Os dados são armazenados em tabelas contendo linhas (que representam uma entrada) e colunas (que armazenam e ordenam um tipo específico de informação). As relações são estabelecidas através de chaves primárias e estrangeiras.
Exemplo de um modelo de base de dados relacional
Línguas: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3
Vantagens:
Pode lidar com muitas consultas complexas, transações de banco de dados e análises de rotina de dados.
ACID(Atomity, Consistency, Isolation, Durability): Conjunto de propriedades que garantem transações confiáveis de banco de dados.
Desvantagens:
Não pode armazenar imagens complexas ou muito grandes, números, designs e produtos multimídia
Pode tornar-se muito caro com manutenção e novos servidores
Grande! Mas e se os nossos conjuntos de dados forem demasiado grandes ou não estruturados?
Base de Dados Não Relacional ou NoSQL
O que é uma Base de Dados Não Relacional?
Bases de Dados Não Relacional existiam no final dos anos 60, mas o termo não foi utilizado até 1998 por Carlo Strozzi que liderou o desenvolvimento do NoSQL.
“Um banco de dados NoSQL (originalmente referindo-se a “não SQL” ou “não relacional”) fornece um mecanismo de armazenamento e recuperação de dados que é modelado em meios diferentes das relações tabulares utilizadas em bancos de dados relacionais”. – Wikipedia
Tipos de bancos de dados NoSQL:
Column Store: Utiliza o conceito de keyspace que contém todas as famílias de colunas que contêm linhas e colunas para armazenar e organizar dados.
>
>
> >
>Cada linha contém uma família de colunas >
Base de dados: Apache HBase, Cassandra
Key-Value Store: Utiliza um array associativo (mapa ou dicionário) como modelo de dados fundamentais. Os dados são representados como uma coleção de pares de valores-chave e uma chave irá aparecer no máximo uma vez na coleção. Você pode armazenar um valor, como um número inteiro, string, uma estrutura JSON, ou um array, juntamente com uma chave usada para referenciar esse valor.
>
>
Cada linha tem o seu próprio ID e valores
>
Base de dados: Redis, Amazon DynamoDB
Gráfico: É uma base de dados que utiliza estruturas gráficas para representar e armazenar dados. Isso permite aos usuários a capacidade de atravessar rapidamente entre todos os valores conectados e encontrar insights nos relacionamentos.
> >
>
>Todos os Filmes Kevin Bacon atua em
Base de Dados: neo4J, OrientDB, Titan
Base de Dados Orientada a Documentos: Uma base de dados orientada a documentos, ou armazém de documentos, é um programa de computador concebido para armazenar, recuperar e gerir informação orientada a documentos, também conhecida como dados semi-estruturados.
>
>
>
>
>>
Base de dados: MongoDB, Couchbase
Vantagens:
Largos volumes de dados estruturados, semi-estruturados e não estruturados
Programação orientada a objetos, fácil de usar e flexível (MongoDB é basicamente escrito em javascript)
Eficiente, arquitetura escalonável em vez de cara, arquitetura monolítica
Desvantagens:
Sem suporte uma vez que as bases de dados NoSQL são normalmente de código aberto
Administração: Bancos de dados NoSQL requerem habilidade técnica para instalar e manter.
Sem maturidade. Os bancos de dados NoSQL ainda estão crescendo e muitas características ainda estão sendo implementadas.
Qual utilizar?
As empresas utilizam uma mistura de bancos de dados tradicionais e não-relacionais para atender às suas necessidades e exigências de negócios.
Banco de dados relacional:
Bancos de dados relacionais tradicionais são muito bons para manter suas transações de dados seguras e fazer consultas complexas para adquirir informações. Empresas que já estão estruturadas e não estão experimentando um crescimento massivo, muito provavelmente vão se ater aos bancos de dados tradicionais.
Bases de dados não-relacionais:
Grandes no armazenamento de grandes quantidades de dados com pouca estrutura. Empresas crescendo em um ritmo rápido como startups utilizam mais bancos de dados não-relacionais para sua escalabilidade e flexibilidade. Juntamente com a nuvem, bancos de dados não-relacionais também podem economizar muito dinheiro para as empresas.
Data Fun Facts:
Data está crescendo mais rápido do que nunca e no ano 2020, cerca de 1,7 megabytes de novas informações serão criados a cada segundo para cada ser humano no planeta.
Até lá, nosso universo digital acumulado de dados crescerá de 4,4 zettabytes hoje para cerca de 44 zettabytes, ou 44 trilhões de gigabytes.
Estamos vendo um crescimento maciço em dados de vídeo e foto, onde a cada minuto até 300 horas de vídeo são carregados apenas no YouTube.
Este ano, mais de 1,4 bilhões de smart phones serão enviados – todos repletos de sensores capazes de coletar todos os tipos de dados, sem mencionar os dados que os próprios usuários criam.
Em cinco anos haverá mais de 50 bilhões de dispositivos inteligentes conectados no mundo, todos desenvolvidos para coletar, analisar e compartilhar dados.