2013-12-24 5 views
0

Я изучаю базы данных на основе документов, и они кажутся идеальными, поэтому я спрашиваю, почему люди все еще используют «классические» базы данных? почему мы не можем окончательно перейти к NoSQL?Почему люди все еще используют реляционные базы данных

+3

Потому что они не идеальны, далеко от него. Просто проверьте иерархические или сетевые базы данных 70-х, базы данных объектов 90-х годов, и если вы обнаружите некоторые сходства с базами данных документов, вы также найдете некоторые из недостатков, которые делают базы данных документов даже не близкими к идеалу для общего использования –

ответ

3

Ответ прост: по-прежнему имеется много данных, которые представлены реляционной моделью красиво.

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

ACID означает что-то важное. Напомните себе следующий раз, когда вы переводите средства между счетами.

Почему банки и другие учреждения бросают много лет инвестиций? Какая польза от использования баз данных на основе документов? Это будет огромная стоимость, просто чтобы заставить рабочее приложение вести себя так же, используя новую технологию. И какая блестящая новая вещь вы будете преследовать, когда это будет сделано?

Это не OR/SQL для SQL и NoSQL. Оба являются просто альтернативами, которые имеют свое место.

3
  1. Реляционные базы данных находятся около 40 лет. Они - проверенная и настоящая технология, и для них много ноу-хау. Они являются неотъемлемой частью каждого обучения информатики, и каждый программист должен иметь как минимум базовые знания о том, как их использовать. С другой стороны, базы данных, ориентированные на документы, являются довольно новой технологией. Есть немного людей вокруг, кто может сказать, что они когда-либо завершали успешный проект с ними, и даже те люди не могут утверждать, что они действительно знают обо всех ловушках этой новой технологии.
  2. Большинство баз данных, ориентированных на документы, не имеют встроенной поддержки того, что реляционные базы данных называют JOINs, поэтому их необходимо моделировать на прикладном уровне, что неудобно и неэффективно. Совместно с JOINs можно избежать денормализации данных, но денормализация становится уродливой, когда у вас есть агрегация вместо состава или n: m отношений между сущностями.
  3. Большинство баз данных, ориентированных на документы, не поддерживают транзакции, по крайней мере, ни один из которых не охватывает несколько документов. Они не требуются для многих случаев использования, но в чувствительных областях (например, многие, которые имеют дело с деньгами) вы просто не можете обойтись. Возможны обходные пути (например, двухфазные фиксации), но их сложно программировать (и, следовательно, подвергать ошибкам) ​​и замедлять работу.
  4. База данных схемы может быть благом из-за ее гибкости, но она может быстро превратиться в проклятие. Благодаря четко определенной схеме с ограничениями и триггерами реляционная база данных может быть достаточно умна, чтобы отклонять любые данные, которые просто не имеют смысла. С другой стороны, база данных schemaless будет с радостью принимать любые данные мусора, которые она кормит от багги-клиента.

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

Смежные вопросы