Прежде всего, я настоятельно рекомендую научную статью, в которой д-р Эдгар Франк Кодд опубликовал реляционную структуру для широкой публики в 1970 году, а именно, Реляционную модель данных для больших общих банков данных . Там, в разделе 1.1 «Введение», доктор Кодд сам утверждает, что:
Эта статья посвящена применению теории элементарных отношений к системам, которые обеспечивают общий доступ к большим банкам форматированных данных.
© Ассоциация вычислительной техники. Сообщения ACM , том 13, выпуск 6 (стр. 377-387), июнь 1970 г.
Так что да, термины « отношение» и (следовательно) « реляционный» происходят из математического фона. Д-р Кодд, который, помимо своих академических и исследовательских полномочий, имел около 20 лет непосредственного опыта в области вычислительной техники и обработки информации, представил огромные преимущества применения этого отношения (абстрактной конструкции, естественно) в области управления данными ,
Я не математик, но, по сути, отношение - это ассоциация между наборами , а набор - это совокупность элементов ( этот внешний ресурс дает определение математического отношения, которое может помочь понять его с другой точки зрения). При работе с помощью системы управления базами данных SQL (для краткости СУБД) общеизвестным приближением отношения является таблица , в этом случае происходит связь между типами ее столбцов . Очевидно, что на платформах SQL, которые предлагают поддержку DOMAIN (например, Firebird и PostgreSQL ), связь междуфиксированные домены для столбцов рассматриваемой таблицы; см. разделы ниже для важных деталей.
В связи с этим я собираюсь еще раз процитировать доктора Кодда, который в разделе 1.3 «Реляционное представление данных» утверждает, что:
Термин отношение используется здесь в его принятом математическом смысле. Для заданных наборов S 1 , S 2 , ⋯, S n (не обязательно различных) R является отношением к этим n наборам, если это набор из n- кортежей, каждый из которых имеет свой первый элемент из S 1 , свой второй элемент из S 2 и так далее. 1 Мы будем называть S J как J - й области из R . Как определено выше, говорят , что R имеет степень n, Отношения степени 1 часто называют одинарными , степени 2 двоичными , степени 3 троичными и степенью n n-арными .
1 Более кратко, R является подмножеством декартового произведения S 1 × S 2 × S 3 ⋯ × S n .
© Ассоциация вычислительной техники. Сообщения ACM , том 13, выпуск 6 (стр. 377-387), июнь 1970 г.
И я согласен с другими ответами в том, что очень уместно указать, что доктор Кодд сделал некоторые адаптации к математическому отношению, чтобы получить максимальную отдачу от него в отношении управления данными, и они объясняются в статье, упомянутой ранее, и на протяжении всей его обширной библиографии .
Отношения и отношения
Стоит вспомнить, что при работе с этими предметами может возникнуть путаница из-за сходства, которое существует в отношении повседневных (нематематических, нетехнических) определений терминов отношения и отношения, которые, как не Носитель английского языка, я нахожу особенно понятным.
Представление сущности-отношения и реляционная модель
Другой фактор, который, я думаю, может также вызвать путаницу (и тесно связан с технической коннотацией двух терминов, упомянутых выше), заключается в том, что при обучении проектированию баз данных студент или практикующий специалист обычно сначала знакомятся с методологией, предложенной доктором. Питер Пин-Шен Чен в представлении данных отношения сущностей (опубликованном в 1976 г.), которое предлагает два разных инструмента (то есть сущность и взаимосвязь ) для разграничения концептуальной схемы, а затем только после определения упомянутой схемы является стабильным, студент или практик знакомится с условиями и инструментами отношений (например, отношения ) при объявлениилогическая структура соответствующей базы данных. В концептуальной системе отношений отношения содержат коннотации, которые намного ближе к повседневному смыслу слова.
Тогда, возможно, это обстоятельство также добавляет к проблеме отношения и отношения - но последовательность первого определения концептуальной схемы и последующего объявления соответствующего логического плана, конечно, вполне уместна, как я буду подробно описывать в следующих разделах.
Ответы на каждый из ваших подвопросов
Я считаю, что включение этих трех подвопросов действительно уместно, поскольку они устанавливают более широкий контекст для должности, поэтому их не следует упускать из виду. Таким образом, помимо исключительно адресации , почему термины отношения и реляционная используются (что , безусловно , является очень важным и является название поста, но это не весь пост), сказал подвопросы может помочь в понимании больше объема отношение и реляционная модель , когда один участвуют в проекте управления всей информации (весьма актуален , так как это сайт о администрировании баз данных) и , следовательно , работает на разных уровнях абстракции, Таким образом, я собираюсь поделиться своими взглядами на эти детали ниже.
Подвопрос № 1
Почему, например, Персона считается «отношением»? В английском языке отношение - это существительное, которое описывает, как связаны две сущности. Это не относится к самим сущностям. В контексте реляционных баз данных «отношение» относится к самим сущностям. Зачем?
Концептуальный уровень
В данной бизнес-среде Person можно считать типом сущности в зависимости от того, как его концептуализируют работающие там люди (бизнес-эксперты и разработчики баз данных) . И, да, в этой бизнес-среде могут существовать различные свойства, представляющие интерес для типа сущности Person , например, Имя , Дата рождения , Пол и т. Д.
Кроме того, тип сущности Person может содержать определенные типы отношений (или ассоциаций или соединений ) с самим собой или с другими типами сущностей; Например, Person может быть связан с типом сущности с именем UserProfile , который, в свою очередь, может иметь свои собственные интересующие свойства, скажем, Имя пользователя и Пароль .
Но, (a) типы объектов, (b) их соответствующие свойства, (c) типы отношений между типами объектов и (d) отношения между самими свойствами являются понятиями, которые «принадлежат» конкретной бизнес-среде, в которой они находятся. считается значимым. Это устройства, используемые разработчиками баз данных, которые работают в тесном контакте с бизнес-экспертами для определения концептуальной схемы , зависящей от контекста , на этапе проектирования.
Таким образом, на концептуальном уровне мы в основном работаем со структурой идей, возникающих в реальной сфере интересов, то есть (1) прототипами вещей и (2) прототипами отношений между прототипами вещей , с которыми мы не работаем (3) отношения - использование этого последнего термина в смысле реляционной структуры данных -.
Логический уровень
После человека был точно определен как тип сущности на концептуальном уровне, и если кто-то хочет реализовать реляционную базу данных, которая передает значение Person и все связанные с ним понятия, то фактами о сущностях этого типа можно управлять с помощью математического отношения на логическом уровне и воспользоваться научными операциями, которые могут быть выполнены с этой абстрактной конструкцией (то есть определить ее, ограничить и манипулировать ею).
Да, можно определить конкретное отношение Person при определении логического расположения базы данных, но это не превращает концепцию Person в реальный мир в отношение, к нему можно подходить как таковому из-за преимуществ, которые получают при управлении информацией. об этом, например, применяя к нему операции реляционной алгебры для получения новых отношений (и, следовательно, каждый получает «новую» информацию). Упомянутые преимущества становятся более очевидными, если принять во внимание тот факт, что объекты определенного типа составляют набор, а значения определенного свойства также составляют набор.
И, да, как уже упоминалось в предыдущих абзацах и в других ответах, одним из первостепенных аспектов отношения является связь, которая существует между его доменами , которые обычно используются для представления свойств типов сущностей или ассоциаций, которые являются частью концептуальная схема. Например, допустим, что мы объявили следующее (троичное) отношение:
Salary (PersonNumber, EffectiveDate, Amount)
… И предположим, что в рассматриваемой бизнес-среде кортеж, который (i) обозначает конкретную сущность , то есть экземпляр типа сущности из применимой концептуальной схемы, и (ii) чей аналог SQL является ряд -
... будет нести смысл
- «Заработная плата, выплачиваемая лицу, указанному PersonNumber
x
на дату вступления в силуy
соответствуетz
» .
Соответственно - чтобы описать вещи в приближенной манере - связь между тремя доменами имеет первостепенное значение, они все связаны (и, да, унарное отношение будет включать только один домен). Связь между всеми значениями определенного домена также очень важна, поскольку они представляют собой набор точного типа . Кроме того, содержимое каждого кортежа Salary
отношения должно вписываться в структуру утверждения, проиллюстрированного выше.
Концептуальный уровня отношений и логический уровень отношения
Как было продемонстрировано, я сейчас имею дело с управлением базами данных на двух разных уровнях абстракции, а именно: концептуальный и логическом, и еще существует более низкий уровень, известный как физический , который в СУБД SQL обычно включает, например, индексы, страницы, экстенты, так далее.-.
Так, в соответствии с представлениями объяснено выше, на логическом уровне один работает исключительно с (а) математическими соотношениями, где (б) концептуальными отношениями или ассоциациями представлены (в) значениями, содержащимися в кортежах таких математических отношений, и указанные значения обычно разграничиваются через ограничения FOREIGN KEY, чтобы они могли точно представлять применимые отношения.
И да, ассоциативные объекты, то есть экземпляры типов отношений с отношением кардинальности «многие ко многим» (M: N), могут передаваться посредством кортежей одного математического отношения - с соответствующими ограничениями, объявленными соответствующим образом, курс-.
Подвопрос № 2
Я понимаю, что реляционная модель пришла вслед за иерархической и сетевой моделями. Но в этих моделях сущности также имеют отношения друг к другу. Так зачем называть эту модель реляционной моделью? Есть ли более конкретная фраза / термин? Или, может быть, мы должны сказать, что все три модели являются реляционными моделями, но иерархические и сетевые модели являются конкретными типами реляционных моделей?
Сетевые и иерархические СУБД предшествовали их формальной теоретической поддержке
Уместно указать, что теоретическая поддержка вокруг иерархического и сетевого подходов, фактически, была создана с точки зрения ранее существующих СУБД, с целью, среди прочего, тестирования и установления надежности (1) упомянутых видов программного обеспечения и (2) связанных методов управления данными - с моей точки зрения, явление перевернутой фигуры.
Неполный по сравнению с реляционным каркасом
При этом, хотя существуют иерархические и сетевые СУБД, которые предшествуют реляционной модели, и даже когда д-р Кодд называл каждый из этих подходов «моделью», ни один из них не определяется так же, как и реляционная структура. Реляционная парадигма предоставляет научные конструкции для определения (i), (ii) ограничения и (iii) манипулирования данными, а иерархический и сетевой подходы не имеют полной теоретической поддержки, чтобы охватить все три вида конструкций, упомянутых ранее.
Сетевые и иерархические особенности
Также, как указывалось ранее, сущность и типы отношений являются устройствами концептуального уровня, они не относятся к иерархическому или сетевому подходам, каждый из которых предлагает конкретные механизмы для представления указанных аспектов:
Сетевая парадигма предполагает два устройства для представления данных, то есть узлы и дуги (и эта характеристика, конечно, подразумевает два различных вида операций с данными), которые, в отличие от реляционной модели, которая (согласно информационному принципу ) требует только одну конструкцию (отношение), делает очевидной ненужную сложность работы сети. Например, учитывая, что он прибегает к двум инструментам представления, сетевой подход налагает непрактичное смещение запроса, которое препятствует манипулированию данными.
Со своей стороны, иерархическое представление предлагает представлять данные в виде (физических!) Файлов, составленных из записей (которые, в свою очередь, состоят из полей ), организованных в виде трех типов ; т. е. одна родительская запись связана с возможно многими дочерними аналогами через указатели , что создает физический путь доступа в отношении манипулирования данными. Этот подход также является неблагоприятным, поскольку он представляет собой переплетение между концептуальными и физическими аспектами, поэтому изменения в физических схемах хранения требуют реорганизации структур данных, что, в свою очередь, требует изменений в соответствующих операциях манипулирования данными.
Как показано, иерархические и сетевые представления навязывают свои конструкции управляемым данным, тогда как реляционная модель предлагает элегантно управлять данными в их естественной структуре с помощью наборов связанных фактов (из которых n последующих типов наборов не ожидается в этап проектирования, можно вывести и тд!).
Реляционная модель не имеет подмоделей
И, что очень важно, ни иерархические, ни сетевые представления не являются особыми типами реляционных моделей, это просто другие парадигмы, которым кто-то может следовать, чтобы (а) создавать СУБД и (б) создавать базы данных, но имейте в виду, что иерархическая структура и сетевые подходы считаются устаревшими на протяжении десятилетий.
Подвопрос № 3
Что делать, если у нас есть отдельные сущности, которые не связаны друг с другом. Скажи, человек, дверь и дерево. Термин «отношение (а)» все еще применим?
Да, это вполне применимо, если кто-то (1) управляет информацией об этих типах сущностей с помощью адаптированных математических отношений и (2) выполняет соответствующие реляционные операции на логическом уровне в определенной базе данных, администрируемой с помощью данной реляционной СУБД ,
Не имеет значения, если на концептуальном уровне упомянутые типы сущностей не содержат типов отношений с другими типами сущностей (и стоит отметить, что тип сущности может иметь отношение отношения кардинальности один к нулю, один или много). с самим собой), и, таким образом, никто не передает и не навязывает никаких отношений между значениями кортежей рассматриваемых отношений.