Даталогическое проектирование
133
Во-первых, всему обобщенному объекту может быть поставлен в соответствие од-
на таблица базы данных (рис.3.8. б – вариант 1). В этом случае атрибутами этой таблицы
будут идентификаторы обобщенного объекта, все единичные свойства, присущие объек-
там хотя бы одной категории, включая свойство, по которому производится разбиение на
подклассы. Ключом таблицы будет один из идентификаторов этого объекта.
Другим «крайним» вариантом является решение, при котором каждой из категорий
объектов нижнего уровня ставится в соответствие отдельное отношение (рис.3.8. б – вари-
ант 2). В этом случае каждое отношение будет включать в себя идентификатор объекта
(если идентификаторов несколько, то в каждое из отношений будут включены все они; это
не приведет к дублированию информации на уровне значений), свойства, присущие родо-
вым объектам, а также свойства, присущие данному подвиду объектов. Свойство, по кото-
рому производится разбиение класса на подклассы, в этом случае в качестве поля не вклю-
чается ни в одно из отношений.
Кроме этих двух «крайних» решений возможны и комбинированные варианты. На-
пример, можно выделить общую таблицу для отображения «родовых» свойств объектов
(включающую еще и все идентификаторы объекта) и отдельные таблицы для отображения
«видовых» свойств (такой алгоритм используется в системе Design/IDEF); Кроме свойств,
присущих видовому объекту, в каждом из этих отношений будет повторен ключевой ат-
рибут «основного» отношения (рис.3.8. б – вариант 3).
Другим вариантом проектного решения для отображения обобщенного объекта яв-
ляется использование так называемого «кодированного формата файла», при котором, так
же как и варианте 1, используется одна таблица, но для всех «видовых» свойств каждого
из подклассов выделяется одно поле, содержимое которого распознается по значению
свойства, по которому производится разбиение класса на подклассы.
Перечень вариантов можно продолжить. Выбор конкретного решения будет зави-
сеть от многих факторов, в том числе, от того насколько часто информация о разных кате-
гориях объектов обрабатывается совместно, как велико различие в «видовых» свойствах и
некоторых других факторов.
Приведенный выше алгоритм излагался из предположения, что классификация
объектов не являлась «фасетной». Если в обобщенном объекте наблюдается разбиение на
подклассы по разным несоподчиненным признакам, то варианты 1 и 3 останутся верны, а
вариант 2 должен быть уточнен.
Кроме того, алгоритм не учитывает, что классы могут быть пересекающимися. Для
пересекающихся классов нельзя без модификации использовать вариант А (так как при-
знак классификации у каждого из экземпляров объекта может иметь несколько значений),
но может быть использован вариант В.
Кроме того, при выборе проектного решения необходимо учитывать, является ли
класс полным или нет. Если класс неполный, то при выборе варианта, когда для каждого
подкласса строится отдельная таблица, информация об объектах, не вошедших ни в один
подкласс, может просто пропасть.
Отображение составных объектов
Как отмечалось в гл. 2, в базовой ER-модели, как и в большинстве других нотаций, нет
специальных обозначений для отображения связи «целое-часть» или составного объекта.
Наличие такой связи может быть отображено как в инфологической, так и в дата-
логической модели по-разному. Следует отметить, что само отношение «целое-часть» мо-
жет качественно различаться для разных ситуаций. Так, если речь идет о составе изделий,