Чому об'єктно-орієнтовані бази даних не використовуються стільки, скільки реляційні бази даних? [зачинено]


18

Я натрапив на багато реляційних систем управління базами даних (RDBMS). Але нещодавно я застосував сплячку, що змусило мене замислитися, чому об’єктно-орієнтовані бази даних не користуються більшою популярністю.

Якщо об'єктно-орієнтовані мови, такі як Java або C #, настільки популярні, то чому ж об'єктно-орієнтовані системи управління базами даних (OODBMS) також не користуються популярністю?


1
Підхід "NoSQL" зараз надзвичайно популярний. RDBMS є обмеженими та обмежуючими, і, на щастя, вони швидко втрачають свою землю.
SK-логіка

Що ви називаєте oodb? сплячий режим - це лише рамки для спілкування з rdbms з інтерфейсом oo.
Саймон Берго

2
Аналогічне запитання було задано у 2009 році щодо ПЗ .
Док Браун

@Simon від oodb, я маю на увазі об’єктно-орієнтовані бази даних

1
@Simon: Versant - це навряд (я бачив у виробництві у двох різних компаніях).
Джорджіо

Відповіді:


11

Причин багато.

  1. Багато розробників мають досвід лише реляційного моделювання даних. Щоб використовувати бази даних OO, їм потрібно було б навчитися зовсім іншим способом моделювання та продумування даних. Це або дуже важко, або досить багато часу.
  2. Реляційні БД мали багато часу для дозрівання. Навіть вільні реляційні БД мають вдосконалені методи оптимізації та індексації. Також реляційні дані легко зберігати та індексувати. Те саме не можна сказати про бази даних OO.
  3. Коли почали з'являтися реляційні та OO моделі. Реляційний мав величезну перевагу, що це було математично "правильним", і він був стандартним для збереження та запиту даних. OO не мав нічого подібного.
  4. [спекуляція] Багато великих гравців вкладають багато ресурсів для створення своїх реляційних БД. Підтримати OO БД було б контрпродуктивно. Тому багато з них інвестували в інтеграцію принципів ОО в реляційну модель, роблячи більшість сучасних БД так званими об'єктно-реляційними. ІМО ці моделі гірші за чисті реляційні чи чисті ОО. [/ Спекуляція]
  5. [rant] Останнє, що слід зазначити, що багато розробників насправді не розуміють спосіб OO для моделювання даних. Зазвичай це призводить до неоптимальних, анемічних моделей. Тому багато розробників, які покладаються на дешевих та недосвідчених розробників, скоріше виберуть просту реляційну модель, яку викладають у всіх коледжах CS, ніж вибирають жорсткий і недоведений підхід до ОО. [/ Rant]

5
Я згоден з усіма вашими пунктами, крім останнього. Я думаю, що розробникам простіше заплутати реляційні бази даних, ніж об'єктні бази даних. Складені ключі та розірвані зв’язки дуже часто зустрічаються, але мені здається хоч трохи складніше зіпсувати ієрархію класів.
Тярт

@Tjaart псує ієрархії класів, здається, є нормою для більшості розробників в ОО.
Бент

10

Коли вперше з'явилися бази даних, OOP все ще не був способом програмування. Реляційні бази даних, з іншого боку, отримали велику тягу. І SQL, запроваджений у 80-х роках IBM, швидко став lingua franca всіх баз даних.

Коли OOP став популярним, були деякі спроби, але є деякі проблеми. По-перше, справжній OODBMS реально важко реалізувати. У випадку реляційної бази даних таблиця та пов'язані з ними індекси є досить простими структурами (наприклад, B-дерева). Ще одна причина полягає в тому, що за реляційною моделлю стоїть багато теорії, вона безпосередньо випливає з теорії математичних множин. Відомі способи правильно спроектувати реляційну базу даних (думати про нормалізацію тощо). І останнє, але не менш важливе, люди вже багато звикли до SQL.

Сучасні рішення NoSQL у більшості випадків насправді не є кроком до OODBMS. Багато з них досі є реляційними, лише позбавленими JOINs. Мало хто з них насправді є магазинами об'єктів, але насправді не є OODBMS, оскільки вони не знають про відносини між об'єктами.

Ще одна причина, чому не існує настільки сильного поштовху для OODBMS, полягає в тому, що існує рішення "OODBMS" бідної людини - ORM. Це набуло величезної популярності, оскільки вони підтримуються відомими, стабільними та перевіреними ДБД, але вони надають відображення об'єктів. Звичайно, це не справжні OODB.


"Ще одна причина, чому немає настільки сильного поштовху для OODBMS, - це те, що існує рішення" OODBMS для бідолахи "- ORM.": Дуже вдалий момент! +1.
Джорджіо

Що це не так. MUMPS був розроблений в 1966 році і лише в 1974 році IBM почав перший дослідницький проект, щоб розробити System R, першу в світі RDBMS. Компанія Oracle випустила першу в світі комерційну модель RDBM лише в 1979 році, того ж року, коли з'явилася InterSystems M. Питання в тому, що сталося після цього. Відповідь, ймовірно, що ODBMS не були оптимізовані для звітування, тоді як у більшості випадків використання LOB-додатків сильний дисбаланс читання-запису щодо читання.
Олексій Зімарьов

-2

OODBMS добре зберігають складні дані. Однак більшість часу, навіть при використанні мов OO, потрібні дані відносно прості. Тож традиційні RDBMS більше підходять.


2
Дані майже ніколи не бувають простими, і я думаю, ви не можете пояснити, чому OODB не користується більшою популярністю, адже зрештою, ORM працює дуже добре.
Тяртарт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.