Отношения ассоциации → агрегации → композиции

После прочтения урока «Отношения композиции и отношения специализации» раздела «3.Присвоение типа» курса «Онтологика (пререлиз)» я почувствовал себя тупым и недалёким субъектом.

Пытаясь разобраться во всех этих иерархиях, я написал туеву хучу маленьких заметок на небольших листочках, разложил их на столе сначала в ряд, потом в шахматном порядке, затем в столбик, после чего сгрёб их в кучу и стал перечитывать по отдельности.

У меня было чёткое осознание того, что либо я реально глуп как пробка, либо мне чего-то очень не хотят договаривать.

Первое меня не устраивало, а в последнее очень не хотелось верить.

Например, из примера с шляпкой и телом желудя у меня сложилось впечатление, что композиция – это объединение объектов в единое целое. Хотя это совершенно не так.

Поправьте меня, если я несу чушь. Отношение композиции – это частный случай агрегации, которая определяет отношения между классами, когда один из них включает в себя другой как составную часть. При этом подклассы не могут существовать обособленно от класса-родителя или надкласса.

Один из переводов слова composition является слово смесь. Представьте себе две банки с краской. Одня синяя, другая жёлтая. Если их смешать, то получим большую банку краски зеленого цвета. Теперь подумайте, сможете ли вы теперь разделить в банке с зеленой краской синий и жёлтый цвет?

Скорее всего нет. Это даёт понимание композиции – того, что подклассы, соединенные этим отношением, не могут существовать обособленно.

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

И вот тут я начал тупить. Казалось бы, всё просто.

Но возьму другой пример. Я пишу этот текст в окне текстового редактора – блокноте. У него есть заголовок окна, поле для ввода текста и справа полоса прокрутки. Каждый из этих классов не может существовать отдельно от программы. Всё классно. Но полоса прокрутки появляется только когда текст достаточно большой и не помещается в области для ввода текста. Как мёд: вот он есть, а вот его уже и нет.

Получается, что полоса прокрутки занимает не всё время существования окна программы. Но здесь налицо отношения композиции, которая является сильной формой агрегации.

P.S. Об онтологических навыках при проектировании логических структур БД. В ERD (диаграмме «сущность – связь») выделяются три элемента: сущность (надкласс), атрибут (подкласс), атрибут (отношения). Так можно?