Pergunta

Estou aprendendo tradicionais bancos de dados relacionais (com PostgreSQL ) e fazer algumas pesquisas eu me deparei com alguns novos tipos de bancos de dados. CouchDB , Regue e scalaris para citar alguns, o que vai ser o tecnologias de banco de dados próximos de lidar?

Foi útil?

Solução

Eu diria next-gen banco de dados , não next-gen SQL.

SQL é uma linguagem para consultar e manipular bancos de dados relacionais. SQL é ditada por um padrão internacional. Enquanto o padrão é revisado, parece sempre trabalhar dentro do paradigma de banco de dados relacional.

Aqui estão algumas novas tecnologias de armazenamento de dados que estão recebendo atenção atualmente:

  • CouchDB é um banco de dados não-relacional. Eles chamam isso de um banco de dados orientado a documentos.
  • Amazon SimpleDB é também um banco de dados não-relacional acessada em uma forma distribuída através de um serviço web. Amazon também tem uma loja de valores-chave distribuídos chamado Dynamo , que alimenta alguns dos seus serviços S3.
  • Dynomite e Kai são soluções de código aberto inspirados pela Amazon Dynamo.
  • BigTable é uma solução de armazenamento de dados proprietário usado pelo Google, e implementado utilizando sua tecnologia Google File System. estrutura MapReduce do Google usa BigTable.
  • Hadoop é uma tecnologia de código aberto inspirado pelo MapReduce do Google e servindo uma necessidade semelhante, para distribuir o trabalho de armazenamentos de dados muito grande escala.
  • scalaris é uma chave transacional distribuído / loja de valor. Também não relacional, e não usa SQL. É um projeto de pesquisa do Instituto Zuse em Berlim, Alemanha.
  • RDF é um padrão para armazenar dados semânticas, nos quais dados e metadados são intercambiáveis. Ele tem sua própria linguagem de consulta SPARQL, que se assemelha SQL superficialmente, mas na verdade é totalmente diferente.
  • Vertica é uma base de dados analítico altamente escalável orientada a coluna concebida para distribuído (grade) arquitetura. Ele tem a pretensão de ser relacional e SQL-compliant. Ele pode ser usado através Elastic Compute Cloud da Amazon.
  • Greenplum é um dado de alta escala de armazenagem DBMS, que implementa tanto MapReduce e SQL.
  • XML não é um DBMS em tudo, é um formato de intercâmbio. Mas alguns produtos de DBMS trabalhar com dados em formato XML.
  • ODBMS , ou banco de dados orientado a objetos, são para o gerenciamento de dados complexos. Não parece ser quaisquer produtos ODBMS dominantes no mainstream, talvez por causa da falta de padronização. Padrão SQL está gradualmente a ganhar algumas características OO (por exemplo, tipos de dados e tabelas extensíveis).
  • Regue é um banco de dados relacional, desenhando um monte de seu código do MySQL . Ele inclui várias alterações na arquitetura projetados para gerenciar dados em um "cloud computing" escalável arquitetura do sistema. Presumivelmente, ele vai continuar a usar SQL padrão com algumas melhorias do MySQL.
  • Cassandra é altamente escalável, eventualmente, consistente, distribuído, armazenamento de chaves-valor estruturado, desenvolvido pelo Facebook por um dos autoresAmazon Dynamo, e contribuiu para o projeto Apache.
  • Project Voldemort é um não-relacionais, distribuídas, de valores-chave sistema de armazenamento. Ele é usado no LinkedIn.com
  • Berkeley DB merece alguma mencionar também. Não é "next-gen", porque remonta ao início dos anos 1990. É uma popular loja de valores-chave que é fácil de incorporar em uma variedade de aplicações. A tecnologia é atualmente de propriedade da Oracle.

Veja também este artigo agradável por Richard Jones " Anti-RDBMS: Uma lista de distribuição lojas de chave-valor ". Ele entra em mais detalhes descrevendo algumas dessas tecnologias.

Bancos de dados relacionais têm fraquezas, para ter certeza. As pessoas têm sido argumentando que eles não lidar com todos os dados de modelagem requisitos desde o dia em que foi introduzido pela primeira vez.

Ano após ano, os pesquisadores vêm-se com novas formas de gerenciamento de dados para satisfazer requisitos especiais: ou Requisitos para relações de dados identificador que não se encaixam no modelo relacional, ou requisitos outra coisa de volume-alta escala ou a velocidade que os dados de demanda processamento ser feito em colecções distribuídas de servidores, em vez de servidores de banco de dados central.

Mesmo que estas tecnologias avançadas fazer grandes coisas para resolver o problema especializada que eles foram projetados para, bancos de dados relacionais são ainda uma boa solução de uso geral para a maioria das necessidades de negócios. SQL não está indo embora.


Eu escrevi um artigo em php | revista Architect sobre a inovação de bancos de dados não relacionais, e modelagem de dados em bancos de dados versus não-relacionais relacionais. http://www.phparch.com/magazine/2010-2/september/

Outras dicas

Eu estou sentindo falta de gráfico de bancos de dados nas respostas até agora. Um gráfico ou rede de objectos é comum em programação e pode ser útil em bases de dados bem. Ele pode lidar com informações semi-estruturado e interligado de forma eficiente. Entre as áreas em que as bases de dados de gráficos ganharam um monte de interesse são web e bioinformática semântica. RDF foi mencionado, e é de fato uma linguagem que representa um gráfico. Aqui estão alguns ponteiros para o que está acontecendo na área de banco de dados do gráfico:

Eu sou parte do href="http://neo4j.org/" rel="noreferrer"> Neo4j projeto , que é escrito em Java, mas tem ligações para Python, Ruby e Scala também. Algumas pessoas usá-lo com Clojure ou Groovy / Grails. Há também uma ferramenta GUI evolução.

pode não ser o melhor lugar para resposta com isso, mas eu gostaria de compartilhar essa taxonomia de NoSQL mundo criado por Steve Yen (por favor em http://de.slideshare.net/northscale/nosqloakland-200911021 )

  1. key-value-cache

    • memcached
    • repcached
    • coerência
    • in fi nispan
    • eXtremeScale
    • JBossCache
    • velocidade
    • terracoqa
  2. key-value-store

    • keyspace
    • fl são
    • livre de esquema
    • RAMCloud
  3. , eventualmente consistente key-value-store

    • dínamo
    • Voldemort
    • Dynomite
    • subregistro
    • MongoDb
    • Dovetaildb
  4. ordenou-key-value-store

    • tokyotyrant |
    • Lightcloud
    • NMDB
    • Luxio
    • memcachedb
    • ACTORD
  5. servidor de dados-estruturas

    • Redis
  6. tuple-store

    • GigaSpaces
    • coord
    • apacheriver
  7. banco de dados objeto

    • ZopeDB
    • db4o
    • Shoal
  8. armazenamento de documentos

    • CouchDB
    • Mongo
    • Jackrabbit
    • XMLDatabases
    • ThruDB
    • CloudKit
    • perservere
    • RiakBasho
    • scalaris
  9. loja ampla colunar

    • BigTable
    • HBase
    • Cassandra
    • Hypertable
    • KAI
    • OpenNep

Para um olhar para o que a pesquisa acadêmica está sendo feito na área de bancos de dados próximos gen dar uma olhada nisso: http : //www.thethirdmanifesto.com/

No que diz respeito à linguagem SQL como uma implementação adequada do modelo relacional, cito wikipedia, "SQL, inicialmente empurrado como a linguagem padrão para bancos de dados relacionais, se desvia do modelo relacional em vários lugares. A atual norma ISO SQL não menciona o modelo relacional ou usar termos ou conceitos relacionais. no entanto, é possível criar um banco de dados em conformidade com o modelo relacional usando SQL se não usar determinados recursos SQL. "

http://en.wikipedia.org/wiki/Relational_model (referenciado no seção "SQL e o modelo relacional" em 28 de Março de 2010

Not to be pedantic, but I would like to point out that at least CouchDB isn't SQL-based. And I would hope that the next-gen SQL would make SQL a lot less... fugly and non-intuitive.

There are special databases for XML like MarkLogic and Berkeley XMLDB. They can index xml-docs and one can query them with XQuery. I expect JSON databases, maybe they already exist. Did some googling but couldn't find one.

SQL has been around since the early 1970s so I don't think that it's going to go away any time soon.

Maybe the 'new(-ish) sql' will oql (see http://en.wikipedia.org/wiki/ODBMS)

I heard also about NimbusDB by Jim Starkey

Jim Starkey is the man who "create" Interbase

who work on Vulcan (a Firebird fork)

and who was at the begining of Falcon for MySQL

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top