Разработка информационно-логической модели данных
На первом этапе решения задачи должна быть построена информационно-логическая модель данных предметной области. Для этого необходимо проанализировать несколько отдельных экземпляров документа и их папок, определить изменяемые реквизиты и логическое представление документа. Информационный объект и связи между ними тогда будут образованы согласно соответствующему алгоритму подпункта 1.2.2.3.
Верхняя строка документа является постоянным реквизитом, который присутствует в каждом его экземпляре. Следовательно, он не вносится в бланк вида 1. Реквизиты оформляющей части документа также исключаются из рассмотрения. Заголовок папки с квитанциями за месяц имеет один изменяемый реквизит — Месяц. Но так как он однозначно определяется значением реквизита Дата входящих в папку документов, то данный реквизит является вычисляемым. Все остальные реквизиты документа вносятся в бланк вида 1, который приведен в таблице 2.1.
Таблица 2.1. Описание реквизитов базы данных
Назначение реквизита | Имя в базе данных | Тип реквизита |
Номер заказа | Номер заказа | Числовой |
Дата заказа услуги | Дата | Дата |
Наименование услуги | Наименование услуги | Текстовый |
Наименование клиента | Наименование клиента | Текстовый |
Стоимость услуги | Стоимость | Числовой |
Количество дней на выполнение | Количество дней | Числовой |
Признак об оплате | Оплачено | Логический |
Рассматриваемый документ относится ко второму виду документов, так как состоит только из заголовочной части, включающей набор изменяемых реквизитов, а содержательная часть у документа отсутствует. Так как заголовок папки с квитанциями не имеет независимых изменяемых реквизитов, то следует сделать вывод, что папка относится к первому виду.
Таким образом, получаем тип документа — 2, тип папки — 1. Согласно таблице 1.7 логическим представлением папки квитанций будет являться список, состоящий из изменяемых реквизитов квитанции. Данный список образует один информационный объект оперативного учета Заказы, а бланк вида 2 данной задачи представлен в таблице 2.2.
Таблица 2.2. Бланк 2 задачи до выделения внешних объектов
Входной документ | Информационный объект | Реквизиты |
Квитанция | Заказы | Номер заказа |
Дата | ||
Наименование клиента | ||
Наименование услуги | ||
Стоимость | ||
Количество дней | ||
Оплачено |
Следующим шагом является выделение из полученного информационного объекта Заказы реквизитов, принадлежащих другим внешним объектам. Это прежде всего наименование клиента. Действительно, «Сервис-центр» может оказывать услуги более одного раза одному и тому же клиенту. Следовательно, нужно ввести новый нормативно-справочный ИО Клиенты, добавив к нему ключевое поле Код клиента типа Счетчик и пометив в конечном бланке вида 2 символом *. «Сервис-центр», как следует из постановки задачи, оказывает определенное количество услуг согласно некоторому типовому перечню (реестру), которые повторяются в различных квитанциях. Аналогично вводится новый нормативно-справочный ИО Услуги, включающий реквизиты Наименование услуги, Стоимость, Количество дней. К ним необходимо добавить ключевое поле Код клиента типа Счетчик. В столбце Реквизиты для ИО Заказы напротив полей, соответствующих внешним ИО, в скобках запишем имена их ключевых полей. Окончательно получаем бланк вида 2 в таблице 2.3.
Таблица 2.3. Окончательный вид бланка 2 задачи
Входной документ | Информационный объект | Реквизиты |
Справочник клиентов | Клиенты | Код клиента * |
Наименование клиента | ||
Справочник услуг | Услуги | Код услуги * |
Наименование услуги | ||
Стоимость | ||
Количество дней | ||
Квитанция | Заказы | Номер заказа |
Дата | ||
Наименование клиента (Код клиента) | ||
Наименование услуги (Код услуги) | ||
Стоимость (Код услуги) | ||
Количество дней (Код услуги) | ||
Оплачено |
Наконец, заменим внешние реквизиты ИО Заказы соответствующими им ключевыми реквизитами справочников, т. е. реквизитами, записанными в круглых скобках. Получим бланк вида 3, представленный в таблице 2.4.
Таблица 2.4. Бланк 3 задачи
Информационный объект | Ключевой реквизит | Описательные реквизиты |
Клиенты | Код клиента | Наименование клиента |
Услуги | Код услуги | Наименование услуги, Стоимость, Количество дней |
Заказы | Номер накладной | Номер заказа, Дата, Код клиента, Код услуги, Оплачено |
Схематически связи между объектами показаны на рис. 2.2, из которого можно заключить, что построенная информационно-логическая модель является канонической.
Рис. 2.2. Схема информационно-логической модели данных