Buscar

Quais as principais diferenças entre banco de dados relacional e o nao relacional(NoSQL)?

💡 5 Respostas

User badge image

Vini Nascimento

A diferença essencial entre as duas teconologia é que uma é baseada em esquema (Relacional) e a outra não (Não relacional).

Para trabalhar com um banco SQL (Relacional) a primeira coisa que voce precisa fazer é projetar a estrutura do banco, isto é, voce não consegue inserir um dado se não tiver previamente definido os "esquemas" das tabelas, enquanto que na tecnologia NoSQL (Não relacional). isto não é necessário.

Vamos a um exemplo: Vamos supor que voce quisesse guardar nomes e telefones de clientes em um banco de dados.

Em um banco relacional, a primeira coisa que precisariamos fazer seria definir o esquema das tabelas no banco (definir sua estrutura), como sabemos que um cliente pode ter mais de um telefone e que cada um pode ter quantidades diferentes de números de telefones, o ideal seria definirmos 2 tabelas: Uma pra o registro do codigo e o nome do cliente e outra para os registros de seus telefones:

Tabela Cliente (Tabcli):

id, Integer
Nome, Character, 50

Tabela Telefones (Tabtel):

id_cliente, integer
Fone, Character, 15

Dessa forma cada cliente terá apenas um registro na tabela tabcli e, no mínimo um, ou quantos forem os números que ele possui na tabela Tabtel. A ligação (ou a relação, do termo "relacional") entre uma tabela e outra seria feita através dos campos Tablci.id -> Tabetel.id_cliente, dessa forma para apresentar as informações de um cliente seria preciso seleciona-lo na tabela Tabcli, e filtar todos os registros na Tabtel cujo id_cliente coresspondesse ao id da Tabcli.

Agora vejamos como o mesmo exemplo seria registrado em um banco no-sql como por exemplo o mongodb, em primeiro lugar voce não precisaria definir um esquema prévio para guardar as informaçẽos, voce precisaria somente fazer diretamente o registro em um formato que o banco "entenda", no caso do mongodb, json. No mongo, o correspondente a tabelas é chamado de collections, então bastaria:

db.clientes.save( {_id: 1, fones: ["123-4567", "456-7899"]})

Para acessar, basta localizar o _id do cliente e voce já terá acesso a todas as informações daquele cliente, sem a necessidade de acessar outra entidade do banco e/ou criação de filtros, etc.

A explanação acima é bem resumida, há inúmeros outros detalhes tanto no lado relacional quanto no não relacional, no primeiro por exemplo há vários elementos para garantir a integridade e a não redundancia dos dados, que não foram mencionados.

Uma outra caracterisca central dos bancos relacionais é uso exclusivo (Veja o tópico "É o fim do SQL?) da linguagem SQL para acesso aos dados enquanto que nos não relacionais isso não se aplica, porém é preciso atentar para o fato de que um banco não relacional não abomina o SQL, aliás o termo NoSQL pode induzir ao erro de supor que seja Não SQL, quando na verdade é "Not Only Structured Query Language"

Vantagens dos bancos não relacionais:
A vantagem número um dos bancos não relacionais é a escalabilidade, claro que o esquema rigido dos bancos relacionais torna dificil, por exemplo, aumentar um nó em um cluster de banco de dados, outra vantagem é a flexibilidade da estruturação que além de tornar a escalabilidade mais fácil facilita a inserção e acesso aos dados. Outra caracterisca que talvez possa ser vista como vantagem é a manipulação de dados por APIs orientadas a objetos enquanto no modelo relacional somente via SQL. Pode-se citar ainda, como desvantagem, a relativa imaturidade do Nosql.

Vantagens dos bancos Relacionais:
Enquanto que no modelo não relacional, a consistencia pode ser considerada fraca, no modelo relacional há uma forte consistencia de dados, um dos preços para isso é a estrutura menos flexivel. Outra vantagem é a confiabilididade, modelos relacionais suportam a propriedade ACID (Atomicidade, Consistência, Isolamento e Durabilidade), Outra vantagem do SQL é a padronização e normalização. Finalmente pode-se citar como vantagem a maturidade do SQL.

0
Dislike0
User badge image

skskskks sddsd

Responder...

A diferença essencial entre as duas teconologia é que uma é baseada em esquema (Relacional) e a outra não (Não relacional).

Para trabalhar com um banco SQL (Relacional) a primeira coisa que voce precisa fazer é projetar a estrutura do banco, isto é, voce não consegue inserir um dado se não tiver previamente definido os "esquemas" das tabelas, enquanto que na tecnologia NoSQL (Não relacional). isto não é necessário.

Vamos a um exemplo: Vamos supor que voce quisesse guardar nomes e telefones de clientes em um banco de dados.

Em um banco relacional, a primeira coisa que precisariamos fazer seria definir o esquema das tabelas no banco (definir sua estrutura), como sabemos que um cliente pode ter mais de um telefone e que cada um pode ter quantidades diferentes de números de telefones, o ideal seria definirmos 2 tabelas: Uma pra o registro do codigo e o nome do cliente e outra para os registros de seus telefones:

Tabela Cliente (Tabcli):

id, Integer
Nome, Character, 50

Tabela Telefones (Tabtel):

id_cliente, integer
Fone, Character, 15
0
Dislike0
User badge image

Andre Smaira

Bancos de dados relacionais como MySQL, PostgreSQL e SQLite3 representam e armazenam dados em tabelas e linhas. Eles são baseados em um ramo da teoria dos conjuntos algébricos conhecido como álgebra relacional.


Enquanto isso, bancos de dados não relacionais, como o MongoDB, representam dados em coleções de documentos JSON. O utilitário de importação Mongo pode importar formatos de arquivo JSON, CSV e TSV. Os alvos de consulta de dados do Mongo são tecnicamente representados como BSON (binary JASON).


Os bancos de dados relacionais usam SQL (Structured Querying Language), tornando-os uma boa opção para aplicativos 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 estrangeiras (ou índices), que são usadas para identificar exclusivamente qualquer parte atômica de dados nessa tabela. Outras tabelas podem se referir a essa chave estrangeira, de modo a criar um link entre seus dados e a peça apontada pela chave estrangeira. Isso é útil para aplicativos pesados ​​na análise de dados.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta.

User badge image

Outros materiais