Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Ограничения на Специализацию и Обобщения



Мы будем говорить пока только о специализации, хотя сказанное можно отнести и к тому и другому.

Вообще, мы можем определить несколько специализаций, определенных на одном и том же (суперклассе) типа объекта (рис.15). В таком случае, объекты могут принадлежать к подклассам в каждой специализации. Заметим также, что специализация может состоять только из одного подкласса, как {УПРАВЛЕНЕЦ} на рис.15; в таком случае круг опускается.

В некоторых специализациях мы можем точно выделить объекты, которые станут членами подклассов указанием для каждого из них предиката, построенного на атрибутах суперкласса. Такие подклассы называются предикатно-определенными (условно-определенными) подклассами (predicate-defined, condition-defined).

Например, на рис.19 длявыделения подкласса СЕКРЕТАРЬ мы могли бы использовать предикат ТипРаботы = " Секретарь ", который мы называем определяющим предикатом подкласса. Для каждого из подклассов определяющий его предикат записывается около линии соединяющей круг с подклассом.

Если все подклассы специализации имеют условием членства один и тот же Атрибут суперкласса, специализация называется атрибутно-определенной (attribute-defined), а сам атрибут - определяющим атрибутом специализации (рис.19). В этом случае название атрибута указывается около круга, а определяющие значения на линиях, соединяющих круг с обозначением подкласса.

Когда мы не имеем условия, определяющего членство, подкласс называется определенным пользователем (user defined). Членство в таком подклассе определяется пользователем в момент добавления объекта к подклассу; т.е. специфицируется индивидуально длякаждого объекта пользователем, а не условием, вычисляемым автоматически.

Определение подклассов, как предикатами, так и атрибутом является ограничением, которое специфицирует, что все удовлетворяющие условию члены суперкласса должны принадлежать соответствующему подклассу.

Два других ограничения приложимы к специализации. Первое - ограничение не пересечения, которое говорит, что подклассы не имеют общих членов. Это означает, что объект может быть членом не более чем одного подкласса специализации. Атрибутно-определенная специализация влечет ограничения не пересечения, если атрибут является однозначным. Рис.19 иллюстрирует этот случай, где буква d означает не пересечение (disjoint). Мы используем d также как спецификацию ограничения для определенных пользователем подклассов как, например, {НА_ОКЛАДЕ, ПОЧАСОВИК} на рис.15. Если подклассы НЕ непересекающиеся, их множества объектов могут пересекаться; т.е. один и тот же объект может быть членом более чем одного подкласса. Этот случай показан на рис.20. В круге в этом случае пишется буква о (overlap).

Другое ограничение на специализацию называется ограничением полноты (completeness constraint) которое может быть полным или частичным. Полная (total) специализация означает, что каждый экземпляр суперкласса должен быть членом хотя бы одного подкласса. Например, {НА_ОКЛАДЕ, ПОЧАСОВИК} на рис. 15 является полной специализацией СЛУЖАЩЕГО. На диаграмме это показывается двойной линией от суперкласса к кругу. Одинарная линия означает частичную (partial) специализацию, которая разрешает объекту не принадлежать ни к одному из подклассов. Например, если СЛУЖАЩИЙ не принадлежит ни к одному из подклассов {СЕКРЕТАРЬ, ИНЖЕНЕР, ТЕХНИК} (рис.15 и Рис.19), то мы имеем частичную специализацию. Это обозначение похоже на полное или частичное участие объекта в типе связи в ER моделях. Ограничения не пересечения и полноты независимы. Следовательно, мы имеем следующие 4 различных вида специализации:

1) непересекающаяся, полная;

2) непересекающаяся, частичная;

3) пересекающаяся, полная;

4) пересекающаяся, частичная.

Конечно, правильные ограничения определяются из реально существующего смысла, который присущ каждой специализации. Заметим, что обобщенный суперкласс обычно является полным, т.к. суперкласс выводится из подклассов и, следовательно, содержит только объекты, которые есть в подклассах. Атрибутно-определенная или определенная пользователем специализация обычно непересекающаяся и т.п.

Правила вставки и удаления для специализации и обобщения

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

* Удаление из суперкласса влечет автоматическое удаление из всех подклассов.

* Вставка объекта в суперкласс влечет обязательное включение во все предикативно-определенные подклассы для тех, которым объект удовлетворяет определяющим предикатом.

* Вставка объекта в суперкласс полной спецификации влечет, что объект должен стать членом, по крайней мере, одного из подклассов.

Этот список может быть продолжен самостоятельно.





Дата публикования: 2015-09-17; Прочитано: 246 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...