NoSQL X SQL Direto ao Ponto
- #SQL Server
- #SQL
- #NoSQL
- #Redis
- #MySQL
- #Cassandra
- #MongoDB
- #DynamoDB
Olá pessoal! Apesar de ser um conteúdo bem básico, garanto que será informativo para quem está começando a estudar banco de dados e seus tipos relacionais e não relacionais.
O Que é NoSQL e SQL?
SQL é um banco de dados relacional, onde os dados são armazenados em tabelas com linhas e colunas. Bancos SQL como MySQL, PostgreSQL e SQL Server usam a linguagem SQL para manipular e consultar os dados. Basicamente, os bancos relacionais fazem o relacionamento entre tabelas para que possamos obter dados interligados por essa relação.
Podemos usar como exemplo um aluno se matriculando em vários cursos. Para saber em quais cursos ele está matriculado, precisamos de uma chave única que identifique essa matrícula. As tabelas em bancos relacionais possuem, em cada tabela, uma chave única conhecida como PRIMARY KEY. Para estabelecer o relacionamento, essa mesma chave será usada como uma chave estrangeira em outra tabela, chamada de FOREIGN KEY.
Para não aprofundar tanto em conteúdo mais técnico (a ideia é ser o mais breve), deixarei um site com exemplos e explicações sobre tipos de relacionamentos entre tabelas relacionais: https://www.cadcobol.com.br/db2_novo_tipos_relacionamentos.htm
NoSQL é um banco não relacional, projetado para armazenar grandes volumes de dados de forma flexível. Bancos como MongoDB, Cassandra e DynamoDB usam estruturas como documentos, chave-valor, grafos ou colunas para armazenar informações. Geralmente quando temos modificações que ocorrem de tempos em tempos, como uma promoção da black friday de algum ecommerce, neste caso terá uma concentração grande de volume de dados, utilizar um banco não relacional é uma boa opção para manter a performance da base de dados.
Diferença Entre NoSQL e SQL
- Estrutura: SQL usa tabelas relacionais; NoSQL utiliza documentos, grafos ou colunas.
- Escalabilidade: NoSQL é horizontalmente escalável (adiciona mais máquinas), enquanto SQL geralmente escala verticalmente (potencializa uma única máquina).
- Flexibilidade: NoSQL permite alterações na estrutura dos dados sem precisar reformular esquemas.
- Consistência: SQL prioriza consistência forte; NoSQL pode sacrificar consistência em prol da disponibilidade.
Qual utilizar?
Isso vai depender muito mais da necessidade do projeto como: analisar volume, se há uma necessidade de ter relacionamento, um projeto que precisa ser consistente (que todos os dados que forem atualizados vão replicar em outras partes ou réplicas do banco). Caso seja apenas para estudar é válido conhecer os dois tipos, há muito mercado para ambos.
Redes Sociais
🔗 GitHub: github.com/GiulianoCriscuoli
🔗 LinkedIn: Giuliano Criscuoli
🔗 Instagram: @southlaser