Я сталкивался со многими системами управления реляционными базами данных (RDBMS). Но недавно я использовал hibernate, что заставило меня задуматься, почему объектно-ориентированные базы данных не более популярны.
Если объектно-ориентированные языки, такие как Java или C #, так популярны, то почему же объектно-ориентированные системы управления базами данных (OODBMS) также не пользуются большей популярностью?
object-oriented
database
rdbms
Рейчел
источник
источник
Ответы:
Есть несколько причин.
источник
Когда впервые появились базы данных, ООП все еще не было способом программирования. С другой стороны, реляционные базы данных получили большую популярность. И SQL, введенный IBM в 80-х годах, быстро стал языком общения во всех базах данных.
Когда ООП стало популярным, было несколько попыток, но есть некоторые проблемы. Во-первых, настоящую OODBMS действительно сложно реализовать. В случае реляционной базы данных таблица и связанные с ней индексы представляют собой довольно простые структуры (например, B-деревья). Другая причина заключается в том, что за реляционной моделью лежит много теории, она напрямую вытекает из математической теории множеств. Существуют известные способы правильного проектирования реляционной базы данных (например, нормализация и т. Д.). И последнее, но не менее важное: люди уже привыкли к SQL.
Современные NoSQL-решения в большинстве случаев не являются шагом к OODBMS. Многие из них все еще являются реляционными, только лишены
JOINs
. Лишь немногие из них на самом деле являются объектными хранилищами, но на самом деле не являются OODBMS, поскольку они не осведомлены об отношениях между объектами.Еще одна причина, по которой OODBMS не является таким сильным толчком, заключается в том, что существует решение "OODBMS" для бедных - ORM. Это приобрело огромную популярность, поскольку они поддерживаются хорошо известными, стабильными и протестированными механизмами БД, но они обеспечивают отображение объектов. Конечно, это не настоящие OODB.
источник
OODBMS хороши для хранения сложных данных. Однако в большинстве случаев, даже при использовании ОО-языков, необходимые данные относительно просты. Поэтому традиционные СУБД более подходят.
источник