Аналогичным образом необходимо работать с остальными учащимися, чьи коды указаны в родительском классе сущностей «Учащиеся».
Связь классов сущностей типа композиция, так же как и две предыдущие, не принадлежит к виду рекурсивной связи.
Композиция(или, как ее еще иногда называют, композитная агрегация) – это взаимосвязь одного родительского класса сущностей с несколькими дочерними классами сущностей, так же как и предыдущая рассмотренная нами связь. Обобщение.
Но если обобщение определялось как взаимосвязь классов сущности, описывающаяся полностью идентифицирующимися связями, то композиция, в свою очередь, описывается не полностью идентифицирующими связями, т. е. при композиции каждый атрибут первичного ключа родительского класса сущностей мигрирует в ключевой атрибут дочернего класса сущностей. И при этом атрибуты мигрирующего ключа лишь частично формируют первичный ключ дочернего класса сущностей.
Итак, при композитной агрегации (при композиции) родительский класс сущностей (или агрегат) связывается с несколькими дочерними классами сущностей (или компонентами). При этом компоненты агрегата (т. е. компоненты родительского класса сущностей) ссылаются на агрегат посредством внешнего ключа, входящего в состав первичного ключа и, следовательно, не могут существовать вне агрегата.
Вообще композитная агрегация представляет собой усиленную форму простой агрегации (о которой мы поговорим чуть дальше). Композиция (или композитная агрегация) характеризуется тем, что:
1) ссылка на агрегат участвует в идентификации компонентов;
2) эти компоненты не могут существовать вне агрегата.
Агрегация (связь, которую мы будем рассматривать дальше) с обязательно не идентифицирующими связями также не позволяет компонентам существовать вне агрегата и поэтому близка по смыслу к описанной выше реализации композитной агрегации.
Построим ключевую диаграмму, описывающую взаимосвязь между одним родительским классом сущностей и несколькими дочерними классами сущностей, т. е. описывающую связь классов сущностей типа композитной агрегации.
Пусть это будет ключевая диаграмма, изображающая состав корпусов некого учебного городка, включающего в себя корпуса, их аудитории и лифты. Итак, эта диаграмма будет иметь следующий вид:
Итак, рассмотрим только что построенную диаграмму.
Что мы в ней видим?
Во-первых, мы видим, что связь, использованная в этой композитной агрегации, действительно идентифицирующая и действительно не полностью идентифицирующая. Ведь первичный ключ родительского класса сущностей «Корпуса» участвует в формировании первичного ключа дочерних классов сущностей «Аудитории» и «Лифты», но не определяет его полностью. Первичный ключ «№ корпуса» родительского класса сущностей мигрирует во внешние первичные ключи «№ корпуса» обоих дочерних классов, но, кроме этого мигрировавшего, ключа у обоих дочерних классов сущностей существует и свой собственный первичный ключ, соответственно «№ аудитории» и «№ лифта», т. е. составные первичные ключи дочерних классов сущностей лишь частично оказываются сформированными атрибутами первичного ключа родительского класса сущностей.
Теперь разберемся с кратностями связей, соединяющих родительский и оба дочерних класса. Так как мы имеем дело с не полностью идентифицирующими связями, то кратности присутствуют такие: «один» и «много». Кратность «один» присутствует на родительском конце обеих связей и символизирует то, что в списке всех имеющихся корпусов (а класс сущностей «Корпуса» является именно таким списком) каждый номер может встретиться только один, (и не более того) раз. А, в свою очередь, среди атрибутов классов «Аудитории» и «Лифты» каждый номер корпуса может встретиться много раз, так как аудиторий (или лифтов) больше, чем корпусов, и в каждом корпусе – несколько и аудиторий, и лифтов. Таким образом, при перечислении всех аудиторий и лифтов мы неминуемо будем повторять номера корпусов.
И, наконец, как и при рассмотрении предыдущего вида связи, запишем фрагменты операторов создания базовых отношений (или, что одно и то же, классов сущностей) «Аудитории» и «Лифты», причем сделаем это с определением правил поддержания ссылочной целостности типа cascade.
Читать дальше
Конец ознакомительного отрывка
Купить книгу