Подтвердить что ты не робот

Исторически, что сделало реляционные базы данных популярными?

EDIT Я только что начал снимать знаменитую бумагу 1970 года в Codd, которая начала все это, о том, что Oracle основывалась на (Реляционная модель данных для больших общих данных Банки [pdf]), и был поражен, обнаружив, что, похоже, он ответит на этот вопрос. Он говорит о базах данных на рынке в то время ( "иерархический" и "сетевой" - например, NoSQL?), Необходимость независимости от внутреннего представления и четкое объяснение того, как применять математические "отношения" к базе данных.


Исторически, какая особенность реляционных баз данных давала то преимущество, которое заставляло предприятия принимать его, делая его массово успешным?

Сегодня существует много причин использовать RDB: он стандартный, продукты зрелые, отлаженные, полнофункциональные, есть выбор поставщиков, там поддержка, там обученная рабочая сила и так далее. Но почему это стало настолько популярным?

Я слышал, что " иерархические базы данных" были популярны до реляционных баз данных - они звучат как хранилище значений ключей, где значение может быть другим набором значений ключа. Если это так, это похоже на объектно-ориентированные базы данных, которые были опубликованы десятилетие или два назад; а также к базам данных XML/документа и NoSQL.

Возможно транзакции ACID (атомарность и т.д.)? Но это не похоже на RDB.

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

Может быть, потому, что реляционная модель математически звучит? Но это не похоже на то, что это убедит менеджеров принять его - и что будет выгодным для бизнеса.

Может быть, потому, что математическая модель дает вам способ переупорядочить базу данных в разные нормальные формы, чтобы дать разные характеристики производительности, которые математически гарантированно не изменят смысл данных? Это кажется правдоподобным, и мои учебники по Uni делают это очень много, но для меня это не очень привлекательно, как практическое деловое преимущество (может быть, я чего-то не хватает)?

Резюмируем: исторически, что заставило реляционную модель так решительно победить над иерархической моделью? Меня также интересует, обладает ли RDB каким-то особым качеством, которое активно делает их более практичным выбором для бизнеса (кроме преимуществ того, чтобы быть стандартом, упомянутым выше).

Большое спасибо, если вы можете пролить некоторый свет - мне давно это интересно.

4b9b3361

Ответ 1

По той же причине популярны языки script.

Вы можете сделать запрос в своем любимом текстовом редакторе и просто выпустить его, не беспокоясь о фактической физической схеме.

Это не самая быстрая модель, а не самая надежная модель - это просто самая производительная модель. Вы можете написать в десять раз больше запросов через час.

Вы можете прочитать эту статью в своем блоге, в которой сравниваются самые популярные модели баз данных:

Ответ 2

Концепция создания логического представления данных, абстрагированных от ее физического представления, была, пожалуй, самой изменяющей игру аспектом идеи Codd. По-видимому, он был первым человеком, который полностью осознал преимущества разделения логических и физических проблем и, следовательно, первым разработал модель данных, достойную имени. Описывая модель, основанную на отношениях, без навигационных ссылок или структур указателей, он также создал нечто уникально мощное, гибкое и долговременное релевантность.

Чтобы быть точным, нужно сказать, что это была модель SQL, а не реляционная, которая в конечном итоге оказалась более успешной в коммерческих целях. SQL - это долгий путь от действительно реляционной модели данных или языка, хотя она не возникла бы без идей Кодда, чтобы вдохновить ее. Создатель реляционной модели, естественно, разочаровался в том, что SQL, а не реляционная, стал стандартом базы данных. Четыре десятилетия спустя я думаю, что у нас есть много причин сожалеть о том, что реляционная модель Codd лучше не поддерживается программным обеспечением СУБД.

Ответ 3

Насколько я знаю, это нормализация (хорошо известная Третья нормальная форма Кодда) для определения модели реляционных данных, которая является простой и эффективной для хранения и извлечения. Это сопровождалось стандартным языком запросов (SQL), который позволяет использовать его во всей реляционной системе db. Стандартизация, безусловно, отсутствовала в то время, что также делает это привлекательным для многих.

Ответ 4

Я считаю, что ни один из ответов не прибил его, поскольку вас интересует исторический аспект.

Если бы я выделил причину, я бы сказал, что Quassnoi был близок, но SQL был не просто языком - у него есть одна замечательная функция, которая не была распространена в 70-х годах:

  • это декларативный, он описывает, что вы хотите получить, и не прописывает, как это сделать.

Я не думаю, что можно преувеличивать это.

конечно, реляционная модель также является большим фактором (и связана с вышесказанным)

  • также не все базы данных, имеющие схему, относятся только к данным; иерархические и сетевые базы данных также касаются того, как получать данные, их структура определяет наиболее эффективный метод доступа к данным и, следовательно, влияет на структуру, как вы будете моделировать проблему (в других словах процесс моделирования зависит от того, как приложение будет его использовать; что другое приложение, которое может потребоваться для использования IMS, например, будет находиться в крайне неблагоприятном положении или что некоторые изменения в приложении не потребуют изменений в дизайне базы данных для достижения хорошей производительности - например, необходимость сортировать по некоторым новым столбец)

Примечание: по некоторым из вышеуказанных намерений SQL и "R'DBMSes" не полностью доставляли (и/или другие модели каким-то образом преодолели свои проблемы), но это были первоначальные намерения и учитывая, насколько стабильный SQL был в прошлом ~ 40 лет (здесь ссылка на документ IBM из 1974), либо он тоже не сделал такую ​​плохую и плохую работу.

Здесь также приведена цитата из здесь

"Основная идея Teds заключалась в том, что отношения между элементами данных должны основываться на значениях элементов, а не по отдельно указанным связывание или вложенность. Это понятие значительно упрощена спецификация запросов и разрешено беспрецедентное гибкость для использования существующих данных устанавливает по-новому", - сказал Дон Чемберлин, соавтор SQL, отраслевой стандарт для запросов к реляционным базам данных и исследовательский сотрудник в Almaden. "Он что пользователи компьютеров должны быть способный работать более естественно-языковой уровень, а не обеспокоены подробностями того, где или как данные были сохранены."

На воссоединении IBM в 1995 году ученые-реляционные базы данных, Чемберлин вспоминал о прозрении как он впервые услышал, как Кодд описал его реляционная модель на внутренней семинар.

"Кодд имел кучу честных сложные вопросы", - сказал Чемберлин. "И так как Id изучал CODASYL (язык, используемый для запроса навигационные базы данных), я мог бы представьте, как эти запросы будут иметь был представлен в CODASYL программы, длительностью пять страниц которые будут перемещаться по этому лабиринт указателей и прочее. Codd вроде бы записывали бы их как однострочечники.... (T) hey werent сложно. Я сказал:" Ого. Это было своего рода конверсия опыт для меня. Я понял, что реляционная вещь была примерно после что ".

Кажется, я помню расшифровку интересного интервью о попрошайничестве SQL, но не могу отследить его.

Ответ 5

Одним из ключей были автономные продукты - вам больше не приходилось вручную определять и поддерживать ваши ключевые файлы (индексы) и возможность сменить модель данных с меньшими усилиями. Объедините это с структурами на основе SET, что сделало его неотразимым продуктом, с которым можно работать. Объедините язык SQL поверх этого, чтобы вернуть данные, и это было беспроигрышной ситуацией над традиционными структурами данных ISAM, в первую очередь связанными с языками COBOL.