Banco de dados relacionais e não relacionais
Boa tarde. Tudo bem com todos? Espero que sim.
O final de semana está chegando por aqui tem artigo novo saindo. Hoje iremos falar um pouco sobre Bancos de Dados. Vamos lá ?
O que é um banco de dados?
De maneira resumida, um banco de dados é uma coleção organizada de informações - ou dados - estruturadas, normalmente armazenadas eletronicamente em um sistema de computador, é geralmente controlado por um sistema de gerenciamento de banco de dados (SGBD). Tais bancos podem conter registros sobre pessoas, lugares ou informações em geral e são organizadas de forma que podem se relacionar ou não, armazenando assim as informações para que sejam consumidos posteriormente.
Com base nessa informação, podemos então classificar os bancos de dados de duas maneiras:
Banco de dados relacionais (SQL):
São banco de dados em que as informações são modeladas e estruturadas em forma de tabelas.
A arquitetura de um banco de dados relacional pode ser descrita de maneira informal ou formal. A descrição informal refere-se a aspectos práticos da utilização e usamos os termos tabela, linha e coluna, já a descrição formal está voltada para a semântica formal do modelo e usamos termos como relação (tabela), tupla(linhas) e atributo(coluna).
O Modelo Relacional, quando descrito de forma matemática, é definido como um modelo formado por relações (no sentido matemático) entre os domínios. Cada tupla é um elemento do conjunto relação, ou seja, a relação é a tabela. Um relacionamento do Modelo de Entidades e Relacionamentos (MER) é uma associação entre entidades distintas. Não há relação direta entre o nome relacionamento e o nome relação.
Seguindo a notação de Peter Chen, que é composta de entidades (retângulos), relacionamentos (losangos), atributos (elipses) e linhas de conexão (linhas) que indicam a cardinalidade de uma entidade em um relacionamento, os tipos de relacionamentos seguem o seguinte padrão:
- Relacionamento 1..1 (lê-se relacionamento um para um) - indica que as tabelas têm relacionamento apenas entre si. Você deve escolher qual tabela receberá a chave estrangeira;
- Relacionamento 1..n (lê-se um para muitos) - a chave primária da tabela r que tem o lado 1 vai para a tabela do lado N. No lado N ela é chamada de chave estrangeira;
- Relacionamento n..n (lê-se muitos para muitos) - quando tabelas têm entre si relacionamento n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. O relacionamento então se reduz para uma relacionamento 1..n, sendo que o lado n ficará com a nova tabela criada.
Banco de dados não relacionais (NoSQL) :
Bancos de dados NoSQL são criados para modelos de dados específicos e têm esquemas flexíveis para a criação de aplicativos modernos. Os bancos de dados NoSQL são amplamente reconhecidos por sua facilidade de desenvolvimento, funcionalidade e performance em escala.
Ao contrário dos bancos de dados SQL, os bancos de dados NoSQL não seguem um esquema rígido e, em vez disso, oferecem vários modelos de dados para diferentes casos de uso. Os quatro tipos principais de bancos de dados NoSQL incluem:
Bancos de dados de documentos: combinam cada chave com uma estrutura de dados complexa conhecida como documento. Os documentos podem conter muitos pares chave-valor diferentes, pares chave-matriz ou até mesmo documentos aninhados.
Armazenamentos de gráficos: que são usados para armazenar informações sobre redes, como conexões sociais.
Armazenamentos de chave-valor: que são os bancos de dados NoSQL mais simples. Cada item no banco de dados é armazenado como um nome de atributo (ou 'chave') e seu valor.
Armazenamentos de colunas largas: como Cassandra e HBase, que armazenam dados em colunas em vez de linhas e são otimizados para consultas em grandes conjuntos de dados.
Abaixo temos as principais diferenças entre banco de dados SQL e NoSQL :