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



         

Родовая структура


Опишем теперь примитив структурирования для спецификации обобщений в реляционных моделях. В мы ввели типы collection (коллекция) и aggregate (агрегат), после чего объявили отношение R следующим образом:

var R: collection of aggregate [keylist] s1: {key} R1

... sn: {key} Rn

end

В этом объявлении "список ключей" (keylist) содержит селекторы для ключевых доменов R. Заключение ключевого слова "key" (ключ) в фигурные скобки показывает, что оно не всегда обязано присутствовать. Теперь R может фактически рассматриваться как имя родового объекта. Для того чтобы определить позицию родового объекта R в родовой иерархии, нам необходимо лишь специфицировать его потомков в этой иерархии. Это дает возможность полагать, что структура, показанная на рис. 5, является уместной для определения отношений Кодда.

var R: generic

sk1 = (R11, ..., R1p1); ... skm = (Rm1, ..., Rmpm) of aggregate [keylist] s1: {key} R1; ... sn: {key} Rn

end

где:

  1. Ri (1? i ? n) является либо родовым идентификатором
    (и в этом случае должно указываться "key"),
    либо идентификатором некоторого типа
    (и в этом случае "key" не должно указываться);
  2. "список ключей" (keylist) – это последовательность
    si (1? i ? n), разделенных запятыми;
  3. Rij (i = 1, 1 ? j ? p1; ...; i = m, 1 ? j ? pm)
    представляет собой родовой идентификатор с теми же
    самыми ключевыми доменами, что и у R;
  4. каждое ski (1 ? i ? m) является тем же самым, что и
    некоторое sj (1 ? j ? n);
  5. если ski является тем же самым, что и sj, то
    тип "{key} Rj" является множеством {Ri1, ..., Ripi}.

Рис. 5. Родовая структура

Мы используем термин родовой (generic), а не менее точный термин коллекция (collection) с тем, чтобы указать, что определяeтся родовой объект. Родовая структура одновременно специфицирует две абстракции:

  1. R как агрегацию связи между объектами от R1

    до Rn и

  2. R как обобщение класса, содержащего объекты от R11 до Rmpm.

Домены с селекторами от sk1 до skm являются доменами образов.


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