image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Thiago Barboza
Thiago Barboza15/11/2022 18:06
Compartilhe

SQL e NOSQL qual a diferença?

  • #SQL
  • #NoSQL

Fonte: https://blog.debugeverything.com/pt/diferenca-base-de-dados-relacional-e-nao-relacional/

Qual a diferença entre base de dados relacional e não relacional?

O que é uma base de dados relacional?

Um banco de dados relacional é um banco de dados digital baseado no modelo relacional de dados, como proposto por E. F. Codd em 1970, uma forma intuitiva e direta de representar os dados em tabelas. As bases de dados relacionais armazenam e fornecem acesso a pontos de dados que estão relacionados entre si.

image

Em um banco de dados relacional, cada linha da tabela é um registro com uma identificação única chamada chave primaria. As colunas da tabela contêm os atributos dos dados, e cada registro geralmente tem um valor para cada atributo, facilitando o estabelecimento das relações entre os dados.

image

Existem diversos sistemas que você pode utilizar para gerenciar bancos de dados relacionais, eles são conhecidos como Sistemas de gerenciamento de bancos de dados relacionais (SGBDR). O mais popular entre eles é o MySQL, mas também temos outras opções como, Oracle Database, Microsoft SQL Server, e IBM DB2.

A grande maioria dos SGBDR oferecem a opção de usar a SQL (Structured Query Language) para consulta e manutenção do banco de dados.

É um muito comum confundir um banco de dados com um SGBD, mas talvez você fique surpreso em saber que MySQL não é um banco de dados.

Tipos de relação

Uma das vantagens de um banco de dados relacional é que, uma vez que você tenha seus dados mantidos em tabelas claramente definidas você pode conectar ou relacionar os dados entre em diferentes tabelas. Para poder identificar essas relações, você precisa examinar os dados e ter um entendimento das regras de negócio que se aplicam aos dados e tabelas.

Ao criar relações, você sempre trabalha com duas tabelas de cada vez. Uma tabela é chamada de tabela principal ou parent table e a outra é a tabela relacionada ou child table.

Os três tipos de relação que você vai encontrar nas bases de dados relacionais são, 1 para 1, 1 para muitos e muitos para muitos. As relações estão descritas abaixo.

  • Um para um (1...1): Ambas as tabelas podem ter apenas um registro em cada lado do relacionamento. Cada valor tabela primária refere-se a apenas um (ou nenhum) registro na tabela relacionada.
  • Um para muitos (1...n): A tabela primária contém apenas um registro que pode se relacionar a nenhum, um, ou muitos registros na tabela relacionada.
  • Muitos para muitos (n...n): Cada registro em ambas as tabelas pode se relacionar com qualquer número de registros (ou nenhum registro) na outra tabela. Muitos relacionamentos do tipo n...n requerem uma terceira tabela, conhecida como tabela de ligação ou tabela associada, porque os sistemas relacionais não podem acomodar diretamente o relacionamento.

O que é uma base de dados não relacional?

Um banco de dados não relacional é qualquer banco de dados que não segue o modelo relacional fornecido pelos sistemas tradicionais de gerenciamento de bancos de dados relacionais (SGBDR). Esta categoria de bancos de dados, é também conhecida como banco de dados NoSQL.

Os mais populares sendo MongoDBDocumentDBCassandraCouchbaseHBaseRedis, e Neo4j. Estes bancos de dados são geralmente agrupados em quatro categorias: Key-value stores, Graph stores, Column stores, e Document stores.

Tipos de banco de dados não relacional

Key-value stores

image

Como o nome sugere, em uma base de dados do tipo key-values , os dados são representados como uma coleção de pares de valores-chave. Também são conhecidos como arrays associativos, organizados em filas. Essas bases de dados armazenam os dados como uma tabela hash com uma chave única e um ponteiro para um determinado item de dados. Semelhante às tradicionais tabelas hash, esse tipo de base de dados permite o armazenamento e a recuperação de dados através de chaves.

As bases de dados do tipo key-values são utilizados sempre que os dados são consultados por parâmetros precisos e precisam ser recuperados rapidamente.

Qual a diferença entre base de dados relacional e não relacional?

Bancos de dados relacionais como MySQL, PostgreSQL e SQLite3 representam e armazenam dados em tabelas e filas. Eles são baseados em um ramo da teoria do conjunto algébrico conhecido como álgebra relacional. Bancos de dados não-relacionais como o MongoDB representam dados em coleções de documentos JSON.

As bases de dados relacionais utilizam Linguagem de Consulta Estruturada (SQL), tornando-as uma boa escolha para aplicações que envolvem o gerenciamento de várias transações. A estrutura de um banco de dados relacional permite vincular informações de diferentes tabelas através do uso de chaves (ou índices) estrangeiras.

Se você estiver lidando com uma quantidade fenomenal de dados, a complexidade do banco de dados relacional e das queries necessárias também vai crescer na mesma proporção. Nessa situação, talvez você precise considerar a possibilidade de utilizar um base de dados não relacional. Uma base de dados não relacional pode armazenar dados sem uma mecânica explícita e estruturada para vincular dados de diferentes tabelas uns aos outros.

Para visualizar todo o conteúdo, acesse o site.

Compartilhe
Comentários (5)
Denison Marques
Denison Marques - 15/11/2022 22:45

otimo conteúdo.

Neita Santos
Neita Santos - 15/11/2022 21:28

Obrigada, perfeito e didático o conteúdo.

Juarez Souza
Juarez Souza - 15/11/2022 20:57

Ótimo conteúdo!

AR

Andre Resende - 15/11/2022 18:42

conteúdo excelente!!!!

Jefferson Oliveira
Jefferson Oliveira - 15/11/2022 18:24

Excelente conteúdo, parabéns!!!