В качестве примера возьмём предметную область, образованную деятельностью страховой компании.
Концептуальное проектирование
Результатом концептуального этапа может быть следующее описание предметной области:
Вы работаете в страховой компании. Вашей задачей является контроль финансовой деятельности компании. Компания имеет различные филиалы по всей стране. Каждый филиал характеризуется названием, адресом и телефоном. Деятельность компании организована следующим образом: к Вам обращаются различные лица с целью заключения договора о страховании. В зависимости от принимаемых на страхование объектов и страхуемых рисков договор заключается по определённому виду страхования (например, страхование автотранспорта от угона, страхование домашнего имущества, добровольное медицинское страхование). При заключении договора Вы фиксируете дату заключения, страховую сумму, вид страхования, тарифную ставку и филиал, в котором заключался договор.
Договоры заключают страховые агенты. Помимо информации об агентах (фамилия, имя, отчество, адрес, телефон), нужно ещё хранить информацию о филиале, в котором работают агенты. Кроме того, исходя из базы данных нужно иметь возможность рассчитывать заработную плату агентам. Заработная плата составляет некоторый процент от страхового платежа (страховой платёж – это страховая сумма, умноженная на тарифную ставку). Процент зависит от вида страхования, по которому заключён договор.
Выявленные объекты-сущности:
Договоры (Номер договора, Дата заключения, Страховая сумма, Тарифная ставка, Код вида страхования, Код агента).
Вид страхования (Код вида страхования, Наименование, Процент агенту). Филиал (Код филиала, Наименование филиала, Адрес, Телефон).
Агенты (Код агента, Фамилия, Имя, Адрес, Телефон, Филиал) Выявление связей между объектами.
Два объекта могут быть связаны несколькими смысловыми связями. Каждая связь объекта может быть с его стороны обязательной или необязательной и одинарной или множественной.
5
Обязательность связи означает, что каждый экземпляр объекта связан с некоторым экземпляром или экземплярами другого объекта. Эта связь (по нотации Бахмана) обозначается чёрточкой поперёк линии связи (рисунок 1).
|
|
|
|
|
Агенты |
|
|
|
Договоры |
|
|
|
Филиалы |
|
|
|
|
КодАг |
|
|
|
Номер договора |
|
|
ВидСтрах |
|
|
|
ДатаЗаклДог |
|||||||||
КодФилиала |
|
|
|
|
Фам |
|
|
|
|
|
КодВидаСтрах |
|
|
|
|
СтрахСумма |
|||||||||
НаимФилиала |
|
|
|
|
Имя |
|
|
|
|
|
НаимСтрах |
|
Адрес |
|
|
|
|
Адр |
|
|
|
ТарифСтавка |
|
|
ПроцАгенту |
|
|
|
|
|
|
|
КодВидаСтрах |
|
|
|||
Телефон |
|
|
|
|
Тлф |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КодАгента |
|
|
|
||
|
|
|
|
|
КодФил |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 1 – Инфологическая модель базы данных
Необязательная связь обозначается кружком.
Множественность связи означает, что экземпляру некоторого объекта может соответствовать несколько экземпляров данного объекта и обозначается такая связь разделением линии связи на три. На рисунке 2 показаны связи:
Филиалы – Агенты С каждым филиалом обязательно связан хотя бы один агент.
Один или несколько агентов обязательно связаны с каким-нибудь филиалом. Агенты – Договоры Агент может быть связан с одним или несколькими договорами, но не
обязательно. Например, он ещё не заключал договоров.
Один или несколько договоров обязательно связаны с каким-либо агентом. Действительно, договоры без агента не заключаются.
Договоры – ВидСтрахования Один или несколько договоров обязательно связаны с каким-либо видом
страхования, но какие-то виды страхования могут быть не связаны, по ним не было заключено договоров.
Заметим, что между объектами Агенты и ВидамиСтрахования имеется связь типа «многие-ко-многим» через объект Договоры. И это соответствует реальности, поскольку один агент может страховать по нескольким видам страхования, а по одному виду страхования могут работать несколько агентов.
6
Схемно-структурное (датологическое) проектирование
Таблицы и их поля соответствуют объектам-сущностям и их атрибутам (рисунок 2).
Рисунок 2 – Схема данных
Связи между таблицами установлены по ключевым полям. На рисунке 3 показан пример связывания таблиц Вид страхования и Договоры.
Рисунок 3 – Установление связи между таблицами
Заметим, что связи устанавливает разработчик БД, а тип связи, например «один-ко-многим», СУБД Access устанавливает автоматически исходя из
свойств ключей связываемых таблиц.
Втаблице Вид страхования для связи используется поле КодВидаСтрахования – это первичный ключ и его главное свойство уникальность, и значит, это сторона «один», а сама таблица является главной по отношению к таблице Договоры.
Втаблице Договоры, которая является подчинённой, для связи используется поле КодВидаСтрахования – это внешний ключ, не обладающий свойством
7
неповторимости (уникальности) значений и значит это сторона «многие». |
|||
Свойства полей |
отображаются в нижней |
части окна Конструктор |
таблиц |
(рисунок 4). |
|
|
|
Таблица Вид страхования |
Таблица Договоры |
|
|
Первичный |
Т.к. ключ первичный, |
Внешний |
|
то автоматически |
|
||
ключ |
ключ |
|
|
устанавливается |
|
||
|
|
|
|
|
свойство уникальности |
|
|
Т.к. ключ не является первичным, то свойство уникальности не устанавливается
Рисунок 4 – Свойства полей
1.Количество таблиц должно быть не менее четырёх.
2.Количество записей в таблице, отображающей «движение» в предметной области, 50 – 100.
3.Должна обеспечиваться поддержка целостности данных.
4.К базе данных необходимо составить не менее 5 запросов на выборку (с условием, с параметром, с итогами, с вычисляемым полем, перекрёстный) и 2 запросов на изменение (обновление, добавление, удаление или создание таблицы).
8
5.Для заполнения таблиц использовать формы (простые и составные). В формах предусмотреть заголовок, логотип, кнопки закрытия формы, перехода по записям.
6.Создать два отчёта (с вычисляемым полем и с итогами). Отчёт должен иметь содержательный заголовок, логотип. В колонтитулах указать фамилию исполнителя и текущую дату.
7.Для управления базой данных создать форму-меню.
1.Описание инфологической модели (концептуальное проектирование).
2.Распечатка схемы данных (датологическое проектирование).
3.Распечатка запросов в режиме конструктора с пояснением выполняемых действий.
4.Распечатка форм в режиме конструктора.
5.Распечатка отчётов.
1.Сдача в аренду торговых площадей.
2.Гостиница.
3.Ломбард.
4.Реализация готовой продукции.
5.Ведение заказов.
6.Бюро по трудоустройству.
7.Нотариальная контора.
8.Фирма по продаже запчастей.
9.Курсы по повышению квалификации.
10.Определение факультативов для студентов
11.Распределение учебной нагрузки.
12.Распределение дополнительных обязанностей.
13.Техническое обслуживание станков.
14.Туристическая фирма.
15.Грузовые перевозки.
16.Учёт телефонных переговоров.
9