Базы данных

Атомарные домены атрибутов


Составной атрибут, подобный address, не является атомарным, так как он состоит из нескольких атрибутов, каждый из котррых имеет свое имя и тип. Желательно, чтобы в системе с базой данных каждый из компонентов составного атрибута был представлен в виде отдельного атрибута, что сделает возможной поддержку поиска сущностей с определенными значениями компонентов и модификацию компонентов одной или нескольких сущностей. На 4.2 показан класс сущностей Customer с атрибутом address, который в результате декомпозиции был разбит на четыре поля, каждое из которых представлено в виде отдельного атрибута. Следует отметить, что само слово “адрес” отсутствует в схеме. Вместо этого, в словаре данных, упоминавшемся 2.4, должно быть установлено соответствие между атрибутом address и четырьмя его компонентами.

Многозначный атрибут, подобный otherUsers, также не является атомарным, так как значение атрибута для одной сушности содержит в себе множество значений некоторого компонента. Каждое из значений принадлежит одному и тому же домену, но атрибут содержит несколько значений. Значение otherUsers можно рассматривать как множество атрибутов, но такое множество невозможно непосредственно представить в реляционной модели. Единственными множествами являются множества сущностей, т.е. таблицы.

Один из подходов состоит в том, чтобы добавить отдельный атрибут otherUser и создать новую сущность для каждого из других пользователей. Например, в 2.4 клиент Carroll Breaux имеет трех других пользователей, которым позволено пользоваться ее счетом. На 4.3 показан результат применения этой стратегии. Теперь для одного клиента выделяются три строки. Эти строки отличаются только значением последнего атрибута. Ключом этой схемы является множество атрибутов (accountld, otherUser).

Комментарии закрыты