Проблемы реляционных БД
Несмотря на то что реляционные (табличные) БД хорошо себя зарекомендовали и составляют подавляющее большинство реально используемых баз данных, они не универсальны и в некоторых задачах их применение приводит к серьёзным проблемам.
Во-первых, для того чтобы построить надёжно работающую реляционную БД, необходимо представить исходные данные как набор взаимосвязанных таблиц. Это требует серьёзных усилий, кроме того, данные становятся менее понятными для человека, потому что он мыслит не таблицами, а объектами, которые имеют определённый набор свойств.
Во-вторых, данные, связанные с одним объектом, разбросаны по разным таблицам, поэтому при поиске их приходится «вытаскивать» с помощью сложных запросов, которые выполняются сравнительно медленно при больших объёмах данных.
В-третьих, во всех реляционных базах данных структура данных чётко определена, причем она задаётся разработчиком при создании базы, и изменить её весьма непросто. Теперь представим себе, что нам нужно хранить документы, которые могут иметь разное количество свойств с разными названиями и типами данных, причём эти свойства заранее не определены и могут меняться со временем. В этом случае использовать реляционные БД, по крайней мере, очень сложно, поскольку они для этой цели не предназначены.
В-четвёртых, объемы данных, которые нужно обрабатывать, всё время возрастают, сейчас базы данных поисковых систем могут достигать нескольких петабайтов 1. Поэтому один компьютер с этим справиться не в силах (система может получать сотни тысяч запросов в секунду). Возникает задача распределить нагрузку на большое количество (иногда десятки тысяч) серверов, связанных между собой через Интернет. Если при этом применять реляционную базу данных, то для выполнения даже простых запросов нужно обращаться ко многим серверам, это недопустимо замедляет поиск. Подобная проблема возникает при «облачных» вычислениях, при которых данные пользователя хранятся на серверах в Интернете. Таким образом, реляционные БД хороши, когда вся база находится на одном компьютере, но они плохо масштабируются. Это значит, что при увеличении объема данных и количества запросов не удаётся увеличивать мощность системы, просто добавляя новые сервера. Причина в том, что реляционная модель плохо подходит для распределённых информационных систем.
1 1 Пбайт = 210 Тбайт = 250 байт. Например, Google обрабатывает более 20 Пб данных в день, Facebook хранит 1,5 Пб фотографий, Twitter генерирует 1 Пб данных в год.
Следующая страница Базы данных «ключ — значение»