Классика баз данных - статьи

       

Соответствие многие-к-одному


Снова начнем с определения: соответствие многие-к-одному – Пусть A и B – это множества, не обязательно различные. Тогда соответствие от A к B многие-к-одному – это правило, которое спаривает каждый элемент множества A ровно с одним элементом множества B и каждый элемент множества B не менее чем с одним элементом множества A. Эквивалентно, мы могли бы сказать, что соответствие многие-к-одному – это само такое спаривание.

Например, пусть A и B – это множество всех целых чисел и множество всех неотрицательных целых чисел соответственно. Тогда спаривание целых чисел x с их абсолютными значениями |x| является соответствием от A к B многие-к-одному.

Полагаю очевидным тот факт, что соответствие один-к-одному – это ничто иное, как ранее определенная сюръекция. Беда в том, что термин соответствие многие-к-одному часто неточно используют для обозначения явления, слегка отличающегося от сюръекции как таковой. Более точно, этот термин часто используется для обозначения одной из следующих вещей:

  1. Такое спаривание, что каждому элементу A соответствует не более одного элемента B (хотя каждому элементу B соответствует не менее одного элемента A).
  2. Такое спаривание, что (хотя каждому элементу A соответствует ровно один элемент B) каждому элементу B соответствует любое число элементов A (возможно, не соответствует ни один элемент).
  3. Такое спаривание, что каждому элементу A соответствует не более одного элемента B, и каждому элементу B соответствует любое число элементов A (возможно, не соответствует ни один элемент).

Временно я буду называть эти три интерпретации термина соответствие многие-к-одному Типом 1, Типом 2 и Типом 3 соответственно, а строгую (сюръективную) интерпретацию – Типом 0. Позвольте мне теперь соотнести эти четыре интерпретации со случаями, установленными в разд. «Сколько имеется случаев?» (там, где это возможно). Как и ранее, должны быть ясны следующие факты:

  • Случай 2.3 (ранее корректно распознанный, как сюръекция, или связь от A к B многие-к-одному) может также быть распознан, как соответствие Типа 0 от A к B многие-к-одному.
  • Случай 1.3 может быть распознан, как соответствие Типа 1 от A к B многие-к-одному.
  • Случай 2.4 (ранее корректно распознанный, как функция, не являющаяся ни инжекцией, ни биекцией, ни сюръекцией) может также быть распознан, как соответствие Типа 2 от A к B многие-к-одному.
  • Случай 1.4 может быть распознан, как соответствие Типа 3 от A к B многие-к-одному.

Замечание: Принимая во внимание то, что (как я уже говорил) интерпретации Типа 1, Типа 2 и Типа 3 являются неточными, теперь можно видеть, почему ранее говорилось (в разделе «Функции»), что, в частности, в случае связи многие-к-одному «в» спецификатор многие-к-одному использовался немного неаккуратно.



Содержание  Назад  Вперед