РЕДАКТИРОВАТЬ Я только начал читать знаменитую статью Кодда 1970 года, с которой все началось, на которой был основан Oracle ( Реляционная модель данных для больших общих банков данных [pdf] ), и был поражен, обнаружив, что, похоже, он ответит на этот ТАК вопрос. В нем говорится о базах данных на рынке в то время («иерархические» и «сетевые» - как NoSQL?), Необходимости независимости от внутреннего представления и четком объяснении того, как применять математические «отношения» в базу данных.
Исторически, какая особенность реляционных баз данных давала то преимущество, которое заставляло компании применять его, делая его массово успешным?
Сегодня существует множество причин для использования RDB: это стандарт, продукты являются зрелыми, отлаженными, полнофункциональными, есть выбор поставщиков, есть поддержка, есть обученная рабочая сила и так далее. Но почему он стал таким популярным?
Я слышал, что " иерархические базы данных " были популярны до реляционных баз данных - они звучат как хранилище значений ключей, где значение может быть другим набором значений ключа. Если это так, то это похоже на объектно-ориентированные базы данных, которые были опубликованы десять или два года назад; а также к базам данных XML / документов и NoSQL.
Может быть ACID транзакции (атомарность и т. Д.)? Но это не похоже на RDB.
Возможно, потому что реляционные базы данных позволили вам определить схему данных , которая была исключительно о данных - независимо от конкретного языка программирования, версии приложения (эволюции) или цели приложения (это делает «несоответствие импеданса» неизбежно) Но любая база данных со схемой данных имеет эту функцию.
Может быть, потому что реляционная модель математически обоснована ? Но это не похоже на то, что это убедило бы менеджеров принять его - и какова будет выгода для бизнеса.
Может быть, потому, что математическая модель дает вам возможность перегруппировать базу данных в различные нормальные формы , чтобы получить различные характеристики производительности, которые математически гарантированно не изменят значения данных? Это кажется правдоподобным, и мои учебники универмагов делают из этого большое дело, но это не кажется мне очень убедительным как практическая деловая выгода (может быть, я что-то упускаю)?
Подводя итог: исторически, что заставило реляционную модель так решительно победить иерархическую модель? Меня также интересует, имеют ли RDB еще какое-то особое качество, которое делает их более практичным выбором для бизнеса (помимо преимуществ упомянутого выше стандарта).
Большое спасибо, если вы можете пролить немного света - мне давно было интересно об этом.