Проанализируем установленные функциональные взаимосвязи реквизитов и установим для каждого из зависимых реквизитов, от каких реквизитов он зависит. Результаты отобразим в таблице соответствия зависимых (описательных) и ключевых реквизитов (табл. 5).
Таблица.5. Соответствие описательных и ключевых реквизитов
Описательные | Ключевые | Вид ключа | Название ИО, в который, |
реквизиты | реквизиты | включается реквизит | |
KZ | NTTN | П, У | ТТН |
NI | KI | П, У | Изделие |
Е1 | KI | П, У | Изделие |
NZ | KZ | П, У | Заказчик |
AZ | KZ | П, У | Заказчик |
KOLOTG | KI, NTTN | С, У | Отгрузка |
SUMOTG | NTTN | П, У | ТТН |
DOTG | NTTN | П, У | ТТН |
NTTN | KZ, NPTR | С, У | ПТР |
KOLOPL | KZ.KI.NPTR | С, У | Оплата |
DOPL | KZ, NPTR | С, У | ПТР |
SUMOPL | KZ, NPTR | С, У | ПТР |
CENAI | KI | П, У | Изделие |
Таблица 6. Реквизитный состав информационных объектов
Реквизиты ИО | Признак ключа | Имя ИО | Название ИО | Семантика (описание) | |
KZ | П,У | ZAK | ЗАКАЗЧИК | Данные о заказчике изделий | |
N2 AZ | |||||
KI | П,У | IZD | ИЗДЕЛИЕ | Данные об изделии предприятия | |
N1 CENAI El | |||||
NTTN | П,У | TTN | ТТН | Общие сведения о ТТН | |
SUMOTG DOTG KZ | |||||
NTTN KI | С. У | CTTN | ОТГРУЗКА (спецификация ТТН) | Данные из ТТН по отгрузке изделия | |
KOLOTG | |||||
NPTR KZ | С. У | FTR | ПТР | Общие данные ПТР | |
NTTN DOPL SUMOPL | |||||
NPTR KZ KI | С, У | CFTR | ОПЛАТА (спецификация ПТР) | Данные из ПТР по оплате отгруженного изделия | |
KOLOPL |
Первая группа реквизитов получена на основе таблицы с реквизитами ТТН, вторая по таблице с реквизитами ПТР и «Справочника изделий». Причем во вторую группу не включались строки, уже отображенные в первой группе.
Сгруппируем реквизиты, имеющие одинаковые ключи, в один информационный объект
(табл. 6). Таким образом, выделены все информационные объекты, отображающие данные, которые используются в рассматриваемой задаче.
3.2. Определение связей и построение ИЛМ
Связи между выявленными информационными объектами определяются реальными отношениями между парами объектов, показанными в табл. 8. При их определении учитывались сведения из описания ПО и семантика ИО. В частности, известно, что в одной ТТН — несколько строк по отгрузке изделий; в одном ПТР — несколько строк по оплате изделий; в одном ТТН и ПТР может быть указан только один заказчик, но для одного заказчика может быть много ТТН и ПТР, по одной ТТН может быть несколько ПТР и так далее.
Таблица 7. Связи информационных объектов
Ключ связи | Главный ИО | Подчиненный ИО | Тип отношения |
NTTN | ТТН | ОТГРУЗКА | 1:М |
NPTR+K2 | ПТР | ОПЛАТА | 1:М |
KZ | заказчик | ТТН | 1:М |
KZ | заказчик | ПТР | 1:М |
KI | изделие | ОТГРУЗКА | 1:М |
KI | изделие | ОПЛАТА | 1:М |
NTTN | ТТН | ПТР | 1:М |
Графическое изображение ИЛМ в канонической форме, наглядно показывающей иерархические отношения подчиненности информационных объектов, приведено на рис. 10.
Рис. 10. ИЛМ данных, обеспечивающая решение задачи оценки оплаты
3.3. Определение логической структуры реляционной базы данных
Логическая структура реляционной базы данных определяется совокупностью логически взаимосвязанных реляционных таблиц. Каждая реляционная таблица имеет структуру, определяемую реквизитным составом одного из информационных объектов полученной ИЛМ. Логические связи таблиц соответствуют структурным связям между объектами.
Логическая структура реляционной базы данных, построенная на основе полученной ИЛМ, приведена на рис. 11. На этой схеме реляционные таблицы представлены структурой, определяемой составом и последовательностью полей (атрибутов). Ключевые поля отмечены знаком *. Логические связи изображены линиями между одинаковыми ключами связи.
Рис. 11. Логическая структура реляционной базы данных задачи
3.4. Исходные данные контрольного примера
Требования к данным контрольного примера — их представительность, учитывающая особенности информации, указанные в описании предметной области. Такие данные должны обеспечить отладку алгоритма на компьютере и подтвердить работоспособность реализации алгоритма. В данных контрольного примера для рассматриваемой задачи должно быть предусмотрено, что одному заказчику могут производиться отгрузки по нескольким ТТН, в одной ТТН может быть несколько изделии, изделие одного наименования может отгружаться нескольким заказчикам, одним заказчиком может быть оформлено несколько оплат по разным ПТР, одинаковый номер ПТР может встретиться для разных заказчиков, в одном ПТР оплачиваются изделия только по одной ТТН и не обязательно в полном объеме. Данные контрольного примера, предназначенные для тестирования, отладки и демонстрации решения задачи оценки оплаты, приведены в табл. 8 - 13.
Таблица 8. Данные таблицы TTN
NTTN | KZ | SUMOTG | DOTG |
1.000.000 | 9/18/96 | ||
420.000 | 11/08/96 | ||
1.080.000 | 9/25/96 | ||
340.000 | 11/10/96 | ||
640.000 | 11/21/96 | ||
1.600.000 | 11/29/96 |
Таблица 9. Данные таблицы CTTN
NTTN | KI | KOLOTG |
Таблица 10. Данные таблицы PTR
NPTR | KZ | KI | KOLOPL |
Таблица 11. Данные таблицы CPTR
NPTR | KZ | NTTN | DOPL | SUMOPL |
9/20/96 | 320.000 | |||
9/29/96 | 1.080.000 | |||
9/22/96 | 680.000 | |||
11/13/96 | 210.000 | |||
4/02/96 | 300.000 |
Таблица 12. Изделия
KI | N1 | CENAI | El |
Балтика «Светлое» Балтика «Особое» Балтика «Классическое» Балтика «Оригинальное» Балтика «Портер» | шт шт шт шт шт |
Таблицу 13. Заказчики
KZ | NZ | AZ |
ТОО «Петр» | пр. Энгельса, д.23 | |
Магазин «Диета» | ул. Пархоменко, д.5 | |
АО «Победа» | пр. Литейный, д.58 | |
Магазин «Лига» | пр. Испытателей, д.8 | |
Универмаг «Клен» | пр. Калинина, д.6, корп.1 |
4. Разработка алгоритмов и технологии решения задачи