Базы данных следующего поколения - PullRequest
54 голосов
/ 12 ноября 2008

Я изучаю традиционные реляционные базы данных (с PostgreSQL ) и провожу некоторые исследования, я наткнулся на некоторые новые типы баз данных. CouchDB , Drizzle и Scalaris и многие другие, с какими технологиями баз данных будут иметь дело следующие?

Ответы [ 8 ]

103 голосов
/ 12 ноября 2008

Я бы сказал, следующее поколение база данных , а не следующее поколение SQL.

SQL - это язык для запросов и управления реляционными базами данных. SQL продиктован международным стандартом. Хотя стандарт пересматривается, он, похоже, всегда работает в рамках парадигмы реляционной базы данных.

Вот несколько новых технологий хранения данных, которые в настоящее время привлекают внимание:

  • CouchDB - это нереляционная база данных. Они называют это документно-ориентированной базой данных.
  • Amazon SimpleDB также является нереляционной базой данных, доступ к которой осуществляется распределенным образом через веб-службу. У Amazon также есть распределенное хранилище ключей-значений под названием Dynamo , которое поддерживает некоторые из его сервисов S3.
  • Dynomite и Kai - это решения с открытым исходным кодом, вдохновленные Amazon Dynamo.
  • BigTable - это запатентованное решение для хранения данных, используемое Google и реализованное с использованием технологии Google File System. Каркас Google MapReduce использует BigTable.
  • Hadoop - это технология с открытым исходным кодом, созданная по мотивам Google MapReduce и служащая аналогичной необходимости для распространения работы очень больших хранилищ данных.
  • Scalaris - это распределенное транзакционное хранилище ключей / значений. Также не реляционный, и не использует SQL. Это исследовательский проект Института Цузе в Берлине, Германия.
  • RDF - это стандарт для хранения семантических данных, в котором данные и метаданные являются взаимозаменяемыми. У него есть собственный язык запросов SPARQL, который внешне напоминает SQL, но на самом деле совершенно другой.
  • Vertica - это масштабируемая аналитическая база данных, ориентированная на столбцы, предназначенная для распределенной (грид) архитектуры. Он претендует на то, чтобы быть реляционным и SQL-совместимым. Его можно использовать через Elastic Compute Cloud от Amazon.
  • Greenplum - это высокопроизводительная СУБД для хранилищ данных, которая реализует как MapReduce, так и SQL.
  • XML вовсе не СУБД, это формат обмена. Но некоторые продукты СУБД работают с данными в формате XML.
  • ODBMS , или объектные базы данных, предназначены для управления сложными данными. Похоже, в основной массе продуктов ODBMS не доминирует, возможно, из-за отсутствия стандартизации. Стандартный SQL постепенно приобретает некоторые функции OO (например, расширяемые типы данных и таблицы).
  • Drizzle - это реляционная база данных, берущая большую часть своего кода из MySQL. Он включает различные архитектурные изменения, предназначенные для управления данными в масштабируемой архитектуре системы «облачных вычислений». Предположительно он продолжит использовать стандартный SQL с некоторыми улучшениями MySQL.
  • Cassandra - это масштабируемое, в конечном итоге согласованное, распределенное, структурированное хранилище значений ключей, разработанное в Facebook одним из авторов Amazon Dynamo и внесенное в проект Apache. .
  • Project Voldemort - это нереляционная распределенная система хранения ключей и значений. Используется на LinkedIn.com
  • Berkeley DB также заслуживает отдельного упоминания. Это не «следующее поколение», потому что оно восходит к началу 1990-х годов. Это популярное хранилище ключей-значений, которое легко встраивать в различные приложения. Технология в настоящее время принадлежит корпорации Oracle.

Также см. Эту замечательную статью Ричарда Джонса: « Anti-RDBMS: список распределенных хранилищ значений ключей ». Он более подробно описывает некоторые из этих технологий.

Реляционные базы данных имеют недостатки, безусловно. Люди утверждают, что они не выполняют все требования к моделированию данных со дня, когда они были впервые представлены.

Год за годом исследователи находят новые способы управления данными для удовлетворения особых требований: либо требований к обработке отношений данных, которые не вписываются в реляционную модель, либо требований большого объема или скорости, которые требуют данных обработка должна выполняться на распределенных наборах серверов, а не на серверах центральной базы данных.

Несмотря на то, что эти передовые технологии делают большие вещи для решения специализированной проблемы, для которой они были разработаны, реляционные базы данных по-прежнему являются хорошим универсальным решением для большинства потребностей бизнеса. SQL не уходит.


Я написал статью в журнале php | Architect об инновациях нереляционных баз данных и моделировании данных в реляционных и нереляционных базах данных. http://www.phparch.com/magazine/2010-2/september/

25 голосов
/ 27 марта 2009

Мне не хватает граф баз данных в ответах до сих пор. Граф или сеть объектов распространены в программировании и могут быть полезны в базах данных. Он может эффективно обрабатывать полуструктурированную и взаимосвязанную информацию. Среди областей, где графовые базы данных приобрели большой интерес, это семантическая сеть и биоинформатика. RDF был упомянут, и на самом деле это язык, который представляет граф. Вот несколько указателей на то, что происходит в области базы данных графа:

Я являюсь частью проекта Neo4j , который написан на Java, но также имеет привязки к Python, Ruby и Scala. Некоторые люди используют его с Clojure или Groovy / Grails. Существует также GUI инструмент , развивающийся.

10 голосов
/ 19 марта 2011

Возможно, это не лучшее место для ответа, но я хотел бы поделиться этой таксономией мира noSQL, созданного Стивом Йеном (пожалуйста, найдите его по адресу http://de.slideshare.net/northscale/nosqloakland-200911021)

  1. ключ-значение кэша

    • Memcached
    • repcached
    • когерентность
    • в фантастическом nispan
    • eXtremescale
    • jbosscache
    • скорость
    • terracoqa
  2. ключ-значение-магазин

    • 1035 * пространство ключей *
    • фл являются
    • без схемы
    • RAMCloud
  3. в конечном итоге согласованное значение ключа хранилища

    • динамо * * тысяча пятьдесят-один
    • Волдеморт
    • Dynomite
    • SubRecord
    • MongoDb
    • Dovetaildb
  4. упорядоченный ключ-значение-магазин

    • tokyotyrant
    • lightcloud
    • NMDB
    • luxio
    • memcachedb
    • actord
  5. сервер структур данных

    • Redis
  6. Кортеж-магазин

    • GigaSpaces * +1101 *
    • коорд
    • apacheriver
  7. база данных объектов

    • ZopeDB
    • db4o
    • Шол
  8. хранилище документов

    • CouchDB
    • Монго
    • Jackrabbit
    • XMLDatabases
    • ThruDB
    • CloudKit
    • Perservere
    • RiakBasho
    • Scalaris
  9. широкий столбчатый магазин

    • BigTable
    • Hbase
    • Cassandra
    • Hypertable
    • KAI
    • OpenNep
2 голосов
/ 28 марта 2010

Чтобы узнать, какие научные исследования проводятся в области баз данных следующего поколения, взгляните на это: http://www.thethirdmanifesto.com/

Что касается языка SQL как надлежащей реализации реляционной модели, я цитирую википедию: «SQL, изначально выдвинутый в качестве стандартного языка для реляционных баз данных, в некоторых местах отличается от реляционной модели. Текущий стандарт ISO SQL не упоминает реляционную модель и не использует реляционные термины или понятия. Однако можно создать базу данных, соответствующую реляционной модели, с использованием SQL, если не используются определенные функции SQL. "

http://en.wikipedia.org/wiki/Relational_model (ссылка в разделе «SQL и реляционная модель» от 28 марта 2010 г.

1 голос
/ 22 марта 2009

Существуют специальные базы данных для XML, такие как MarkLogic и Berkeley XMLDB. Они могут индексировать xml-документы, и можно запросить их с помощью XQuery. Я ожидаю базы данных JSON, возможно, они уже существуют. Поискал, но не смог найти.

1 голос
/ 12 ноября 2008

Не для того, чтобы быть педантичным, но я хотел бы отметить, что по крайней мере CouchDB не основан на SQL. И я надеюсь, что SQL следующего поколения сделает SQL намного менее ... беспорядочным и неинтуитивным.

0 голосов
/ 09 апреля 2009

Я также слышал о NimbusDB от Джима Старки

Джим Старки - человек, который "создает" Interbase

кто работает на Vulcan (форк Firebird)

и кто был в начале Falcon для MySQL

0 голосов
/ 12 ноября 2008

SQL существует с начала 1970-х годов, поэтому я не думаю, что он скоро исчезнет.

Возможно, «новый (-ish) sql» будет oql (см. http://en.wikipedia.org/wiki/ODBMS)

...