Диго С.М. Базы данных проектирование и использование (1084447), страница 14
Текст из файла (страница 14)
Вариант 3 - связь М:М и необязательное членство с одного конца связи
Предположим, что предметной областью является некоторый лингвистический институт, в котором каждый из сотрудников обязательно знает несколько иностранных языков, и по каждому из известных науке языков в этом институте имеется хотя бы один специалист, владеющий им. В этом случае связь между объектами будет М:М и класс принадлежности обеих сущностей является обязательным.
Примеры возможных ситуаций можно было бы продолжить, но суть уже ясна. Характер связи между объектами будет зависеть от особенностей предметной области. Например, если в вузе имеется экстернат и студент может обучаться по индивидуальному графику, то класс принадлежности объекта СТУДЕНТ в связи с объектом ГРУППА будет необязательным, в противном случае он будет обязательным.
Отображение альтернативной связи. Возможны ситуации, когда в связи участвует один из нескольких возможных классов объектов. Например, если организация имеет центральный офис и филиалы, то служащий может работать либо в центре, либо в филиале, но не там и там одновременно. Назовем такие связи альтернативными. На схеме альтернативные связи будут объединяться скобкой (рис. 2.20).
Рис. 2.20. Изображение альтернативной связи
2.2.8. Сложные объекты
Изображение обобщенных объектов. Обобщенным называется объект, в котором явным образом выделены подклассы.
Разбиение класса на подклассы осуществляется по какому-то признаку (свойству). Свойство, по которому проводится разбиение класса на подклассы, называется дискриминатором. Например, подклассы ВОЕННООБЯЗАННЫЕ и НЕВОЕННООБЯЗАННЫЕ выделяются в зависимости от значения свойства «Отношение к воинской обязанности»; подклассы СТУДЕНТЫ, АСПИРАНТЫ, ДОКТОРАНТЫ, ДОВУЗ выделяются в зависимости от значения свойства «Вид обучения».
Для обозначения подкласса в схеме будем использовать треугольник, связанный с обозначением свойства, по которому проводится разбиение на подклассы. Широкая часть треугольника направлена в сторону родового объекта, острый угол, к которому присоединены обозначения свойств, присущих данному подклассу, - в сторону видового (рис. 2.21, а).
На рис. 2.21, б изображен фрагмент инфологической модели, отражающий обобщенный объект ЛИЧНОСТЬ для высшего учебного заведения. Для него выделено несколько категорий объектов: СОТРУДНИК, УЧАЩИЙСЯ, СТУДЕНТ, АСПИРАНТ.
Рис. 2.21. Изображение обобщенного объекта:
а - условные обозначения; б - пример
Естественно, что классификация может быть многоуровневой. Так, в рассматриваемом примере обобщенный объект ЛИЧНОСТЬ может быть разбит на два подкласса: СОТРУДНИК и УЧАЩИЙСЯ. СОТРУДНИКИ, в свою очередь, могут быть классифицированы на ПРОФЕССОРСКО-ПРЕПОДАВАТЕЛЬСКИЙ СОСТАВ, АДМИНИСТРАЦИЯ и т.д.
Кроме того, подклассы в совокупности могут составлять исходный класс (полный класс), а могут представлять лишь часть ее (неполный класс). Если при описании предметной области возникает необходимость отобразить эту информацию, то для полного класса будем изображать двойную линию, перечеркивающую линию, идущую от дискриминатора; если класс неполный, то будем изображать одинарную линию, перечеркивающую линию, идущую от дискриминатора.
Подкласс, как и класс, является совокупностью однотипных объектов. Отображать ли ту или иную сущность в виде отдельного класса или подкласса в составе обобщенного объекта - зависит от проектировщика. Изображение в виде обобщенного объекта является более информативным и, как следствие, дает больший выбор при принятии решений на стадии построения даталогической модели.
При использовании обобщенного объекта связи между объектами могут идти как к знаку всего обобщенного объекта, если объекты всех подклассов участвуют в данной связи, так и к знаку отдельного подкласса, если связь относится только к данному подклассу.
Обобщенный объект следует вводить в модель в том случае, когда нужно подчеркнуть общность и различие категорий объектов, входящих в один класс, или в случае, если объекты разных подклассов участвуют в разных связях.
Информация о пересекающихся классах. Выделенные в предметной области классы объектов могут быть как пересекающимися, так и непересекающимися. Для отображения этих сведений в мифологической модели можно использовать граф пересечений, вершины которого соответствуют классам (подклассам) объектов, а ребра связывают пару вершин лишь в том случае, если соответствующие классы объектов являются пересекающимися. Для отображения степени пересечения можно воспользоваться взвешенным графом. При этом вес вершины будет обозначать мощность соответствующего множества объектов, а вес ребра - мощность множества, являющегося пересечением множеств, связанных этим ребром (рис. 2.22).
Рис. 2.22. Фрагмент графа пересечений
Эту же информацию можно отразить и в табличной форме (табл. 2.3).
Таблица 2.3
Класс 1 | Класс 2 | Размер пересечения |
Изображение агрегированных объектов. Как отмечалось выше, агрегированные объекты (АО) соответствуют обычно какому-либо процессу, в который оказываются вовлеченными другие объекты. Для отображения агрегированного объекта в ER-модели будем использовать следующие условные обозначения: сам агрегированный объект будем изображать ромбом, рядом с которым указывается имя соответствующего агрегированного объекта. Ромб связывается с условными обозначениями тех объектов, которые образуют этот агрегированный объект. Свойства агрегированного объекта изображаются так же, как и для простого объекта (рис. 2.23, а).
В качестве примера агрегированного объекта из рассматриваемой предметной области «Учебный процесс» изобразим объект СДАЧА_ ЭКЗАМЕНА (рис. 2.23, б).
Изображение составных объектов. Для их отображения в ER-модели обычно не используются какие-либо специальные условные обозначения. Связь между составным объектом и составляющими его объектами отображается так же, как это было описано выше для простых объектов. Например, ГРУППА состоит из СТУДЕНТОВ, и это будет отображено просто как связь 1: М между этими объектами.
2.2.9. Рекомендации по построению базовой ER-модели
В ER-модели должно быть отображено все, о чем идет речь в данной предметной области (во входных документах, в выходных документах и т.п.). После построения полной ER-модели необходимо определить состав хранимых показателей. Переход от ER-модели к даталогической модели должен проводиться только для хранимых показателей.
При построении ER-модели необходимо ответить на вопросы:
1.Что следует считать самостоятельным объектом, а что - свойством другого объекта?
2.Когда следует делить класс на подклассы?
Резюмируя вышесказанное, можно дать следующие рекомендации. В качестве самостоятельного объекта в ER-модели следует изображать сущности:
-
имеющие более одного идентификатора;
-
для которых фиксируются какие-либо их свойства;
-
которые участвуют более чем в одной связи.
Рис. 2.23. Изображение агрегированного объекта:
а - условные обозначения; б - пример
При возникновении сомнений лучше принять решение о создании самостоятельного объекта, так как это в дальнейшем потребует меньших переделок модели.
Количественные характеристики всегда являются свойствами какого-либо объекта, и никогда - самостоятельными объектами. Количественные характеристики также практически никогда не являются идентификаторами объекта и не входят в состав идентификаторов.
При изображении предметной области нужно стремиться отобразить информацию как можно более детально, поскольку в дальнейшем это даст возможность принять более обоснованные решения при проектировании структуры базы данных. Так, например, если «Адрес», «ФИО» являются составными характеристиками, то желательно это отразить в ER-модели.
При решении вопроса о том, что следует отображать в качестве обобщенного объекта, приходится выбирать между двумя крайними вариантами: надо ли простой объект представить как обобщенный и надо ли два либо несколько самостоятельных объектов объединить в обобщенный объект.
Обобщенный объект следует вводить в модель в том случае, когда нужно подчеркнуть общность и различие категорий объектов, входящих в один класс, или в случае, если объекты разных подклассов участвуют в разных связях. Так, например, если для сотрудников мужского и женского пола фиксируются одни и те же свойства, эти объекты участвуют в одних и тех же связях, то не следует выделять соответствующие подклассы. Если же для студентов мужского пола фиксируются сведения о воинской обязанности, информация о том, прошли ли они срочную службу, занимаются ли они на военной кафедре и т.п., а для студенток эта информация не фиксируется, то разбивать класс объектов СТУДЕНТ на подклассы следует.
Естественно, что каждый подкласс может быть изображен в ER-модели как самостоятельный объект, а не как подкласс какого-то родового класса. Для того чтобы иметь больше информации о предметной области и (часто) сократить число элементов (свойств, связей) в ER-модели, в большинстве случаев лучше объединять подклассы в класс.
Одну и ту же ситуацию в предметной области можно представить в ER-модели разными способами. На рис. 2.24 изображены фрагменты ER-модели, отображающие факт знания сотрудником иностранных языков. Каждый из изображенных вариантов при всем их различии является правильным.
Если ЯЗЫК не будет использоваться ни в каких связях, то возможно использование каждого из приведенных вариантов. Если такой уверенности нет, то вариант (б) лучше не использовать.
Рис. 2.24. Варианты изображения связи СОТРУДНИК - ЯЗЫК:
а - путем указания связи между объектами;
б - с использованием множественного свойства;
в - с применением интегрированного объекта
Хотелось бы обратить внимание на некоторые наиболее часто допускаемые ошибки в процессе моделирования. Одной из таких ошибок является изображение зависимых друг от друга свойств в виде самостоятельных, не связанных друг с другом. Так, на рис. 2.25, а изображен неправильный вариант отображения информации о степени владения сотрудником тем или иным иностранным языком. Кроме правильного варианта, изображенного на рис. 2.25, б, возможен вариант, аналогичный изображенному на рис. 2.24, б), где «Степень_владения» будет свойством агрегированного объекта ЗНАНИЕ_ЯЗЫКА.
Рис. 2.25. Изображение информации о владении иностранными
языками в базовой ER-модели: ошибочный (а)
и правильный (б) варианты