{"id":1328,"date":"2021-07-19T19:32:19","date_gmt":"2021-07-19T19:32:19","guid":{"rendered":"https:\/\/4linux.com.br\/?page_id=1328"},"modified":"2023-10-10T20:52:16","modified_gmt":"2023-10-10T20:52:16","slug":"diferenca-banco-dados-relacional-nosql","status":"publish","type":"page","link":"https:\/\/4linux.com.br\/diferenca-banco-dados-relacional-nosql\/","title":{"rendered":"O que \u00e9 Banco de Dados Relacional e NoSQL"},"content":{"rendered":"\n
Os bancos de dados relacionais armazenam dados de acordo com esquemas espec\u00edficos. Por outro lado, os sistemas NoSQL permitem que os dados sejam armazenados usando qualquer estrutura necess\u00e1ria, mas fornece uma maneira de atualizar esses dados ao alterar essa estrutura.<\/p>\n\n\n\n
A linguagem SQL (Structured Query Language) \u00e9 usada para executar comandos em bancos de dados relacionais, que s\u00e3o os bancos baseados em tabelas.<\/p>\n\n\n\n
Bancos de dados relacionais, como os do MySQL e PostgreSQL, armazenam dados usando um esquema expl\u00edcito. Um esquema descreve como gravar dados no banco de dados, particularmente descrevendo a estrutura, tipos e estruturas de tabelas e registros.<\/p>\n\n\n\n
Os termos ‘SQL’ e ‘NoSQL’ referem-se essencialmente a como esses esquemas s\u00e3o definidos. Em um banco de dados relacional, os usu\u00e1rios usam as instru\u00e7\u00f5es SELECT, INSERT e DELETE para adicionar ou atualizar dados.<\/p>\n\n\n\n
O banco de dados NoSQL refere-se a um banco de dados n\u00e3o relacional.<\/p>\n\n\n\n
Um banco de dados relacional \u00e9 um formato de banco de dados rigidamente estruturado, baseado em tabelas, como – por exemplo- o MySQL ou o Oracle. Os bancos de dados NoSQL s\u00e3o documentados e permitem que voc\u00ea armazene e recupere dados em formatos diferentes das tabelas. Plataformas Populares NoSQL incluem MongoDB, ElasticSearch e Redis.<\/p>\n\n\n\n
As aplica\u00e7\u00f5es modernas utilizam e geram tipos de dados complexos e em evolu\u00e7\u00e3o. Os bancos de dados relacionais n\u00e3o foram projetados para lidar com esse tipo de armazenamento e recupera\u00e7\u00e3o de dados. Os bancos de dados NoSQL s\u00e3o mais flex\u00edveis e escal\u00e1veis.<\/p>\n\n\n\n
Em um Banco de Dados NoSQL, voc\u00ea pode adicionar novos dados sem ter que pr\u00e9-definido no esquema do banco de dados, permitindo o processamento r\u00e1pido de grandes volumes de dados n\u00e3o estruturados, semiestruturados e estruturados.<\/p>\n\n\n\n
O esquema din\u00e2mico dos bancos de dados NoSQL aceita prontamente o desenvolvimento \u00e1gil, o que requer itera\u00e7\u00f5es significativas e r\u00e1pidas.<\/p>\n\n\n\n
O termo NoSQL possui duas defini\u00e7\u00f5es com origens diferentes, uma fazendo refer\u00eancia ao banco de dados RELACIONAL que n\u00e3o utilizava linguagem SQL para queries (consultas) criado por Carlo Strozzi e outra relacionada ao movimento NoSQL que define um conjunto de ferramentas que n\u00e3o faz uso de uma estrutura relacional. Esse \u00faltimo foi definido como NoSQL por Eric Evans, commiter do projeto Cassandra.<\/p>\n\n\n\n
O banco NoSQL criado por Strozzi \u00e9 basicamente composto por um conjunto de arquivos, organizados no formato hier\u00e1rquico de um banco de dados e que faz uso do Shell UNIX como ferramenta de intera\u00e7\u00e3o.<\/p>\n\n\n\n
J\u00e1 os modelos de banco NoSQL que nasceram ap\u00f3s o ano 2000, possuem estruturas completamente diferentes, utilizando cada um uma forma de consulta n\u00e3o compat\u00edvel com os demais.<\/p>\n\n\n\n
Existem 4 tipos de bancos de dados NoSQL definidos pela forma como armazenam os dados em suas estruturas, s\u00e3o eles:<\/p>\n\n\n\n
Documents<\/strong><\/p>\n\n\n\n Um dos tipos mais vers\u00e1teis que temos no mundo NoSQL, possuindo um schema definido como flex\u00edvel que permite que os registros e documentos possuam campos com diferentes tipos e em diferentes quantidades sem a exist\u00eancia de um schema fixo. Tais documentos s\u00e3o definidos em formato JSON, utilizando conceitos pr\u00f3ximos do modelo Orientado \u00e0 Objetos onde o objeto aqui equivaleria a um documento. Novos campos podem ser adicionados facilmente, permitindo uma r\u00e1pida evolu\u00e7\u00e3o da aplica\u00e7\u00e3o em desenvolvimento. Exemplos: MongoDB e CouchDB.<\/p>\n\n\n\n Graph<\/strong><\/p>\n\n\n\n O modelo baseado em estruturas de grafos pode n\u00e3o ser o mais intuitivo, pois os dados s\u00e3o definidos dentro dos n\u00f3s e v\u00e9rtices, mas permitem a resolu\u00e7\u00e3o de um tipo espec\u00edfico de queries baseadas em relacionamento. Exemplos: Neo4J e AWS Neptune.<\/p>\n\n\n\n Key-Value pairs<\/strong><\/p>\n\n\n\n Bancos do tipo chave-valor s\u00e3o comumente utilizados para sistemas de cache e sess\u00e3o. Sua estrutura \u00e9 definida como campos chave mapeados para um objeto muitas vezes n\u00e3o estrutural, em que as consultas somente podem ser realizas pelo campo chave. Exemplos: Memcached, Redis e DynamoDB.<\/p>\n\n\n\n Wide Column Store<\/strong><\/p>\n\n\n\n Bancos do tipo Wide Column Store utilizam matrizes multi-dimensionais para armazenamento dos dados. S\u00e3o amplamente utilizadas para armazenar quantidades massivas de dados. Os dados s\u00e3o consultados utilizando chaves para cada columna. Exemplo: HBase e Cassandra.<\/p>\n\n\n\n Este tipo de banco de dados \u00e9 utilizado para solucionar problemas onde o modelo relacional n\u00e3o se adequa, principalmente levando em considera\u00e7\u00e3o a quantidade massiva de dados que aplica\u00e7\u00f5es de redes sociais e servi\u00e7os web recebem nos dias atuais. Para essa necessidade n\u00e3o s\u00f3 o modelo de armazenamento precisa ser mais din\u00e2mico em algumas situa\u00e7\u00f5es em que os dados n\u00e3o s\u00e3o estruturados, mas tamb\u00e9m a capacidade de escalar fez com que o NoSQL fosse amplamente adotado.<\/p>\n\n\n\n Veja outros que temos:<\/strong><\/p>\n\n\nVoc\u00ea gostou deste artigo?<\/strong><\/h2>\n\n\n\n