AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 5
Accepted
Spredzy
Spredzy
Asked: 2011-01-04 12:52:52 +0800 CST2011-01-04 12:52:52 +0800 CST 2011-01-04 12:52:52 +0800 CST

Quais são as diferenças entre o NoSQL e um RDBMS tradicional?

  • 772

Quais são as diferenças entre o NoSQL e um RDBMS tradicional?

Nos últimos meses, o NoSQL tem sido frequentemente mencionado nas notícias técnicas. Quais são suas características mais significativas em relação a um RDBMS tradicional? Em que nível (físico, lógico) ocorrem as diferenças?

Onde estão os melhores lugares para usar o NoSQL? Por quê?

rdbms nosql
  • 6 6 respostas
  • 42999 Views

6 respostas

  • Voted
  1. Best Answer
    Jonas
    2011-01-04T17:29:47+08:002011-01-04T17:29:47+08:00

    NoSQL significa "Not only SQL" e geralmente significa que o banco de dados não é um banco de dados relacional, que tem sido muito popular nas últimas décadas.

    A razão pela qual o NoSQL tem sido tão popular nos últimos anos é principalmente porque, quando um banco de dados relacional cresce a partir de um servidor, ele não é mais tão fácil de usar. Em outras palavras, eles não escalam muito bem em um sistema distribuído. Todos os grandes sites que você mencionou Google, Yahoo, Facebook e Amazon (não sei muito sobre o Digg) têm muitos dados e armazenam os dados em sistemas distribuídos por vários motivos. Pode ser que os dados não caibam em um servidor ou que haja requisitos de alta disponibilidade .

    Teorema CAP

    As propriedades de um sistema distribuído podem ser descritas pelo Teorema CAP . Das três propriedades você só pode ter no máximo duas:

    • Consistência _
    • Uma disponibilidade
    • tolerância ao particionamento de rede

    O Amazon Dynamo usa a consistência eventual para chegar perto das três propriedades. Vale a pena ler o artigo Dynamo: Amazon's Highly Available Key-value Store ao aprender sobre bancos de dados NoSQL e sistemas distribuídos. O Amazon Dynamo tem as propriedades A e P.

    O Google adota uma abordagem diferente com BigTable , que possui as propriedades C e A.

    Outros bancos de dados NoSQL

    Como escrevi no início, existem muitos outros tipos de bancos de dados NoSQL, projetados para diferentes requisitos. Por exemplo, bancos de dados gráficos como Neo4j , bancos de dados de documentos como CouchDB e bancos de dados multimodelo/objetos como OrientDB .

    Finalmente, gostaria de dizer que os bancos de dados relacionais continuarão populares. Eles são muito flexíveis e de fácil manutenção. Mas nem sempre são a melhor escolha.

    • 61
  2. Jeremiah Peschka
    2011-01-04T13:21:59+08:002011-01-04T13:21:59+08:00

    NoSQL é um termo muito amplo e normalmente é referido como "não apenas SQL". O termo está caindo em desuso na comunidade não RDBMS.

    Você verá que o banco de dados NoSQL tem poucas características comuns. Eles podem ser divididos em algumas categorias:

    • armazenamentos de chave/valor
    • Bancos de dados inspirados no Bigtable (com base no artigo do Google Bigtable)
    • Bancos de dados inspirados no Dynamo
    • bancos de dados distribuídos
    • bancos de dados de documentos

    Esta é uma grande questão, mas é bastante bem respondida nesta Pesquisa de Bancos de Dados Distribuídos .

    Para uma resposta curta:

    Os bancos de dados NoSQL podem dispensar várias partes do ACID para obter alguns outros benefícios - tolerância de partição, desempenho, distribuição de carga ou escala linear com a adição de novo hardware.

    Quanto a quando usá-los - isso depende inteiramente das necessidades do seu aplicativo.

    • 22
  3. mrdenny
    2011-01-04T13:00:15+08:002011-01-04T13:00:15+08:00

    NoSQL é um tipo de banco de dados que não possui um esquema fixo como um RDBMS tradicional. Com os bancos de dados NoSQL o esquema é definido pelo desenvolvedor em tempo de execução. Eles não escrevem instruções SQL normais no banco de dados, mas usam uma API para obter os dados de que precisam. Os bancos de dados NoSQL geralmente podem ser dimensionados em diferentes servidores físicos facilmente, sem a necessidade de saber em qual servidor os dados que você está procurando estão.

    No entanto, existem algumas desvantagens para toda essa flexibilidade: os bancos de dados NoSQL são bastante carentes em comparação com os sistemas RDBMS como SQL Server, Oracle, DB2, MySQL, etc. Não há Service Broker, log de transações, pacotes ETL, etc.

    NoSQL não é algo novo. Na verdade, existe há 50-60 anos. Naquela época, era chamado COBOL. Mesma ideia exata, apenas um grupo diferente surgiu com isso.

    • 13
  4. Johanna Larsson
    2011-01-04T13:00:29+08:002011-01-04T13:00:29+08:00

    Basicamente, dispensar a configuração relacional, com chaves primárias e estrangeiras e com a sobrecarga adicional envolvida na manutenção da segurança transacional, geralmente oferece aumentos extremos no desempenho. No entanto, isso não é exclusivo dos novos bancos de dados/armazenamentos de dados, como, por exemplo, o MySQL foi ajustado para funcionar em "níveis NoSQL" ignorando camadas.

    Em resumo, muitas vezes você pode obter um desempenho impressionante se estiver disposto a correr o risco de possivelmente perder dados. A maioria dos sistemas NoSQL faz isso. Por exemplo, o MongoDB prepara as alterações de dados para serem gravadas quando for conveniente. Os dados em si são seguros e transacionalmente seguros, mas mantidos em armazenamento volátil (memória). Se você perder energia, não poderá ter 100% de certeza de que não perdeu dados ou de que não tem dados corrompidos.

    É uma troca entre segurança e desempenho.

    • 6
  5. steve.lippert
    2011-01-04T13:02:44+08:002011-01-04T13:02:44+08:00

    Um bom lugar para começar é a entrada da Wikipedia . Essencialmente, em vez de relacionar dados em uma tabela a outra, você armazena as coisas como pares de valores-chave e não há esquema de banco de dados, em vez disso é tratado no código.

    Alguns sites usam o NoSQL e os servidores RDBMS típicos simultaneamente, mas para armazenar dados diferentes. Assim você não precisa escolher um ou outro.

    • 5
  6. Virat Gaywala - CSM
    2014-05-07T23:21:17+08:002014-05-07T23:21:17+08:00

    Trabalhei muito no banco de dados MongoDB NoSQL e Oracle.

    Esquema

    O banco de dados SQL tem seu próprio esquema predefinido para armazenar dados estruturados.

    No banco de dados NoSQL, não há esquema predefinido, aqui o esquema é o elemento mais dinâmico baseado nos elementos de dados.

    Escalabilidade

    Os Bancos de Dados SQL são escaláveis ​​verticalmente, o que significa que, se quisermos dimensionar o banco de dados base SQL, precisamos aumentar o hardware no qual o Sistema DBMS está instalado. É aqui que às vezes vai para a limitação da escalabilidade.

    Os bancos de dados NoSQL são escaláveis ​​horizontalmente, o que significa que, se quisermos escaloná-los, precisamos adicionar mais nós e criar uma rede de distribuição com base em nossa própria necessidade e energia necessária. É assim que eles reduzem a carga no banco de dados

    Recuperação de dados

    Em bancos de dados baseados em SQL, para definir e manipular dados podemos usar SQL (Structured Query Language), que é muito poderosa atualmente.

    Em termos de banco de dados NoSQL, as consultas se concentram em coleções e documentos. Às vezes é chamado de UnQL (Linguagem de Consulta Não Estruturada). Isso ainda está em fase de evolução, portanto, varia de fornecedor para fornecedor do banco de dados NoSQL.

    Para saber mais sobre as principais diferenças, meu blog: Diferença entre banco de dados SQL e NoSQL

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

    • 2 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve