Главная » SQL, Базы данных » Атрибуты со значениями в виде отношения

0

Как было отмечено в разделе 6.3, в общем случае в качестве основы для определения реляционных атрибутов может использоваться любой тип. Из этого, в частности, следует, что основой для определения атрибутов отношений могут явиться типы отношений, поскольку они, безусловно, представляют собой типы.  Иными словами, атрибуты могут иметь значения в виде отношений, а это означает, что в отношениях могут применяться атрибуты, значениями которых, в  свою очередь, являются отношения. Иначе говоря, допустимо существование  таких отношений, в которые вложены другие отношения. Пример такого  отношения показан на рис. 6.2. Применительно к этому отношению можно отметить, что в данном отношении, во-первых, атрибут PQ имеет значение в виде отношения, во-вторых, его кардинальность и степень равны пяти, и в  частности, втретьих, пустое множество деталей, поставляемых поставщиком S5, представлено в виде значения PQ, которое является пустым множеством (точнее, пустым отношением).

Рис. 6.2. Отношение с атрибутом, значением которого является отношение

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

Следует отметить, что все значения столбцов являются атомарными… Это означает, что в каждой позиции на пересечении строки и столбца (именно так!) в каждой таблице (именно так!) должно всегда находиться одно и только одно значение данных, а не группа из нескольких значений. Поэтому, например, в таблице ЕМР должны присутствовать такие строки

вместо следующей одной строки.

Во втором варианте этой таблицы столбец ЕМР# представляет собой пример того, что обычно называют повторяющейся  группой. Повторяющаяся  группа — это столбец…, который содержит несколько значений в каждой строке (и, в общем, разное количество значений в различных строках). В реляционных базах данных повторяющиеся группы не допускаются; поэтому второй вариант приведенной выше таблицы не должен использоваться в реляционной системе.

И ниже в том же шестом издании мы находим следующее утверждение.

Домены (т.е. типы) содержат только атомарные значения… [Поэтому] отношения не должны включать повторяющиеся группы. Отношение, удовлетворяющее этому условию, называется нормализованным или (равным образом) находящимся в первой нормальной форме… В контексте реляционной модели термин отношение всегда принято трактовать как нормализованное отношение.

Но эти замечания были неправильными (по меньшей мере, не совсем правильными). Они явились следствием того, что в свое время сам автор не понимал истинного характера типов (доменов). По причинам, которые будут обсуждаться в главе 12 (раздел 12.6), маловероятно, чтобы это заблуждение могло привести на практике к каким-либо очень серьезным ошибкам; тем не менее, автор считает свои долгом принести извинения всем, кого он ввел в заблуждение. По крайней мере, этот текст из шестого издания был правильным в тех местах, где в нем говорилось, что отношения в реляционной модели всегда нормализованы! Дополнительная информация по этой теме приведена также в главе 12.

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии