Модель предметной области (инфологическая модель) – это описание предметной области, выполненное без ориентации на используемые в дальнейшем программные и технические средства. Цель инфологического проектирования заключается в представлении семантики (т. е. смысла) предметной области. Эта модель должна быть понятна заказчику, который не является специалистом в области баз данных.
Для описания предметной области наиболее часто используется модель «сущность–связь», предложенная П. Ченом в 1976 году (или ее модификации). Сокращенно такую модель называют ER-моделью от английского названия «Entity–Relationship» («Сущность–связь»). Диаграмма модели имеет лексикографическую структуру, т. е. включает в себя текст и элементы графики. Из названия модели понятно, что основными ее структурными элементами будут объекты и связи между ними. Рассмотрим каждый из структурных элементов.
2.1. Объекты и классы объектов
Предметная область состоит из объектов, в качестве которых могут выступать люди, материальные предметы, производственные отделы, бумажные документы, операции, явления, абстрактные идеи. Например, объектами могут быть: студент Иванов И. И., группа 22301, экономический факультет, стипендия студента Иванова И. И., зачетная книжка студента Иванова И. И. и т. п.
Отобразить в модели каждый объект предметной области не представляется возможным. Модель предполагает некоторое обобщение и сведение всего к общей структуре. Поэтому среди всех конкретных объектов необходимо выделить их общие признаки, характеристики и по ним объединить объекты в классы. Так, Петрова С. П., Иванова И. И. и Булкина А. А. можно объединить в класс Студент, а Карандаш, Блокнот и Линейку – в класс Товар.
Каждый класс определяется набором атрибутов, т. е. свойств, которыми обладает каждый объект, принадлежащий к этому классу. Например, класс Студент может иметь следующие свойства: ФИО, Год рождения, Курс обучения, Номер зачетной книжки, а класс Товар – Наименование, Дата изготовления, Цена.
Свойства могут носить статический или динамический характер, что означает, что значение свойства не может измениться или может измениться с течением времени. Например, значение свойства Год рождения для класса Студент не может измениться, а значение свойства Курс обучения того же класса будет изменяться каждый учебный год, если, конечно, это добросовестный студент.
В терминах модели «сущность–связь» классы объектов обозначаются прямоугольниками, а свойства – овалами. Внутри прямоугольника записывается название класса, внутри овала – название свойства. Изменчивость свойств на схеме обозначается латинскими буквами S и D. Буква S означает статический характер свойства, буква D – динамический.
На рисунке ниже представлен класс Студент, имеющий четыре свойства, два из которых являются статическими (Год рождения и Номер зачетной книжки), а два других – динамическими (ФИО и Курс).
2.2. Связи между классами объектов
Между классами объектов могут существовать некоторые отношения, называемые связями. Например, между классами Студент и Группа существует связь: студенты распределены по группам или можно сказать, что группы состоят из студентов.
Связи могут быть бинарными, т. е. между двумя классами объектов, или между бóльшим количеством классов. Можно определить и циклические связи, т. е. связи между объектами одного и того же класса.
Между одними и теми же классами может существовать любое количество связей. Например, между классами Студент и Группа можно образовать связь «распределение студентов по группам» и связь «староста группы».
Связи, как и классы, могут иметь свойства. Например, между двумя классами Товар и Поставщик существует связь, которую назовем Поставка, которая означает, что поставщик поставляет товар. Эта связь будет иметь два свойства – Дата поставки и Количество. Понятно, что и дата, и количество не могут быть свойствами ни класса Товар, ни класса Поставщик. Это характеристики связи между двумя классами.
В терминах ER-диаграмм связь изображается в виде ромба, внутри которого записывается название связи. Классы объектов, участвующие в этой связи, соединяются с ромбом стрелками. Употребление двойных стрелок будет рассмотрено ниже.
Свойства связи изображаются так же, как и свойства класса, и соединяются с ромбом, обозначающим связь.
2.3. Типы связей в предметной области
Кроме свойств связи могут иметь и другие характеристики.
2.3.1. Характеристика однозначности для бинарных связей -
Связь 1:1, «один-к-одному». Эта связь означает, что каждому объекту из первого класса соответствует ровно один объект из второго класса и, наоборот, каждому объекту из второго класса соответствует ровно один объект из первого класса. В отношение вступают два объекта из разных классов.
Например, связь между классами Факультет и Декан. Факультет может иметь только одного декана, а декан может быть деканом только одного факультета. На схеме такая связь изображается двумя одинарными стрелками.
-
Связь 1:M, «один-ко-многим» (или M:1, «многие-к-одному»). Эта связь означает, что одному объекту из первого класса соответствует несколько объектов второго класса, но каждому объекту второго класса соответствует только один объект первого класса. В такое отношение вступают несколько объектов – один объект из первого класса, остальные из второго, и если какой-то объект из второго класса уже входит в отношение с каким-то объектом из первого класса, то он уже не может входить в такое же отношение с другим объектом первого класса.
Такой характер носит связь между классами Группа и Студент. В группе может быть несколько студентов, но каждый студент может быть только в одной группе. Или отношение между классами Факультет и Кафедра. Факультет может иметь несколько кафедр, но каждая кафедра принадлежит только одному факультету.
На схеме связь изображается одной одинарной и одной двойной стрелками. Двойная стрелка направлена к тому классу, объекты которого могут входить в отношение в любом количестве.
-
Связь M:N, «многие-ко-многим». Эта связь означает, что одному объекту первого класса соответствует несколько объектов второго класса и каждому объекту второго класса соответствует несколько объектов первого класса. В отношение входит несколько объектов от одного и от другого класса.
Например, связь между классами Преподаватель и Предмет. Преподаватель может читать несколько предметов, и каждый предмет могут читать несколько преподавателей.
На схеме такая связь изображается двумя двойными стрелками.
2.3.2. Характеристика полноты связи
Характеристика полноты отражает зависимость класса от связи, в которую он входит.
-
Необязательная по отношению к классу связь означает, что существование объектов класса не зависит от наличия связи.
-
Обязательная по отношению к классу связь означает, что существование объектов класса зависит от наличия связи.
На схеме обязательная по отношению к классу связь обозначается квадратом с точкой внутри, примыкающим к прямоугольнику, представляющему класс, перед входящей в него стрелкой связи.
Например:
-
Связь между классами Факультет и Компьютерный класс. В университете есть факультеты, не имеющие компьютерных классов, и есть компьютерные классы, не приписанные ни к одному из факультетов, т. е. и компьютерные классы, и факультеты существуют вне зависимости от того, относится ли компьютерный класс к факультету и имеет ли факультет хотя бы один компьютерный класс. Такая связь является необязательной и по отношению к классу Факультет, и по отношению к классу Компьютерный класс.
-
Связь между классами Служащий и Должность. Каждый сотрудник в организации должен иметь какую-либо должность, т. е. нет сотрудника без должности. Это означает, что не существует объекта класса Служащий, не связанного с каким-либо объектом класса Должность. Но должность может быть и вакантной, т. е. быть не связанной ни с одним объектом класса Служащий. Такая связь является обязательной по отношению к классу Служащий и необязательной по отношению к классу Должность.
-
Связь между классами Студент и Группа. Не может быть студента, не принадлежащего ни к одной группе, так же как не может быть группы без студентов. Такая связь является обязательной и по отношению к классу Студент, и по отношению к классу Группа.
Общая схема, содержащая все классы объектов, их свойства, связи между классами и свойства этих связей, и будет инфологической моделью предметной области, иногда ее называют концептуальной моделью.
После того как построена инфологическая модель предметной области, можно переходить к построению модели данных.
Достарыңызбен бөлісу: |