Базовыми понятиями ER-модели данных (ER – Entity-Relationship) являются: сущность, атрибут и связь.
Поскольку нотация Баркера является наиболее распространенной, в дальнейшем будем придерживаться именно ее.
6.1. Основные понятия ER-диаграмм
Сущность – это класс однотипных объектов, информация о которых должна быть учтена в модели. Сущность имеет наименование, выраженное существительным в единственном числе и обозначается в виде прямоугольника с наименованием (рис 14, а). Примерами сущностей могут быть такие классы объектов как «Студент», «Сотрудник», «Товар».
Экземпляр сущности – это конкретный представитель данной сущности. Например, конкретный представитель сущности «Студент» – «Максимов». Причем сущности должны иметь некоторые свойства, уникальные для каждого экземпляра этой сущности, для того чтобы различать экземпляры.
Атрибут сущности – это именованная характеристика, являющаяся некоторым свойством сущности. Наименование атрибута должно быть выражено существительным в единственном числе (возможно, с описательными оборотами или прилагательными). Примерами атрибутов сущности «Студент» могут быть такие атрибуты как «Номер зачетной книжки», «Фамилия», «Имя», «Пол», «Возраст», «Средний балл» и т.п. Атрибуты изображаются в прямоугольнике, обозначающем сущность (рис. 14, б).
|
|
Ключ сущности – это неизбыточный набор атрибутов, значения которых в совокупности являются уникальными для каждого экземпляра сущности. При удалении любого атрибута из ключа нарушается его уникальность. Ключей у сущности может быть несколько. На диаграмме ключевые атрибуты отображаются подчеркиванием (рис. 14, в).
Связь – это отношение одной сущности к другой или к самой себе. Возможно по одной сущности находить другие, связанные с ней. Например, связи между сущностями могут выражаться следующими фразами – «СОТРУДНИК может иметь несколько ДЕТЕЙ», «СОТРУДНИК обязан числиться точно в одном ОТДЕЛЕ». Графически связь изображается линией, соединяющей две сущности (рис. 15):
а | б | в |
Рис. 14. Обозначения сущности в нотации Баркера:
а - без атрибутов; б -с указанием атрибутов; в -с ключевым атрибутом
Каждая связь имеет одно или два наименования. Наименование обычно выражается неопределенной формой глагола: «Продавать», «Быть проданным» и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.
Рис. 15. Пример связи между сущностями
Связь может иметь один из следующих типов:
Рис. 16. Типы связей
Связь типа один-к-одному означает, что один экземпляр первой сущности связан точно с одним экземпляром второй сущности. Такая связь чаще всего свидетельствует о том, что мы неправильно разделили одну сущность, на две.
|
|
Связь типа один-ко-многим означает, что один экземпляр первой сущности связан с несколькими экземплярами второй сущности. Это наиболее часто используемый тип связи. Пример такой связи приведен на рис. 15.
Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот. Этот тип связи является временным, допустимым на ранних этапах разработки модели. В дальнейшем такую связь необходимо заменить двумя связями типа один-ко-многим путем создания промежуточной сущности.
Каждая связь может иметь одну из двух модальностей связи:
Рис. 17. Модальности связей
Связь может иметь разную модальность с разных концов как на рис. 17. Каждая связь может быть прочитана как слева направо, так и справа налево. Связь на рис. 15 читается так:
Слева направо: «Сотрудник может иметь несколько детей».
Справа налево: «Ребенок должен принадлежать точно одному сотруднику».
Пример разработки простой ER-диаграммы приведен на рис.18.
Рис. 18. Пример ER-диаграммы базы данных сведений о студентах
Порядок выполнения работы:
1. На основе технического задания из лабораторной работы № 1 выполнить анализ функциональных и эксплуатационных требований к программному продукту.
2. Оформить пояснительную записку к эскизному проекту в соответствии с ГОСТ 2.119-73 Эскизный проект (см. приложение).
3. Разработать укрупненную схему алгоритма или псевдокод (по выбору) программного модуля.
4. Определить диаграммы переходов состояний.
5. Определить функциональные диаграммы (верхнего уровня и детализирующую).
6. Определить диаграммы «сущность-связь», если в задании присутствует база данных.
7. Определить диаграммы потоков данных для решаемой задачи (контекстную и детализирующую), для тех вариантов, где нет базы данных.
Примечание: При выполнении пп. 3 – 7 желательно использовать MS Visio.
8. Добавить словарь терминов (2-3 шт.).
9. Оформить все полученные результаты в виде приложений к эскизному проекту.
10. Сдать и защитить работу.
Защита отчета по лабораторной работе
Отчет по лабораторной работе должен включать в себя:
1. Постановку задачи.
2. Пояснительную записку к эскизному проекту:
· все полученные диаграммы;
· спецификации процессов;
· словарь.
Защита отчета по лабораторной работе заключается в предъявлении преподавателю полученных результатов (на экране монитора), демонстрации полученных навыков и ответах на вопросы преподавателя.
Контрольные вопросы
1. Этапы разработки программного обеспечения.
2. Постановка задачи и предпроектные исследования.
3. Функциональные и эксплуатационные требования к программному продукту.
4. Составляющие эскизного проекта.
5. Спецификации и модели.
6. Диаграммы потоков данных.
7. Функциональные диаграммы.
8. Диаграммы переходов состояний.
9. Диаграммы «сущность-связь».
10. Факторы, влияющие на разработку программного обеспечения.