Концептуальная модель предметной области
или модель «Сущность - связь»
В основе ER-модели лежат следующие базовые понятия:
- Сущность ,с помощью которой моделируется класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы.
Так как сущность соответствует некоторому классу однотипных объектов, то предполагается, что в системе существует множество экземпляров данной сущности.
- Объект , которому соответствует понятие сущности, имеет свой набор атрибутов — характеристик, определяющих свойства данного представителя класса.
- Например , у сущности Сотрудник может быть следующий набор атрибутов: Табельный номер, Фамилия, Имя, Отчество, Дата рождения, Количество детей, Наличие родственников за границей.
- Набор атрибутов, однозначно идентифицирующий конкретный экземпляр сущности , называют ключевым .
- Для сущности Сотрудник ключевым будет атрибут Табельный номер, поскольку для всех сотрудников данного предприятия табельные номера будут различны. Экземпляром сущности Сотрудник будет описание конкретного сотрудника предприятия.
- Одно из общепринятых графических обозначений сущности — прямоугольник, в верхней части которого записано имя сущности, а ниже перечисляются атрибуты, причем ключевые атрибуты помечаются, например, подчеркиванием или специальным шрифтом.
- Между сущностями могут быть установлены связи , показывающие, каким образом сущности соотносятся или взаимодействуют между собой.
- Связь может существовать между двумя разными сущностями или между сущностью и ей же самой ( рекурсивная связь ) .Она показывает, как связаны экземпляры сущностей между собой.
- Если связь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности.
- Например , если у нас есть связь между сущностью "Студент" и сущностью "Преподаватель" и эта связь — руководство дипломными проектами, то каждый студент имеет только одного руководителя, но один и тот же преподаватель может руководить множеством студентов-дипломников. Поэтому это будет связь "один-ко-многим" (1:М), один со стороны "Преподаватель" и многие со стороны "Студент"
В разных нотациях мощность связи изображается по-разному.
В нашем примере мы используем нотацию CASE, здесь множественность изображается путем разделения линии связи на 3. Связь имеет общее имя "Дипломное проектирование" и имеет имена ролей со стороны обеих сущностей.
Со стороны студента эта роль называется "Пишет диплом под руководством", со стороны преподавателя эта связь называется " Руководит "
Связи делятся на три типа по множественности: один-к-одному (1:1), один-ко-многим (1:M), многие-ко-многим (M:M).
Связь один-к-одному означает, что экземпляр одной сущности связан только с одним экземпляром другой сущности.
Связь 1: M означает, что один экземпляр сущности , расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи.
Связь "один-к-одному" (1:1) означает, что один экземпляр одной сущности связан только с одним экземпляром другой сущности.
Связь "многие-ко-многим" (M:M) означает, что один экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности.
Например, если мы рассмотрим связь типа "Изучает" между сущностями "Студент" и "Дисциплина", то это связь типа "многие-ко-многим" (M:M), потому что каждый студент может изучать несколько дисциплин, но и каждая дисциплина изучается множеством студентов.
Между двумя сущностями может быть задано сколько угодно связей с разными смысловыми нагрузками.
Например, между двумя сущностями "Студент" и "Преподаватель" можно установить две смысловые связи, одна —"Дипломное проектирование", а вторая может быть условно названа "Лекции", и она определяет, лекции каких преподавателей слушает данный студент и каким студентам данный преподаватель читает лекции. Это связь типа многие-ко-многим .
Связь любого из этих типов может быть обязательной ,если в данной связи должен участвовать каждый экземпляр сущности и необязательной — если не каждый экземпляр сущности должен участвовать в данной связи.
При этом связь может быть обязательной с одной стороны и необязательной с другой стороны .
Обязательность связи тоже по-разному обозначается в разных нотациях. Здесь в примере необязательность связи обозначается пустым кружочком на конце связи, а обязательность перпендикулярной линией, перечеркивающей связь.
Кружочек означает, что ни один экземпляр не может участвовать в этой связи.
А перпендикуляр интерпретируется как то, что по крайней мере один экземпляр сущности участвует в этой связи.
Рассмотрим для этого ранее приведенный пример связи "Дипломное проектирование". На нашем рисунке эта связь интерпретируется как необязательная с двух сторон. Но на самом деле каждый студент, который пишет диплом, должен иметь своего руководителя дипломного проектирования, но, с другой стороны, не каждый преподаватель должен вести дипломное проектирование. Поэтому в данной смысловой постановке изображение этой связи изменится и будет выглядеть таким, как представлено на рисунке .
В ER-модели допускается принцип категоризации сущностей. Это значит, что существует понятие подтипа сущности , то есть сущность может быть представлена в виде двух или более своих подтипов — сущностей , каждая из которых может иметь общие атрибуты и отношения и/или атрибуты и отношения, которые определяются однажды на верхнем уровне и наследуются на нижнем уровне. Все подтипы одной сущности рассматриваются как взаимоисключающие, и при разделении сущности на подтипы она должна быть представлена в виде полного набора взаимоисключающих подтипов.
Если на уровне анализа не удается выявить полный перечень подтипов, то вводится специальный подтип , называемый условно ПРОЧИЕ , который в дальнейшем может быть уточнен. В реальных системах бывает достаточно ввести подтипизацию на двух-трех уровнях.
- Сущность, на основе которой строятся подтипы, называется супертипом .
- Любой экземпляр супертипа должен относиться к конкретному подтипу.
- Для графического изображения принципа категоризации или типизации сущности вводится специальный графический элемент, называемый узел-дискриминатор ,в данной нотации он изображается в виде полукруга, выпуклой стороной обращенного к суперсущности. Эта сторона соединяется направленной стрелкой с суперсущностью, а к диаметру этого круга стрелками подсоединяются подтипы данной сущности.
- Каждый тест в некоторой системе тестирования является либо тестом проверки знаний языка SQL , либо некоторой аналитической задачей, которая выполняется с использованием заранее написанных Java-апплетов, либо тестом по некоторой области знаний, состоящим из набора вопросов и набора ответов, предлагаемых к каждому вопросу.
- В результате построения модели предметной области в виде набора сущностей и связей получаем связный граф . В полученном графе необходимо избегать циклических связей — они выявляют некорректность модели.